From 0a3f49f3250424582ff0d9dcea1ef12d89c85e44 Mon Sep 17 00:00:00 2001
From: zhizhijie <zhizhijie@users.noreply.gitee.com>
Date: 星期六, 19 九月 2026 00:23:12 +0800
Subject: [PATCH] feat(报表): 新增客运站/物流站场投资明细表导出 + 中口径同比口径修复 + 隐藏网约车订单入口
---
traffic-audit-web/src/views/DataImport.vue | 28 +++++++++++++++++++++++-----
1 files changed, 23 insertions(+), 5 deletions(-)
diff --git a/traffic-audit-web/src/views/DataImport.vue b/traffic-audit-web/src/views/DataImport.vue
index b9c83e7..caa322a 100644
--- a/traffic-audit-web/src/views/DataImport.vue
+++ b/traffic-audit-web/src/views/DataImport.vue
@@ -1,3 +1,4 @@
+<template>
<el-container direction="vertical">
<app-header title="浜ら�氱粺璁℃姤琛ㄥ鏍哥郴缁� - 鏁版嵁瀵煎叆"></app-header>
<el-container>
@@ -36,7 +37,7 @@
<div class="module-sel-row">
<el-select v-model="moduleSel[g.key]" placeholder="閫夋嫨鏁版嵁绫诲瀷" style="width:260px"
@change="onModuleChange(g.key)" clearable>
- <el-option v-for="t in g.types" :key="t.value" :label="t.label" :value="t.value"></el-option>
+ <el-option v-for="t in typeList(g)" :key="t.value" :label="t.label" :value="t.value"></el-option>
</el-select>
<div v-if="importType" class="tpl-box">
<span class="tpl-name">妯℃澘锛歿{ templateName }}</span>
@@ -113,7 +114,7 @@
<div v-else class="overview-grid">
<div class="ov-row" v-for="g in visibleGroups" :key="g.key">
<div class="ov-group">{{ g.name }}</div>
- <div class="ov-item" v-for="t in g.types" :key="t.value" :class="overviewState(t.value).cls">
+ <div class="ov-item" v-for="t in typeList(g)" :key="t.value" :class="overviewState(t.value).cls">
<div class="ov-name">{{ t.label }}</div>
<div class="ov-status">{{ overviewState(t.value).text }}</div>
</div>
@@ -133,7 +134,7 @@
<div v-if="clearScope === 'types'" class="clear-types">
<el-select v-model="clearTypes" multiple filterable collapse-tags placeholder="閫夋嫨瑕佹竻绌虹殑鏁版嵁绫诲瀷" style="width:100%">
<el-option-group v-for="g in clearableGroups()" :key="g.key" :label="g.name">
- <el-option v-for="t in g.types" :key="t.value" :value="t.value"
+ <el-option v-for="t in typeList(g)" :key="t.value" :value="t.value"
:label="t.label + '锛�' + overviewState(t.value).text + '锛�'"></el-option>
</el-option-group>
</el-select>
@@ -225,7 +226,7 @@
{ value: 'cityTaxi', label: '宸℃父鍑虹姹借溅杩愯惀鏈嶅姟鎯呭喌鏈堟姤' },
{ value: 'cityTaxiAuth', label: '鍑虹杞﹁繍鏀胯溅杈�' },
{ value: 'wycTotal', label: '缃戠害杞︽�绘暟' },
- { value: 'wycOrder', label: '缃戠害杞﹁鍗曞強鍏ㄧ渷鎬婚噺' },
+ { value: 'wycOrder', label: '缃戠害杞﹁鍗曞強鍏ㄧ渷鎬婚噺', hidden: true },
{ value: 'wycOrderReport', label: '缃戠害杞﹁鍗曟姤鍛�' }
]
},
@@ -333,7 +334,20 @@
typeLabel(t) { return TYPE_LABELS[t] || t },
downloadTemplate() {
if (!this.templateUrl) return
- window.open('/api/templates/' + this.templateUrl)
+ const name = this.templateUrl.split('/').pop()
+ api.get('/templates/' + this.templateUrl, { responseType: 'blob' })
+ .then(res => {
+ const blob = res instanceof Blob ? res : new Blob([res])
+ const url = window.URL.createObjectURL(blob)
+ const a = document.createElement('a')
+ a.href = url
+ a.download = name
+ document.body.appendChild(a)
+ a.click()
+ window.URL.revokeObjectURL(url)
+ document.body.removeChild(a)
+ })
+ .catch(() => this.$message.error('妯℃澘涓嬭浇澶辫触锛岃绋嶅悗閲嶈瘯'))
},
onModuleChange(key) {
this.importType = this.moduleSel[key] || ''
@@ -570,6 +584,10 @@
clearableGroups() {
return this.groups.filter(g => !g.hidden)
},
+ // 鍗曚釜鏁版嵁绫诲瀷涔熷彲闅愯棌锛坔idden: true锛夛細鍏ュ彛銆佹瑙堛�佹竻绌轰笅鎷夌粺涓�杩囨护
+ typeList(g) {
+ return (g && g.types ? g.types : []).filter(t => !t.hidden)
+ },
confirmClear() {
if (!this.period) { this.$message.warning('璇峰厛閫夋嫨鎶ヨ〃鏈�'); return }
if (this.clearing) return
--
Gitblit v1.9.1