From 5477a783a80e15062abd7b4d59e29d0da586eaf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=99=E5=90=8C=E5=AD=A6?= <2495967527@qq.com> Date: Tue, 3 Dec 2024 18:47:55 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/full-routers.js | 119 ++++---- .../datacenter/customer-analysis/index.vue | 237 +++++++++++++++ .../datacenter/order-analysis/index.vue | 285 ++++++++++++++++++ .../datacenter/product-analysis/index.vue | 242 +++++++++++++++ src/views/modules/presale/products/index.vue | 44 ++- .../presale/products/popup/add-or-update.vue | 6 +- 6 files changed, 860 insertions(+), 73 deletions(-) create mode 100644 src/views/modules/datacenter/customer-analysis/index.vue create mode 100644 src/views/modules/datacenter/order-analysis/index.vue create mode 100644 src/views/modules/datacenter/product-analysis/index.vue diff --git a/src/router/full-routers.js b/src/router/full-routers.js index d6adfa3..d2603f3 100644 --- a/src/router/full-routers.js +++ b/src/router/full-routers.js @@ -173,72 +173,59 @@ export default { }, ], }, - // { - // "menuId": getUUID(), - // "parentId": 0, - // "parentName": null, - // "name": "教务管理", - // "url": "local-affairs", - // "perms": "", - // "type": 0, - // "elIcon": "el-icon-office-building", - // "orderNum": 0, - // "open": null, - // list: [ - // { - // "menuId": getUUID(), - // "parentId": 2, - // "parentName": null, - // "name": "年级管理", - // "url": "local-affairs/grade", - // "perms": "", - // "type": 1, - // "icon": "log", - // "orderNum": 0, - // "open": null, - // "list": [] - // }, - // { - // "menuId": getUUID(), - // "parentId": 2, - // "parentName": null, - // "name": "班级管理", - // "url": "local-affairs/class", - // "perms": "", - // "type": 1, - // "icon": "log", - // "orderNum": 0, - // "open": null, - // "list": [] - // }, - // { - // "menuId": getUUID(), - // "parentId": 2, - // "parentName": null, - // "name": "教师管理", - // "url": "local-teacher/teacher", - // "perms": "", - // "type": 1, - // "icon": "log", - // "orderNum": 0, - // "open": null, - // "list": [] - // }, - // { - // "menuId": getUUID(), - // "parentId": 0, - // "parentName": null, - // "name": "学校管理", - // "url": "local-school/school", - // "perms": "", - // "type": 1, - // "elIcon": "el-icon-school", - // "orderNum": 0, - // "open": null, - // list: [] - // }, - // ] - // }, + { + menuId: getUUID(), + parentId: 0, + parentName: null, + name: "数据中心", + url: "", + perms: "", + type: 0, + elIcon: "el-icon-tickets", + orderNum: 0, + open: null, + list: [ + { + menuId: getUUID(), + parentId: 0, + parentName: null, + name: "客户分析", + url: "datacenter/customer-analysis/index", + perms: "", + type: 1, + elIcon: "el-icon-user", + orderNum: 0, + open: null, + list: [], + }, + { + menuId: getUUID(), + parentId: 0, + parentName: null, + name: "商品分析", + url: "datacenter/product-analysis/index", + perms: "", + type: 1, + elIcon: "el-icon-data-analysis", + orderNum: 0, + open: null, + list: [], + }, + { + menuId: getUUID(), + parentId: 0, + parentName: null, + name: "订单统计分析", + url: "datacenter/order-analysis/index", + perms: "", + type: 1, + elIcon: "el-icon-shopping-cart-full", + orderNum: 0, + open: null, + list: [], + }, + ], + }, ], code: 0, permissions: [], diff --git a/src/views/modules/datacenter/customer-analysis/index.vue b/src/views/modules/datacenter/customer-analysis/index.vue new file mode 100644 index 0000000..7a20056 --- /dev/null +++ b/src/views/modules/datacenter/customer-analysis/index.vue @@ -0,0 +1,237 @@ + + + + + + + + + + + + 查询 + 导出 + + + + + + 展现量 (次) + + 562 + ↓ + ↑ + 56% + + + + + + + 浏览人数 (人) + + 62 + ↓ + ↑ + 56% + + + + + + + 新客数量 (人) + + 62 + ↓ + ↑ + 56% + + + + + + + 支付订单人数 (人) + 199 + + + + + + 支付订单转化率 (%) + 1256 + + + + + + 客户复购率 (%) + 1256 + + + + + + + + + + + + \ No newline at end of file diff --git a/src/views/modules/datacenter/order-analysis/index.vue b/src/views/modules/datacenter/order-analysis/index.vue new file mode 100644 index 0000000..08d4d97 --- /dev/null +++ b/src/views/modules/datacenter/order-analysis/index.vue @@ -0,0 +1,285 @@ + + + + + + + + 查询 + + + 订单分析 + + + + 下单订单数量 + 435 + + + + + 支付订单数量 + 45 + + + + + 有效订单数量 + 34 + + + + + 有效订单率 + 199 + + + + + 订单实付金额(元) + 1256 + + + + + 订单退款金额(元) + 1256 + + + + + 售后订单数量 + 34 + + + + + 售后订单率(%) + 199 + + + + + + 订单结算明细 + + + + + + + + + + + + + + + + 查询 + 导出 + + + + + 退款金额¥999 + + + 订单支出¥999 + + + 待入账金额¥888 + + + 已入账金额¥888 + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/views/modules/datacenter/product-analysis/index.vue b/src/views/modules/datacenter/product-analysis/index.vue new file mode 100644 index 0000000..6279d4c --- /dev/null +++ b/src/views/modules/datacenter/product-analysis/index.vue @@ -0,0 +1,242 @@ + + + + + + + + + + + + 查询 + 导出 + + + 商品整体概况 + + + + 在售商品数 + 435 + + + + + 被访问商品数 + 45 + + + + + 折扣商品数 + 34 + + + + + 预售商品数 + 199 + + + + + 商品浏览量 + 1256 + + + + + 商品浏览人数 + 1256 + + + + + 商品加购件数 + 34 + + + + + 商品点赞件数 + 199 + + + + + 商品支付件数 + 1256 + + + + + + 商品排行榜 + + 商品访客数TOP + + + + + + + + + + + {{ scope.row.name }} + + + + + + 商品支付转化率TOP + + + + + + + + + + + {{ scope.row.name }} + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/views/modules/presale/products/index.vue b/src/views/modules/presale/products/index.vue index ea73249..932c183 100644 --- a/src/views/modules/presale/products/index.vue +++ b/src/views/modules/presale/products/index.vue @@ -334,11 +334,47 @@ export default { { title: "预售价", align: "center", - field: "discountActivity", + field: "presalePrice", type: "jsx", - render: ({ row }) => { - if (row.discountActivity) { - return {row.discountActivity.ruleObject.discount}折; + render: ({ row }) => { + if ( + Math.min.apply( + Math, + row.productSpecificationList.map((item) => item.presalePrice) + ) == + Math.max.apply( + Math, + row.productSpecificationList.map((item) => item.presalePrice) + ) + ) { + return ( + + {Math.min.apply( + Math, + row.productSpecificationList.map( + (item) => item.presalePrice + ) + )} + + ); + } else { + return ( + + {Math.min.apply( + Math, + row.productSpecificationList.map( + (item) => item.presalePrice + ) + )} + 至 + {Math.max.apply( + Math, + row.productSpecificationList.map( + (item) => item.presalePrice + ) + )} + + ); } }, }, diff --git a/src/views/modules/presale/products/popup/add-or-update.vue b/src/views/modules/presale/products/popup/add-or-update.vue index c1c036a..ace4b01 100644 --- a/src/views/modules/presale/products/popup/add-or-update.vue +++ b/src/views/modules/presale/products/popup/add-or-update.vue @@ -20,8 +20,8 @@