From 61acea2ff77027d080f68aadb91b1532ed099fe1 Mon Sep 17 00:00:00 2001 From: zq <136432190602163.com> Date: Tue, 9 Sep 2025 18:33:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=94=B6=E6=94=AF=E7=BB=9F?= =?UTF-8?q?=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 41170a2..193dc39 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