From f4950a7b9a57b880a3a34e001b99a4fcefe32f52 Mon Sep 17 00:00:00 2001 From: zq <136432190602163.com> Date: Tue, 9 Sep 2025 18:33:27 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=94=B6=E6=94=AF?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/GuipSelect.vue | 13 +- src/router/index.js | 33 +++ src/views/agent/expenseStatistics.vue | 431 +++++++++++++++++++++++++++++++++ src/views/agent/statisticalDetails.vue | 226 +++++++++++++++++ 4 files changed, 697 insertions(+), 6 deletions(-) create mode 100644 src/views/agent/expenseStatistics.vue create mode 100644 src/views/agent/statisticalDetails.vue diff --git a/src/components/GuipSelect.vue b/src/components/GuipSelect.vue index bb02428..2cf7da9 100644 --- a/src/components/GuipSelect.vue +++ b/src/components/GuipSelect.vue @@ -60,10 +60,12 @@ export default { computed: { processedOptions() { // 处理options为空的情况 + // let options = [1,5,3] || []; + let newOptions = null let options = this.options || []; // 如果是 [1,12,22] 格式 - if (Array.isArray(options) && options.every(item => typeof item !== 'object')) { - return options.map((item, index) => ({ + if (Array.isArray(options) && options.length > 0 && options.every(item => typeof item !== 'object')) { + newOptions = options.map((item, index) => ({ [this.valueKey]: index, [this.labelKey]: item })); @@ -76,19 +78,18 @@ export default { [this.labelKey]: options[key] })); } - // 当extraItem存在且不是空对象时,添加到options数组开头 if (this.extraItem && Object.keys(this.extraItem).length > 0) { - return [ + newOptions = [ { [this.labelKey]: this.extraItem.label || '', [this.valueKey]: this.extraItem.value || '', disabled: this.extraItem.disabled || false }, - ...options + ...newOptions ]; } - return options; + return newOptions; } }, watch: { diff --git a/src/router/index.js b/src/router/index.js index 2fa83a6..7a6bea7 100755 --- a/src/router/index.js +++ b/src/router/index.js @@ -321,6 +321,39 @@ const routes = [{ hideBreadcrumb: true // 一级页面不显示面包屑 } }, + { + path: '/agent/expenseStatistics', + name: '收支统计', + component: () => import( /* webpackChunkName: "expenseStatistics" */ '../views/agent/expenseStatistics.vue'), + meta: { + title:'各站点统计列表', + hideBreadcrumb: true // 一级页面不显示面包屑 + } + }, + { + path: '/agent/statisticalDetails', + name: '站点月详情', + component: () => import( /* webpackChunkName: "statisticalDetails" */ '../views/agent/statisticalDetails.vue'), + meta: { + breadcrumbParent: '收支统计' // 手动指定父级 + } + }, + { + path: '/agent/siteRank', + name: '站点排行', + component: () => import( /* webpackChunkName: "statisticalDetails" */ '../views/agent/statisticalDetails.vue'), + meta: { + breadcrumbParent: '各站点统计列表' // 手动指定父级 + } + }, + { + path: '/agent/serviceRank', + name: '服务排行', + component: () => import( /* webpackChunkName: "statisticalDetails" */ '../views/agent/statisticalDetails.vue'), + meta: { + breadcrumbParent: '各站点统计列表' // 手动指定父级 + } + }, // -----------------分隔符----------- diff --git a/src/views/agent/expenseStatistics.vue b/src/views/agent/expenseStatistics.vue new file mode 100644 index 0000000..4236f6b --- /dev/null +++ b/src/views/agent/expenseStatistics.vue @@ -0,0 +1,431 @@ + + + \ No newline at end of file diff --git a/src/views/agent/statisticalDetails.vue b/src/views/agent/statisticalDetails.vue new file mode 100644 index 0000000..c7efc5c --- /dev/null +++ b/src/views/agent/statisticalDetails.vue @@ -0,0 +1,226 @@ + + + \ No newline at end of file From adf83c54c4167e55152b59d5c97b02a852eeab89 Mon Sep 17 00:00:00 2001 From: pengda <1111@qq.com> Date: Fri, 12 Sep 2025 15:03:33 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=94=B6=E6=94=AF=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E6=B8=B2=E6=9F=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/super/DateSelect.vue | 6 +- src/router/index.js | 13 +- src/views/agent/expenseStatistics.vue | 408 +++++++++++++++++++-------------- src/views/agent/statisticalDetails.vue | 306 +++++++++++++++++++------ 4 files changed, 484 insertions(+), 249 deletions(-) diff --git a/src/components/super/DateSelect.vue b/src/components/super/DateSelect.vue index 9292fd3..39c91e1 100644 --- a/src/components/super/DateSelect.vue +++ b/src/components/super/DateSelect.vue @@ -11,7 +11,7 @@
- +
@@ -62,6 +62,10 @@ onlyYear:{ type:Boolean, default:false + }, + onlyMonth:{ + type:Boolean, + default:false } }, data() { diff --git a/src/router/index.js b/src/router/index.js index 7a6bea7..7b79ff6 100755 --- a/src/router/index.js +++ b/src/router/index.js @@ -10,7 +10,7 @@ const whiteSecondSider = [ const blackSliderList = [ '/franchise', '/agreement', '/customizeDoc', '/agent/siteAdd', '/agent/siteServiceList', '/agent/siteTemplate','/agent/siteAddFinally','/agent/siteServiceAdd', '/agent/supplyList', '/agent/domainList','/agent/siteAddChooseService' - , '/agent/noticeList' + , '/agent/noticeList' , '/agent/statisticalDetails', '/agent/siteRank', '/agent/serviceRank' ]; // 一级路由 let first_child_router = [] @@ -326,7 +326,6 @@ const routes = [{ name: '收支统计', component: () => import( /* webpackChunkName: "expenseStatistics" */ '../views/agent/expenseStatistics.vue'), meta: { - title:'各站点统计列表', hideBreadcrumb: true // 一级页面不显示面包屑 } }, @@ -342,16 +341,22 @@ const routes = [{ path: '/agent/siteRank', name: '站点排行', component: () => import( /* webpackChunkName: "statisticalDetails" */ '../views/agent/statisticalDetails.vue'), + props: { + rankFlag: 'site' + }, meta: { - breadcrumbParent: '各站点统计列表' // 手动指定父级 + breadcrumbParent: '收支统计' // 手动指定父级 } }, { path: '/agent/serviceRank', name: '服务排行', component: () => import( /* webpackChunkName: "statisticalDetails" */ '../views/agent/statisticalDetails.vue'), + props: { + rankFlag: 'chktype' + }, meta: { - breadcrumbParent: '各站点统计列表' // 手动指定父级 + breadcrumbParent: '收支统计' // 手动指定父级 } }, diff --git a/src/views/agent/expenseStatistics.vue b/src/views/agent/expenseStatistics.vue index 4236f6b..dfd1437 100644 --- a/src/views/agent/expenseStatistics.vue +++ b/src/views/agent/expenseStatistics.vue @@ -5,127 +5,138 @@
- +
- - + + + + +
-
-
+
+
月利润
- 亏损 + 亏损
- 8900 - 元 + {{monthTotal.profit}}
- 淘宝:200.89元 - 微信:200.89元 - 淘宝:200.89元 +
- 淘宝:200.89元 - 支付宝:200.89元 +
-
- 月利润 + 月收入
- 亏损 +
- 8900 - 元 + {{this.monthTotal.income}}
- 淘宝:200.89元 - 微信:200.89元 - 淘宝:200.89元 +
- 淘宝:200.89元 - 支付宝:200.89元 +
-
- 月利润 + 月支出
- 亏损 +
- 8900 - 元 + {{this.monthTotal.cost}}
-
+
- 淘宝:200.89元 - 微信:200.89元 - 淘宝:200.89元 +
- 淘宝:200.89元 - 支付宝:200.89元 +
-
- 月利润 + 月单量
- 亏损 +
- 8900 - 元 + {{this.monthTotal.check_num}}
- 淘宝:200.89元 - 微信:200.89元 - 淘宝:200.89元 +
- 淘宝:200.89元 - 支付宝:200.89元 +
-
- - - + + + + + + @@ -139,43 +150,48 @@ - + + -