浏览代码

refactor: 统一优化运行数据相关页面的字段命名与交互

1. 调整多个运行数据页面的字段名,统一命名规范
2. 将时间段选择改为时间范围选择器,优化查询交互
3. 重构大队查获图表的渲染逻辑,支持多班组数据展示
4. 调整表单弹窗宽度与布局,优化编辑体验
5. 更新接口请求地址与后端接口对齐
huoyi 1 月之前
父节点
当前提交
49e389dc0c

+ 114 - 98
src/views/runData/collectWaitingAreaData/index.vue

@@ -2,12 +2,14 @@
2 2
   <div class="app-container">
3 3
     <!-- 查询条件 -->
4 4
     <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
5
-      <el-form-item label="日期" prop="date">
6
-        <el-date-picker v-model="queryParams.date" type="date" placeholder="请选择日期" value-format="YYYY-MM-DD" 
5
+      <el-form-item label="日期" prop="recordDate">
6
+        <el-date-picker v-model="queryParams.recordDate" type="date" placeholder="请选择日期" value-format="YYYY-MM-DD"
7 7
           style="width: 200px" />
8 8
       </el-form-item>
9
-      <el-form-item label="时间段" prop="timePeriod">
10
-        <el-input v-model="queryParams.timePeriod" placeholder="请输入时间段" clearable style="width: 200px" />
9
+      <el-form-item label="时间段" prop="timeSlot">
10
+        <el-time-picker v-model="queryParams.timeSlot" is-range range-separator="-" start-placeholder="开始时间"
11
+          end-placeholder="结束时间" value-format="HH:mm" format="HH:mm" placeholder="请选择时间段" clearable
12
+          style="width: 200px" />
11 13
       </el-form-item>
12 14
       <el-form-item>
13 15
         <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
@@ -21,10 +23,7 @@
21 23
         <el-button type="primary" plain icon="Plus" @click="handleAdd"
22 24
           v-hasPermi="['runData:collectWaitingAreaData:add']">新增</el-button>
23 25
       </el-col>
24
-      <el-col :span="1.5">
25
-        <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate"
26
-          v-hasPermi="['runData:collectWaitingAreaData:edit']">修改</el-button>
27
-      </el-col>
26
+
28 27
       <el-col :span="1.5">
29 28
         <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"
30 29
           v-hasPermi="['runData:collectWaitingAreaData:remove']">删除</el-button>
@@ -43,29 +42,29 @@
43 42
     <!-- 数据表格 -->
44 43
     <el-table v-loading="loading" :data="collectWaitingAreaDataList" @selection-change="handleSelectionChange">
45 44
       <el-table-column type="selection" width="55" align="center" />
46
-      <el-table-column label="日期" align="center" prop="date" />
47
-      <el-table-column label="时间段" align="center" prop="timePeriod" />
48
-      
45
+      <el-table-column label="日期" align="center" prop="recordDate" />
46
+      <el-table-column label="时间段" align="center" prop="timeSlot" />
47
+
49 48
       <!-- T1区域数据 -->
50
-      <el-table-column label="T1A区火种" align="center" prop="t1aFire" />
51
-      <el-table-column label="T1A区液态物品" align="center" prop="t1aLiquid" />
52
-      <el-table-column label="T1A区其他物品" align="center" prop="t1aOther" />
53
-      <el-table-column label="T1B区火种" align="center" prop="t1bFire" />
54
-      <el-table-column label="T1B区液态物品" align="center" prop="t1bLiquid" />
55
-      <el-table-column label="T1B区其他物品" align="center" prop="t1bOther" />
56
-      
49
+      <el-table-column label="T1A区火种" align="center" prop="t1AFireSource" />
50
+      <el-table-column label="T1A区液态物品" align="center" prop="t1ALiquid" />
51
+      <el-table-column label="T1A区其他物品" align="center" prop="t1AOther" />
52
+      <el-table-column label="T1B区火种" align="center" prop="t1BFireSource" />
53
+      <el-table-column label="T1B区液态物品" align="center" prop="t1BLiquid" />
54
+      <el-table-column label="T1B区其他物品" align="center" prop="t1BOther" />
55
+
57 56
       <!-- T2区域数据 -->
58
-      <el-table-column label="T2国内火种" align="center" prop="t2DomesticFire" />
57
+      <el-table-column label="T2国内火种" align="center" prop="t2DomesticFireSource" />
59 58
       <el-table-column label="T2国内液态物品" align="center" prop="t2DomesticLiquid" />
60 59
       <el-table-column label="T2国内其他物品" align="center" prop="t2DomesticOther" />
61
-      <el-table-column label="T2国际火种" align="center" prop="t2InternationalFire" />
62
-      <el-table-column label="T2国际液态物品" align="center" prop="t2InternationalLiquid" />
63
-      <el-table-column label="T2国际中转火种" align="center" prop="t2InternationalTransitFire" />
64
-      <el-table-column label="T2中转火种" align="center" prop="t2TransitFire" />
60
+      <el-table-column label="T2国际火种" align="center" prop="t2IntlFireSource" />
61
+      <el-table-column label="T2国际液态物品" align="center" prop="t2IntlLiquid" />
62
+      <el-table-column label="T2国际其他物品" align="center" prop="t2IntlOther" />
63
+      <el-table-column label="T2中转火种" align="center" prop="t2TransitFireSource" />
65 64
       <el-table-column label="T2中转液态物品" align="center" prop="t2TransitLiquid" />
66 65
       <el-table-column label="T2中转其他物品" align="center" prop="t2TransitOther" />
67
-      
68
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
66
+
67
+      <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
69 68
         <template #default="scope">
70 69
           <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
71 70
             v-hasPermi="['runData:collectWaitingAreaData:edit']">修改</el-button>
@@ -79,88 +78,91 @@
79 78
       v-model:limit="queryParams.pageSize" @pagination="getList" />
80 79
 
81 80
     <!-- 添加或修改候检区数据对话框 -->
82
-    <el-dialog :title="title" v-model="open" width="800px" append-to-body>
81
+    <el-dialog :title="title" v-model="open" width="1000px" append-to-body>
83 82
       <el-form ref="collectWaitingAreaDataRef" :model="form" :rules="rules" label-width="140px">
84 83
         <el-row :gutter="20">
85 84
           <el-col :span="12">
86
-            <el-form-item label="日期" prop="date">
87
-              <el-date-picker v-model="form.date" type="date" placeholder="请选择日期" value-format="YYYY-MM-DD" 
85
+            <el-form-item label="日期" prop="recordDate">
86
+              <el-date-picker v-model="form.recordDate" type="date" placeholder="请选择日期" value-format="YYYY-MM-DD"
88 87
                 style="width: 100%" />
89 88
             </el-form-item>
90 89
           </el-col>
91 90
           <el-col :span="12">
92
-            <el-form-item label="时间段" prop="timePeriod">
93
-              <el-input v-model="form.timePeriod" placeholder="请输入时间段" />
91
+            <el-form-item label="时间段" prop="timeSlot">
92
+              <el-time-picker v-model="form.timeSlot" is-range range-separator="至" start-placeholder="开始时间"
93
+                end-placeholder="结束时间" value-format="HH:mm" format="HH:mm" placeholder="请选择时间段" style="width: 100%" />
94 94
             </el-form-item>
95 95
           </el-col>
96 96
         </el-row>
97
-        
97
+
98 98
         <!-- T1区域 -->
99 99
         <el-divider content-position="left">T1区域数据</el-divider>
100 100
         <el-row :gutter="20">
101 101
           <el-col :span="12">
102 102
             <h4 style="margin-bottom: 15px;">T1A区</h4>
103
-            <el-form-item label="T1A区火种" prop="t1aFire">
104
-              <el-input-number v-model="form.t1aFire" :min="0" placeholder="请输入T1A区火种" style="width: 100%" />
103
+            <el-form-item label="T1A区火种" prop="t1AFireSource">
104
+              <el-input-number :precision="0" v-model="form.t1AFireSource" :min="0" placeholder="请输入T1A区火种" style="width: 100%" />
105 105
             </el-form-item>
106
-            <el-form-item label="T1A区液态物品" prop="t1aLiquid">
107
-              <el-input-number v-model="form.t1aLiquid" :min="0" placeholder="请输入T1A区液态物品" style="width: 100%" />
106
+            <el-form-item label="T1A区液态物品" prop="t1ALiquid">
107
+              <el-input-number :precision="0" v-model="form.t1ALiquid" :min="0" placeholder="请输入T1A区液态物品" style="width: 100%" />
108 108
             </el-form-item>
109
-            <el-form-item label="T1A区其他物品" prop="t1aOther">
110
-              <el-input-number v-model="form.t1aOther" :min="0" placeholder="请输入T1A区其他物品" style="width: 100%" />
109
+            <el-form-item label="T1A区其他物品" prop="t1AOther">
110
+              <el-input-number :precision="0" v-model="form.t1AOther" :min="0" placeholder="请输入T1A区其他物品" style="width: 100%" />
111 111
             </el-form-item>
112 112
           </el-col>
113 113
           <el-col :span="12">
114 114
             <h4 style="margin-bottom: 15px;">T1B区</h4>
115
-            <el-form-item label="T1B区火种" prop="t1bFire">
116
-              <el-input-number v-model="form.t1bFire" :min="0" placeholder="请输入T1B区火种" style="width: 100%" />
115
+            <el-form-item label="T1B区火种" prop="t1BFireSource">
116
+              <el-input-number :precision="0" v-model="form.t1BFireSource" :min="0" placeholder="请输入T1B区火种" style="width: 100%" />
117 117
             </el-form-item>
118
-            <el-form-item label="T1B区液态物品" prop="t1bLiquid">
119
-              <el-input-number v-model="form.t1bLiquid" :min="0" placeholder="请输入T1B区液态物品" style="width: 100%" />
118
+            <el-form-item label="T1B区液态物品" prop="t1BLiquid">
119
+              <el-input-number :precision="0" v-model="form.t1BLiquid" :min="0" placeholder="请输入T1B区液态物品" style="width: 100%" />
120 120
             </el-form-item>
121
-            <el-form-item label="T1B区其他物品" prop="t1bOther">
122
-              <el-input-number v-model="form.t1bOther" :min="0" placeholder="请输入T1B区其他物品" style="width: 100%" />
121
+            <el-form-item label="T1B区其他物品" prop="t1BOther">
122
+              <el-input-number :precision="0" v-model="form.t1BOther" :min="0" placeholder="请输入T1B区其他物品" style="width: 100%" />
123 123
             </el-form-item>
124 124
           </el-col>
125 125
         </el-row>
126
-        
126
+
127 127
         <!-- T2区域 -->
128 128
         <el-divider content-position="left">T2区域数据</el-divider>
129 129
         <el-row :gutter="20">
130 130
           <el-col :span="8">
131 131
             <h4 style="margin-bottom: 15px;">T2国内</h4>
132
-            <el-form-item label="T2国内火种" prop="t2DomesticFire">
133
-              <el-input-number v-model="form.t2DomesticFire" :min="0" placeholder="请输入T2国内火种" style="width: 100%" />
132
+            <el-form-item label="T2国内火种" prop="t2DomesticFireSource">
133
+              <el-input-number :precision="0" v-model="form.t2DomesticFireSource" :min="0" placeholder="请输入T2国内火种"
134
+                style="width: 100%" />
134 135
             </el-form-item>
135 136
             <el-form-item label="T2国内液态物品" prop="t2DomesticLiquid">
136
-              <el-input-number v-model="form.t2DomesticLiquid" :min="0" placeholder="请输入T2国内液态物品" style="width: 100%" />
137
+              <el-input-number :precision="0" v-model="form.t2DomesticLiquid" :min="0" placeholder="请输入T2国内液态物品" style="width: 100%" />
137 138
             </el-form-item>
138 139
             <el-form-item label="T2国内其他物品" prop="t2DomesticOther">
139
-              <el-input-number v-model="form.t2DomesticOther" :min="0" placeholder="请输入T2国内其他物品" style="width: 100%" />
140
+              <el-input-number :precision="0" v-model="form.t2DomesticOther" :min="0" placeholder="请输入T2国内其他物品" style="width: 100%" />
140 141
             </el-form-item>
141 142
           </el-col>
142 143
           <el-col :span="8">
143 144
             <h4 style="margin-bottom: 15px;">T2国际</h4>
144
-            <el-form-item label="T2国际火种" prop="t2InternationalFire">
145
-              <el-input-number v-model="form.t2InternationalFire" :min="0" placeholder="请输入T2国际火种" style="width: 100%" />
145
+            <el-form-item label="T2国际火种" prop="t2IntlFireSource">
146
+              <el-input-number :precision="0" v-model="form.t2IntlFireSource" :min="0" placeholder="请输入T2国际火种" style="width: 100%" />
146 147
             </el-form-item>
147
-            <el-form-item label="T2国际液态物品" prop="t2InternationalLiquid">
148
-              <el-input-number v-model="form.t2InternationalLiquid" :min="0" placeholder="请输入T2国际液态物品" style="width: 100%" />
148
+            <el-form-item label="T2国际液态物品" prop="t2IntlLiquid">
149
+              <el-input-number :precision="0" v-model="form.t2IntlLiquid" :min="0" placeholder="请输入T2国际液态物品" style="width: 100%" />
149 150
             </el-form-item>
150
-            <el-form-item label="T2国际中转火种" prop="t2InternationalTransitFire">
151
-              <el-input-number v-model="form.t2InternationalTransitFire" :min="0" placeholder="请输入T2国际中转火种" style="width: 100%" />
151
+            <el-form-item label="T2国际其他物品" prop="t2IntlOther">
152
+              <el-input-number :precision="0" v-model="form.t2IntlOther" :min="0" placeholder="请输入T2国际其他物品" style="width: 100%" />
152 153
             </el-form-item>
153 154
           </el-col>
154 155
           <el-col :span="8">
155 156
             <h4 style="margin-bottom: 15px;">T2中转</h4>
