From d3a375a9d546c21d84cbe46612b87c42b2007983 Mon Sep 17 00:00:00 2001 From: Aaron <atva725@qq.com> Date: Tue, 4 Feb 2025 00:13:16 +0800 Subject: [PATCH] update --- src/router/index.ts | 8 +-- src/utils/api.ts | 6 +-- src/views/ceshi.vue | 128 -------------------------------------------- src/views/home.vue | 18 +++---- src/views/index.vue | 52 +++++++++--------- src/views/login.vue | 18 +++---- src/views/order.vue | 115 +++++++++++++++++++++++++++++++++++++++ vite.config.ts | 2 +- 8 files changed, 163 insertions(+), 184 deletions(-) delete mode 100644 src/views/ceshi.vue create mode 100644 src/views/order.vue diff --git a/src/router/index.ts b/src/router/index.ts index 803fc51..b6a0c0d 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -35,11 +35,11 @@ const router = createRouter({ } }, { - path: '/ceshi', - component: () => import('../views/ceshi.vue'), + path: '/order', + component: () => import('../views/order.vue'), meta: { - comp: 'ceshi', - name: '测试' + comp: 'order', + name: '订单管理' } }, ] diff --git a/src/utils/api.ts b/src/utils/api.ts index fd09088..2d291f4 100644 --- a/src/utils/api.ts +++ b/src/utils/api.ts @@ -94,12 +94,12 @@ export const create_payorder = async (params: Object)=>{ } /** - * @title 系统开放 + * @title 订单列表 */ -export const id_card = async (params: Object)=>{ +export const orderList = async (params: Object)=>{ return POST( { - url: "/open/api/ocr/id_card", + url: "/api/user/payorder/list", params } ) diff --git a/src/views/ceshi.vue b/src/views/ceshi.vue deleted file mode 100644 index 5224d9e..0000000 --- a/src/views/ceshi.vue +++ /dev/null @@ -1,128 +0,0 @@ -<template> - <div class="tooltip-base-box"> - <div class="row center"> - <el-tooltip - class="box-item" - effect="dark" - content="Top Left prompts info" - placement="top-start" - > - <el-button>top-start</el-button> - </el-tooltip> - <el-tooltip - class="box-item" - effect="dark" - content="Top Center prompts info" - placement="top" - > - <el-button>top</el-button> - </el-tooltip> - <el-tooltip - class="box-item" - effect="dark" - content="Top Right prompts info" - placement="top-end" - > - <el-button>top-end</el-button> - </el-tooltip> - </div> - <div class="row"> - <el-tooltip - class="box-item" - effect="dark" - content="Left Top prompts info" - placement="left-start" - > - <el-button>left-start</el-button> - </el-tooltip> - <el-tooltip - class="box-item" - effect="dark" - content="Right Top prompts info" - placement="right-start" - > - <el-button>right-start</el-button> - </el-tooltip> - </div> - <div class="row"> - <el-tooltip - class="box-item" - effect="dark" - content="Left Center prompts info" - placement="left" - > - <el-button class="mt-3 mb-3">left</el-button> - </el-tooltip> - <el-tooltip - class="box-item" - effect="dark" - content="Right Center prompts info" - placement="right" - > - <el-button>right</el-button> - </el-tooltip> - </div> - <div class="row"> - <el-tooltip - class="box-item" - effect="dark" - content="Left Bottom prompts info" - placement="left-end" - > - <el-button>left-end</el-button> - </el-tooltip> - <el-tooltip - class="box-item" - effect="dark" - content="Right Bottom prompts info" - placement="right-end" - > - <el-button>right-end</el-button> - </el-tooltip> - </div> - <div class="row center"> - <el-tooltip - class="box-item" - effect="dark" - content="Bottom Left prompts info" - placement="bottom-start" - > - <el-button>bottom-start</el-button> - </el-tooltip> - <el-tooltip - class="box-item" - effect="dark" - content="Bottom Center prompts info" - placement="bottom" - > - <el-button>bottom</el-button> - </el-tooltip> - <el-tooltip - class="box-item" - effect="dark" - content="Bottom Right prompts info" - placement="bottom-end" - > - <el-button>bottom-end</el-button> - </el-tooltip> - </div> - </div> -</template> - -<style> -.tooltip-base-box { - width: 100%; -} -.tooltip-base-box .row { - display: flex; - align-items: center; - justify-content: space-between; -} -.tooltip-base-box .center { - justify-content: center; -} -.tooltip-base-box .box-item { - width: 110px; - margin-top: 10px; -} -</style> diff --git a/src/views/home.vue b/src/views/home.vue index aefaa4d..d89723c 100644 --- a/src/views/home.vue +++ b/src/views/home.vue @@ -26,8 +26,6 @@ </div> <div class="f14 white" v-if="!isCollapse"> <div>管理员</div> - <div>(总经理)</div> - <div>17584958214</div> </div> </div> <el-menu @@ -94,9 +92,9 @@ </div> <div class="flex"> <div class="header_info"> - <div class="flex" @click="state.userVisible = true"> + <!-- <div class="flex" @click="state.userVisible = true"> <el-icon size="20"><EditPen /></el-icon>修改密码 - </div> + </div> --> <div class="flex ml20" @click="loginOut"> <el-icon size="20"><SwitchButton /></el-icon>退出 </div> @@ -207,11 +205,11 @@ import { useRouter } from "vue-router"; import type { FormInstance, FormRules } from "element-plus"; import index from "./index.vue"; import about from "./about.vue"; -import ceshi from "./ceshi.vue"; +import order from "./order.vue"; const { appContext } = getCurrentInstance(); const dom = shallowRef({ - ceshi, + order, about, index, }); @@ -249,15 +247,15 @@ const state = reactive({ browserUrl: "about", children: [], icon: "fa fa-link", - name: "关于", + name: "产品", }, { - action: "ceshi", + action: "order", appIcon: null, - browserUrl: "ceshi", + browserUrl: "order", children: [], icon: "fa fa-link", - name: "测试", + name: "订单管理", }, ] as any, }); diff --git a/src/views/index.vue b/src/views/index.vue index bc9c1a1..d251609 100644 --- a/src/views/index.vue +++ b/src/views/index.vue @@ -1,31 +1,24 @@ <template> - <el-form> + <!-- <el-form> <el-form-item> <el-button type="primary">新增</el-button> </el-form-item> - </el-form> + </el-form> --> <el-table :data="tableData" border style="width: 100%"> - <el-table-column align="center" fixed prop="tenant_name" label="租户昵称" /> + <el-table-column align="center" fixed prop="tenant_name" label="租户昵称" /> <el-table-column align="center" prop="account" label="账号" width="220" /> <el-table-column align="center" prop="enable" label="是否开启" width="120" /> <el-table-column align="center" prop="created_at" label="创建时间" width="220" /> - <el-table-column align="center" fixed="right" label="操作" width="120"> + <!-- <el-table-column align="center" fixed="right" label="操作" width="120"> <template #default="scope"> <el-button @click="update(scope.row)" link type="primary" size="small">编辑</el-button> </template> - </el-table-column> +</el-table-column> --> </el-table> <div class="flex-c-c mt20"> - <el-pagination - v-model:current-page="page" - v-model:page-size="pageSize" - :page-sizes="[100, 200, 300, 400]" - layout=" prev, pager, next" - :total="count" - background - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> + <el-pagination v-model:current-page="page" v-model:page-size="pageSize" :page-sizes="[100, 200, 300, 400]" + layout=" prev, pager, next" :total="count" background + @current-change="handleCurrentChange" /> </div> </template> @@ -54,12 +47,9 @@ onMounted(async () => { const page = ref(1) const pageSize = ref(20) -const handleSizeChange = (val: number) => { - console.log(`${val} items per page`) -} const handleCurrentChange = (val: number) => { - page.value=val + page.value = val getList() } @@ -77,7 +67,7 @@ const getList = async () => { page: page.value, size: pageSize.value, } - const { code, body:{records,total} } = await tenantList(params) + const { code, body: { records, total } } = await tenantList(params) if (code == 200) { tableData.value = records count.value = total @@ -89,7 +79,7 @@ const getList = async () => { */ const regesiter = async (params: Object) => { const { code } = await tenantRegister(formData) - if(code==200){ + if (code == 200) { ElMessage.success("成功!") } @@ -99,22 +89,28 @@ const regesiter = async (params: Object) => { * @title 修改租户 */ -const update = async ()=>{ - console.log(formData); +const update = async (row) => { + console.log(row); + const params = { + tenant_name: "", + enable: "", + password: "" + } return - const {code} = await tenantUpdate(formData) - if(code==200){ + const { code } = await tenantUpdate(formData) + if (code == 200) { ElMessage.success("修改成功!") } } </script> -<style scoped> -.flex-c-c{ +<style scoped> +.flex-c-c { display: flex; align-items: center; justify-content: center; } -.mt20{ + +.mt20 { margin-top: 20px; } </style> \ No newline at end of file diff --git a/src/views/login.vue b/src/views/login.vue index 5a11c2b..3ce19e4 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -19,13 +19,8 @@ <div style="color: #606266; font-size: 14px">忘记密码?</div> </div> <div class="flex-c mt30"> - <el-button - type="primary" - @click="submitForm(ruleFormRef)" - :loading="state.loading" - style="width: 100%" - >登录</el-button - > + <el-button type="primary" @click="submitForm(ruleFormRef)" :loading="state.loading" + style="width: 100%">登录</el-button> </div> </el-card> </div> @@ -36,7 +31,7 @@ import { User, Lock } from "@element-plus/icons-vue"; import { useRouter } from "vue-router"; import { ElMessage } from "element-plus"; -import { userLogin } from "@/utils/api.ts"; +import { userLogin } from "../utils/api"; const { appContext } = getCurrentInstance(); @@ -66,9 +61,12 @@ const submitForm = async (formEl) => { } = await userLogin(ruleForm); if (code == 200) { localStorage.setItem("token", token); + ElMessage.success("登录成功") + setTimeout(()=>{ + router.push("/"); + },200) } - ElMessage.success("登录成功") - router.push("/"); + } else { ElMessage.error("请完善信息") } diff --git a/src/views/order.vue b/src/views/order.vue new file mode 100644 index 0000000..8c124c6 --- /dev/null +++ b/src/views/order.vue @@ -0,0 +1,115 @@ +<template> + <el-form inline> + <el-form-item label="状态"> + <el-select v-model="status" placeholder="请选择" style="width: 240px"> + <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /> + </el-select> + </el-form-item> + <el-form-item> + <el-button @click="getList()" type="primary">搜索</el-button> + </el-form-item> + </el-form> + <el-table :data="tableData" border style="width: 100%"> + <el-table-column prop="out_trade_no" label="订单号" width="180" /> + <el-table-column prop="product_name" label="产品名" width="180" /> + <el-table-column prop="total_amount" label="价格" width="100"> + <template #default="scope"> + <div>{{ scope.row.total_amount }}元</div> + </template> + </el-table-column> + <el-table-column prop="create_time" label="创建时间" /> + <el-table-column prop="payment_time" label="支付时间" /> + <el-table-column label="状态"> + <template #default="scope"> + <el-tag v-if="scope.row.payment_status == 'Unpaid'" type="primary">未支付</el-tag> + <el-tag v-if="scope.row.payment_status == 'Paid'" type="success">已支付</el-tag> + <el-tag v-if="scope.row.payment_status == 'USERPAYING'" type="info">支付中</el-tag> + <el-tag v-if="scope.row.payment_status == 'Refunded'" type="warning">已退款</el-tag> + <el-tag v-if="scope.row.payment_status == 'Close'" type="warning">已关闭</el-tag> + <el-tag v-if="scope.row.payment_status == 'Failed' || scope.row.payment_status == 'REVOKED'" + type="danger">支付失败</el-tag> + </template> + </el-table-column> + + </el-table> + <div class="flex-c-c mt20"> + <el-pagination v-model:current-page="page" v-model:page-size="pageSize" layout=" prev, pager, next" :total="count" + background @current-change="handleCurrentChange" /> + </div> +</template> + +<script lang="ts" setup> +import { ref, reactive, onMounted } from "vue"; +import { orderList } from "@/utils/api.ts" + +onMounted(() => { + getList(); +}); + +const tableData = ref([]) +const count = ref(0) +const page = ref(1) +const pageSize = ref(20) +const status = ref("") + +const options = [ + { + label: "全部", + value: "0" + }, { + label: "未支付", + value: "Unpaid" + }, + { + label: "已支付", + value: "Paid" + }, + { + label: "支付失败", + value: "PAYERROR" + }, + { + label: "已退款", + value: "Refunded" + }, + { + label: "已关闭", + value: "Close" + }, + +] + +const handleCurrentChange = (val: number) => { + page.value = val + getList() +} + +/** + * @title 获取订单列表 + */ +const getList = async () => { + const params = { + page: 1, + size: 20, + } + if (status.value&&status.value!='0') { + params.payment_status = status.value + } + const { code, body: { records, total } } = await orderList(params) + if (code == 200) { + tableData.value = records + count.value = total + } +} +</script> +<style scoped> +.flex-c-c { + display: flex; + align-items: center; + justify-content: center; +} + +.mt20 { + margin-top: 20px; +} +</style> \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts index 30586ac..0625851 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -18,7 +18,7 @@ export default defineConfig({ server: { proxy: { '/api': { - target: 'http://localhost:8080', + target: 'https://sh-ocr-api.bskies.cc/', changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, '') }