Преглед изворни кода

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

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

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

@@ -2,12 +2,14 @@
2
   <div class="app-container">
2
   <div class="app-container">
3
     <!-- 查询条件 -->
3
     <!-- 查询条件 -->
4
     <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
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
           style="width: 200px" />
7
           style="width: 200px" />
8
       </el-form-item>
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
       </el-form-item>
13
       </el-form-item>
12
       <el-form-item>
14
       <el-form-item>
13
         <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
15
         <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
@@ -21,10 +23,7 @@
21
         <el-button type="primary" plain icon="Plus" @click="handleAdd"
23
         <el-button type="primary" plain icon="Plus" @click="handleAdd"
22
           v-hasPermi="['runData:collectWaitingAreaData:add']">新增</el-button>
24
           v-hasPermi="['runData:collectWaitingAreaData:add']">新增</el-button>
23
       </el-col>
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
       <el-col :span="1.5">
27
       <el-col :span="1.5">
29
         <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"
28
         <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"
30
           v-hasPermi="['runData:collectWaitingAreaData:remove']">删除</el-button>
29
           v-hasPermi="['runData:collectWaitingAreaData:remove']">删除</el-button>
@@ -43,29 +42,29 @@
43
     <!-- 数据表格 -->
42
     <!-- 数据表格 -->
44
     <el-table v-loading="loading" :data="collectWaitingAreaDataList" @selection-change="handleSelectionChange">
43
     <el-table v-loading="loading" :data="collectWaitingAreaDataList" @selection-change="handleSelectionChange">
45
       <el-table-column type="selection" width="55" align="center" />
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
       <!-- T1区域数据 -->
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
       <!-- T2区域数据 -->
56
       <!-- T2区域数据 -->
58
-      <el-table-column label="T2国内火种" align="center" prop="t2DomesticFire" />
57
+      <el-table-column label="T2国内火种" align="center" prop="t2DomesticFireSource" />
59
       <el-table-column label="T2国内液态物品" align="center" prop="t2DomesticLiquid" />
58
       <el-table-column label="T2国内液态物品" align="center" prop="t2DomesticLiquid" />
60
       <el-table-column label="T2国内其他物品" align="center" prop="t2DomesticOther" />
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
       <el-table-column label="T2中转液态物品" align="center" prop="t2TransitLiquid" />
64
       <el-table-column label="T2中转液态物品" align="center" prop="t2TransitLiquid" />
66
       <el-table-column label="T2中转其他物品" align="center" prop="t2TransitOther" />
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
         <template #default="scope">
68
         <template #default="scope">
70
           <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
69
           <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
71
             v-hasPermi="['runData:collectWaitingAreaData:edit']">修改</el-button>
70
             v-hasPermi="['runData:collectWaitingAreaData:edit']">修改</el-button>
@@ -79,88 +78,91 @@
79
       v-model:limit="queryParams.pageSize" @pagination="getList" />
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
       <el-form ref="collectWaitingAreaDataRef" :model="form" :rules="rules" label-width="140px">
82
       <el-form ref="collectWaitingAreaDataRef" :model="form" :rules="rules" label-width="140px">
84
         <el-row :gutter="20">
83
         <el-row :gutter="20">
85
           <el-col :span="12">
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
                 style="width: 100%" />
87
                 style="width: 100%" />
89
             </el-form-item>
88
             </el-form-item>
90
           </el-col>
89
           </el-col>
91
           <el-col :span="12">
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
             </el-form-item>
94
             </el-form-item>
95
           </el-col>
95
           </el-col>
96
         </el-row>
96
         </el-row>
97
-        
97
+
98
         <!-- T1区域 -->
98
         <!-- T1区域 -->
99
         <el-divider content-position="left">T1区域数据</el-divider>
99
         <el-divider content-position="left">T1区域数据</el-divider>
100
         <el-row :gutter="20">
100
         <el-row :gutter="20">
101
           <el-col :span="12">
101
           <el-col :span="12">
102
             <h4 style="margin-bottom: 15px;">T1A区</h4>
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
             </el-form-item>
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
             </el-form-item>
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
             </el-form-item>
111
             </el-form-item>
112
           </el-col>
112
           </el-col>
113
           <el-col :span="12">
113
           <el-col :span="12">
114
             <h4 style="margin-bottom: 15px;">T1B区</h4>
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
             </el-form-item>
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
             </el-form-item>
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
             </el-form-item>
123
             </el-form-item>
124
           </el-col>
124
           </el-col>
125
         </el-row>
125
         </el-row>
126
-        
126
+
127
         <!-- T2区域 -->
127
         <!-- T2区域 -->
128
         <el-divider content-position="left">T2区域数据</el-divider>
128
         <el-divider content-position="left">T2区域数据</el-divider>
129
         <el-row :gutter="20">
129
         <el-row :gutter="20">
130
           <el-col :span="8">
130
           <el-col :span="8">
131
             <h4 style="margin-bottom: 15px;">T2国内</h4>
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
             </el-form-item>
135
             </el-form-item>
135
             <el-form-item label="T2国内液态物品" prop="t2DomesticLiquid">
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
             </el-form-item>
138
             </el-form-item>
138
             <el-form-item label="T2国内其他物品" prop="t2DomesticOther">
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
             </el-form-item>
141
             </el-form-item>
141
           </el-col>
142
           </el-col>
142
           <el-col :span="8">
143
           <el-col :span="8">
143
             <h4 style="margin-bottom: 15px;">T2国际</h4>
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
             </el-form-item>
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
             </el-form-item>
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
             </el-form-item>
153
             </el-form-item>
153
           </el-col>
154
           </el-col>
154
           <el-col :span="8">
155
           <el-col :span="8">
155
             <h4 style="margin-bottom: 15px;">T2中转</h4>
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
             </el-form-item>
160
             </el-form-item>
159
             <el-form-item label="T2中转液态物品" prop="t2TransitLiquid">
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
             </el-form-item>
163
             </el-form-item>
162
             <el-form-item label="T2中转其他物品" prop="t2TransitOther">
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
             </el-form-item>
166
             </el-form-item>
165
           </el-col>
167
           </el-col>
166
         </el-row>
168
         </el-row>