156
-            <el-form-item label="T2中转火种" prop="t2TransitFire">
157
-              <el-input-number v-model="form.t2TransitFire" :min="0" placeholder="请输入T2中转火种" style="width: 100%" />
157
+            <el-form-item label="T2中转火种" prop="t2TransitFireSource">
158
+              <el-input-number :precision="0" v-model="form.t2TransitFireSource" :min="0" placeholder="请输入T2中转火种"
159
+                style="width: 100%" />
158 160
             </el-form-item>
159 161
             <el-form-item label="T2中转液态物品" prop="t2TransitLiquid">
160
-              <el-input-number v-model="form.t2TransitLiquid" :min="0" placeholder="请输入T2中转液态物品" style="width: 100%" />
162
+              <el-input-number :precision="0" v-model="form.t2TransitLiquid" :min="0" placeholder="请输入T2中转液态物品" style="width: 100%" />
161 163
             </el-form-item>
162 164
             <el-form-item label="T2中转其他物品" prop="t2TransitOther">
163
-              <el-input-number v-model="form.t2TransitOther" :min="0" placeholder="请输入T2中转其他物品" style="width: 100%" />
165
+              <el-input-number :precision="0" v-model="form.t2TransitOther" :min="0" placeholder="请输入T2中转其他物品" style="width: 100%" />
164 166
             </el-form-item>
165 167
           </el-col>
166 168
         </el-row>
@@ -229,7 +231,7 @@ const upload = reactive({
229 231
   // 设置上传的请求头部
230 232
   headers: { Authorization: "Bearer " + getToken() },
231 233
   // 上传的地址
232
-  url: import.meta.env.VITE_APP_BASE_API + "/runData/collectWaitingAreaData/importData"
234
+  url: import.meta.env.VITE_APP_BASE_API + "/item/hkPendingConfiscate/importData"
233 235
 })
234 236
 
235 237
 const uploadRef = ref()