@@ -229,7 +231,7 @@ const upload = reactive({
229
   // 设置上传的请求头部
231
   // 设置上传的请求头部
230
   headers: { Authorization: "Bearer " + getToken() },
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
 const uploadRef = ref()
237
 const uploadRef = ref()
@@ -239,35 +241,35 @@ const data = reactive({
239
   queryParams: {
241
   queryParams: {
240
     pageNum: 1,
242
     pageNum: 1,
241
     pageSize: 10,
243
     pageSize: 10,
242
-    date: null,
243
-    timePeriod: null
244
+    recordDate: null,
245
+    timeSlot: null
244
   },
246
   },
245
   rules: {
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
       { type: "integer", message: "T1A区火种必须为整数", trigger: "blur" }
255
       { type: "integer", message: "T1A区火种必须为整数", trigger: "blur" }
254
     ],
256
     ],
255
-    t1aLiquid: [
257
+    t1ALiquid: [
256
       { type: "integer", message: "T1A区液态物品必须为整数", trigger: "blur" }
258
       { type: "integer", message: "T1A区液态物品必须为整数", trigger: "blur" }
257
     ],
259
     ],
258
-    t1aOther: [
260
+    t1AOther: [
259
       { type: "integer", message: "T1A区其他物品必须为整数", trigger: "blur" }
261
       { type: "integer", message: "T1A区其他物品必须为整数", trigger: "blur" }
260
     ],
262
     ],
261
-    t1bFire: [
263
+    t1BFireSource: [
262
       { type: "integer", message: "T1B区火种必须为整数", trigger: "blur" }
264
       { type: "integer", message: "T1B区火种必须为整数", trigger: "blur" }
263
     ],
265
     ],
264
-    t1bLiquid: [
266
+    t1BLiquid: [
265
       { type: "integer", message: "T1B区液态物品必须为整数", trigger: "blur" }
267
       { type: "integer", message: "T1B区液态物品必须为整数", trigger: "blur" }
266
     ],
268
     ],
267
-    t1bOther: [
269
+    t1BOther: [
268
       { type: "integer", message: "T1B区其他物品必须为整数", trigger: "blur" }
270
       { type: "integer", message: "T1B区其他物品必须为整数", trigger: "blur" }
269
     ],
271
     ],
270
-    t2DomesticFire: [
272
+    t2DomesticFireSource: [
271
       { type: "integer", message: "T2国内火种必须为整数", trigger: "blur" }
273
       { type: "integer", message: "T2国内火种必须为整数", trigger: "blur" }
272
     ],
274
     ],
273
     t2DomesticLiquid: [
275
     t2DomesticLiquid: [
@@ -276,16 +278,16 @@ const data = reactive({
276
     t2DomesticOther: [
278
     t2DomesticOther: [
277
       { type: "integer", message: "T2国内其他物品必须为整数", trigger: "blur" }
279
       { type: "integer", message: "T2国内其他物品必须为整数", trigger: "blur" }
278
     ],
280
     ],
279
-    t2InternationalFire: [
281
+    t2IntlFireSource: [
280
       { type: "integer", message: "T2国际火种必须为整数", trigger: "blur" }
282
       { type: "integer", message: "T2国际火种必须为整数", trigger: "blur" }
281
     ],
283
     ],
282
-    t2InternationalLiquid: [
284
+    t2IntlLiquid: [
283
       { type: "integer", message: "T2国际液态物品必须为整数", trigger: "blur" }
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
       { type: "integer", message: "T2中转火种必须为整数", trigger: "blur" }
291
       { type: "integer", message: "T2中转火种必须为整数", trigger: "blur" }
290
     ],
292
     ],
291
     t2TransitLiquid: [
293
     t2TransitLiquid: [
@@ -302,7 +304,11 @@ const { queryParams, form, rules } = toRefs(data)
302
 /** 查询候检区数据列表 */
304
 /** 查询候检区数据列表 */
303
 function getList() {
305
 function getList() {
304
   loading.value = true
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
     collectWaitingAreaDataList.value = response.rows
312
     collectWaitingAreaDataList.value = response.rows
307
     total.value = response.total
313
     total.value = response.total
308
     loading.value = false
314
     loading.value = false
@@ -319,23 +325,23 @@ function cancel() {
319
 function reset() {
325
 function reset() {
320
   form.value = {
326
   form.value = {
321
     id: null,
327
     id: null,
322
-    date: null,
323
-    timePeriod: null,
328
+    recordDate: null,
329
+    timeSlot: null,
324
     // T1区域数据
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
     // T2区域数据
337
     // T2区域数据
332
-    t2DomesticFire: null,
338
+    t2DomesticFireSource: null,
333
     t2DomesticLiquid: null,
339
     t2DomesticLiquid: null,
334
     t2DomesticOther: null,
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
     t2TransitLiquid: null,
345
     t2TransitLiquid: null,
340
     t2TransitOther: null
346
     t2TransitOther: null
341
   }
347
   }
@@ -373,7 +379,12 @@ function handleUpdate(row) {
373
   reset()
379
   reset()
374
   const _id = row.id || ids.value
380
   const _id = row.id || ids.value
375
   getCollectWaitingAreaData(_id).then(response => {
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
     open.value = true
388
     open.value = true
378
     title.value = "修改候检区数据"
389
     title.value = "修改候检区数据"
379
   })
390
   })
@@ -383,14 +394,19 @@ function handleUpdate(row) {
383
 function submitForm() {
394
 function submitForm() {
384
   proxy.$refs["collectWaitingAreaDataRef"].validate(valid => {
395
   proxy.$refs["collectWaitingAreaDataRef"].validate(valid => {
385
     if (valid) {
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
           proxy.$modal.msgSuccess("修改成功")
404
           proxy.$modal.msgSuccess("修改成功")
389
           open.value = false
405
           open.value = false
390
           getList()
406
           getList()
391
         })
407
         })
392
       } else {
408
       } else {
393
-        addCollectWaitingAreaData(form.value).then(response => {
409
+        addCollectWaitingAreaData(submitData).then(response => {
394
           proxy.$modal.msgSuccess("新增成功")
410
           proxy.$modal.msgSuccess("新增成功")
395
           open.value = false
411
           open.value = false
396
           getList()
412
           getList()
@@ -422,8 +438,8 @@ function handleExport() {
422
       return value !== null
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
 function importTemplate() {
452
 function importTemplate() {
437
-  proxy.download('/runData/collectWaitingAreaData/importTemplate', {
453
+  proxy.download('/item/hkPendingConfiscate/importTemplate', {
438
   }, `候检区数据导入模板_${new Date().getTime()}.xlsx`)
454
   }, `候检区数据导入模板_${new Date().getTime()}.xlsx`)
439
 }
455
 }
440
 
456
 

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

@@ -3,7 +3,7 @@
3
     <!-- 查询条件 -->
3
     <!-- 查询条件 -->
4
     <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
4
     <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
5
       <el-form-item label="日期" prop="date">
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
           style="width: 200px" />
7
           style="width: 200px" />
8
       </el-form-item>
8
       </el-form-item>
9
       <el-form-item>
9
       <el-form-item>
@@ -18,10 +18,7 @@
18
         <el-button type="primary" plain icon="Plus" @click="handleAdd"
18
         <el-button type="primary" plain icon="Plus" @click="handleAdd"
19
           v-hasPermi="['runData:dailyRunData:add']">新增</el-button>
19
           v-hasPermi="['runData:dailyRunData:add']">新增</el-button>
20
       </el-col>
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
       <el-col :span="1.5">
22
       <el-col :span="1.5">
26
         <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"
23
         <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"
27
           v-hasPermi="['runData:dailyRunData:remove']">删除</el-button>
24
           v-hasPermi="['runData:dailyRunData:remove']">删除</el-button>
@@ -40,31 +37,30 @@
40
     <!-- 数据表格 -->
37
     <!-- 数据表格 -->
41
     <el-table v-loading="loading" :data="dailyRunDataList" @selection-change="handleSelectionChange">
38
     <el-table v-loading="loading" :data="dailyRunDataList" @selection-change="handleSelectionChange">
42
       <el-table-column type="selection" width="55" align="center" />
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
       <el-table-column label="贵宾" align="center" prop="vip" />
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
       <el-table-column label="贵宾通道" align="center" prop="vipChannel" />
46
       <el-table-column label="贵宾通道" align="center" prop="vipChannel" />
50
       <el-table-column label="T1回流通道" align="center" prop="t1ReturnChannel" />
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
       <el-table-column label="T2回流通道" align="center" prop="t2ReturnChannel" />
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
       <el-table-column label="国内货站" align="center" prop="domesticCargo" />
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
         <template #default="scope">
64
         <template #default="scope">
69
           <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
65
           <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
70
             v-hasPermi="['runData:dailyRunData:edit']">修改</el-button>
66
             v-hasPermi="['runData:dailyRunData:edit']">修改</el-button>
@@ -80,84 +76,86 @@
80
     <!-- 添加或修改日常运行数据对话框 -->
76
     <!-- 添加或修改日常运行数据对话框 -->
81
     <el-dialog :title="title" v-model="open" width="800px" append-to-body>
77
     <el-dialog :title="title" v-model="open" width="800px" append-to-body>
82
       <el-form ref="dailyRunDataRef" :model="form" :rules="rules" label-width="120px">
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
             style="width: 100%" />
81
             style="width: 100%" />
86
         </el-form-item>
82
         </el-form-item>
87
-        
83
+
88
         <el-row :gutter="20">
84
         <el-row :gutter="20">
89
           <el-col :span="12">
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
             </el-form-item>
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
             </el-form-item>
91
             </el-form-item>
96
             <el-form-item label="贵宾" prop="vip">
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
             </el-form-item>
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
             </el-form-item>
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
             </el-form-item>
102
             </el-form-item>
105
             <el-form-item label="贵宾通道" prop="vipChannel">
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
             </el-form-item>
105
             </el-form-item>
108
             <el-form-item label="T1回流通道" prop="t1ReturnChannel">
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
             </el-form-item>
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
             </el-form-item>
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
             </el-form-item>
114
             </el-form-item>
117
             <el-form-item label="T2回流通道" prop="t2ReturnChannel">
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
             </el-form-item>
120
             </el-form-item>
121
+
120
           </el-col>
122
           </el-col>
121
-          
123
+
122
           <el-col :span="12">
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
             </el-form-item>
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
             </el-form-item>
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
             </el-form-item>
133
             </el-form-item>
135
             <el-form-item label="国内货站" prop="domesticCargo">
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
             </el-form-item>
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
             </el-form-item>
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
             </el-form-item>
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
             </el-form-item>
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
             </el-form-item>
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
             </el-form-item>
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
             </el-form-item>
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
             </el-form-item>
159
             </el-form-item>
162
           </el-col>
160
           </el-col>
163
         </el-row>
161
         </el-row>
@@ -226,7 +224,7 @@ const upload = reactive({
226
   // 设置上传的请求头部
224
   // 设置上传的请求头部
227
   headers: { Authorization: "Bearer " + getToken() },
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
 const uploadRef = ref()
230
 const uploadRef = ref()
@@ -236,17 +234,17 @@ const data = reactive({
236
   queryParams: {
234
   queryParams: {
237
     pageNum: 1,
235
     pageNum: 1,
238
     pageSize: 10,
236
     pageSize: 10,
239
-    date: null
237
+    recordDate: null
240
   },
238
   },
241
   rules: {
239
   rules: {
242
-    date: [
240
+    recordDate: [
243
       { required: true, message: "日期不能为空", trigger: "blur" }
241
       { required: true, message: "日期不能为空", trigger: "blur" }
244
     ],
242
     ],
245
-    areaA: [
243
+    azone: [
246
       { required: true, message: "A区数据不能为空", trigger: "blur" },
244
       { required: true, message: "A区数据不能为空", trigger: "blur" },
247
       { type: "integer", message: "A区数据必须为整数", trigger: "blur" }
245
       { type: "integer", message: "A区数据必须为整数", trigger: "blur" }
248
     ],
246
     ],
249
-    areaB: [
247
+    bzone: [
250
       { required: true, message: "B区数据不能为空", trigger: "blur" },
248
       { required: true, message: "B区数据不能为空", trigger: "blur" },
251
       { type: "integer", message: "B区数据必须为整数", trigger: "blur" }
249
       { type: "integer", message: "B区数据必须为整数", trigger: "blur" }
252
     ],
250
     ],
@@ -254,11 +252,11 @@ const data = reactive({
254
       { required: true, message: "贵宾数据不能为空", trigger: "blur" },
252
       { required: true, message: "贵宾数据不能为空", trigger: "blur" },
255
       { type: "integer", message: "贵宾数据必须为整数", trigger: "blur" }
253
       { type: "integer", message: "贵宾数据必须为整数", trigger: "blur" }
256
     ],
254
     ],
257
-    domesticTravelInspection: [
255
+    domesticPassenger: [
258
       { required: true, message: "国内旅检数据不能为空", trigger: "blur" },
256
       { required: true, message: "国内旅检数据不能为空", trigger: "blur" },
259
       { type: "integer", message: "国内旅检数据必须为整数", trigger: "blur" }
257
       { type: "integer", message: "国内旅检数据必须为整数", trigger: "blur" }
260
     ],
258
     ],
261
-    internationalTravelInspection: [
259
+    intlPassenger: [
262
       { required: true, message: "国际旅检数据不能为空", trigger: "blur" },
260
       { required: true, message: "国际旅检数据不能为空", trigger: "blur" },
263
       { type: "integer", message: "国际旅检数据必须为整数", trigger: "blur" }
261
       { type: "integer", message: "国际旅检数据必须为整数", trigger: "blur" }
264
     ],
262
     ],
@@ -270,11 +268,11 @@ const data = reactive({
270
       { required: true, message: "T1回流通道数据不能为空", trigger: "blur" },
268
       { required: true, message: "T1回流通道数据不能为空", trigger: "blur" },
271
       { type: "integer", message: "T1回流通道数据必须为整数", trigger: "blur" }
269
       { type: "integer", message: "T1回流通道数据必须为整数", trigger: "blur" }
272
     ],
270
     ],
273
-    t1Inspection: [
271
+    t1LuggageCheck: [
274
       { required: true, message: "T1行检数据不能为空", trigger: "blur" },
272
       { required: true, message: "T1行检数据不能为空", trigger: "blur" },
275
       { type: "integer", message: "T1行检数据必须为整数", trigger: "blur" }
273
       { type: "integer", message: "T1行检数据必须为整数", trigger: "blur" }
276
     ],
274
     ],
277
-    firstFloorStaff: [
275
+    floor1Staff: [
278
       { required: true, message: "一楼员工数据不能为空", trigger: "blur" },
276
       { required: true, message: "一楼员工数据不能为空", trigger: "blur" },
279
       { type: "integer", message: "一楼员工数据必须为整数", trigger: "blur" }
277
       { type: "integer", message: "一楼员工数据必须为整数", trigger: "blur" }
280
     ],
278
     ],
@@ -282,19 +280,19 @@ const data = reactive({
282
       { required: true, message: "T2回流通道数据不能为空", trigger: "blur" },
280
       { required: true, message: "T2回流通道数据不能为空", trigger: "blur" },
283
       { type: "integer", message: "T2回流通道数据必须为整数", trigger: "blur" }
281
       { type: "integer", message: "T2回流通道数据必须为整数", trigger: "blur" }
284
     ],
282
     ],
285
-    t2Inspection: [
283
+    t2LuggageCheck: [
286
       { required: true, message: "T2行检数据不能为空", trigger: "blur" },
284
       { required: true, message: "T2行检数据不能为空", trigger: "blur" },
287
       { type: "integer", message: "T2行检数据必须为整数", trigger: "blur" }
285
       { type: "integer", message: "T2行检数据必须为整数", trigger: "blur" }
288
     ],
286
     ],
289
-    thirdFloor: [
287
+    floor3EastStaff: [
290
       { required: true, message: "三楼数据不能为空", trigger: "blur" },
288
       { required: true, message: "三楼数据不能为空", trigger: "blur" },
291
       { type: "integer", message: "三楼数据必须为整数", trigger: "blur" }
289
       { type: "integer", message: "三楼数据必须为整数", trigger: "blur" }
292
     ],
290
     ],
293
-    firstFloor: [
291
+    floor1CenterStaff: [
294
       { required: true, message: "一楼数据不能为空", trigger: "blur" },
292
       { required: true, message: "一楼数据不能为空", trigger: "blur" },
295
       { type: "integer", message: "一楼数据必须为整数", trigger: "blur" }
293
       { type: "integer", message: "一楼数据必须为整数", trigger: "blur" }
296
     ],
294
     ],
297
-    basementFloor: [
295
+    floorB1WestStaff: [
298
       { required: true, message: "负一楼数据不能为空", trigger: "blur" },
296
       { required: true, message: "负一楼数据不能为空", trigger: "blur" },
299
       { type: "integer", message: "负一楼数据必须为整数", trigger: "blur" }
297
       { type: "integer", message: "负一楼数据必须为整数", trigger: "blur" }
300
     ],
298
     ],
@@ -302,36 +300,33 @@ const data = reactive({
302
       { required: true, message: "国内货站数据不能为空", trigger: "blur" },
300
       { required: true, message: "国内货站数据不能为空", trigger: "blur" },
303
       { type: "integer", message: "国内货站数据必须为整数", trigger: "blur" }
301
       { type: "integer", message: "国内货站数据必须为整数", trigger: "blur" }
304
     ],
302
     ],
305
-    gate: [
303
+    domesticGate: [
306
       { required: true, message: "道口数据不能为空", trigger: "blur" },
304
       { required: true, message: "道口数据不能为空", trigger: "blur" },
307
       { type: "integer", message: "道口数据必须为整数", trigger: "blur" }
305
       { type: "integer", message: "道口数据必须为整数", trigger: "blur" }
308
     ],
306
     ],
309
-    southVehicleInspection: [
307
+    southVehicleCheck: [
310
       { required: true, message: "南侧车检数据不能为空", trigger: "blur" },
308
       { required: true, message: "南侧车检数据不能为空", trigger: "blur" },
311
       { type: "integer", message: "南侧车检数据必须为整数", trigger: "blur" }
309
       { type: "integer", message: "南侧车检数据必须为整数", trigger: "blur" }
312
     ],
310
     ],
313
-    explosionProof: [
311
+    domesticBomb: [
314
       { required: true, message: "防爆数据不能为空", trigger: "blur" },
312
       { required: true, message: "防爆数据不能为空", trigger: "blur" },
315
       { type: "integer", message: "防爆数据必须为整数", trigger: "blur" }
313
       { type: "integer", message: "防爆数据必须为整数", trigger: "blur" }
316
     ],
314
     ],
317
-    internationalCargo: [
315
+    intlCargo: [
318
       { required: true, message: "国际货站数据不能为空", trigger: "blur" },
316
       { required: true, message: "国际货站数据不能为空", trigger: "blur" },
319
       { type: "integer", message: "国际货站数据必须为整数", trigger: "blur" }
317
       { type: "integer", message: "国际货站数据必须为整数", trigger: "blur" }
320
     ],
318
     ],
321
-    gate2: [
319
+    intlGate: [
322
       { required: true, message: "道口数据不能为空", trigger: "blur" },
320
       { required: true, message: "道口数据不能为空", trigger: "blur" },
323
       { type: "integer", message: "道口数据必须为整数", trigger: "blur" }
321
       { type: "integer", message: "道口数据必须为整数", trigger: "blur" }
324
     ],
322
     ],
325
-    northVehicleInspection: [
323
+    northVehicleCheck: [
326
       { required: true, message: "北侧车检数据不能为空", trigger: "blur" },
324
       { required: true, message: "北侧车检数据不能为空", trigger: "blur" },
327
       { type: "integer", message: "北侧车检数据必须为整数", trigger: "blur" }
325
       { type: "integer", message: "北侧车检数据必须为整数", trigger: "blur" }
328
     ],
326
     ],
329
-    explosionProof2: [
327
+    intlBomb: [
330
       { required: true, message: "防爆数据不能为空", trigger: "blur" },
328
       { required: true, message: "防爆数据不能为空", trigger: "blur" },
331
       { type: "integer", message: "防爆数据必须为整数", trigger: "blur" }
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
 function reset() {
353
 function reset() {
359
   form.value = {
354
   form.value = {
360
     id: null,
355
     id: null,
361
-    date: null,
362
-    areaA: null,
363
-    areaB: null,
356
+    recordDate: null,
357
+    azone: null,
358
+    bzone: null,
364
     vip: null,
359
     vip: null,
365
-    domesticTravelInspection: null,
366
-    internationalTravelInspection: null,
360
+    domesticPassenger: null,
361
+    intlPassenger: null,
367
     vipChannel: null,
362
     vipChannel: null,
368
     t1ReturnChannel: null,
363
     t1ReturnChannel: null,
369
-    t1Inspection: null,
370
-    firstFloorStaff: null,
364
+    t1LuggageCheck: null,
365
+    floor1Staff: null,
371
     t2ReturnChannel: null,
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
     domesticCargo: null,
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
   proxy.resetForm("dailyRunDataRef")
381
   proxy.resetForm("dailyRunDataRef")
387
 }
382
 }
@@ -466,8 +461,8 @@ function handleExport() {
466
       return value !== null
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
 function importTemplate() {
475
 function importTemplate() {
481
-  proxy.download('/runData/dailyRunData/importTemplate', {
476
+  proxy.download('/item/hkOperationData/importTemplate', {
482
   }, `日常运行数据导入模板_${new Date().getTime()}.xlsx`)
477
   }, `日常运行数据导入模板_${new Date().getTime()}.xlsx`)
483
 }
478
 }
484
 
479
 

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

@@ -2,12 +2,22 @@
2
   <div class="app-container">
2
   <div class="app-container">
3
     <!-- 查询条件 -->
3
     <!-- 查询条件 -->
4
     <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
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
           style="width: 200px" />
7
           style="width: 200px" />
8
       </el-form-item>
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
       </el-form-item>
21
       </el-form-item>
12
       <el-form-item>
22
       <el-form-item>
13
         <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
23
         <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
@@ -21,10 +31,7 @@
21
         <el-button type="primary" plain icon="Plus" @click="handleAdd"
31
         <el-button type="primary" plain icon="Plus" @click="handleAdd"
22
           v-hasPermi="['runData:discouragePowerBanksData:add']">新增</el-button>
32
           v-hasPermi="['runData:discouragePowerBanksData:add']">新增</el-button>
23
       </el-col>
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
       <el-col :span="1.5">
35
       <el-col :span="1.5">
29
         <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"
36
         <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"
30
           v-hasPermi="['runData:discouragePowerBanksData:remove']">删除</el-button>
37
           v-hasPermi="['runData:discouragePowerBanksData:remove']">删除</el-button>
@@ -43,26 +50,26 @@
43
     <!-- 数据表格 -->
50
     <!-- 数据表格 -->
44
     <el-table v-loading="loading" :data="discouragePowerBanksDataList" @selection-change="handleSelectionChange">
51
     <el-table v-loading="loading" :data="discouragePowerBanksDataList" @selection-change="handleSelectionChange">
45
       <el-table-column type="selection" width="55" align="center" />
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
       <!-- T1区域数据 -->
56
       <!-- T1区域数据 -->
50
       <el-table-column label="T1召回充电宝" align="center" prop="t1Recall" />
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
       <el-table-column label="T1邮寄" align="center" prop="t1Mail" />
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
       <!-- T2区域数据 -->
65
       <!-- T2区域数据 -->
59
       <el-table-column label="T2召回充电宝" align="center" prop="t2Recall" />
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
       <el-table-column label="T2邮寄" align="center" prop="t2Mail" />
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
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
74
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
68
         <template #default="scope">
75
         <template #default="scope">
@@ -82,14 +89,23 @@
82
       <el-form ref="discouragePowerBanksDataRef" :model="form" :rules="rules" label-width="120px">
89
       <el-form ref="discouragePowerBanksDataRef" :model="form" :rules="rules" label-width="120px">
83
         <el-row :gutter="20">
90
         <el-row :gutter="20">
84
           <el-col :span="12">
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
                 style="width: 100%" />
94
                 style="width: 100%" />
88
             </el-form-item>
95
             </el-form-item>
89
           </el-col>
96
           </el-col>
90
           <el-col :span="12">
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
             </el-form-item>
109
             </el-form-item>
94
           </el-col>
110
           </el-col>
95
         </el-row>
111
         </el-row>
@@ -99,27 +115,27 @@
99
         <el-row :gutter="20">
115
         <el-row :gutter="20">
100
           <el-col :span="12">
116
           <el-col :span="12">
101
             <el-form-item label="T1召回充电宝" prop="t1Recall">
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
             </el-form-item>
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
             </el-form-item>
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
             </el-form-item>
125
             </el-form-item>
113
           </el-col>
126
           </el-col>
114
           <el-col :span="12">
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
             <el-form-item label="T1邮寄" prop="t1Mail">
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
             </el-form-item>
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
             </el-form-item>
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
             </el-form-item>
139
             </el-form-item>
124
           </el-col>
140
           </el-col>
125
         </el-row>
141
         </el-row>
@@ -129,27 +145,27 @@
129
         <el-row :gutter="20">
145
         <el-row :gutter="20">
130
           <el-col :span="12">
146
           <el-col :span="12">
131
             <el-form-item label="T2召回充电宝" prop="t2Recall">
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
             </el-form-item>
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
             </el-form-item>
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
             </el-form-item>
155
             </el-form-item>
143
           </el-col>
156
           </el-col>
144
           <el-col :span="12">
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
             <el-form-item label="T2邮寄" prop="t2Mail">
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
             </el-form-item>
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
             </el-form-item>
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
             </el-form-item>
169
             </el-form-item>
154
           </el-col>
170
           </el-col>
155
         </el-row>
171
         </el-row>
@@ -218,7 +234,7 @@ const upload = reactive({
218
   // 设置上传的请求头部
234
   // 设置上传的请求头部
219
   headers: { Authorization: "Bearer " + getToken() },
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
 const uploadRef = ref()
240
 const uploadRef = ref()
@@ -228,56 +244,56 @@ const data = reactive({
228
   queryParams: {
244
   queryParams: {
229
     pageNum: 1,
245
     pageNum: 1,
230
     pageSize: 10,
246
     pageSize: 10,
231
-    date: null,
232
-    timePeriod: null
247
+    recordDate: null,
248
+    timeSlot: null
233
   },
249
   },
234
   rules: {
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
     t1Recall: [
257
     t1Recall: [
242
       { type: "integer", message: "T1召回充电宝必须为整数", trigger: "blur" }
258
       { type: "integer", message: "T1召回充电宝必须为整数", trigger: "blur" }
243
     ],
259
     ],
244
-    t1No3C: [
260
+    t1No3c: [
245
       { type: "integer", message: "T1无3C标识必须为整数", trigger: "blur" }
261
       { type: "integer", message: "T1无3C标识必须为整数", trigger: "blur" }
246
     ],
262
     ],
247
-    t1Unclear: [
263
+    t1UnclearMark: [
248
       { type: "integer", message: "T1标识不清必须为整数", trigger: "blur" }
264
       { type: "integer", message: "T1标识不清必须为整数", trigger: "blur" }
249
     ],
265
     ],
250
-    t1OverSize: [
266
+    t1ExcessQty: [
251
       { type: "integer", message: "T1超规数量必须为整数", trigger: "blur" }
267
       { type: "integer", message: "T1超规数量必须为整数", trigger: "blur" }
252
     ],
268
     ],
253
     t1Mail: [
269
     t1Mail: [
254
       { type: "integer", message: "T1邮寄必须为整数", trigger: "blur" }
270
       { type: "integer", message: "T1邮寄必须为整数", trigger: "blur" }
255
     ],
271
     ],
256
-    t1SelfAbandon: [
272
+    t1Abandon: [
257
       { type: "integer", message: "T1自弃必须为整数", trigger: "blur" }
273
       { type: "integer", message: "T1自弃必须为整数", trigger: "blur" }
258
     ],
274
     ],
259
-    t1Temporary: [
275
+    t1TempStore: [
260
       { type: "integer", message: "T1暂存必须为整数", trigger: "blur" }
276
       { type: "integer", message: "T1暂存必须为整数", trigger: "blur" }
261
     ],
277
     ],
262
     t2Recall: [
278
     t2Recall: [
263
       { type: "integer", message: "T2召回充电宝必须为整数", trigger: "blur" }
279
       { type: "integer", message: "T2召回充电宝必须为整数", trigger: "blur" }
264
     ],
280
     ],
265
-    t2No3C: [
281
+    t2No3c: [
266
       { type: "integer", message: "T2无3C标识必须为整数", trigger: "blur" }
282
       { type: "integer", message: "T2无3C标识必须为整数", trigger: "blur" }
267
     ],
283
     ],
268
-    t2Unclear: [
284
+    t2UnclearMark: [
269
       { type: "integer", message: "T2标识不清必须为整数", trigger: "blur" }
285
       { type: "integer", message: "T2标识不清必须为整数", trigger: "blur" }
270
     ],
286
     ],
271
-    t2OverSize: [
287
+    t2ExcessQty: [
272
       { type: "integer", message: "T2超规数量必须为整数", trigger: "blur" }
288
       { type: "integer", message: "T2超规数量必须为整数", trigger: "blur" }
273
     ],
289
     ],
274
     t2Mail: [
290
     t2Mail: [
275
       { type: "integer", message: "T2邮寄必须为整数", trigger: "blur" }
291
       { type: "integer", message: "T2邮寄必须为整数", trigger: "blur" }
276
     ],
292
     ],
277
-    t2SelfAbandon: [
293
+    t2Abandon: [
278
       { type: "integer", message: "T2自弃必须为整数", trigger: "blur" }
294
       { type: "integer", message: "T2自弃必须为整数", trigger: "blur" }
279
     ],
295
     ],
280
-    t2Temporary: [
296
+    t2TempStore: [
281
       { type: "integer", message: "T2暂存必须为整数", trigger: "blur" }
297
       { type: "integer", message: "T2暂存必须为整数", trigger: "blur" }
282
     ]
298
     ]
283
   }
299
   }
@@ -288,7 +304,11 @@ const { queryParams, form, rules } = toRefs(data)
288
 /** 查询劝阻充电宝数据列表 */
304
 /** 查询劝阻充电宝数据列表 */
289
 function getList() {
305
 function getList() {
290
   loading.value = true
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
     discouragePowerBanksDataList.value = response.rows
312
     discouragePowerBanksDataList.value = response.rows
293
     total.value = response.total
313
     total.value = response.total
294
     loading.value = false
314
     loading.value = false
@@ -305,24 +325,24 @@ function cancel() {
305
 function reset() {
325
 function reset() {
306
   form.value = {
326
   form.value = {
307
     id: null,
327
     id: null,
308
-    date: null,
309
-    timePeriod: null,
328
+    recordDate: null,
329
+    timeSlot: null,
310
     // T1区域数据
330
     // T1区域数据
311
     t1Recall: null,
331
     t1Recall: null,
312
-    t1No3C: null,
313
-    t1Unclear: null,
314
-    t1OverSize: null,
332
+    t1No3c: null,
333
+    t1UnclearMark: null,
334
+    t1ExcessQty: null,
315
     t1Mail: null,
335
     t1Mail: null,
316
-    t1SelfAbandon: null,
317
-    t1Temporary: null,
336
+    t1Abandon: null,
337
+    t1TempStore: null,
318
     // T2区域数据
338
     // T2区域数据
319
     t2Recall: null,
339
     t2Recall: null,
320
-    t2No3C: null,
321
-    t2Unclear: null,
322
-    t2OverSize: null,
340
+    t2No3c: null,
341
+    t2UnclearMark: null,
342
+    t2ExcessQty: null,
323
     t2Mail: null,
343
     t2Mail: null,
324
-    t2SelfAbandon: null,
325
-    t2Temporary: null
344
+    t2Abandon: null,
345
+    t2TempStore: null
326
   }
346
   }
327
   proxy.resetForm("discouragePowerBanksDataRef")
347
   proxy.resetForm("discouragePowerBanksDataRef")
328
 }
348
 }
@@ -358,7 +378,12 @@ function handleUpdate(row) {
358
   reset()
378
   reset()
359
   const _id = row.id || ids.value
379
   const _id = row.id || ids.value
360
   getDiscouragePowerBanksData(_id).then(response => {
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
     open.value = true
387
     open.value = true
363
     title.value = "修改劝阻充电宝数据"
388
     title.value = "修改劝阻充电宝数据"
364
   })
389
   })
@@ -368,14 +393,19 @@ function handleUpdate(row) {
368
 function submitForm() {
393
 function submitForm() {
369
   proxy.$refs["discouragePowerBanksDataRef"].validate(valid => {
394
   proxy.$refs["discouragePowerBanksDataRef"].validate(valid => {
370
     if (valid) {
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
           proxy.$modal.msgSuccess("修改成功")
403
           proxy.$modal.msgSuccess("修改成功")
374
           open.value = false
404
           open.value = false
375
           getList()
405
           getList()
376
         })
406
         })
377
       } else {
407
       } else {
378
-        addDiscouragePowerBanksData(form.value).then(response => {
408
+        addDiscouragePowerBanksData(submitData).then(response => {
379
           proxy.$modal.msgSuccess("新增成功")
409
           proxy.$modal.msgSuccess("新增成功")
380
           open.value = false
410
           open.value = false
381
           getList()
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
 function importTemplate() {
451
 function importTemplate() {
422
-  proxy.download('/runData/discouragePowerBanksData/importTemplate', {
452
+  proxy.download('/item/hkPersuadePowerBank/importTemplate', {
423
   }, `劝阻充电宝数据导入模板_${new Date().getTime()}.xlsx`)
453
   }, `劝阻充电宝数据导入模板_${new Date().getTime()}.xlsx`)
424
 }
454
 }
425
 
455
 

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

@@ -21,7 +21,7 @@
21
             <div class="data-card">
21
             <div class="data-card">
22
               <div class="card-title">旅检过检总人数</div>
22
               <div class="card-title">旅检过检总人数</div>
23
               <div class="card-value-wrapper" style="color: #E8B140;">
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
                 <span class="card-unit">人</span>
25
                 <span class="card-unit">人</span>
26
               </div>
26
               </div>
27
             </div>
27
             </div>
@@ -30,7 +30,7 @@
30
             <div class="data-card">
30
             <div class="data-card">
31
               <div class="card-title">行检过检总行李数</div>
31
               <div class="card-title">行检过检总行李数</div>
32
               <div class="card-value-wrapper" style="color: #26B6BE;">
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
                 <span class="card-unit">件</span>
34
                 <span class="card-unit">件</span>
35
               </div>
35
               </div>
36
             </div>
36
             </div>
@@ -77,7 +77,7 @@
77
         <div class="data-card">
77
         <div class="data-card">
78
           <div class="card-title">国际货站总过检数</div>
78
           <div class="card-title">国际货站总过检数</div>
79
           <div class="card-value-wrapper" style="color: #26B6BE;padding: 30px;">
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
             <span class="card-unit">件</span>
81
             <span class="card-unit">件</span>
82
           </div>
82
           </div>
83
         </div>
83
         </div>
@@ -86,7 +86,7 @@
86
         <div class="data-card">
86
         <div class="data-card">
87
           <div class="card-title">道口车辆过检数</div>
87
           <div class="card-title">道口车辆过检数</div>
88
           <div class="card-value-wrapper" style="color: #5680C9;padding: 30px;">
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
             <span class="card-unit">辆</span>
90
             <span class="card-unit">辆</span>
91
           </div>
91
           </div>
92
         </div>
92
         </div>
@@ -313,15 +313,16 @@ function initCharts() {
313
     const t1Data = t1PassengerData.value || []
313
     const t1Data = t1PassengerData.value || []
314
     t1TravelChartInstance.setOption({
314
     t1TravelChartInstance.setOption({
315
       tooltip: { trigger: 'axis' },
315
       tooltip: { trigger: 'axis' },
316
+      legend: { data: ['A区', 'B区'], top: 30 },
316
       xAxis: {
317
       xAxis: {
317
         type: 'category',
318
         type: 'category',
318
-        data: t1Data.map(item => item.recordDate || item.aZone || '')
319
+        data: t1Data.map(item => item.recordDate || item.azone || '')
319
       },
320
       },
320
       yAxis: { type: 'value' },
321
       yAxis: { type: 'value' },
321
       series: [
322
       series: [
322
         {
323
         {
323
           name: 'A区',
324
           name: 'A区',
324
-          data: t1Data.map(item => item.aZone || 0),
325
+          data: t1Data.map(item => item.azone || 0),
325
           type: 'line',
326
           type: 'line',
326
           smooth: true,
327
           smooth: true,
327
           lineStyle: { color: '#E8B140' },
328
           lineStyle: { color: '#E8B140' },
@@ -329,7 +330,7 @@ function initCharts() {
329
         },
330
         },
330
         {
331
         {
331
           name: 'B区',
332
           name: 'B区',
332
-          data: t1Data.map(item => item.bZone || 0),
333
+          data: t1Data.map(item => item.bzone || 0),
333
           type: 'line',
334
           type: 'line',
334
           smooth: true,
335
           smooth: true,
335
           lineStyle: { color: '#5470c6' },
336
           lineStyle: { color: '#5470c6' },
@@ -345,6 +346,7 @@ function initCharts() {
345
     const t2Data = t2PassengerData.value || []
346
     const t2Data = t2PassengerData.value || []
346
     t2TravelChartInstance.setOption({
347
     t2TravelChartInstance.setOption({
347
       tooltip: { trigger: 'axis' },
348
       tooltip: { trigger: 'axis' },
349
+      legend: { data: ['国内旅检', '国际旅检'], top: 30 },
348
       xAxis: {
350
       xAxis: {
349
         type: 'category',
351
         type: 'category',
350
         data: t2Data.map(item => item.recordDate || '')
352
         data: t2Data.map(item => item.recordDate || '')
@@ -377,6 +379,7 @@ function initCharts() {
377
     const luggageData = luggageCheckData.value || []
379
     const luggageData = luggageCheckData.value || []
378
     luggageChartInstance.setOption({
380
     luggageChartInstance.setOption({
379
       tooltip: { trigger: 'axis' },
381
       tooltip: { trigger: 'axis' },
382
+      legend: { data: ['T1行检', 'T2行检'], top: 30 },
380
       xAxis: {
383
       xAxis: {
381
         type: 'category',
384
         type: 'category',
382
         data: luggageData.map(item => item.recordDate || '')
385
         data: luggageData.map(item => item.recordDate || '')
@@ -409,6 +412,7 @@ function initCharts() {
409
     const cargoTrendData = cargoData.value || []
412
     const cargoTrendData = cargoData.value || []
410
     cargoChartInstance.setOption({
413
     cargoChartInstance.setOption({
411
       tooltip: { trigger: 'axis' },
414
       tooltip: { trigger: 'axis' },
415
+      legend: { data: ['国内货站', '国际货站'], top: 30 },
412
       xAxis: {
416
       xAxis: {
413
         type: 'category',
417
         type: 'category',
414
         data: cargoTrendData.map(item => item.recordDate || '')
418
         data: cargoTrendData.map(item => item.recordDate || '')
@@ -441,6 +445,7 @@ function initCharts() {
441
     const vehicleData = vehicleCheckData.value || []
445
     const vehicleData = vehicleCheckData.value || []
442
     vehicleChartInstance.setOption({
446
     vehicleChartInstance.setOption({
443
       tooltip: { trigger: 'axis' },
447
       tooltip: { trigger: 'axis' },
448
+      legend: { data: ['南侧车检', '北侧车检'], top: 30 },
444
       xAxis: {
449
       xAxis: {
445
         type: 'category',
450
         type: 'category',
446
         data: vehicleData.map(item => item.recordDate || '')
451
         data: vehicleData.map(item => item.recordDate || '')
@@ -495,71 +500,77 @@ function initCharts() {
495
   if (teamSeizeBarChart.value) {
500
   if (teamSeizeBarChart.value) {
496
     teamSeizeBarChartInstance = echarts.init(teamSeizeBarChart.value)
501
     teamSeizeBarChartInstance = echarts.init(teamSeizeBarChart.value)
497
     const brigadeData = brigadeSeizureData.value || []
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
     teamSeizeBarChartInstance.setOption({
513
     teamSeizeBarChartInstance.setOption({
499
       tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } },
514
       tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } },
500
-      legend: { data: ['T1区', 'T2区', '总量'] },
515
+      legend: { data: brigades, top: 30 },
501
       xAxis: {
516
       xAxis: {
502
         type: 'category',
517
         type: 'category',
503
-        data: [...new Set(brigadeData.map(item => item.brigade))]
518
+        data: shifts
504
       },
519
       },
505
       yAxis: { type: 'value' },
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
   // T1区域各大队查获数对比柱状图
525
   // T1区域各大队查获数对比柱状图
527
   if (t1TeamBarChart.value) {
526
   if (t1TeamBarChart.value) {
528
     t1TeamBarChartInstance = echarts.init(t1TeamBarChart.value)
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
     t1TeamBarChartInstance.setOption({
539
     t1TeamBarChartInstance.setOption({
531
       tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } },
540
       tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } },
541
+      legend: { data: brigades, top: 30 },
532
       xAxis: {
542
       xAxis: {
533
         type: 'category',
543
         type: 'category',
534
-        data: [...new Set(t1BrigadeData.map(item => item.brigade))]
544
+        data: shifts
535
       },
545
       },
536
       yAxis: { type: 'value' },
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
   // T2区域各大队查获数对比柱状图
551
   // T2区域各大队查获数对比柱状图
547
   if (t2TeamBarChart.value) {
552
   if (t2TeamBarChart.value) {
548
     t2TeamBarChartInstance = echarts.init(t2TeamBarChart.value)
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
     t2TeamBarChartInstance.setOption({
565
     t2TeamBarChartInstance.setOption({
551
       tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } },
566
       tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } },
567
+      legend: { data: brigades, top: 30 },
552
       xAxis: {
568
       xAxis: {
553
         type: 'category',
569
         type: 'category',
554
-        data: [...new Set(t2BrigadeData.map(item => item.brigade))]
570
+        data: shifts
555
       },
571
       },
556
       yAxis: { type: 'value' },
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
   <div class="app-container">
2
   <div class="app-container">
3
     <!-- 查询条件 -->
3
     <!-- 查询条件 -->
4
     <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
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
           style="width: 200px" />
7
           style="width: 200px" />
8
       </el-form-item>
8
       </el-form-item>
9
       <el-form-item label="班次" prop="shift">
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
       </el-form-item>
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
       </el-form-item>
18
       </el-form-item>
15
       <el-form-item>
19
       <el-form-item>
16
         <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
20
         <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
@@ -24,10 +28,7 @@
24
         <el-button type="primary" plain icon="Plus" @click="handleAdd"
28
         <el-button type="primary" plain icon="Plus" @click="handleAdd"
25
           v-hasPermi="['runData:seizeData:add']">新增</el-button>
29
           v-hasPermi="['runData:seizeData:add']">新增</el-button>
26
       </el-col>
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
       <el-col :span="1.5">
32
       <el-col :span="1.5">
32
         <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"
33
         <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"
33
           v-hasPermi="['runData:seizeData:remove']">删除</el-button>
34
           v-hasPermi="['runData:seizeData:remove']">删除</el-button>
@@ -46,43 +47,43 @@
46
     <!-- 数据表格 -->
47
     <!-- 数据表格 -->
47
     <el-table v-loading="loading" :data="seizeDataList" @selection-change="handleSelectionChange">
48
     <el-table v-loading="loading" :data="seizeDataList" @selection-change="handleSelectionChange">
48
       <el-table-column type="selection" width="55" align="center" />
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
       <el-table-column label="班次" align="center" prop="shift" />
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
       <!-- T1区域数据 -->
54
       <!-- T1区域数据 -->
54
-      <el-table-column label="T1火种" align="center" prop="t1Fire" />
55
+      <el-table-column label="T1火种" align="center" prop="t1FireSource" />
55
       <el-table-column label="T1刀具" align="center" prop="t1Knife" />
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
       <el-table-column label="T1活体动物" align="center" prop="t1LiveAnimal" />
59
       <el-table-column label="T1活体动物" align="center" prop="t1LiveAnimal" />
59
       <el-table-column label="T1腐蚀性物品" align="center" prop="t1Corrosive" />
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
       <el-table-column label="T1爆炸装置" align="center" prop="t1Explosive" />
62
       <el-table-column label="T1爆炸装置" align="center" prop="t1Explosive" />
62
       <el-table-column label="T1工具" align="center" prop="t1Tool" />
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
       <el-table-column label="T1其他" align="center" prop="t1Other" />
66
       <el-table-column label="T1其他" align="center" prop="t1Other" />
66
       <el-table-column label="T1总数" align="center" prop="t1Total" />
67
       <el-table-column label="T1总数" align="center" prop="t1Total" />
67
       
68
       
68
       <!-- T2区域数据 -->
69
       <!-- T2区域数据 -->
69
-      <el-table-column label="T2火种" align="center" prop="t2Fire" />
70
+      <el-table-column label="T2火种" align="center" prop="t2FireSource" />
70
       <el-table-column label="T2刀具" align="center" prop="t2Knife" />
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
       <el-table-column label="T2活体动物" align="center" prop="t2LiveAnimal" />
74
       <el-table-column label="T2活体动物" align="center" prop="t2LiveAnimal" />
74
       <el-table-column label="T2腐蚀性物品" align="center" prop="t2Corrosive" />
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
       <el-table-column label="T2爆炸装置" align="center" prop="t2Explosive" />
77
       <el-table-column label="T2爆炸装置" align="center" prop="t2Explosive" />
77
       <el-table-column label="T2工具" align="center" prop="t2Tool" />
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
       <el-table-column label="T2其他" align="center" prop="t2Other" />
81
       <el-table-column label="T2其他" align="center" prop="t2Other" />
81
       <el-table-column label="T2总数" align="center" prop="t2Total" />
82
       <el-table-column label="T2总数" align="center" prop="t2Total" />
82
       
83
       
83
       <el-table-column label="T1总数+T2总数" align="center" prop="total" />
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
         <template #default="scope">
87
         <template #default="scope">
87
           <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
88
           <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
88
             v-hasPermi="['runData:seizeData:edit']">修改</el-button>
89
             v-hasPermi="['runData:seizeData:edit']">修改</el-button>
@@ -96,23 +97,27 @@
96
       v-model:limit="queryParams.pageSize" @pagination="getList" />
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
       <el-form ref="seizeDataRef" :model="form" :rules="rules" label-width="120px">
101
       <el-form ref="seizeDataRef" :model="form" :rules="rules" label-width="120px">
101
         <el-row :gutter="20">
102
         <el-row :gutter="20">
102
           <el-col :span="8">
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
                 style="width: 100%" />
106
                 style="width: 100%" />
106
             </el-form-item>
107
             </el-form-item>
107
           </el-col>
108
           </el-col>
108
           <el-col :span="8">
109
           <el-col :span="8">
109
             <el-form-item label="班次" prop="shift">
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
             </el-form-item>
114
             </el-form-item>
112
           </el-col>
115
           </el-col>
113
           <el-col :span="8">
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
             </el-form-item>
121
             </el-form-item>
117
           </el-col>
122
           </el-col>
118
         </el-row>
123
         </el-row>
@@ -120,49 +125,51 @@
120
         <!-- T1区域 -->
125
         <!-- T1区域 -->
121
         <el-divider content-position="left">T1区域数据</el-divider>
126
         <el-divider content-position="left">T1区域数据</el-divider>
122
         <el-row :gutter="20">
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
             </el-form-item>
131
             </el-form-item>
127
             <el-form-item label="T1刀具" prop="t1Knife">
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
             </el-form-item>
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
             </el-form-item>
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
             </el-form-item>
140
             </el-form-item>
136
           </el-col>
141
           </el-col>
137
-          <el-col :span="6">
142
+          <el-col :span="8">
138
             <el-form-item label="T1活体动物" prop="t1LiveAnimal">
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
             </el-form-item>
145
             </el-form-item>
141
             <el-form-item label="T1腐蚀性物品" prop="t1Corrosive">
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
             </el-form-item>
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
             </el-form-item>
151
             </el-form-item>
147
             <el-form-item label="T1爆炸装置" prop="t1Explosive">
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
             </el-form-item>
154
             </el-form-item>
150
           </el-col>
155
           </el-col>
151
-          <el-col :span="6">
156
+          <el-col :span="8">
152
             <el-form-item label="T1工具" prop="t1Tool">
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
             </el-form-item>
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
             </el-form-item>
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
             </el-form-item>
165
             </el-form-item>
161
             <el-form-item label="T1其他" prop="t1Other">
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
             </el-form-item>
168
             </el-form-item>
164
           </el-col>
169
           </el-col>
165
-          <el-col :span="6">
170
+        </el-row>
171
+        <el-row :gutter="20">
172
+          <el-col :span="8">
166
             <el-form-item label="T1总数" prop="t1Total">
173
             <el-form-item label="T1总数" prop="t1Total">
167
               <el-input v-model="form.t1Total" placeholder="自动计算" readonly style="width: 100%" />
174
               <el-input v-model="form.t1Total" placeholder="自动计算" readonly style="width: 100%" />
168
             </el-form-item>
175
             </el-form-item>
@@ -172,52 +179,56 @@
172
         <!-- T2区域 -->
179
         <!-- T2区域 -->
173
         <el-divider content-position="left">T2区域数据</el-divider>
180
         <el-divider content-position="left">T2区域数据</el-divider>
174
         <el-row :gutter="20">
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
             </el-form-item>
185
             </el-form-item>
179
             <el-form-item label="T2刀具" prop="t2Knife">
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
             </el-form-item>
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
             </el-form-item>
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
             </el-form-item>
194
             </el-form-item>
188
           </el-col>
195
           </el-col>
189
-          <el-col :span="6">
196
+          <el-col :span="8">
190
             <el-form-item label="T2活体动物" prop="t2LiveAnimal">
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
             </el-form-item>
199
             </el-form-item>
193
             <el-form-item label="T2腐蚀性物品" prop="t2Corrosive">
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
             </el-form-item>
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
             </el-form-item>
205
             </el-form-item>
199
             <el-form-item label="T2爆炸装置" prop="t2Explosive">
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
             </el-form-item>
208
             </el-form-item>
202
           </el-col>
209
           </el-col>
203
-          <el-col :span="6">
210
+          <el-col :span="8">
204
             <el-form-item label="T2工具" prop="t2Tool">
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
             </el-form-item>
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
             </el-form-item>
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
             </el-form-item>
219
             </el-form-item>
213
             <el-form-item label="T2其他" prop="t2Other">
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
             </el-form-item>
222
             </el-form-item>
216
           </el-col>
223
           </el-col>
217
-          <el-col :span="6">
224
+        </el-row>
225
+        <el-row :gutter="20">
226
+          <el-col :span="8">
218
             <el-form-item label="T2总数" prop="t2Total">
227
             <el-form-item label="T2总数" prop="t2Total">
219
               <el-input v-model="form.t2Total" placeholder="自动计算" readonly style="width: 100%" />
228
               <el-input v-model="form.t2Total" placeholder="自动计算" readonly style="width: 100%" />
220
             </el-form-item>
229
             </el-form-item>
230
+          </el-col>
231
+          <el-col :span="8">
221
             <el-form-item label="T1总数+T2总数" prop="total">
232
             <el-form-item label="T1总数+T2总数" prop="total">
222
               <el-input v-model="form.total" placeholder="自动计算" readonly style="width: 100%" />
233
               <el-input v-model="form.total" placeholder="自动计算" readonly style="width: 100%" />
223
             </el-form-item>
234
             </el-form-item>
@@ -261,6 +272,7 @@
261
 
272
 
262
 <script setup name="SeizeData">
273
 <script setup name="SeizeData">
263
 import { listSeizeData, getSeizeData, delSeizeData, addSeizeData, updateSeizeData } from "@/api/runData/seizeData"
274
 import { listSeizeData, getSeizeData, delSeizeData, addSeizeData, updateSeizeData } from "@/api/runData/seizeData"
275
+import { listDept } from '@/api/system/dept'
264
 import { getToken } from '@/utils/auth'
276
 import { getToken } from '@/utils/auth'
265
 
277
 
266
 const { proxy } = getCurrentInstance()
278
 const { proxy } = getCurrentInstance()
@@ -275,6 +287,15 @@ const multiple = ref(true)
275
 const total = ref(0)
287
 const total = ref(0)
276
 const title = ref("")
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
 const upload = reactive({
300
 const upload = reactive({
280
   // 是否显示弹出层
301
   // 是否显示弹出层
@@ -288,7 +309,7 @@ const upload = reactive({
288
   // 设置上传的请求头部
309
   // 设置上传的请求头部
289
   headers: { Authorization: "Bearer " + getToken() },
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
 const uploadRef = ref()
315
 const uploadRef = ref()
@@ -298,30 +319,30 @@ const data = reactive({
298
   queryParams: {
319
   queryParams: {
299
     pageNum: 1,
320
     pageNum: 1,
300
     pageSize: 10,
321
     pageSize: 10,
301
-    date: null,
322
+    recordDate: null,
302
     shift: null,
323
     shift: null,
303
-    team: null
324
+    brigade: null
304
   },
325
   },
305
   rules: {
326
   rules: {
306
-    date: [
327
+    recordDate: [
307
       { required: true, message: "日期不能为空", trigger: "blur" }
328
       { required: true, message: "日期不能为空", trigger: "blur" }
308
     ],
329
     ],
309
     shift: [
330
     shift: [
310
       { required: true, message: "班次不能为空", trigger: "blur" }
331
       { required: true, message: "班次不能为空", trigger: "blur" }
311
     ],
332
     ],
312
-    team: [
333
+    brigade: [
313
       { required: true, message: "当班大队不能为空", trigger: "blur" }
334
       { required: true, message: "当班大队不能为空", trigger: "blur" }
314
     ],
335
     ],
315
-    t1Fire: [
336
+    t1FireSource: [
316
       { type: "integer", message: "T1火种必须为整数", trigger: "blur" }
337
       { type: "integer", message: "T1火种必须为整数", trigger: "blur" }
317
     ],
338
     ],
318
     t1Knife: [
339
     t1Knife: [
319
       { type: "integer", message: "T1刀具必须为整数", trigger: "blur" }
340
       { type: "integer", message: "T1刀具必须为整数", trigger: "blur" }
320
     ],
341
     ],
321
-    t1PoliceEquipment: [
342
+    t1PoliceWeapon: [
322
       { type: "integer", message: "T1警械器具必须为整数", trigger: "blur" }
343
       { type: "integer", message: "T1警械器具必须为整数", trigger: "blur" }
323
     ],
344
     ],
324
-    t1Fireworks: [
345
+    t1Firework: [
325
       { type: "integer", message: "T1烟花爆竹必须为整数", trigger: "blur" }
346
       { type: "integer", message: "T1烟花爆竹必须为整数", trigger: "blur" }
326
     ],
347
     ],
327
     t1LiveAnimal: [
348
     t1LiveAnimal: [
@@ -330,7 +351,7 @@ const data = reactive({
330
     t1Corrosive: [
351
     t1Corrosive: [
331
       { type: "integer", message: "T1腐蚀性物品必须为整数", trigger: "blur" }
352
       { type: "integer", message: "T1腐蚀性物品必须为整数", trigger: "blur" }
332
     ],
353
     ],
333
-    t1Counterfeit: [
354
+    t1FakeId: [
334
       { type: "integer", message: "T1用假冒他必须为整数", trigger: "blur" }
355
       { type: "integer", message: "T1用假冒他必须为整数", trigger: "blur" }
335
     ],
356
     ],
336
     t1Explosive: [
357
     t1Explosive: [
@@ -339,25 +360,25 @@ const data = reactive({
339
     t1Tool: [
360
     t1Tool: [
340
       { type: "integer", message: "T1工具必须为整数", trigger: "blur" }
361
       { type: "integer", message: "T1工具必须为整数", trigger: "blur" }
341
     ],
362
     ],
342
-    t1Gun: [
363
+    t1GunAmmo: [
343
       { type: "integer", message: "T1枪支弹药必须为整数", trigger: "blur" }
364
       { type: "integer", message: "T1枪支弹药必须为整数", trigger: "blur" }
344
     ],
365
     ],
345
-    t1Pornography: [
366
+    t1Illegal: [
346
       { type: "integer", message: "T1扫黄打非必须为整数", trigger: "blur" }
367
       { type: "integer", message: "T1扫黄打非必须为整数", trigger: "blur" }
347
     ],
368
     ],
348
     t1Other: [
369
     t1Other: [
349
       { type: "integer", message: "T1其他必须为整数", trigger: "blur" }
370
       { type: "integer", message: "T1其他必须为整数", trigger: "blur" }
350
     ],
371
     ],
351
-    t2Fire: [
372
+    t2FireSource: [
352
       { type: "integer", message: "T2火种必须为整数", trigger: "blur" }
373
       { type: "integer", message: "T2火种必须为整数", trigger: "blur" }
353
     ],
374
     ],
354
     t2Knife: [
375
     t2Knife: [
355
       { type: "integer", message: "T2刀具必须为整数", trigger: "blur" }
376
       { type: "integer", message: "T2刀具必须为整数", trigger: "blur" }
356
     ],
377
     ],
357
-    t2PoliceEquipment: [
378
+    t2PoliceWeapon: [
358
       { type: "integer", message: "T2警械器具必须为整数", trigger: "blur" }
379
       { type: "integer", message: "T2警械器具必须为整数", trigger: "blur" }
359
     ],
380
     ],
360
-    t2Fireworks: [
381
+    t2Firework: [
361
       { type: "integer", message: "T2烟花爆竹必须为整数", trigger: "blur" }
382
       { type: "integer", message: "T2烟花爆竹必须为整数", trigger: "blur" }
362
     ],
383
     ],
363
     t2LiveAnimal: [
384
     t2LiveAnimal: [
@@ -366,7 +387,7 @@ const data = reactive({
366
     t2Corrosive: [
387
     t2Corrosive: [
367
       { type: "integer", message: "T2腐蚀性物品必须为整数", trigger: "blur" }
388
       { type: "integer", message: "T2腐蚀性物品必须为整数", trigger: "blur" }
368
     ],
389
     ],
369
-    t2Counterfeit: [
390
+    t2FakeId: [
370
       { type: "integer", message: "T2用假冒他必须为整数", trigger: "blur" }
391
       { type: "integer", message: "T2用假冒他必须为整数", trigger: "blur" }
371
     ],
392
     ],
372
     t2Explosive: [
393
     t2Explosive: [
@@ -375,10 +396,10 @@ const data = reactive({
375
     t2Tool: [
396
     t2Tool: [
376
       { type: "integer", message: "T2工具必须为整数", trigger: "blur" }
397
       { type: "integer", message: "T2工具必须为整数", trigger: "blur" }
377
     ],
398
     ],
378
-    t2Gun: [
399
+    t2GunAmmo: [
379
       { type: "integer", message: "T2枪支弹药必须为整数", trigger: "blur" }
400
       { type: "integer", message: "T2枪支弹药必须为整数", trigger: "blur" }
380
     ],
401
     ],
381
-    t2Pornography: [
402
+    t2Illegal: [
382
       { type: "integer", message: "T2扫黄打非必须为整数", trigger: "blur" }
403
       { type: "integer", message: "T2扫黄打非必须为整数", trigger: "blur" }
383
     ],
404
     ],
384
     t2Other: [
405
     t2Other: [
@@ -392,18 +413,18 @@ const { queryParams, form, rules } = toRefs(data)
392
 /** 计算总数 */
413
 /** 计算总数 */
393
 function calculateTotals() {
414
 function calculateTotals() {
394
   // 计算T1总数
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
   const t1Total = t1Fields.reduce((sum, field) => {
419
   const t1Total = t1Fields.reduce((sum, field) => {
399
     return sum + (form.value[field] || 0)
420
     return sum + (form.value[field] || 0)
400
   }, 0)
421
   }, 0)
401
   form.value.t1Total = t1Total
422
   form.value.t1Total = t1Total
402
   
423
   
403
   // 计算T2总数
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
   const t2Total = t2Fields.reduce((sum, field) => {
428
   const t2Total = t2Fields.reduce((sum, field) => {
408
     return sum + (form.value[field] || 0)
429
     return sum + (form.value[field] || 0)
409
   }, 0)
430
   }, 0)
@@ -433,35 +454,36 @@ function cancel() {
433
 function reset() {
454
 function reset() {
434
   form.value = {
455
   form.value = {
435
     id: null,
456
     id: null,
436
-    date: null,
457
+    recordDate: null,
437
     shift: null,
458
     shift: null,
438
-    team: null,
459
+    brigade: null,
460
+    brigadeName: null,
439
     // T1区域数据
461
     // T1区域数据
440
-    t1Fire: null,
462
+    t1FireSource: null,
441
     t1Knife: null,
463
     t1Knife: null,
442
-    t1PoliceEquipment: null,
443
-    t1Fireworks: null,
464
+    t1PoliceWeapon: null,
465
+    t1Firework: null,
444
     t1LiveAnimal: null,
466
     t1LiveAnimal: null,
445
     t1Corrosive: null,
467
     t1Corrosive: null,
446
-    t1Counterfeit: null,
468
+    t1FakeId: null,
447
     t1Explosive: null,
469
     t1Explosive: null,
448
     t1Tool: null,
470
     t1Tool: null,
449
-    t1Gun: null,
450
-    t1Pornography: null,
471
+    t1GunAmmo: null,
472
+    t1Illegal: null,
451
     t1Other: null,
473
     t1Other: null,
452
     t1Total: null,
474
     t1Total: null,
453
     // T2区域数据
475
     // T2区域数据
454
-    t2Fire: null,
476
+    t2FireSource: null,
455
     t2Knife: null,
477
     t2Knife: null,
456
-    t2PoliceEquipment: null,
457
-    t2Fireworks: null,
478
+    t2PoliceWeapon: null,
479
+    t2Firework: null,
458
     t2LiveAnimal: null,
480
     t2LiveAnimal: null,
459
     t2Corrosive: null,
481
     t2Corrosive: null,
460
-    t2Counterfeit: null,
482
+    t2FakeId: null,
461
     t2Explosive: null,
483
     t2Explosive: null,
462
     t2Tool: null,
484
     t2Tool: null,
463
-    t2Gun: null,
464
-    t2Pornography: null,
485
+    t2GunAmmo: null,
486
+    t2Illegal: null,
465
     t2Other: null,
487
     t2Other: null,
466
     t2Total: null,
488
     t2Total: null,
467
     total: null
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
 function importTemplate() {
588
 function importTemplate() {
567
-  proxy.download('/runData/seizeData/importTemplate', {
589
+  proxy.download('/item/hkSeizureStat/importTemplate', {
568
   }, `查获数据导入模板_${new Date().getTime()}.xlsx`)
590
   }, `查获数据导入模板_${new Date().getTime()}.xlsx`)
569
 }
591
 }
570
 
592
 
@@ -588,4 +610,15 @@ function submitFileForm() {
588
 }
610
 }
589
 
611
 
590
 getList()
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
 </script>
624
 </script>