@@ -239,35 +241,35 @@ const data = reactive({
239 241
   queryParams: {
240 242
     pageNum: 1,
241 243
     pageSize: 10,
242
-    date: null,
243
-    timePeriod: null
244
+    recordDate: null,
245
+    timeSlot: null
244 246
   },
245 247
   rules: {
246
-    date: [
247
-      { required: true, message: "日期不能为空", trigger: "blur" }
248
+    recordDate: [
249
+      { required: true, message: "日期不能为空", trigger: "change" }
248 250
     ],
249
-    timePeriod: [
250
-      { required: true, message: "时间段不能为空", trigger: "blur" }
251
+    timeSlot: [
252
+      { required: true, message: "时间段不能为空", trigger: "change" }
251 253
     ],
252
-    t1aFire: [
254
+    t1AFireSource: [
253 255
       { type: "integer", message: "T1A区火种必须为整数", trigger: "blur" }
254 256
     ],
255
-    t1aLiquid: [
257
+    t1ALiquid: [
256 258
       { type: "integer", message: "T1A区液态物品必须为整数", trigger: "blur" }
257 259
     ],
258
-    t1aOther: [
260
+    t1AOther: [
259 261
       { type: "integer", message: "T1A区其他物品必须为整数", trigger: "blur" }
260 262
     ],
261
-    t1bFire: [
263
+    t1BFireSource: [
262 264
       { type: "integer", message: "T1B区火种必须为整数", trigger: "blur" }
263 265
     ],
264
-    t1bLiquid: [
266
+    t1BLiquid: [
265 267
       { type: "integer", message: "T1B区液态物品必须为整数", trigger: "blur" }
266 268
     ],
267
-    t1bOther: [
269
+    t1BOther: [
268 270
       { type: "integer", message: "T1B区其他物品必须为整数", trigger: "blur" }
269 271
     ],
270
-    t2DomesticFire: [
272
+    t2DomesticFireSource: [
271 273
       { type: "integer", message: "T2国内火种必须为整数", trigger: "blur" }
272 274
     ],
273 275
     t2DomesticLiquid: [
@@ -276,16 +278,16 @@ const data = reactive({
276 278
     t2DomesticOther: [
277 279
       { type: "integer", message: "T2国内其他物品必须为整数", trigger: "blur" }
278 280
     ],
279
-    t2InternationalFire: [
281
+    t2IntlFireSource: [
280 282
       { type: "integer", message: "T2国际火种必须为整数", trigger: "blur" }
281 283
     ],
282
-    t2InternationalLiquid: [
284
+    t2IntlLiquid: [
283 285
       { type: "integer", message: "T2国际液态物品必须为整数", trigger: "blur" }
284 286
     ],
285
-    t2InternationalTransitFire: [
286
-      { type: "integer", message: "T2国际中转火种必须为整数", trigger: "blur" }
287
+    t2IntlOther: [
288
+      { type: "integer", message: "T2国际其他物品必须为整数", trigger: "blur" }
287 289
     ],
288
-    t2TransitFire: [
290
+    t2TransitFireSource: [
289 291
       { type: "integer", message: "T2中转火种必须为整数", trigger: "blur" }
290 292
     ],
291 293
     t2TransitLiquid: [
@@ -302,7 +304,11 @@ const { queryParams, form, rules } = toRefs(data)
302 304
 /** 查询候检区数据列表 */
303 305
 function getList() {
304 306
   loading.value = true
305
-  listCollectWaitingAreaData(queryParams.value).then(response => {
307
+  const params = { ...queryParams.value }
308
+  if (params.timeSlot && Array.isArray(params.timeSlot)) {
309
+    params.timeSlot = params.timeSlot.join('-')
310
+  }
311
+  listCollectWaitingAreaData(params).then(response => {
306 312
     collectWaitingAreaDataList.value = response.rows
307 313
     total.value = response.total
308 314
     loading.value = false
@@ -319,23 +325,23 @@ function cancel() {
319 325
 function reset() {
320 326
   form.value = {
321 327
     id: null,
322
-    date: null,
323
-    timePeriod: null,
328
+    recordDate: null,
329
+    timeSlot: null,
324 330
     // T1区域数据
325
-    t1aFire: null,
326
-    t1aLiquid: null,
327
-    t1aOther: null,
328
-    t1bFire: null,
329
-    t1bLiquid: null,
330
-    t1bOther: null,
331
+    t1AFireSource: null,
332
+    t1ALiquid: null,
333
+    t1AOther: null,
334
+    t1BFireSource: null,
335
+    t1BLiquid: null,
336
+    t1BOther: null,
331 337
     // T2区域数据
332
-    t2DomesticFire: null,
338
+    t2DomesticFireSource: null,
333 339
     t2DomesticLiquid: null,
334 340
     t2DomesticOther: null,
335
-    t2InternationalFire: null,
336
-    t2InternationalLiquid: null,
337
-    t2InternationalTransitFire: null,
338
-    t2TransitFire: null,
341
+    t2IntlFireSource: null,
342
+    t2IntlLiquid: null,
343
+    t2IntlOther: null,
344
+    t2TransitFireSource: null,
339 345
     t2TransitLiquid: null,
340 346
     t2TransitOther: null
341 347
   }
@@ -373,7 +379,12 @@ function handleUpdate(row) {
373 379
   reset()
374 380
   const _id = row.id || ids.value
375 381
   getCollectWaitingAreaData(_id).then(response => {
376
-    form.value = response.data
382
+    const data = response.data
383
+    // 转换时间段字符串为数组格式
384
+    if (data.timeSlot && typeof data.timeSlot === 'string' && data.timeSlot.includes('-')) {
385
+      data.timeSlot = data.timeSlot.split('-')
386
+    }
387
+    form.value = data
377 388
     open.value = true
378 389
     title.value = "修改候检区数据"
379 390
   })
@@ -383,14 +394,19 @@ function handleUpdate(row) {
383 394
 function submitForm() {
384 395
   proxy.$refs["collectWaitingAreaDataRef"].validate(valid => {
385 396
     if (valid) {
386
-      if (form.value.id != null) {
387
-        updateCollectWaitingAreaData(form.value).then(response => {
397
+      const submitData = { ...form.value }
398
+      // 转换时间段为字符串格式 08:00-17:00
399
+      if (submitData.timeSlot && Array.isArray(submitData.timeSlot)) {
400
+        submitData.timeSlot = submitData.timeSlot.join('-')
401
+      }
402
+      if (submitData.id != null) {
403
+        updateCollectWaitingAreaData(submitData).then(response => {
388 404
           proxy.$modal.msgSuccess("修改成功")
389 405
           open.value = false
390 406
           getList()
391 407
         })
392 408
       } else {
393
-        addCollectWaitingAreaData(form.value).then(response => {
409
+        addCollectWaitingAreaData(submitData).then(response => {
394 410
           proxy.$modal.msgSuccess("新增成功")
395 411
           open.value = false
396 412
           getList()
@@ -422,8 +438,8 @@ function handleExport() {
422 438
       return value !== null
423 439
     })
424 440
   )
425
-  
426
-  proxy.download('/runData/collectWaitingAreaData/export', filteredParams, `collectWaitingAreaData_${new Date().getTime()}.xlsx`)
441
+
442
+  proxy.download('/item/hkPendingConfiscate/export', filteredParams, `collectWaitingAreaData_${new Date().getTime()}.xlsx`)
427 443
 }
428 444
 
429 445
 /** 导入按钮操作 */
@@ -434,7 +450,7 @@ function handleImport() {
434 450
 
435 451
 /** 下载模板操作 */
436 452
 function importTemplate() {
437
-  proxy.download('/runData/collectWaitingAreaData/importTemplate', {
453
+  proxy.download('/item/hkPendingConfiscate/importTemplate', {
438 454
   }, `候检区数据导入模板_${new Date().getTime()}.xlsx`)
439 455
 }
440 456
 

+ 112 - 117
src/views/runData/dailyRunData/index.vue

@@ -3,7 +3,7 @@
3 3
     <!-- 查询条件 -->
4 4
     <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
5 5
       <el-form-item label="日期" prop="date">
6
-        <el-date-picker v-model="queryParams.date" type="date" placeholder="请选择日期" value-format="YYYY-MM-DD" 
6
+        <el-date-picker v-model="queryParams.recordDate" type="date" placeholder="请选择日期" value-format="YYYY-MM-DD"
7 7
           style="width: 200px" />
8 8
       </el-form-item>
9 9
       <el-form-item>
@@ -18,10 +18,7 @@
18 18
         <el-button type="primary" plain icon="Plus" @click="handleAdd"
19 19
           v-hasPermi="['runData:dailyRunData:add']">新增</el-button>
20 20
       </el-col>
21
-      <el-col :span="1.5">
22
-        <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate"
23
-          v-hasPermi="['runData:dailyRunData:edit']">修改</el-button>
24
-      </el-col>
21
+
25 22
       <el-col :span="1.5">
26 23
         <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"
27 24
           v-hasPermi="['runData:dailyRunData:remove']">删除</el-button>
@@ -40,31 +37,30 @@
40 37
     <!-- 数据表格 -->
41 38
     <el-table v-loading="loading" :data="dailyRunDataList" @selection-change="handleSelectionChange">
42 39
       <el-table-column type="selection" width="55" align="center" />
43
-      <el-table-column label="日期" align="center" prop="date" />
44
-      <el-table-column label="A区" align="center" prop="areaA" />
45
-      <el-table-column label="B区" align="center" prop="areaB" />
40
+      <el-table-column label="日期" align="center" prop="recordDate" />
41
+      <el-table-column label="A区" align="center" prop="azone" />
42
+      <el-table-column label="B区" align="center" prop="bzone" />
46 43
       <el-table-column label="贵宾" align="center" prop="vip" />
47
-      <el-table-column label="国内旅检" align="center" prop="domesticTravelInspection" />
48
-      <el-table-column label="国际旅检" align="center" prop="internationalTravelInspection" />
44
+      <el-table-column label="国内旅检" align="center" prop="domesticPassenger" />
45
+      <el-table-column label="国际旅检" align="center" prop="intlPassenger" />
49 46
       <el-table-column label="贵宾通道" align="center" prop="vipChannel" />
50 47
       <el-table-column label="T1回流通道" align="center" prop="t1ReturnChannel" />
51
-      <el-table-column label="T1行检" align="center" prop="t1Inspection" />
52
-      <el-table-column label="一楼员工" align="center" prop="firstFloorStaff" />
48
+      <el-table-column label="T1行检" align="center" prop="t1LuggageCheck" />
49
+      <el-table-column label="一楼员工" align="center" prop="floor1Staff" />
53 50
       <el-table-column label="T2回流通道" align="center" prop="t2ReturnChannel" />
54
-      <el-table-column label="T2行检" align="center" prop="t2Inspection" />
55
-      <el-table-column label="三楼" align="center" prop="thirdFloor" />
56
-      <el-table-column label="一楼" align="center" prop="firstFloor" />
57
-      <el-table-column label="负一楼" align="center" prop="basementFloor" />
51
+      <el-table-column label="T2行检" align="center" prop="t2LuggageCheck" />
52
+      <el-table-column label="三楼" align="center" prop="floor3EastStaff" />
53
+      <el-table-column label="一楼" align="center" prop="floor1CenterStaff" />
54
+      <el-table-column label="负一楼" align="center" prop="floorB1WestStaff" />
58 55
       <el-table-column label="国内货站" align="center" prop="domesticCargo" />
59
-      <el-table-column label="道口" align="center" prop="gate" />
60
-      <el-table-column label="南侧车检" align="center" prop="southVehicleInspection" />
61
-      <el-table-column label="防爆" align="center" prop="explosionProof" />
62
-      <el-table-column label="国际货站" align="center" prop="internationalCargo" />
63
-      <el-table-column label="道口" align="center" prop="gate2" />
64
-      <el-table-column label="北侧车检" align="center" prop="northVehicleInspection" />
65
-      <el-table-column label="防爆" align="center" prop="explosionProof2" />
66
-      <el-table-column label="车检总数" align="center" prop="totalVehicleInspection" />
67
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
56
+      <el-table-column label="道口" align="center" prop="domesticGate" />
57
+      <el-table-column label="南侧车检" align="center" prop="southVehicleCheck" />
58
+      <el-table-column label="防爆" align="center" prop="domesticBomb" />
59
+      <el-table-column label="国际货站" align="center" prop="intlCargo" />
60
+      <el-table-column label="道口" align="center" prop="intlGate" />
61
+      <el-table-column label="北侧车检" align="center" prop="northVehicleCheck" />
62
+      <el-table-column label="防爆" align="center" prop="intlBomb" />
63
+      <el-table-column label="操作" width="180px" align="center" class-name="small-padding fixed-width">
68 64
         <template #default="scope">
69 65
           <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
70 66
             v-hasPermi="['runData:dailyRunData:edit']">修改</el-button>
@@ -80,84 +76,86 @@
80 76
     <!-- 添加或修改日常运行数据对话框 -->
81 77
     <el-dialog :title="title" v-model="open" width="800px" append-to-body>
82 78
       <el-form ref="dailyRunDataRef" :model="form" :rules="rules" label-width="120px">
83
-        <el-form-item label="日期" prop="date">
84
-          <el-date-picker v-model="form.date" type="date" placeholder="请选择日期" value-format="YYYY-MM-DD" 
79
+        <el-form-item label="日期" prop="recordDate">
80
+          <el-date-picker v-model="form.recordDate" type="date" placeholder="请选择日期" value-format="YYYY-MM-DD"
85 81
             style="width: 100%" />
86 82
         </el-form-item>
87
-        
83
+
88 84
         <el-row :gutter="20">
89 85
           <el-col :span="12">
90
-            <el-form-item label="A区" prop="areaA">
91
-              <el-input-number v-model="form.areaA" :min="0" placeholder="请输入A区数据" style="width: 100%" />
86
+            <el-form-item label="A区" prop="azone">
87
+              <el-input-number :precision="0" v-model="form.azone" :min="0" placeholder="请输入A区数据" style="width: 100%" />
92 88
             </el-form-item>
93
-            <el-form-item label="B区" prop="areaB">
94
-              <el-input-number v-model="form.areaB" :min="0" placeholder="请输入B区数据" style="width: 100%" />
89
+            <el-form-item label="B区" prop="bzone">
90
+              <el-input-number :precision="0" v-model="form.bzone" :min="0" placeholder="请输入B区数据" style="width: 100%" />
95 91
             </el-form-item>
96 92
             <el-form-item label="贵宾" prop="vip">
97
-              <el-input-number v-model="form.vip" :min="0" placeholder="请输入贵宾数据" style="width: 100%" />
93
+              <el-input-number :precision="0" v-model="form.vip" :min="0" placeholder="请输入贵宾数据" style="width: 100%" />
98 94
             </el-form-item>
99
-            <el-form-item label="国内旅检" prop="domesticTravelInspection">
100
-              <el-input-number v-model="form.domesticTravelInspection" :min="0" placeholder="请输入国内旅检数据" style="width: 100%" />
95
+            <el-form-item label="国内旅检" prop="domesticPassenger">
96
+              <el-input-number :precision="0" v-model="form.domesticPassenger" :min="0" placeholder="请输入国内旅检数据"
97
+                style="width: 100%" />
101 98
             </el-form-item>
102
-            <el-form-item label="国际旅检" prop="internationalTravelInspection">
103
-              <el-input-number v-model="form.internationalTravelInspection" :min="0" placeholder="请输入国际旅检数据" style="width: 100%" />
99
+            <el-form-item label="国际旅检" prop="intlPassenger">
100
+              <el-input-number :precision="0" v-model="form.intlPassenger" :min="0" placeholder="请输入国际旅检数据"
101
+                style="width: 100%" />
104 102
             </el-form-item>
105 103
             <el-form-item label="贵宾通道" prop="vipChannel">
106
-              <el-input-number v-model="form.vipChannel" :min="0" placeholder="请输入贵宾通道数据" style="width: 100%" />
104
+              <el-input-number :precision="0" v-model="form.vipChannel" :min="0" placeholder="请输入贵宾通道数据" style="width: 100%" />
107 105
             </el-form-item>
108 106
             <el-form-item label="T1回流通道" prop="t1ReturnChannel">
109
-              <el-input-number v-model="form.t1ReturnChannel" :min="0" placeholder="请输入T1回流通道数据" style="width: 100%" />
107
+              <el-input-number :precision="0" v-model="form.t1ReturnChannel" :min="0" placeholder="请输入T1回流通道数据" style="width: 100%" />
110 108
             </el-form-item>
111
-            <el-form-item label="T1行检" prop="t1Inspection">
112
-              <el-input-number v-model="form.t1Inspection" :min="0" placeholder="请输入T1行检数据" style="width: 100%" />
109
+            <el-form-item label="T1行检" prop="t1LuggageCheck">
110
+              <el-input-number :precision="0" v-model="form.t1LuggageCheck" :min="0" placeholder="请输入T1行检数据" style="width: 100%" />
113 111
             </el-form-item>
114
-            <el-form-item label="一楼员工" prop="firstFloorStaff">
115
-              <el-input-number v-model="form.firstFloorStaff" :min="0" placeholder="请输入一楼员工数据" style="width: 100%" />
112
+            <el-form-item label="一楼员工" prop="floor1Staff">
113
+              <el-input-number :precision="0" v-model="form.floor1Staff" :min="0" placeholder="请输入一楼员工数据" style="width: 100%" />
116 114
             </el-form-item>
117 115
             <el-form-item label="T2回流通道" prop="t2ReturnChannel">
118
-              <el-input-number v-model="form.t2ReturnChannel" :min="0" placeholder="请输入T2回流通道数据" style="width: 100%" />
116
+              <el-input-number :precision="0" v-model="form.t2ReturnChannel" :min="0" placeholder="请输入T2回流通道数据" style="width: 100%" />
117
+            </el-form-item>
118
+            <el-form-item label="T2行检" prop="t2LuggageCheck">
119
+              <el-input-number :precision="0" v-model="form.t2LuggageCheck" :min="0" placeholder="请输入T2行检数据" style="width: 100%" />
119 120
             </el-form-item>
121
+
120 122
           </el-col>
121
-          
123
+
122 124
           <el-col :span="12">
123
-            <el-form-item label="T2行检" prop="t2Inspection">
124
-              <el-input-number v-model="form.t2Inspection" :min="0" placeholder="请输入T2行检数据" style="width: 100%" />
125
-            </el-form-item>
126
-            <el-form-item label="三楼" prop="thirdFloor">
127
-              <el-input-number v-model="form.thirdFloor" :min="0" placeholder="请输入三楼数据" style="width: 100%" />
125
+            <el-form-item label="三楼" prop="floor3EastStaff">
126
+              <el-input-number :precision="0" v-model="form.floor3EastStaff" :min="0" placeholder="请输入三楼数据" style="width: 100%" />
128 127
             </el-form-item>
129
-            <el-form-item label="一楼" prop="firstFloor">
130
-              <el-input-number v-model="form.firstFloor" :min="0" placeholder="请输入一楼数据" style="width: 100%" />
128
+            <el-form-item label="一楼" prop="floor1CenterStaff">
129
+              <el-input-number :precision="0" v-model="form.floor1CenterStaff" :min="0" placeholder="请输入一楼数据" style="width: 100%" />
131 130
             </el-form-item>
132
-            <el-form-item label="负一楼" prop="basementFloor">
133
-              <el-input-number v-model="form.basementFloor" :min="0" placeholder="请输入负一楼数据" style="width: 100%" />
131
+            <el-form-item label="负一楼" prop="floorB1WestStaff">
132
+              <el-input-number :precision="0" v-model="form.floorB1WestStaff" :min="0" placeholder="请输入负一楼数据" style="width: 100%" />
134 133
             </el-form-item>
135 134
             <el-form-item label="国内货站" prop="domesticCargo">
136
-              <el-input-number v-model="form.domesticCargo" :min="0" placeholder="请输入国内货站数据" style="width: 100%" />
137
-            </el-form-item>
138
-            <el-form-item label="道口" prop="gate">
139
-              <el-input-number v-model="form.gate" :min="0" placeholder="请输入道口数据" style="width: 100%" />
135
+              <el-input-number :precision="0" v-model="form.domesticCargo" :min="0" placeholder="请输入国内货站数据" style="width: 100%" />
140 136
             </el-form-item>
141
-            <el-form-item label="南侧车检" prop="southVehicleInspection">
142
-              <el-input-number v-model="form.southVehicleInspection" :min="0" placeholder="请输入南侧车检数据" style="width: 100%" />
137
+            <el-form-item label="道口" prop="domesticGate">
138
+              <el-input-number :precision="0" v-model="form.domesticGate" :min="0" placeholder="请输入道口数据" style="width: 100%" />
143 139
             </el-form-item>
144
-            <el-form-item label="防爆" prop="explosionProof">
145
-              <el-input-number v-model="form.explosionProof" :min="0" placeholder="请输入防爆数据" style="width: 100%" />
140
+            <el-form-item label="南侧车检" prop="southVehicleCheck">
141
+              <el-input-number :precision="0" v-model="form.southVehicleCheck" :min="0" placeholder="请输入南侧车检数据"
142
+                style="width: 100%" />
146 143
             </el-form-item>
147
-            <el-form-item label="国际货站" prop="internationalCargo">
148
-              <el-input-number v-model="form.internationalCargo" :min="0" placeholder="请输入国际货站数据" style="width: 100%" />
144
+            <el-form-item label="防爆" prop="domesticBomb">
145
+              <el-input-number :precision="0" v-model="form.domesticBomb" :min="0" placeholder="请输入防爆数据" style="width: 100%" />
149 146
             </el-form-item>
150
-            <el-form-item label="道口" prop="gate2">
151
-              <el-input-number v-model="form.gate2" :min="0" placeholder="请输入道口数据" style="width: 100%" />
147
+            <el-form-item label="国际货站" prop="intlCargo">
148
+              <el-input-number :precision="0" v-model="form.intlCargo" :min="0" placeholder="请输入国际货站数据" style="width: 100%" />
152 149
             </el-form-item>
153
-            <el-form-item label="北侧车检" prop="northVehicleInspection">
154
-              <el-input-number v-model="form.northVehicleInspection" :min="0" placeholder="请输入北侧车检数据" style="width: 100%" />
150
+            <el-form-item label="道口" prop="intlGate">
151
+              <el-input-number :precision="0" v-model="form.intlGate" :min="0" placeholder="请输入道口数据" style="width: 100%" />
155 152
             </el-form-item>
156
-            <el-form-item label="防爆" prop="explosionProof2">
157
-              <el-input-number v-model="form.explosionProof2" :min="0" placeholder="请输入防爆数据" style="width: 100%" />
153
+            <el-form-item label="北侧车检" prop="northVehicleCheck">
154
+              <el-input-number :precision="0" v-model="form.northVehicleCheck" :min="0" placeholder="请输入北侧车检数据"
155
+                style="width: 100%" />
158 156
             </el-form-item>
159
-            <el-form-item label="车检总数" prop="totalVehicleInspection">
160
-              <el-input-number v-model="form.totalVehicleInspection" :min="0" placeholder="请输入车检总数" style="width: 100%" />
157
+            <el-form-item label="防爆" prop="intlBomb">
158
+              <el-input-number :precision="0" v-model="form.intlBomb" :min="0" placeholder="请输入防爆数据" style="width: 100%" />
161 159
             </el-form-item>
162 160
           </el-col>
163 161
         </el-row>
@@ -226,7 +224,7 @@ const upload = reactive({
226 224
   // 设置上传的请求头部
227 225
   headers: { Authorization: "Bearer " + getToken() },
228 226
   // 上传的地址
229
-  url: import.meta.env.VITE_APP_BASE_API + "/runData/dailyRunData/importData"
227
+  url: import.meta.env.VITE_APP_BASE_API + "/item/hkOperationData/importData"
230 228
 })
231 229
 
232 230
 const uploadRef = ref()
@@ -236,17 +234,17 @@ const data = reactive({
236 234
   queryParams: {
237 235
     pageNum: 1,
238 236
     pageSize: 10,
239
-    date: null
237
+    recordDate: null
240 238
   },
241 239
   rules: {
242
-    date: [
240
+    recordDate: [
243 241
       { required: true, message: "日期不能为空", trigger: "blur" }
244 242
     ],
245
-    areaA: [
243
+    azone: [
246 244
       { required: true, message: "A区数据不能为空", trigger: "blur" },
247 245
       { type: "integer", message: "A区数据必须为整数", trigger: "blur" }
248 246
     ],
249
-    areaB: [
247
+    bzone: [
250 248
       { required: true, message: "B区数据不能为空", trigger: "blur" },
251 249
       { type: "integer", message: "B区数据必须为整数", trigger: "blur" }
252 250
     ],
@@ -254,11 +252,11 @@ const data = reactive({
254 252
       { required: true, message: "贵宾数据不能为空", trigger: "blur" },
255 253
       { type: "integer", message: "贵宾数据必须为整数", trigger: "blur" }
256 254
     ],
257
-    domesticTravelInspection: [
255
+    domesticPassenger: [
258 256
       { required: true, message: "国内旅检数据不能为空", trigger: "blur" },
259 257
       { type: "integer", message: "国内旅检数据必须为整数", trigger: "blur" }
260 258
     ],
261
-    internationalTravelInspection: [
259
+    intlPassenger: [
262 260
       { required: true, message: "国际旅检数据不能为空", trigger: "blur" },
263 261
       { type: "integer", message: "国际旅检数据必须为整数", trigger: "blur" }
264 262
     ],
@@ -270,11 +268,11 @@ const data = reactive({
270 268
       { required: true, message: "T1回流通道数据不能为空", trigger: "blur" },
271 269
       { type: "integer", message: "T1回流通道数据必须为整数", trigger: "blur" }
272 270
     ],
273
-    t1Inspection: [
271
+    t1LuggageCheck: [
274 272
       { required: true, message: "T1行检数据不能为空", trigger: "blur" },
275 273
       { type: "integer", message: "T1行检数据必须为整数", trigger: "blur" }
276 274
     ],
277
-    firstFloorStaff: [
275
+    floor1Staff: [
278 276
       { required: true, message: "一楼员工数据不能为空", trigger: "blur" },
279 277
       { type: "integer", message: "一楼员工数据必须为整数", trigger: "blur" }
280 278
     ],
@@ -282,19 +280,19 @@ const data = reactive({
282 280
       { required: true, message: "T2回流通道数据不能为空", trigger: "blur" },
283 281
       { type: "integer", message: "T2回流通道数据必须为整数", trigger: "blur" }
284 282
     ],
285
-    t2Inspection: [
283
+    t2LuggageCheck: [
286 284
       { required: true, message: "T2行检数据不能为空", trigger: "blur" },
287 285
       { type: "integer", message: "T2行检数据必须为整数", trigger: "blur" }
288 286
     ],
289
-    thirdFloor: [
287
+    floor3EastStaff: [
290 288
       { required: true, message: "三楼数据不能为空", trigger: "blur" },
291 289
       { type: "integer", message: "三楼数据必须为整数", trigger: "blur" }
292 290
     ],
293
-    firstFloor: [
291
+    floor1CenterStaff: [
294 292
       { required: true, message: "一楼数据不能为空", trigger: "blur" },
295 293
       { type: "integer", message: "一楼数据必须为整数", trigger: "blur" }
296 294
     ],
297
-    basementFloor: [
295
+    floorB1WestStaff: [
298 296
       { required: true, message: "负一楼数据不能为空", trigger: "blur" },
299 297
       { type: "integer", message: "负一楼数据必须为整数", trigger: "blur" }
300 298
     ],
@@ -302,36 +300,33 @@ const data = reactive({
302 300
       { required: true, message: "国内货站数据不能为空", trigger: "blur" },
303 301
       { type: "integer", message: "国内货站数据必须为整数", trigger: "blur" }
304 302
     ],
305
-    gate: [
303
+    domesticGate: [
306 304
       { required: true, message: "道口数据不能为空", trigger: "blur" },
307 305
       { type: "integer", message: "道口数据必须为整数", trigger: "blur" }
308 306
     ],
309
-    southVehicleInspection: [
307
+    southVehicleCheck: [
310 308
       { required: true, message: "南侧车检数据不能为空", trigger: "blur" },
311 309
       { type: "integer", message: "南侧车检数据必须为整数", trigger: "blur" }
312 310
     ],
313
-    explosionProof: [
311
+    domesticBomb: [
314 312
       { required: true, message: "防爆数据不能为空", trigger: "blur" },
315 313
       { type: "integer", message: "防爆数据必须为整数", trigger: "blur" }
316 314
     ],
317
-    internationalCargo: [
315
+    intlCargo: [
318 316
       { required: true, message: "国际货站数据不能为空", trigger: "blur" },
319 317
       { type: "integer", message: "国际货站数据必须为整数", trigger: "blur" }
320 318
     ],
321
-    gate2: [
319
+    intlGate: [
322 320
       { required: true, message: "道口数据不能为空", trigger: "blur" },
323 321
       { type: "integer", message: "道口数据必须为整数", trigger: "blur" }
324 322
     ],
325
-    northVehicleInspection: [
323
+    northVehicleCheck: [
326 324
       { required: true, message: "北侧车检数据不能为空", trigger: "blur" },
327 325
       { type: "integer", message: "北侧车检数据必须为整数", trigger: "blur" }
328 326
     ],
329
-    explosionProof2: [
327
+    intlBomb: [
330 328
       { required: true, message: "防爆数据不能为空", trigger: "blur" },
331 329
       { type: "integer", message: "防爆数据必须为整数", trigger: "blur" }
332
-    ],
333
-    totalVehicleInspection: [
334
-      { type: "integer", message: "车检总数必须为整数", trigger: "blur" }
335 330
     ]
336 331
   }
337 332
 })
@@ -358,30 +353,30 @@ function cancel() {
358 353
 function reset() {
359 354
   form.value = {
360 355
     id: null,
361
-    date: null,
362
-    areaA: null,
363
-    areaB: null,
356
+    recordDate: null,
357
+    azone: null,
358
+    bzone: null,
364 359
     vip: null,
365
-    domesticTravelInspection: null,
366
-    internationalTravelInspection: null,
360
+    domesticPassenger: null,
361
+    intlPassenger: null,
367 362
     vipChannel: null,
368 363
     t1ReturnChannel: null,
369
-    t1Inspection: null,
370
-    firstFloorStaff: null,
364
+    t1LuggageCheck: null,
365
+    floor1Staff: null,
371 366
     t2ReturnChannel: null,
372
-    t2Inspection: null,
373
-    thirdFloor: null,
374
-    firstFloor: null,
375
-    basementFloor: null,
367
+    t2LuggageCheck: null,
368
+    floor3EastStaff: null,
369
+    floor1CenterStaff: null,
370
+    floorB1WestStaff: null,
371
+    floor3WestStaff: null,
376 372
     domesticCargo: null,
377
-    gate: null,
378
-    southVehicleInspection: null,
379
-    explosionProof: null,
380
-    internationalCargo: null,
381
-    gate2: null,
382
-    northVehicleInspection: null,
383
-    explosionProof2: null,
384
-    totalVehicleInspection: null
373
+    domesticGate: null,
374
+    southVehicleCheck: null,
375
+    domesticBomb: null,
376
+    intlCargo: null,
377
+    intlGate: null,
378
+    northVehicleCheck: null,
379
+    intlBomb: null
385 380
   }
386 381
   proxy.resetForm("dailyRunDataRef")
387 382
 }
@@ -466,8 +461,8 @@ function handleExport() {
466 461
       return value !== null
467 462
     })
468 463
   )
469
-  
470
-  proxy.download('/runData/dailyRunData/export', filteredParams, `dailyRunData_${new Date().getTime()}.xlsx`)
464
+
465
+  proxy.download('/item/hkOperationData/export', filteredParams, `dailyRunData_${new Date().getTime()}.xlsx`)
471 466
 }
472 467
 
473 468
 /** 导入按钮操作 */
@@ -478,7 +473,7 @@ function handleImport() {
478 473
 
479 474
 /** 下载模板操作 */
480 475
 function importTemplate() {
481
-  proxy.download('/runData/dailyRunData/importTemplate', {
476
+  proxy.download('/item/hkOperationData/importTemplate', {
482 477
   }, `日常运行数据导入模板_${new Date().getTime()}.xlsx`)
483 478
 }
484 479
 

+ 116 - 86
src/views/runData/discouragePowerBanksData/index.vue

@@ -2,12 +2,22 @@
2 2
   <div class="app-container">
3 3
     <!-- 查询条件 -->
4 4
     <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
5
-      <el-form-item label="日期" prop="date">
6
-        <el-date-picker v-model="queryParams.date" type="date" placeholder="请选择日期" value-format="YYYY-MM-DD" 
5
+      <el-form-item label="日期" prop="recordDate">
6
+        <el-date-picker v-model="queryParams.recordDate" type="date" placeholder="请选择日期" value-format="YYYY-MM-DD"
7 7
           style="width: 200px" />
8 8
       </el-form-item>
9
-      <el-form-item label="时间段" prop="timePeriod">
10
-        <el-input v-model="queryParams.timePeriod" placeholder="请输入时间段" clearable style="width: 200px" />
9
+      <el-form-item label="时间段" prop="timeSlot">
10
+        <el-time-picker
11
+          v-model="queryParams.timeSlot"
12
+          is-range
13
+          range-separator="-"
14
+          start-placeholder="开始时间"
15
+          end-placeholder="结束时间"
16
+          value-format="HH:mm"
17
+          format="HH:mm"
18
+          placeholder="请选择时间段"
19
+          clearable
20
+          style="width: 200px" />
11 21
       </el-form-item>
12 22
       <el-form-item>
13 23
         <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
@@ -21,10 +31,7 @@
21 31
         <el-button type="primary" plain icon="Plus" @click="handleAdd"
22 32
           v-hasPermi="['runData:discouragePowerBanksData:add']">新增</el-button>
23 33
       </el-col>
24
-      <el-col :span="1.5">
25
-        <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate"
26
-          v-hasPermi="['runData:discouragePowerBanksData:edit']">修改</el-button>
27
-      </el-col>
34
+   
28 35
       <el-col :span="1.5">
29 36
         <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"
30 37
           v-hasPermi="['runData:discouragePowerBanksData:remove']">删除</el-button>
@@ -43,26 +50,26 @@
43 50
     <!-- 数据表格 -->
44 51
     <el-table v-loading="loading" :data="discouragePowerBanksDataList" @selection-change="handleSelectionChange">
45 52
       <el-table-column type="selection" width="55" align="center" />
46
-      <el-table-column label="日期" align="center" prop="date" />
47
-      <el-table-column label="时间段" align="center" prop="timePeriod" />
53
+      <el-table-column label="日期" align="center" prop="recordDate" />
54
+      <el-table-column label="时间段" align="center" prop="timeSlot" />
48 55
       
49 56
       <!-- T1区域数据 -->
50 57
       <el-table-column label="T1召回充电宝" align="center" prop="t1Recall" />
51
-      <el-table-column label="T1无3C标识" align="center" prop="t1No3C" />
52
-      <el-table-column label="T1标识不清" align="center" prop="t1Unclear" />
53
-      <el-table-column label="T1超规数量" align="center" prop="t1OverSize" />
58
+      <el-table-column label="T1无3C标识" align="center" prop="t1No3c" />
59
+      <el-table-column label="T1标识不清" align="center" prop="t1UnclearMark" />
60
+      <el-table-column label="T1超规数量" align="center" prop="t1ExcessQty" />
54 61
       <el-table-column label="T1邮寄" align="center" prop="t1Mail" />
55
-      <el-table-column label="T1自弃" align="center" prop="t1SelfAbandon" />
56
-      <el-table-column label="T1暂存" align="center" prop="t1Temporary" />
62
+      <el-table-column label="T1自弃" align="center" prop="t1Abandon" />
63
+      <el-table-column label="T1暂存" align="center" prop="t1TempStore" />
57 64
       
58 65
       <!-- T2区域数据 -->
59 66
       <el-table-column label="T2召回充电宝" align="center" prop="t2Recall" />
60
-      <el-table-column label="T2无3C标识" align="center" prop="t2No3C" />
61
-      <el-table-column label="T2标识不清" align="center" prop="t2Unclear" />
62
-      <el-table-column label="T2超规数量" align="center" prop="t2OverSize" />
67
+      <el-table-column label="T2无3C标识" align="center" prop="t2No3c" />
68
+      <el-table-column label="T2标识不清" align="center" prop="t2UnclearMark" />
69
+      <el-table-column label="T2超规数量" align="center" prop="t2ExcessQty" />
63 70
       <el-table-column label="T2邮寄" align="center" prop="t2Mail" />
64
-      <el-table-column label="T2自弃" align="center" prop="t2SelfAbandon" />
65
-      <el-table-column label="T2暂存" align="center" prop="t2Temporary" />
71
+      <el-table-column label="T2自弃" align="center" prop="t2Abandon" />
72
+      <el-table-column label="T2暂存" align="center" prop="t2TempStore" />
66 73
       
67 74
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
68 75
         <template #default="scope">
@@ -82,14 +89,23 @@
82 89
       <el-form ref="discouragePowerBanksDataRef" :model="form" :rules="rules" label-width="120px">
83 90
         <el-row :gutter="20">
84 91
           <el-col :span="12">
85
-            <el-form-item label="日期" prop="date">
86
-              <el-date-picker v-model="form.date" type="date" placeholder="请选择日期" value-format="YYYY-MM-DD" 
92
+            <el-form-item label="日期" prop="recordDate">
93
+              <el-date-picker v-model="form.recordDate" type="date" placeholder="请选择日期" value-format="YYYY-MM-DD"
87 94
                 style="width: 100%" />
88 95
             </el-form-item>
89 96
           </el-col>
90 97
           <el-col :span="12">
91
-            <el-form-item label="时间段" prop="timePeriod">
92
-              <el-input v-model="form.timePeriod" placeholder="请输入时间段" />
98
+            <el-form-item label="时间段" prop="timeSlot">
99
+              <el-time-picker
100
+                v-model="form.timeSlot"
101
+                is-range
102
+                range-separator="-"
103
+                start-placeholder="开始时间"
104
+                end-placeholder="结束时间"
105
+                value-format="HH:mm"
106
+                format="HH:mm"
107
+                placeholder="请选择时间段"
108
+                style="width: 100%" />
93 109
             </el-form-item>
94 110
           </el-col>
95 111
         </el-row>
@@ -99,27 +115,27 @@
99 115
         <el-row :gutter="20">
100 116
           <el-col :span="12">
101 117
             <el-form-item label="T1召回充电宝" prop="t1Recall">
102
-              <el-input-number v-model="form.t1Recall" :min="0" placeholder="请输入T1召回充电宝" style="width: 100%" />
103
-            </el-form-item>
104
-            <el-form-item label="T1无3C标识" prop="t1No3C">
105
-              <el-input-number v-model="form.t1No3C" :min="0" placeholder="请输入T1无3C标识" style="width: 100%" />
118
+              <el-input-number :precision="0" v-model="form.t1Recall" :min="0" placeholder="请输入T1召回充电宝" style="width: 100%"  />
106 119
             </el-form-item>
107
-            <el-form-item label="T1标识不清" prop="t1Unclear">
108
-              <el-input-number v-model="form.t1Unclear" :min="0" placeholder="请输入T1标识不清" style="width: 100%" />
120
+            <el-form-item label="T1无3C标识" prop="t1No3c">
121
+              <el-input-number :precision="0" v-model="form.t1No3c" :min="0" placeholder="请输入T1无3C标识" style="width: 100%" />
109 122
             </el-form-item>
110
-            <el-form-item label="T1超规数量" prop="t1OverSize">
111
-              <el-input-number v-model="form.t1OverSize" :min="0" placeholder="请输入T1超规数量" style="width: 100%" />
123
+            <el-form-item label="T1标识不清" prop="t1UnclearMark">
124
+              <el-input-number :precision="0" v-model="form.t1UnclearMark" :min="0" placeholder="请输入T1标识不清" style="width: 100%" />
112 125
             </el-form-item>
113 126
           </el-col>
114 127
           <el-col :span="12">
128
+            <el-form-item label="T1超规数量" prop="t1ExcessQty">
129
+              <el-input-number :precision="0" v-model="form.t1ExcessQty" :min="0" placeholder="请输入T1超规数量" style="width: 100%" />
130
+            </el-form-item>
115 131
             <el-form-item label="T1邮寄" prop="t1Mail">
116
-              <el-input-number v-model="form.t1Mail" :min="0" placeholder="请输入T1邮寄" style="width: 100%" />
132
+              <el-input-number :precision="0" v-model="form.t1Mail" :min="0" placeholder="请输入T1邮寄" style="width: 100%" />
117 133
             </el-form-item>
118
-            <el-form-item label="T1自弃" prop="t1SelfAbandon">
119
-              <el-input-number v-model="form.t1SelfAbandon" :min="0" placeholder="请输入T1自弃" style="width: 100%" />
134
+            <el-form-item label="T1自弃" prop="t1Abandon">
135
+              <el-input-number :precision="0" v-model="form.t1Abandon" :min="0" placeholder="请输入T1自弃" style="width: 100%" />
120 136
             </el-form-item>
121
-            <el-form-item label="T1暂存" prop="t1Temporary">
122
-              <el-input-number v-model="form.t1Temporary" :min="0" placeholder="请输入T1暂存" style="width: 100%" />
137
+            <el-form-item label="T1暂存" prop="t1TempStore">
138
+              <el-input-number :precision="0" v-model="form.t1TempStore" :min="0" placeholder="请输入T1暂存" style="width: 100%" />
123 139
             </el-form-item>
124 140
           </el-col>
125 141
         </el-row>
@@ -129,27 +145,27 @@
129 145
         <el-row :gutter="20">
130 146
           <el-col :span="12">
131 147
             <el-form-item label="T2召回充电宝" prop="t2Recall">
132
-              <el-input-number v-model="form.t2Recall" :min="0" placeholder="请输入T2召回充电宝" style="width: 100%" />
148
+              <el-input-number :precision="0" v-model="form.t2Recall" :min="0" placeholder="请输入T2召回充电宝" style="width: 100%" />
133 149
             </el-form-item>
134
-            <el-form-item label="T2无3C标识" prop="t2No3C">
135
-              <el-input-number v-model="form.t2No3C" :min="0" placeholder="请输入T2无3C标识" style="width: 100%" />
150
+            <el-form-item label="T2无3C标识" prop="t2No3c">
151
+              <el-input-number :precision="0" v-model="form.t2No3c" :min="0" placeholder="请输入T2无3C标识" style="width: 100%" />
136 152
             </el-form-item>
137
-            <el-form-item label="T2标识不清" prop="t2Unclear">
138
-              <el-input-number v-model="form.t2Unclear" :min="0" placeholder="请输入T2标识不清" style="width: 100%" />
139
-            </el-form-item>
140
-            <el-form-item label="T2超规数量" prop="t2OverSize">
141
-              <el-input-number v-model="form.t2OverSize" :min="0" placeholder="请输入T2超规数量" style="width: 100%" />
153
+            <el-form-item label="T2标识不清" prop="t2UnclearMark">
154
+              <el-input-number :precision="0" v-model="form.t2UnclearMark" :min="0" placeholder="请输入T2标识不清" style="width: 100%" />
142 155
             </el-form-item>
143 156
           </el-col>
144 157
           <el-col :span="12">
158
+            <el-form-item label="T2超规数量" prop="t2ExcessQty">
159
+              <el-input-number :precision="0" v-model="form.t2ExcessQty" :min="0" placeholder="请输入T2超规数量" style="width: 100%" />
160
+            </el-form-item>
145 161
             <el-form-item label="T2邮寄" prop="t2Mail">
146
-              <el-input-number v-model="form.t2Mail" :min="0" placeholder="请输入T2邮寄" style="width: 100%" />
162
+              <el-input-number :precision="0" v-model="form.t2Mail" :min="0" placeholder="请输入T2邮寄" style="width: 100%" />
147 163
             </el-form-item>
148
-            <el-form-item label="T2自弃" prop="t2SelfAbandon">
149
-              <el-input-number v-model="form.t2SelfAbandon" :min="0" placeholder="请输入T2自弃" style="width: 100%" />
164
+            <el-form-item label="T2自弃" prop="t2Abandon">
165
+              <el-input-number :precision="0" v-model="form.t2Abandon" :min="0" placeholder="请输入T2自弃" style="width: 100%" />
150 166
             </el-form-item>
151
-            <el-form-item label="T2暂存" prop="t2Temporary">
152
-              <el-input-number v-model="form.t2Temporary" :min="0" placeholder="请输入T2暂存" style="width: 100%" />
167
+            <el-form-item label="T2暂存" prop="t2TempStore">
168
+              <el-input-number :precision="0" v-model="form.t2TempStore" :min="0" placeholder="请输入T2暂存" style="width: 100%" />
153 169
             </el-form-item>
154 170
           </el-col>
155 171
         </el-row>
@@ -218,7 +234,7 @@ const upload = reactive({
218 234
   // 设置上传的请求头部
219 235
   headers: { Authorization: "Bearer " + getToken() },
220 236
   // 上传的地址
221
-  url: import.meta.env.VITE_APP_BASE_API + "/runData/discouragePowerBanksData/importData"
237
+  url: import.meta.env.VITE_APP_BASE_API + "/item/hkPersuadePowerBank/importData"
222 238
 })
223 239
 
224 240
 const uploadRef = ref()
@@ -228,56 +244,56 @@ const data = reactive({
228 244
   queryParams: {
229 245
     pageNum: 1,
230 246
     pageSize: 10,
231
-    date: null,
232
-    timePeriod: null
247
+    recordDate: null,
248
+    timeSlot: null
233 249
   },
234 250
   rules: {
235
-    date: [
236
-      { required: true, message: "日期不能为空", trigger: "blur" }
251
+    recordDate: [
252
+      { required: true, message: "日期不能为空", trigger: "change" }
237 253
     ],
238
-    timePeriod: [
239
-      { required: true, message: "时间段不能为空", trigger: "blur" }
254
+    timeSlot: [
255
+      { required: true, message: "时间段不能为空", trigger: "change" }
240 256
     ],
241 257
     t1Recall: [
242 258
       { type: "integer", message: "T1召回充电宝必须为整数", trigger: "blur" }
243 259
     ],
244
-    t1No3C: [
260
+    t1No3c: [
245 261
       { type: "integer", message: "T1无3C标识必须为整数", trigger: "blur" }
246 262
     ],
247
-    t1Unclear: [
263
+    t1UnclearMark: [
248 264
       { type: "integer", message: "T1标识不清必须为整数", trigger: "blur" }
249 265
     ],
250
-    t1OverSize: [
266
+    t1ExcessQty: [
251 267
       { type: "integer", message: "T1超规数量必须为整数", trigger: "blur" }
252 268
     ],
253 269
     t1Mail: [
254 270
       { type: "integer", message: "T1邮寄必须为整数", trigger: "blur" }
255 271
     ],
256
-    t1SelfAbandon: [
272
+    t1Abandon: [
257 273
       { type: "integer", message: "T1自弃必须为整数", trigger: "blur" }
258 274
     ],
259
-    t1Temporary: [
275
+    t1TempStore: [
260 276
       { type: "integer", message: "T1暂存必须为整数", trigger: "blur" }
261 277
     ],
262 278
     t2Recall: [
263 279
       { type: "integer", message: "T2召回充电宝必须为整数", trigger: "blur" }
264 280
     ],
265
-    t2No3C: [
281
+    t2No3c: [
266 282
       { type: "integer", message: "T2无3C标识必须为整数", trigger: "blur" }
267 283
     ],
268
-    t2Unclear: [
284
+    t2UnclearMark: [
269 285
       { type: "integer", message: "T2标识不清必须为整数", trigger: "blur" }
270 286
     ],
271
-    t2OverSize: [
287
+    t2ExcessQty: [
272 288
       { type: "integer", message: "T2超规数量必须为整数", trigger: "blur" }
273 289
     ],
274 290
     t2Mail: [
275 291
       { type: "integer", message: "T2邮寄必须为整数", trigger: "blur" }
276 292
     ],
277
-    t2SelfAbandon: [
293
+    t2Abandon: [
278 294
       { type: "integer", message: "T2自弃必须为整数", trigger: "blur" }
279 295
     ],
280
-    t2Temporary: [
296
+    t2TempStore: [
281 297
       { type: "integer", message: "T2暂存必须为整数", trigger: "blur" }
282 298
     ]
283 299
   }
@@ -288,7 +304,11 @@ const { queryParams, form, rules } = toRefs(data)
288 304
 /** 查询劝阻充电宝数据列表 */
289 305
 function getList() {
290 306
   loading.value = true
291
-  listDiscouragePowerBanksData(queryParams.value).then(response => {
307
+  const params = { ...queryParams.value }
308
+  if (params.timeSlot && Array.isArray(params.timeSlot)) {
309
+    params.timeSlot = params.timeSlot.join('-')
310
+  }
311
+  listDiscouragePowerBanksData(params).then(response => {
292 312
     discouragePowerBanksDataList.value = response.rows
293 313
     total.value = response.total
294 314
     loading.value = false
@@ -305,24 +325,24 @@ function cancel() {
305 325
 function reset() {
306 326
   form.value = {
307 327
     id: null,
308
-    date: null,
309
-    timePeriod: null,
328
+    recordDate: null,
329
+    timeSlot: null,
310 330
     // T1区域数据
311 331
     t1Recall: null,
312
-    t1No3C: null,
313
-    t1Unclear: null,
314
-    t1OverSize: null,
332
+    t1No3c: null,
333
+    t1UnclearMark: null,
334
+    t1ExcessQty: null,
315 335
     t1Mail: null,
316
-    t1SelfAbandon: null,
317
-    t1Temporary: null,
336
+    t1Abandon: null,
337
+    t1TempStore: null,
318 338
     // T2区域数据
319 339
     t2Recall: null,
320
-    t2No3C: null,
321
-    t2Unclear: null,
322
-    t2OverSize: null,
340
+    t2No3c: null,
341
+    t2UnclearMark: null,
342
+    t2ExcessQty: null,
323 343
     t2Mail: null,
324
-    t2SelfAbandon: null,
325
-    t2Temporary: null
344
+    t2Abandon: null,
345
+    t2TempStore: null
326 346
   }
327 347
   proxy.resetForm("discouragePowerBanksDataRef")
328 348
 }
@@ -358,7 +378,12 @@ function handleUpdate(row) {
358 378
   reset()
359 379
   const _id = row.id || ids.value
360 380
   getDiscouragePowerBanksData(_id).then(response => {
361
-    form.value = response.data
381
+    const data = response.data
382
+    // 转换时间段字符串为数组格式
383
+    if (data.timeSlot && typeof data.timeSlot === 'string' && data.timeSlot.includes('-')) {
384
+      data.timeSlot = data.timeSlot.split('-')
385
+    }
386
+    form.value = data
362 387
     open.value = true
363 388
     title.value = "修改劝阻充电宝数据"
364 389
   })
@@ -368,14 +393,19 @@ function handleUpdate(row) {
368 393
 function submitForm() {
369 394
   proxy.$refs["discouragePowerBanksDataRef"].validate(valid => {
370 395
     if (valid) {
371
-      if (form.value.id != null) {
372
-        updateDiscouragePowerBanksData(form.value).then(response => {
396
+      const submitData = { ...form.value }
397
+      // 转换时间段为字符串格式 08:00-17:00
398
+      if (submitData.timeSlot && Array.isArray(submitData.timeSlot)) {
399
+        submitData.timeSlot = submitData.timeSlot.join('-')
400
+      }
401
+      if (submitData.id != null) {
402
+        updateDiscouragePowerBanksData(submitData).then(response => {
373 403
           proxy.$modal.msgSuccess("修改成功")
374 404
           open.value = false
375 405
           getList()
376 406
         })
377 407
       } else {
378
-        addDiscouragePowerBanksData(form.value).then(response => {
408
+        addDiscouragePowerBanksData(submitData).then(response => {
379 409
           proxy.$modal.msgSuccess("新增成功")
380 410
           open.value = false
381 411
           getList()
@@ -408,7 +438,7 @@ function handleExport() {
408 438
     })
409 439
   )
410 440
   
411
-  proxy.download('/runData/discouragePowerBanksData/export', filteredParams, `discouragePowerBanksData_${new Date().getTime()}.xlsx`)
441
+  proxy.download('/item/hkPersuadePowerBank/export', filteredParams, `discouragePowerBanksData_${new Date().getTime()}.xlsx`)
412 442
 }
413 443
 
414 444
 /** 导入按钮操作 */
@@ -419,7 +449,7 @@ function handleImport() {
419 449
 
420 450
 /** 下载模板操作 */
421 451
 function importTemplate() {
422
-  proxy.download('/runData/discouragePowerBanksData/importTemplate', {
452
+  proxy.download('/item/hkPersuadePowerBank/importTemplate', {
423 453
   }, `劝阻充电宝数据导入模板_${new Date().getTime()}.xlsx`)
424 454
 }
425 455
 

+ 53 - 42
src/views/runData/runScreen/index.vue

@@ -21,7 +21,7 @@
21 21
             <div class="data-card">
22 22
               <div class="card-title">旅检过检总人数</div>
23 23
               <div class="card-value-wrapper" style="color: #E8B140;">
24
-                <span class="card-value">{{ runData.travelInspectionTotal }}</span>
24
+                <span class="card-value">{{ runData.passengerTotal }}</span>
25 25
                 <span class="card-unit">人</span>
26 26
               </div>
27 27
             </div>
@@ -30,7 +30,7 @@
30 30
             <div class="data-card">
31 31
               <div class="card-title">行检过检总行李数</div>
32 32
               <div class="card-value-wrapper" style="color: #26B6BE;">
33
-                <span class="card-value">{{ runData.luggageInspectionTotal }}</span>
33
+                <span class="card-value">{{ runData.luggageTotal }}</span>
34 34
                 <span class="card-unit">件</span>
35 35
               </div>
36 36
             </div>
@@ -77,7 +77,7 @@
77 77
         <div class="data-card">
78 78
           <div class="card-title">国际货站总过检数</div>
79 79
           <div class="card-value-wrapper" style="color: #26B6BE;padding: 30px;">
80
-            <span class="card-value">{{ runData.internationalCargoTotal }}</span>
80
+            <span class="card-value">{{ runData.intlCargoTotal }}</span>
81 81
             <span class="card-unit">件</span>
82 82
           </div>
83 83
         </div>
@@ -86,7 +86,7 @@
86 86
         <div class="data-card">
87 87
           <div class="card-title">道口车辆过检数</div>
88 88
           <div class="card-value-wrapper" style="color: #5680C9;padding: 30px;">
89
-            <span class="card-value">{{ runData.vehicleInspectionTotal }}</span>
89
+            <span class="card-value">{{ runData.vehicleCheckTotal }}</span>
90 90
             <span class="card-unit">辆</span>
91 91
           </div>
92 92
         </div>
@@ -313,15 +313,16 @@ function initCharts() {
313 313
     const t1Data = t1PassengerData.value || []
314 314
     t1TravelChartInstance.setOption({
315 315
       tooltip: { trigger: 'axis' },
316
+      legend: { data: ['A区', 'B区'], top: 30 },
316 317
       xAxis: {
317 318
         type: 'category',
318
-        data: t1Data.map(item => item.recordDate || item.aZone || '')
319
+        data: t1Data.map(item => item.recordDate || item.azone || '')
319 320
       },
320 321
       yAxis: { type: 'value' },
321 322
       series: [
322 323
         {
323 324
           name: 'A区',
324
-          data: t1Data.map(item => item.aZone || 0),
325
+          data: t1Data.map(item => item.azone || 0),
325 326
           type: 'line',
326 327
           smooth: true,
327 328
           lineStyle: { color: '#E8B140' },
@@ -329,7 +330,7 @@ function initCharts() {
329 330
         },
330 331
         {
331 332
           name: 'B区',
332
-          data: t1Data.map(item => item.bZone || 0),
333
+          data: t1Data.map(item => item.bzone || 0),
333 334
           type: 'line',
334 335
           smooth: true,
335 336
           lineStyle: { color: '#5470c6' },
@@ -345,6 +346,7 @@ function initCharts() {
345 346
     const t2Data = t2PassengerData.value || []
346 347
     t2TravelChartInstance.setOption({
347 348
       tooltip: { trigger: 'axis' },
349
+      legend: { data: ['国内旅检', '国际旅检'], top: 30 },
348 350
       xAxis: {
349 351
         type: 'category',
350 352
         data: t2Data.map(item => item.recordDate || '')
@@ -377,6 +379,7 @@ function initCharts() {
377 379
     const luggageData = luggageCheckData.value || []
378 380
     luggageChartInstance.setOption({
379 381
       tooltip: { trigger: 'axis' },
382
+      legend: { data: ['T1行检', 'T2行检'], top: 30 },
380 383
       xAxis: {
381 384
         type: 'category',
382 385
         data: luggageData.map(item => item.recordDate || '')
@@ -409,6 +412,7 @@ function initCharts() {
409 412
     const cargoTrendData = cargoData.value || []
410 413
     cargoChartInstance.setOption({
411 414
       tooltip: { trigger: 'axis' },
415
+      legend: { data: ['国内货站', '国际货站'], top: 30 },
412 416
       xAxis: {
413 417
         type: 'category',
414 418
         data: cargoTrendData.map(item => item.recordDate || '')
@@ -441,6 +445,7 @@ function initCharts() {
441 445
     const vehicleData = vehicleCheckData.value || []
442 446
     vehicleChartInstance.setOption({
443 447
       tooltip: { trigger: 'axis' },
448
+      legend: { data: ['南侧车检', '北侧车检'], top: 30 },
444 449
       xAxis: {
445 450
         type: 'category',
446 451
         data: vehicleData.map(item => item.recordDate || '')
@@ -495,71 +500,77 @@ function initCharts() {
495 500
   if (teamSeizeBarChart.value) {
496 501
     teamSeizeBarChartInstance = echarts.init(teamSeizeBarChart.value)
497 502
     const brigadeData = brigadeSeizureData.value || []
503
+    const shifts = [...new Set(brigadeData.map(item => item.shift))]
504
+    const brigades = [...new Set(brigadeData.map(item => item.brigade))]
505
+    const series = brigades.map(brigade => ({
506
+      name: brigade,
507
+      data: shifts.map(shift => {
508
+        const item = brigadeData.find(d => d.shift === shift && d.brigade === brigade)
509
+        return item ? item.grandTotal : 0
510
+      }),
511
+      type: 'bar'
512
+    }))
498 513
     teamSeizeBarChartInstance.setOption({
499 514
       tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } },
500
-      legend: { data: ['T1区', 'T2区', '总量'] },
515
+      legend: { data: brigades, top: 30 },
501 516
       xAxis: {
502 517
         type: 'category',
503
-        data: [...new Set(brigadeData.map(item => item.brigade))]
518
+        data: shifts
504 519
       },
505 520
       yAxis: { type: 'value' },
506
-      series: [
507
-        {
508
-          name: 'T1区',
509
-          data: brigadeData.filter(item => item.shift === '白班').map(item => ({ value: item.t1Total, brigade: item.brigade })),
510
-          type: 'bar'
511
-        },
512
-        {
513
-          name: 'T2区',
514
-          data: brigadeData.filter(item => item.shift === '白班').map(item => ({ value: item.t2Total, brigade: item.brigade })),
515
-          type: 'bar'
516
-        },
517
-        {
518
-          name: '总量',
519
-          data: brigadeData.filter(item => item.shift === '白班').map(item => ({ value: item.grandTotal, brigade: item.brigade })),
520
-          type: 'bar'
521
-        }
522
-      ]
521
+      series: series
523 522
     })
524 523
   }
525 524
 
526 525
   // T1区域各大队查获数对比柱状图
527 526
   if (t1TeamBarChart.value) {
528 527
     t1TeamBarChartInstance = echarts.init(t1TeamBarChart.value)
529
-    const t1BrigadeData = (brigadeSeizureData.value || []).filter(item => item.shift === '白班')
528
+    const brigadeData = brigadeSeizureData.value || []
529
+    const shifts = [...new Set(brigadeData.map(item => item.shift))]
530
+    const brigades = [...new Set(brigadeData.map(item => item.brigade))]
531
+    const series = brigades.map(brigade => ({
532
+      name: brigade,
533
+      data: shifts.map(shift => {
534
+        const item = brigadeData.find(d => d.shift === shift && d.brigade === brigade)
535
+        return item ? item.t1Total : 0
536
+      }),
537
+      type: 'bar'
538
+    }))
530 539
     t1TeamBarChartInstance.setOption({
531 540
       tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } },
541
+      legend: { data: brigades, top: 30 },
532 542
       xAxis: {
533 543
         type: 'category',
534
-        data: [...new Set(t1BrigadeData.map(item => item.brigade))]
544
+        data: shifts
535 545
       },
536 546
       yAxis: { type: 'value' },
537
-      series: [{
538
-        name: 'T1查获数',
539
-        data: t1BrigadeData.map(item => item.t1Total),
540
-        type: 'bar',
541
-        itemStyle: { color: '#91cc75' }
542
-      }]
547
+      series: series
543 548
     })
544 549
   }
545 550
 
546 551
   // T2区域各大队查获数对比柱状图
547 552
   if (t2TeamBarChart.value) {
548 553
     t2TeamBarChartInstance = echarts.init(t2TeamBarChart.value)
549
-    const t2BrigadeData = (brigadeSeizureData.value || []).filter(item => item.shift === '夜班')
554
+    const brigadeData = brigadeSeizureData.value || []
555
+    const shifts = [...new Set(brigadeData.map(item => item.shift))]
556
+    const brigades = [...new Set(brigadeData.map(item => item.brigade))]
557
+    const series = brigades.map(brigade => ({
558
+      name: brigade,
559
+      data: shifts.map(shift => {
560
+        const item = brigadeData.find(d => d.shift === shift && d.brigade === brigade)
561
+        return item ? item.t2Total : 0
562
+      }),
563
+      type: 'bar'
564
+    }))
550 565
     t2TeamBarChartInstance.setOption({
551 566
       tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } },
567
+      legend: { data: brigades, top: 30 },
552 568
       xAxis: {
553 569
         type: 'category',
554
-        data: [...new Set(t2BrigadeData.map(item => item.brigade))]
570
+        data: shifts
555 571
       },
556 572
       yAxis: { type: 'value' },
557
-      series: [{
558
-        name: 'T2查获数',
559
-        data: t2BrigadeData.map(item => item.t2Total),
560
-        type: 'bar',
561
-        itemStyle: { color: '#fac858' }
562
-      }]
573
+      series: series
563 574
     })
564 575
   }
565 576
 

+ 146 - 113
src/views/runData/seizeData/index.vue

@@ -2,15 +2,19 @@
2 2
   <div class="app-container">
3 3
     <!-- 查询条件 -->
4 4
     <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
5
-      <el-form-item label="日期" prop="date">
6
-        <el-date-picker v-model="queryParams.date" type="date" placeholder="请选择日期" value-format="YYYY-MM-DD" 
5
+      <el-form-item label="日期" prop="recordDate">
6
+        <el-date-picker v-model="queryParams.recordDate" type="date" placeholder="请选择日期" value-format="YYYY-MM-DD" 
7 7
           style="width: 200px" />
8 8
       </el-form-item>
9 9
       <el-form-item label="班次" prop="shift">
10
-        <el-input v-model="queryParams.shift" placeholder="请输入班次" clearable style="width: 200px" />
10
+        <el-select v-model="queryParams.shift" placeholder="请选择班次" clearable style="width: 200px">
11
+          <el-option v-for="item in shiftOptions" :key="item.value" :label="item.label" :value="item.value" />
12
+        </el-select>
11 13
       </el-form-item>
12
-      <el-form-item label="当班大队" prop="team">
13
-        <el-input v-model="queryParams.team" placeholder="请输入当班大队" clearable style="width: 200px" />
14
+      <el-form-item label="当班大队" prop="brigade">
15
+        <el-select v-model="queryParams.brigade" placeholder="请选择当班大队" clearable style="width: 200px">
16
+          <el-option v-for="item in brigadeOptions" :key="item.value" :label="item.label" :value="item.label" />
17
+        </el-select>
14 18
       </el-form-item>
15 19
       <el-form-item>
16 20
         <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
@@ -24,10 +28,7 @@
24 28
         <el-button type="primary" plain icon="Plus" @click="handleAdd"
25 29
           v-hasPermi="['runData:seizeData:add']">新增</el-button>
26 30
       </el-col>
27
-      <el-col :span="1.5">
28
-        <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate"
29
-          v-hasPermi="['runData:seizeData:edit']">修改</el-button>
30
-      </el-col>
31
+
31 32
       <el-col :span="1.5">
32 33
         <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"
33 34
           v-hasPermi="['runData:seizeData:remove']">删除</el-button>
@@ -46,43 +47,43 @@
46 47
     <!-- 数据表格 -->
47 48
     <el-table v-loading="loading" :data="seizeDataList" @selection-change="handleSelectionChange">
48 49
       <el-table-column type="selection" width="55" align="center" />
49
-      <el-table-column label="日期" align="center" prop="date" />
50
+      <el-table-column label="日期" align="center" prop="recordDate" />
50 51
       <el-table-column label="班次" align="center" prop="shift" />
51
-      <el-table-column label="当班大队" align="center" prop="team" />
52
+      <el-table-column label="当班大队" align="center" prop="brigade" />
52 53
       
53 54
       <!-- T1区域数据 -->
54
-      <el-table-column label="T1火种" align="center" prop="t1Fire" />
55
+      <el-table-column label="T1火种" align="center" prop="t1FireSource" />
55 56
       <el-table-column label="T1刀具" align="center" prop="t1Knife" />
56
-      <el-table-column label="T1警械器具" align="center" prop="t1PoliceEquipment" />
57
-      <el-table-column label="T1烟花爆竹" align="center" prop="t1Fireworks" />
57
+      <el-table-column label="T1警械器具" align="center" prop="t1PoliceWeapon" />
58
+      <el-table-column label="T1烟花爆竹" align="center" prop="t1Firework" />
58 59
       <el-table-column label="T1活体动物" align="center" prop="t1LiveAnimal" />
59 60
       <el-table-column label="T1腐蚀性物品" align="center" prop="t1Corrosive" />
60
-      <el-table-column label="T1用假冒他" align="center" prop="t1Counterfeit" />
61
+      <el-table-column label="T1用假冒他" align="center" prop="t1FakeId" />
61 62
       <el-table-column label="T1爆炸装置" align="center" prop="t1Explosive" />
62 63
       <el-table-column label="T1工具" align="center" prop="t1Tool" />
63
-      <el-table-column label="T1枪支弹药" align="center" prop="t1Gun" />
64
-      <el-table-column label="T1扫黄打非" align="center" prop="t1Pornography" />
64
+      <el-table-column label="T1枪支弹药" align="center" prop="t1GunAmmo" />
65
+      <el-table-column label="T1扫黄打非" align="center" prop="t1Illegal" />
65 66
       <el-table-column label="T1其他" align="center" prop="t1Other" />
66 67
       <el-table-column label="T1总数" align="center" prop="t1Total" />
67 68
       
68 69
       <!-- T2区域数据 -->
69
-      <el-table-column label="T2火种" align="center" prop="t2Fire" />
70
+      <el-table-column label="T2火种" align="center" prop="t2FireSource" />
70 71
       <el-table-column label="T2刀具" align="center" prop="t2Knife" />
71
-      <el-table-column label="T2警械器具" align="center" prop="t2PoliceEquipment" />
72
-      <el-table-column label="T2烟花爆竹" align="center" prop="t2Fireworks" />
72
+      <el-table-column label="T2警械器具" align="center" prop="t2PoliceWeapon" />
73
+      <el-table-column label="T2烟花爆竹" align="center" prop="t2Firework" />
73 74
       <el-table-column label="T2活体动物" align="center" prop="t2LiveAnimal" />
74 75
       <el-table-column label="T2腐蚀性物品" align="center" prop="t2Corrosive" />
75
-      <el-table-column label="T2用假冒他" align="center" prop="t2Counterfeit" />
76
+      <el-table-column label="T2用假冒他" align="center" prop="t2FakeId" />
76 77
       <el-table-column label="T2爆炸装置" align="center" prop="t2Explosive" />
77 78
       <el-table-column label="T2工具" align="center" prop="t2Tool" />
78
-      <el-table-column label="T2枪支弹药" align="center" prop="t2Gun" />
79
-      <el-table-column label="T2扫黄打非" align="center" prop="t2Pornography" />
79
+      <el-table-column label="T2枪支弹药" align="center" prop="t2GunAmmo" />
80
+      <el-table-column label="T2扫黄打非" align="center" prop="t2Illegal" />
80 81
       <el-table-column label="T2其他" align="center" prop="t2Other" />
81 82
       <el-table-column label="T2总数" align="center" prop="t2Total" />
82 83
       
83 84
       <el-table-column label="T1总数+T2总数" align="center" prop="total" />
84 85
       
85
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
86
+      <el-table-column label="操作" align="center" width="180" class-name="small-padding fixed-width" fixed="right">  
86 87
         <template #default="scope">
87 88
           <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
88 89
             v-hasPermi="['runData:seizeData:edit']">修改</el-button>
@@ -96,23 +97,27 @@
96 97
       v-model:limit="queryParams.pageSize" @pagination="getList" />
97 98
 
98 99
     <!-- 添加或修改查获数据对话框 -->
99
-    <el-dialog :title="title" v-model="open" width="900px" append-to-body>
100
+    <el-dialog :title="title" v-model="open" width="1000px" append-to-body>
100 101
       <el-form ref="seizeDataRef" :model="form" :rules="rules" label-width="120px">
101 102
         <el-row :gutter="20">
102 103
           <el-col :span="8">
103
-            <el-form-item label="日期" prop="date">
104
-              <el-date-picker v-model="form.date" type="date" placeholder="请选择日期" value-format="YYYY-MM-DD" 
104
+            <el-form-item label="日期" prop="recordDate">
105
+              <el-date-picker v-model="form.recordDate" type="date" placeholder="请选择日期" value-format="YYYY-MM-DD" 
105 106
                 style="width: 100%" />
106 107
             </el-form-item>
107 108
           </el-col>
108 109
           <el-col :span="8">
109 110
             <el-form-item label="班次" prop="shift">
110
-              <el-input v-model="form.shift" placeholder="请输入班次" />
111
+              <el-select v-model="form.shift" placeholder="请选择班次" filterable style="width: 100%">
112
+                <el-option v-for="item in shiftOptions" :key="item.value" :label="item.label" :value="item.value" />
113
+              </el-select>
111 114
             </el-form-item>
112 115
           </el-col>
113 116
           <el-col :span="8">
114
-            <el-form-item label="当班大队" prop="team">
115
-              <el-input v-model="form.team" placeholder="请输入当班大队" />
117
+            <el-form-item label="当班大队" prop="brigade">
118
+              <el-select v-model="form.brigade" placeholder="请选择当班大队" filterable style="width: 100%">
119
+                <el-option v-for="item in brigadeOptions" :key="item.value" :label="item.label" :value="item.label" />
120
+              </el-select>
116 121
             </el-form-item>
117 122
           </el-col>
118 123
         </el-row>
@@ -120,49 +125,51 @@
120 125
         <!-- T1区域 -->
121 126
         <el-divider content-position="left">T1区域数据</el-divider>
122 127
         <el-row :gutter="20">
123
-          <el-col :span="6">
124
-            <el-form-item label="T1火种" prop="t1Fire">
125
-              <el-input-number v-model="form.t1Fire" :min="0" placeholder="请输入T1火种" style="width: 100%" @change="calculateTotals" />
128
+          <el-col :span="8">
129
+            <el-form-item label="T1火种" prop="t1FireSource">
130
+              <el-input-number :precision="0" v-model="form.t1FireSource" :min="0" placeholder="请输入T1火种" style="width: 100%" @change="calculateTotals" />
126 131
             </el-form-item>
127 132
             <el-form-item label="T1刀具" prop="t1Knife">
128
-              <el-input-number v-model="form.t1Knife" :min="0" placeholder="请输入T1刀具" style="width: 100%" @change="calculateTotals" />
133
+              <el-input-number :precision="0" v-model="form.t1Knife" :min="0" placeholder="请输入T1刀具" style="width: 100%" @change="calculateTotals" />
129 134
             </el-form-item>
130
-            <el-form-item label="T1警械器具" prop="t1PoliceEquipment">
131
-              <el-input-number v-model="form.t1PoliceEquipment" :min="0" placeholder="请输入T1警械器具" style="width: 100%" @change="calculateTotals" />
135
+            <el-form-item label="T1警械器具" prop="t1PoliceWeapon">
136
+              <el-input-number :precision="0" v-model="form.t1PoliceWeapon" :min="0" placeholder="请输入T1警械器具" style="width: 100%" @change="calculateTotals" />
132 137
             </el-form-item>
133
-            <el-form-item label="T1烟花爆竹" prop="t1Fireworks">
134
-              <el-input-number v-model="form.t1Fireworks" :min="0" placeholder="请输入T1烟花爆竹" style="width: 100%" @change="calculateTotals" />
138
+            <el-form-item label="T1烟花爆竹" prop="t1Firework">
139
+              <el-input-number :precision="0" v-model="form.t1Firework" :min="0" placeholder="请输入T1烟花爆竹" style="width: 100%" @change="calculateTotals" />
135 140
             </el-form-item>
136 141
           </el-col>
137
-          <el-col :span="6">
142
+          <el-col :span="8">
138 143
             <el-form-item label="T1活体动物" prop="t1LiveAnimal">
139
-              <el-input-number v-model="form.t1LiveAnimal" :min="0" placeholder="请输入T1活体动物" style="width: 100%" @change="calculateTotals" />
144
+              <el-input-number :precision="0" v-model="form.t1LiveAnimal" :min="0" placeholder="请输入T1活体动物" style="width: 100%" @change="calculateTotals" />
140 145
             </el-form-item>
141 146
             <el-form-item label="T1腐蚀性物品" prop="t1Corrosive">
142
-              <el-input-number v-model="form.t1Corrosive" :min="0" placeholder="请输入T1腐蚀性物品" style="width: 100%" @change="calculateTotals" />
147
+              <el-input-number :precision="0" v-model="form.t1Corrosive" :min="0" placeholder="请输入T1腐蚀性物品" style="width: 100%" @change="calculateTotals" />
143 148
             </el-form-item>
144
-            <el-form-item label="T1用假冒他" prop="t1Counterfeit">
145
-              <el-input-number v-model="form.t1Counterfeit" :min="0" placeholder="请输入T1用假冒他" style="width: 100%" @change="calculateTotals" />
149
+            <el-form-item label="T1用假冒他" prop="t1FakeId">
150
+              <el-input-number :precision="0" v-model="form.t1FakeId" :min="0" placeholder="请输入T1用假冒他" style="width: 100%" @change="calculateTotals" />
146 151
             </el-form-item>
147 152
             <el-form-item label="T1爆炸装置" prop="t1Explosive">
148
-              <el-input-number v-model="form.t1Explosive" :min="0" placeholder="请输入T1爆炸装置" style="width: 100%" @change="calculateTotals" />
153
+              <el-input-number :precision="0" v-model="form.t1Explosive" :min="0" placeholder="请输入T1爆炸装置" style="width: 100%" @change="calculateTotals" />
149 154
             </el-form-item>
150 155
           </el-col>
151
-          <el-col :span="6">
156
+          <el-col :span="8">
152 157
             <el-form-item label="T1工具" prop="t1Tool">
153
-              <el-input-number v-model="form.t1Tool" :min="0" placeholder="请输入T1工具" style="width: 100%" @change="calculateTotals" />
158
+              <el-input-number :precision="0" v-model="form.t1Tool" :min="0" placeholder="请输入T1工具" style="width: 100%" @change="calculateTotals" />
154 159
             </el-form-item>
155
-            <el-form-item label="T1枪支弹药" prop="t1Gun">
156
-              <el-input-number v-model="form.t1Gun" :min="0" placeholder="请输入T1枪支弹药" style="width: 100%" @change="calculateTotals" />
160
+            <el-form-item label="T1枪支弹药" prop="t1GunAmmo">
161
+              <el-input-number :precision="0" v-model="form.t1GunAmmo" :min="0" placeholder="请输入T1枪支弹药" style="width: 100%" @change="calculateTotals" />
157 162
             </el-form-item>
158
-            <el-form-item label="T1扫黄打非" prop="t1Pornography">
159
-              <el-input-number v-model="form.t1Pornography" :min="0" placeholder="请输入T1扫黄打非" style="width: 100%" @change="calculateTotals" />
163
+            <el-form-item label="T1扫黄打非" prop="t1Illegal">
164
+              <el-input-number :precision="0" v-model="form.t1Illegal" :min="0" placeholder="请输入T1扫黄打非" style="width: 100%" @change="calculateTotals" />
160 165
             </el-form-item>
161 166
             <el-form-item label="T1其他" prop="t1Other">
162
-              <el-input-number v-model="form.t1Other" :min="0" placeholder="请输入T1其他" style="width: 100%" @change="calculateTotals" />
167
+              <el-input-number :precision="0" v-model="form.t1Other" :min="0" placeholder="请输入T1其他" style="width: 100%" @change="calculateTotals" />
163 168
             </el-form-item>
164 169
           </el-col>
165
-          <el-col :span="6">
170
+        </el-row>
171
+        <el-row :gutter="20">
172
+          <el-col :span="8">
166 173
             <el-form-item label="T1总数" prop="t1Total">
167 174
               <el-input v-model="form.t1Total" placeholder="自动计算" readonly style="width: 100%" />
168 175
             </el-form-item>
@@ -172,52 +179,56 @@
172 179
         <!-- T2区域 -->
173 180
         <el-divider content-position="left">T2区域数据</el-divider>
174 181
         <el-row :gutter="20">
175
-          <el-col :span="6">
176
-            <el-form-item label="T2火种" prop="t2Fire">
177
-              <el-input-number v-model="form.t2Fire" :min="0" placeholder="请输入T2火种" style="width: 100%" @change="calculateTotals" />
182
+          <el-col :span="8">
183
+            <el-form-item label="T2火种" prop="t2FireSource">
184
+              <el-input-number :precision="0" v-model="form.t2FireSource" :min="0" placeholder="请输入T2火种" style="width: 100%" @change="calculateTotals" />
178 185
             </el-form-item>
179 186
             <el-form-item label="T2刀具" prop="t2Knife">
180
-              <el-input-number v-model="form.t2Knife" :min="0" placeholder="请输入T2刀具" style="width: 100%" @change="calculateTotals" />
187
+              <el-input-number :precision="0" v-model="form.t2Knife" :min="0" placeholder="请输入T2刀具" style="width: 100%" @change="calculateTotals" />
181 188
             </el-form-item>
182
-            <el-form-item label="T2警械器具" prop="t2PoliceEquipment">
183
-              <el-input-number v-model="form.t2PoliceEquipment" :min="0" placeholder="请输入T2警械器具" style="width: 100%" @change="calculateTotals" />
189
+            <el-form-item label="T2警械器具" prop="t2PoliceWeapon">
190
+              <el-input-number :precision="0" v-model="form.t2PoliceWeapon" :min="0" placeholder="请输入T2警械器具" style="width: 100%" @change="calculateTotals" />
184 191
             </el-form-item>
185
-            <el-form-item label="T2烟花爆竹" prop="t2Fireworks">
186
-              <el-input-number v-model="form.t2Fireworks" :min="0" placeholder="请输入T2烟花爆竹" style="width: 100%" @change="calculateTotals" />
192
+            <el-form-item label="T2烟花爆竹" prop="t2Firework">
193
+              <el-input-number :precision="0" v-model="form.t2Firework" :min="0" placeholder="请输入T2烟花爆竹" style="width: 100%" @change="calculateTotals" />
187 194
             </el-form-item>
188 195
           </el-col>
189
-          <el-col :span="6">
196
+          <el-col :span="8">
190 197
             <el-form-item label="T2活体动物" prop="t2LiveAnimal">
191
-              <el-input-number v-model="form.t2LiveAnimal" :min="0" placeholder="请输入T2活体动物" style="width: 100%" @change="calculateTotals" />
198
+              <el-input-number :precision="0" v-model="form.t2LiveAnimal" :min="0" placeholder="请输入T2活体动物" style="width: 100%" @change="calculateTotals" />
192 199
             </el-form-item>
193 200
             <el-form-item label="T2腐蚀性物品" prop="t2Corrosive">
194
-              <el-input-number v-model="form.t2Corrosive" :min="0" placeholder="请输入T2腐蚀性物品" style="width: 100%" @change="calculateTotals" />
201
+              <el-input-number :precision="0" v-model="form.t2Corrosive" :min="0" placeholder="请输入T2腐蚀性物品" style="width: 100%" @change="calculateTotals" />
195 202
             </el-form-item>
196
-            <el-form-item label="T2用假冒他" prop="t2Counterfeit">
197
-              <el-input-number v-model="form.t2Counterfeit" :min="0" placeholder="请输入T2用假冒他" style="width: 100%" @change="calculateTotals" />
203
+            <el-form-item label="T2用假冒他" prop="t2FakeId">
204
+              <el-input-number :precision="0" v-model="form.t2FakeId" :min="0" placeholder="请输入T2用假冒他" style="width: 100%" @change="calculateTotals" />
198 205
             </el-form-item>
199 206
             <el-form-item label="T2爆炸装置" prop="t2Explosive">
200
-              <el-input-number v-model="form.t2Explosive" :min="0" placeholder="请输入T2爆炸装置" style="width: 100%" @change="calculateTotals" />
207
+              <el-input-number :precision="0" v-model="form.t2Explosive" :min="0" placeholder="请输入T2爆炸装置" style="width: 100%" @change="calculateTotals" />
201 208
             </el-form-item>
202 209
           </el-col>
203
-          <el-col :span="6">
210
+          <el-col :span="8">
204 211
             <el-form-item label="T2工具" prop="t2Tool">
205
-              <el-input-number v-model="form.t2Tool" :min="0" placeholder="请输入T2工具" style="width: 100%" @change="calculateTotals" />
212
+              <el-input-number :precision="0" v-model="form.t2Tool" :min="0" placeholder="请输入T2工具" style="width: 100%" @change="calculateTotals" />
206 213
             </el-form-item>
207
-            <el-form-item label="T2枪支弹药" prop="t2Gun">
208
-              <el-input-number v-model="form.t2Gun" :min="0" placeholder="请输入T2枪支弹药" style="width: 100%" @change="calculateTotals" />
214
+            <el-form-item label="T2枪支弹药" prop="t2GunAmmo">
215
+              <el-input-number :precision="0" v-model="form.t2GunAmmo" :min="0" placeholder="请输入T2枪支弹药" style="width: 100%" @change="calculateTotals" />
209 216
             </el-form-item>
210
-            <el-form-item label="T2扫黄打非" prop="t2Pornography">
211
-              <el-input-number v-model="form.t2Pornography" :min="0" placeholder="请输入T2扫黄打非" style="width: 100%" @change="calculateTotals" />
217
+            <el-form-item label="T2扫黄打非" prop="t2Illegal">
218
+              <el-input-number :precision="0" v-model="form.t2Illegal" :min="0" placeholder="请输入T2扫黄打非" style="width: 100%" @change="calculateTotals" />
212 219
             </el-form-item>
213 220
             <el-form-item label="T2其他" prop="t2Other">
214
-              <el-input-number v-model="form.t2Other" :min="0" placeholder="请输入T2其他" style="width: 100%" @change="calculateTotals" />
221
+              <el-input-number :precision="0" v-model="form.t2Other" :min="0" placeholder="请输入T2其他" style="width: 100%" @change="calculateTotals" />
215 222
             </el-form-item>
216 223
           </el-col>
217
-          <el-col :span="6">
224
+        </el-row>
225
+        <el-row :gutter="20">
226
+          <el-col :span="8">
218 227
             <el-form-item label="T2总数" prop="t2Total">
219 228
               <el-input v-model="form.t2Total" placeholder="自动计算" readonly style="width: 100%" />
220 229
             </el-form-item>
230
+          </el-col>
231
+          <el-col :span="8">
221 232
             <el-form-item label="T1总数+T2总数" prop="total">
222 233
               <el-input v-model="form.total" placeholder="自动计算" readonly style="width: 100%" />
223 234
             </el-form-item>
@@ -261,6 +272,7 @@
261 272
 
262 273
 <script setup name="SeizeData">
263 274
 import { listSeizeData, getSeizeData, delSeizeData, addSeizeData, updateSeizeData } from "@/api/runData/seizeData"
275
+import { listDept } from '@/api/system/dept'
264 276
 import { getToken } from '@/utils/auth'
265 277
 
266 278
 const { proxy } = getCurrentInstance()
@@ -275,6 +287,15 @@ const multiple = ref(true)
275 287
 const total = ref(0)
276 288
 const title = ref("")
277 289
 
290
+// 班次字典
291
+const shiftOptions = [
292
+  { value: '早班', label: '早班' },
293
+  { value: '晚班', label: '晚班' }
294
+]
295
+
296
+// 大队选项
297
+const brigadeOptions = ref([])
298
+
278 299
 // 导入参数
279 300
 const upload = reactive({
280 301
   // 是否显示弹出层
@@ -288,7 +309,7 @@ const upload = reactive({
288 309
   // 设置上传的请求头部
289 310
   headers: { Authorization: "Bearer " + getToken() },
290 311
   // 上传的地址
291
-  url: import.meta.env.VITE_APP_BASE_API + "/runData/seizeData/importData"
312
+  url: import.meta.env.VITE_APP_BASE_API + "/item/hkSeizureStat/importData"
292 313
 })
293 314
 
294 315
 const uploadRef = ref()
@@ -298,30 +319,30 @@ const data = reactive({
298 319
   queryParams: {
299 320
     pageNum: 1,
300 321
     pageSize: 10,
301
-    date: null,
322
+    recordDate: null,
302 323
     shift: null,
303
-    team: null
324
+    brigade: null
304 325
   },
305 326
   rules: {
306
-    date: [
327
+    recordDate: [
307 328
       { required: true, message: "日期不能为空", trigger: "blur" }
308 329
     ],
309 330
     shift: [
310 331
       { required: true, message: "班次不能为空", trigger: "blur" }
311 332
     ],
312
-    team: [
333
+    brigade: [
313 334
       { required: true, message: "当班大队不能为空", trigger: "blur" }
314 335
     ],
315
-    t1Fire: [
336
+    t1FireSource: [
316 337
       { type: "integer", message: "T1火种必须为整数", trigger: "blur" }
317 338
     ],
318 339
     t1Knife: [
319 340
       { type: "integer", message: "T1刀具必须为整数", trigger: "blur" }
320 341
     ],
321
-    t1PoliceEquipment: [
342
+    t1PoliceWeapon: [
322 343
       { type: "integer", message: "T1警械器具必须为整数", trigger: "blur" }
323 344
     ],
324
-    t1Fireworks: [
345
+    t1Firework: [
325 346
       { type: "integer", message: "T1烟花爆竹必须为整数", trigger: "blur" }
326 347
     ],
327 348
     t1LiveAnimal: [
@@ -330,7 +351,7 @@ const data = reactive({
330 351
     t1Corrosive: [
331 352
       { type: "integer", message: "T1腐蚀性物品必须为整数", trigger: "blur" }
332 353
     ],
333
-    t1Counterfeit: [
354
+    t1FakeId: [
334 355
       { type: "integer", message: "T1用假冒他必须为整数", trigger: "blur" }
335 356
     ],
336 357
     t1Explosive: [
@@ -339,25 +360,25 @@ const data = reactive({
339 360
     t1Tool: [
340 361
       { type: "integer", message: "T1工具必须为整数", trigger: "blur" }
341 362
     ],
342
-    t1Gun: [
363
+    t1GunAmmo: [
343 364
       { type: "integer", message: "T1枪支弹药必须为整数", trigger: "blur" }
344 365
     ],
345
-    t1Pornography: [
366
+    t1Illegal: [
346 367
       { type: "integer", message: "T1扫黄打非必须为整数", trigger: "blur" }
347 368
     ],
348 369
     t1Other: [
349 370
       { type: "integer", message: "T1其他必须为整数", trigger: "blur" }
350 371
     ],
351
-    t2Fire: [
372
+    t2FireSource: [
352 373
       { type: "integer", message: "T2火种必须为整数", trigger: "blur" }
353 374
     ],
354 375
     t2Knife: [
355 376
       { type: "integer", message: "T2刀具必须为整数", trigger: "blur" }
356 377
     ],
357
-    t2PoliceEquipment: [
378
+    t2PoliceWeapon: [
358 379
       { type: "integer", message: "T2警械器具必须为整数", trigger: "blur" }
359 380
     ],
360
-    t2Fireworks: [
381
+    t2Firework: [
361 382
       { type: "integer", message: "T2烟花爆竹必须为整数", trigger: "blur" }
362 383
     ],
363 384
     t2LiveAnimal: [
@@ -366,7 +387,7 @@ const data = reactive({
366 387
     t2Corrosive: [
367 388
       { type: "integer", message: "T2腐蚀性物品必须为整数", trigger: "blur" }
368 389
     ],
369
-    t2Counterfeit: [
390
+    t2FakeId: [
370 391
       { type: "integer", message: "T2用假冒他必须为整数", trigger: "blur" }
371 392
     ],
372 393
     t2Explosive: [
@@ -375,10 +396,10 @@ const data = reactive({
375 396
     t2Tool: [
376 397
       { type: "integer", message: "T2工具必须为整数", trigger: "blur" }
377 398
     ],
378
-    t2Gun: [
399
+    t2GunAmmo: [
379 400
       { type: "integer", message: "T2枪支弹药必须为整数", trigger: "blur" }
380 401
     ],
381
-    t2Pornography: [
402
+    t2Illegal: [
382 403
       { type: "integer", message: "T2扫黄打非必须为整数", trigger: "blur" }
383 404
     ],
384 405
     t2Other: [
@@ -392,18 +413,18 @@ const { queryParams, form, rules } = toRefs(data)
392 413
 /** 计算总数 */
393 414
 function calculateTotals() {
394 415
   // 计算T1总数
395
-  const t1Fields = ['t1Fire', 't1Knife', 't1PoliceEquipment', 't1Fireworks', 't1LiveAnimal', 
396
-                   't1Corrosive', 't1Counterfeit', 't1Explosive', 't1Tool', 't1Gun', 
397
-                   't1Pornography', 't1Other']
416
+  const t1Fields = ['t1FireSource', 't1Knife', 't1PoliceWeapon', 't1Firework', 't1LiveAnimal', 
417
+                   't1Corrosive', 't1FakeId', 't1Explosive', 't1Tool', 't1GunAmmo', 
418
+                   't1Illegal', 't1Other']
398 419
   const t1Total = t1Fields.reduce((sum, field) => {
399 420
     return sum + (form.value[field] || 0)
400 421
   }, 0)
401 422
   form.value.t1Total = t1Total
402 423
   
403 424
   // 计算T2总数
404
-  const t2Fields = ['t2Fire', 't2Knife', 't2PoliceEquipment', 't2Fireworks', 't2LiveAnimal', 
405
-                   't2Corrosive', 't2Counterfeit', 't2Explosive', 't2Tool', 't2Gun', 
406
-                   't2Pornography', 't2Other']
425
+  const t2Fields = ['t2FireSource', 't2Knife', 't2PoliceWeapon', 't2Firework', 't2LiveAnimal', 
426
+                   't2Corrosive', 't2FakeId', 't2Explosive', 't2Tool', 't2GunAmmo', 
427
+                   't2Illegal', 't2Other']
407 428
   const t2Total = t2Fields.reduce((sum, field) => {
408 429
     return sum + (form.value[field] || 0)
409 430
   }, 0)
@@ -433,35 +454,36 @@ function cancel() {
433 454
 function reset() {
434 455
   form.value = {
435 456
     id: null,
436
-    date: null,
457
+    recordDate: null,
437 458
     shift: null,
438
-    team: null,
459
+    brigade: null,
460
+    brigadeName: null,
439 461
     // T1区域数据
440
-    t1Fire: null,
462
+    t1FireSource: null,
441 463
     t1Knife: null,
442
-    t1PoliceEquipment: null,
443
-    t1Fireworks: null,
464
+    t1PoliceWeapon: null,
465
+    t1Firework: null,
444 466
     t1LiveAnimal: null,
445 467
     t1Corrosive: null,
446
-    t1Counterfeit: null,
468
+    t1FakeId: null,
447 469
     t1Explosive: null,
448 470
     t1Tool: null,
449
-    t1Gun: null,
450
-    t1Pornography: null,
471
+    t1GunAmmo: null,
472
+    t1Illegal: null,
451 473
     t1Other: null,
452 474
     t1Total: null,
453 475
     // T2区域数据
454
-    t2Fire: null,
476
+    t2FireSource: null,
455 477
     t2Knife: null,
456
-    t2PoliceEquipment: null,
457
-    t2Fireworks: null,
478
+    t2PoliceWeapon: null,
479
+    t2Firework: null,
458 480
     t2LiveAnimal: null,
459 481
     t2Corrosive: null,
460
-    t2Counterfeit: null,
482
+    t2FakeId: null,
461 483
     t2Explosive: null,
462 484
     t2Tool: null,
463
-    t2Gun: null,
464
-    t2Pornography: null,
485
+    t2GunAmmo: null,
486
+    t2Illegal: null,
465 487
     t2Other: null,
466 488
     t2Total: null,
467 489
     total: null
@@ -553,7 +575,7 @@ function handleExport() {
553 575
     })
554 576
   )
555 577
   
556
-  proxy.download('/runData/seizeData/export', filteredParams, `seizeData_${new Date().getTime()}.xlsx`)
578
+  proxy.download('/item/hkSeizureStat/export', filteredParams, `seizeData_${new Date().getTime()}.xlsx`)
557 579
 }
558 580
 
559 581
 /** 导入按钮操作 */
@@ -564,7 +586,7 @@ function handleImport() {
564 586
 
565 587
 /** 下载模板操作 */
566 588
 function importTemplate() {
567
-  proxy.download('/runData/seizeData/importTemplate', {
589
+  proxy.download('/item/hkSeizureStat/importTemplate', {
568 590
   }, `查获数据导入模板_${new Date().getTime()}.xlsx`)
569 591
 }
570 592
 
@@ -588,4 +610,15 @@ function submitFileForm() {
588 610
 }
589 611
 
590 612
 getList()
613
+getDeptList()
614
+
615
+function getDeptList() {
616
+  listDept({}).then(response => {
617
+    const deptList = response.data || []
618
+    brigadeOptions.value = deptList.filter(item => item.deptType === 'BRIGADE' && [311, 314, 315].includes(item.deptId)).map(item => ({
619
+      value: item.deptId,
620
+      label: item.deptName
621
+    }))
622
+  })
623
+}
591 624
 </script>