瀏覽代碼

feat(blockingData): 新增开机人员年限分布功能并优化接口路径

refactor(api): 统一接口路径前缀为/blocked
fix(views): 修复表格样式和字段命名不一致问题
docs(views): 更新字段说明和表单验证规则
huoyi 2 天之前
父節點
當前提交
6d4a41552a

+ 22 - 13
src/api/blockingData/dailyLuggageCheckInList.js

@@ -1,53 +1,62 @@
1 1
 import request from '@/utils/request'
2 2
 
3 3
 // 查询每日行李查缉列表
4
-export function listDailyLuggageCheckInList(query) {
4
+export function listDailyLuggageCheckIn(query) {
5 5
   return request({
6
-    url: '/dailyLuggageCheckInList/list',
6
+    url: '/blocked/daily/list',
7 7
     method: 'get',
8 8
     params: query
9 9
   })
10 10
 }
11 11
 
12 12
 // 查询每日行李查缉详细
13
-export function getDailyLuggageCheckInList(id) {
13
+export function getDailyLuggageCheckIn(id) {
14 14
   return request({
15
-    url: '/dailyLuggageCheckInList/' + id,
15
+    url: `/blocked/daily${id}`,
16 16
     method: 'get'
17 17
   })
18 18
 }
19 19
 
20 20
 // 新增每日行李查缉
21
-export function addDailyLuggageCheckInList(data) {
21
+export function addDailyLuggageCheckIn(data) {
22 22
   return request({
23
-    url: '/dailyLuggageCheckInList',
23
+    url: '/blocked/daily',
24 24
     method: 'post',
25 25
     data: data
26 26
   })
27 27
 }
28 28
 
29 29
 // 修改每日行李查缉
30
-export function updateDailyLuggageCheckInList(data) {
30
+export function updateDailyLuggageCheckIn(data) {
31 31
   return request({
32
-    url: '/dailyLuggageCheckInList',
32
+    url: '/blocked/daily',
33 33
     method: 'put',
34 34
     data: data
35 35
   })
36 36
 }
37 37
 
38 38
 // 删除每日行李查缉
39
-export function delDailyLuggageCheckInList(id) {
39
+export function delDailyLuggageCheckIn(ids) {
40 40
   return request({
41
-    url: '/dailyLuggageCheckInList/' + id,
41
+    url: `/blocked/daily/${ids}`,
42 42
     method: 'delete'
43 43
   })
44 44
 }
45 45
 
46 46
 // 导出每日行李查缉
47
-export function exportDailyLuggageCheckInList(query) {
47
+export function exportDailyLuggageCheckIn(data) {
48 48
   return request({
49
-    url: '/dailyLuggageCheckInList/export',
49
+    url: '/blocked/daily/export',
50
+    method: 'post',
51
+    data: data
52
+  })
53
+}
54
+
55
+// 下载导入模板
56
+export function downloadTemplate() {
57
+  return request({
58
+    url: '/blocked/daily/importTemplate',
50 59
     method: 'get',
51
-    params: query
60
+    responseType: 'blob'
52 61
   })
53 62
 }

+ 18 - 9
src/api/blockingData/dailyLuggageInspectionScheduleByTime.js

@@ -3,7 +3,7 @@ import request from '@/utils/request'
3 3
 // 查询每日各时段查堵行李列表
4 4
 export function listDailyLuggageInspectionScheduleByTime(query) {
5 5
   return request({
6
-    url: '/dailyLuggageInspectionScheduleByTime/list',
6
+    url: '/blocked/pieceDaily/list',
7 7
     method: 'get',
8 8
     params: query
9 9
   })
@@ -12,7 +12,7 @@ export function listDailyLuggageInspectionScheduleByTime(query) {
12 12
 // 查询每日各时段查堵行李详细
13 13
 export function getDailyLuggageInspectionScheduleByTime(id) {
14 14
   return request({
15
-    url: '/dailyLuggageInspectionScheduleByTime/' + id,
15
+    url: `/blocked/pieceDaily/${id}`,
16 16
     method: 'get'
17 17
   })
18 18
 }
@@ -20,7 +20,7 @@ export function getDailyLuggageInspectionScheduleByTime(id) {
20 20
 // 新增每日各时段查堵行李
21 21
 export function addDailyLuggageInspectionScheduleByTime(data) {
22 22
   return request({
23
-    url: '/dailyLuggageInspectionScheduleByTime',
23
+    url: '/blocked/pieceDaily',
24 24
     method: 'post',
25 25
     data: data
26 26
   })
@@ -29,25 +29,34 @@ export function addDailyLuggageInspectionScheduleByTime(data) {
29 29
 // 修改每日各时段查堵行李
30 30
 export function updateDailyLuggageInspectionScheduleByTime(data) {
31 31
   return request({
32
-    url: '/dailyLuggageInspectionScheduleByTime',
32
+    url: '/blocked/pieceDaily',
33 33
     method: 'put',
34 34
     data: data
35 35
   })
36 36
 }
37 37
 
38 38
 // 删除每日各时段查堵行李
39
-export function delDailyLuggageInspectionScheduleByTime(id) {
39
+export function delDailyLuggageInspectionScheduleByTime(ids) {
40 40
   return request({
41
-    url: '/dailyLuggageInspectionScheduleByTime/' + id,
41
+    url: `/blocked/pieceDaily/${ids}`,
42 42
     method: 'delete'
43 43
   })
44 44
 }
45 45
 
46 46
 // 导出每日各时段查堵行李
47
-export function exportDailyLuggageInspectionScheduleByTime(query) {
47
+export function exportDailyLuggageInspectionScheduleByTime(data) {
48 48
   return request({
49
-    url: '/dailyLuggageInspectionScheduleByTime/export',
49
+    url: '/blocked/pieceDaily/export',
50
+    method: 'post',
51
+    data: data
52
+  })
53
+}
54
+
55
+// 下载导入模板
56
+export function downloadTemplate() {
57
+  return request({
58
+    url: '/blocked/pieceDaily/importTemplate',
50 59
     method: 'get',
51
-    params: query
60
+    responseType: 'blob'
52 61
   })
53 62
 }

+ 0 - 0
src/api/blockingData/experienceDistributionStartupPerson.js


+ 19 - 10
src/api/blockingData/missedInspection.js

@@ -3,7 +3,7 @@ import request from '@/utils/request'
3 3
 // 查询漏检列表
4 4
 export function listMissedInspection(query) {
5 5
   return request({
6
-    url: '/missedInspection/list',
6
+    url: '/blocked/missReview/list',
7 7
     method: 'get',
8 8
     params: query
9 9
   })
@@ -12,7 +12,7 @@ export function listMissedInspection(query) {
12 12
 // 查询漏检详细
13 13
 export function getMissedInspection(id) {
14 14
   return request({
15
-    url: '/missedInspection/' + id,
15
+    url: `/blocked/missReview/${id}`,
16 16
     method: 'get'
17 17
   })
18 18
 }
@@ -20,7 +20,7 @@ export function getMissedInspection(id) {
20 20
 // 新增漏检
21 21
 export function addMissedInspection(data) {
22 22
   return request({
23
-    url: '/missedInspection',
23
+    url: '/blocked/missReview',
24 24
     method: 'post',
25 25
     data: data
26 26
   })
@@ -29,25 +29,34 @@ export function addMissedInspection(data) {
29 29
 // 修改漏检
30 30
 export function updateMissedInspection(data) {
31 31
   return request({
32
-    url: '/missedInspection',
33
-    method: 'put',
32
+    url: '/blocked/missReview',
33
+    method: 'post',
34 34
     data: data
35 35
   })
36 36
 }
37 37
 
38 38
 // 删除漏检
39
-export function delMissedInspection(id) {
39
+export function delMissedInspection(ids) {
40 40
   return request({
41
-    url: '/missedInspection/' + id,
41
+    url: `/blocked/missReview/${ids}`,
42 42
     method: 'delete'
43 43
   })
44 44
 }
45 45
 
46 46
 // 导出漏检
47
-export function exportMissedInspection(query) {
47
+export function exportMissedInspection(data) {
48
+  return request({
49
+    url: '/blocked/missReview/export',
50
+    method: 'post',
51
+    data: data
52
+  })
53
+}
54
+
55
+// 下载导入模板
56
+export function downloadTemplate() {
48 57
   return request({
49
-    url: '/missedInspection/export',
58
+    url: '/blocked/missReview/importTemplate',
50 59
     method: 'get',
51
-    params: query
60
+    responseType: 'blob'
52 61
   })
53 62
 }

+ 129 - 123
src/views/blockingData/dailyLuggageCheckInList/index.vue

@@ -1,17 +1,15 @@
1 1
 <template>
2 2
   <div class="app-container">
3
-    <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch">
3
+    <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch"> <el-form-item label="大队"
4
+        prop="brigadeId">
5
+        <el-select v-model="queryParams.brigadeId" placeholder="请选择大队" clearable style="width: 200px">
6
+          <el-option v-for="item in brigadeOptions" :key="item.value" :label="item.label" :value="item.value" />
7
+        </el-select>
8
+      </el-form-item>
4 9
       <el-form-item label="日期" prop="date">
5 10
         <el-date-picker clearable v-model="queryParams.date" type="date" placeholder="选择日期" value-format="YYYY-MM-DD"
6 11
           style="width: 200px" />
7 12
       </el-form-item>
8
-      <el-form-item label="班次" prop="shift">
9
-        <el-select v-model="queryParams.shift" placeholder="请选择班次" clearable style="width: 200px">
10
-          <el-option label="早班" value="早班" />
11
-          <el-option label="中班" value="中班" />
12
-          <el-option label="晚班" value="晚班" />
13
-        </el-select>
14
-      </el-form-item>
15 13
       <el-form-item>
16 14
         <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
17 15
         <el-button icon="Refresh" @click="resetQuery">重置</el-button>
@@ -40,36 +38,37 @@
40 38
 
41 39
     <el-table v-loading="loading" :data="dailyLuggageCheckInList" @selection-change="handleSelectionChange">
42 40
       <el-table-column type="selection" width="55" align="center" />
43
-      <el-table-column label="日期" align="center" prop="date" width="120" />
44
-      <el-table-column label="班次" align="center" prop="shift" width="100" />
45
-      <el-table-column label="当班大队" align="center" prop="dutyBrigade" width="120" />
46
-      <el-table-column label="t1T2旅检过检行李数" align="center" prop="t1T2LuggageCheckCount" width="150" />
47
-      <el-table-column label="过检行李合计" align="center" prop="totalLuggageCheckCount" width="120" />
48
-      <el-table-column label="T1旅检查堵件数" align="center" prop="t1LuggageCheckBlockCount" width="120" />
49
-      <el-table-column label="T1旅检万分率" align="center" prop="t1LuggageCheckBlockRate" width="120" />
50
-      <el-table-column label="T2旅检查堵件数" align="center" prop="t2LuggageCheckBlockCount" width="120" />
51
-      <el-table-column label="T2旅检万分率" align="center" prop="t2LuggageCheckBlockRate" width="120" />
52
-      <el-table-column label="T1行检过检行李数" align="center" prop="t1BaggageCheckCount" width="120" />
53
-      <el-table-column label="T2行检过检行李数" align="center" prop="t2BaggageCheckCount" width="120" />
54
-      <el-table-column label="T1行检查堵件数" align="center" prop="t1BaggageCheckBlockCount" width="120" />
55
-      <el-table-column label="T1行检万分率" align="center" prop="t1BaggageCheckBlockRate" width="120" />
56
-      <el-table-column label="T2行检查堵件数" align="center" prop="t2BaggageCheckBlockCount" width="120" />
57
-      <el-table-column label="T2行检万分率" align="center" prop="t2BaggageCheckBlockRate" width="120" />
58
-      <el-table-column label="查堵合计件数" align="center" prop="totalCheckBlockCount" width="120" />
59
-      <el-table-column label="当日查堵万分率" align="center" prop="dailyCheckBlockRate" width="120" />
41
+      <el-table-column label="日期" align="center" prop="statDate" width="120" />
42
+      <el-table-column label="班次" align="center" prop="shiftType" width="100" />
43
+      <el-table-column label="当班大队" align="center" prop="brigadeName" width="120" />
44
+      <el-table-column label="T1旅检过检行李数" align="center" prop="t1TravelLuggageCount" width="150" />
45
+      <el-table-column label="T2旅检过检行李数" align="center" prop="t2TravelLuggageCount" width="150" />
46
+      <el-table-column label="过检行李合计" align="center" prop="totalLuggageCount" width="120" />
47
+      <el-table-column label="T1旅检查堵件数" align="center" prop="t1TravelBlockedCount" width="120" />
48
+      <el-table-column label="T1旅检万分率" align="center" prop="t1TravelBlockRate" width="120" />
49
+      <el-table-column label="T2旅检查堵件数" align="center" prop="t2TravelBlockedCount" width="120" />
50
+      <el-table-column label="T2旅检万分率" align="center" prop="t2TravelBlockRate" width="120" />
51
+      <el-table-column label="T1行检过检行李数" align="center" prop="t1WalkLuggageCount" width="120" />
52
+      <el-table-column label="T2行检过检行李数" align="center" prop="t2WalkLuggageCount" width="120" />
53
+      <el-table-column label="T1行检查堵件数" align="center" prop="t1WalkBlockedCount" width="120" />
54
+      <el-table-column label="T1行检万分率" align="center" prop="t1WalkBlockRate" width="120" />
55
+      <el-table-column label="T2行检查堵件数" align="center" prop="t2WalkBlockedCount" width="120" />
56
+      <el-table-column label="T2行检万分率" align="center" prop="t2WalkBlockRate" width="120" />
57
+      <el-table-column label="查堵合计件数" align="center" prop="totalBlockedCount" width="120" />
58
+      <el-table-column label="当日查堵万分率" align="center" prop="dailyBlockRate" width="120" />
60 59
       <el-table-column label="T1复查图像总数" align="center" prop="t1ReviewImageTotal" width="120" />
61
-      <el-table-column label="T2-AI标记总数" align="center" prop="t2AiMarkTotal" width="120" />
62
-      <el-table-column label="T1-AI误判总数" align="center" prop="t1AiMisjudgeTotal" width="120" />
63
-      <el-table-column label="T1AI漏判总数" align="center" prop="t1AiMissTotal" width="120" />
60
+      <el-table-column label="T1-AI标记总数" align="center" prop="t1AiMarkTotal" width="120" />
61
+      <el-table-column label="T1-AI误判总数" align="center" prop="t1AiErrorTotal" width="120" />
62
+      <el-table-column label="T1-AI漏判总数" align="center" prop="t1AiMissTotal" width="120" />
64 63
       <el-table-column label="T2复查图像总数" align="center" prop="t2ReviewImageTotal" width="120" />
65
-      <el-table-column label="T2-AI标记总数" align="center" prop="t2AiMarkTotal2" width="120" />
66
-      <el-table-column label="T2AI误判总数" align="center" prop="t2AiMisjudgeTotal" width="120" />
67
-      <el-table-column label="T2AI漏判总数" align="center" prop="t2AiMissTotal" width="120" />
68
-      <el-table-column label="其他(VP通道)数量" align="center" prop="vpChannelCount" width="140" />
64
+      <el-table-column label="T2-AI标记总数" align="center" prop="t2AiMarkTotal" width="120" />
65
+      <el-table-column label="T2-AI误判总数" align="center" prop="t2AiErrorTotal" width="120" />
66
+      <el-table-column label="T2-AI漏判总数" align="center" prop="t2AiMissTotal" width="120" />
67
+      <el-table-column label="其他(VP通道)数量" align="center" prop="otherVipCount" width="140" />
69 68
       <el-table-column label="AI复查图像总数" align="center" prop="aiReviewImageTotal" width="120" />
70
-      <el-table-column label="AI标记图像总数" align="center" prop="aiMarkImageTotal" width="120" />
69
+      <el-table-column label="AI标记图像总数" align="center" prop="aiMarkTotal" width="120" />
71 70
       <el-table-column label="AI漏判图像总数" align="center" prop="aiMissImageTotal" width="120" />
72
-      <el-table-column label="AI误判图像总数" align="center" prop="aiMisjudgeImageTotal" width="140" />
71
+      <el-table-column label="AI误判图像总数" align="center" prop="aiErrorImageTotal" width="140" />
73 72
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="140">
74 73
         <template #default="scope">
75 74
           <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
@@ -88,14 +87,14 @@
88 87
       <el-form ref="dailyLuggageCheckInRef" :model="form" :rules="rules" label-width="140px">
89 88
         <el-row :gutter="20">
90 89
           <el-col :span="12">
91
-            <el-form-item label="日期" prop="date">
92
-              <el-date-picker v-model="form.date" type="date" placeholder="选择日期" value-format="YYYY-MM-DD"
90
+            <el-form-item label="日期" prop="statDate">
91
+              <el-date-picker v-model="form.statDate" type="date" placeholder="选择日期" value-format="YYYY-MM-DD"
93 92
                 style="width: 100%" />
94 93
             </el-form-item>
95 94
           </el-col>
96 95
           <el-col :span="12">
97
-            <el-form-item label="班次" prop="shift">
98
-              <el-select v-model="form.shift" placeholder="请选择班次" style="width: 100%">
96
+            <el-form-item label="班次" prop="shiftType">
97
+              <el-select v-model="form.shiftType" placeholder="请选择班次" style="width: 100%">
99 98
                 <el-option label="早班" value="早班" />
100 99
                 <el-option label="中班" value="中班" />
101 100
                 <el-option label="晚班" value="晚班" />
@@ -103,92 +102,99 @@
103 102
             </el-form-item>
104 103
           </el-col>
105 104
         </el-row>
106
-        <el-form-item label="当班大队" prop="dutyBrigade">
107
-          <el-select v-model="form.dutyBrigade" placeholder="请选择当班大队" style="width: 100%">
105
+        <el-form-item label="当班大队" prop="brigadeName">
106
+          <el-select v-model="form.brigadeName" placeholder="请选择当班大队" style="width: 100%">
108 107
             <el-option v-for="item in brigadeOptions" :key="item.value" :label="item.label" :value="item.value" />
109 108
           </el-select>
110 109
         </el-form-item>
111 110
         <el-row :gutter="20">
112 111
           <el-col :span="12">
113
-            <el-form-item label="t1T2旅检过检行李数" prop="t1T2LuggageCheckCount">
114
-              <el-input-number v-model="form.t1T2LuggageCheckCount" :min="0" style="width: 100%" />
112
+            <el-form-item label="T1旅检过检行李数" prop="t1TravelLuggageCount">
113
+              <el-input-number v-model="form.t1TravelLuggageCount" :min="0" style="width: 100%" />
115 114
             </el-form-item>
116 115
           </el-col>
117 116
           <el-col :span="12">
118
-            <el-form-item label="过检行李合计" prop="totalLuggageCheckCount">
119
-              <el-input-number v-model="form.totalLuggageCheckCount" :min="0" style="width: 100%" />
117
+            <el-form-item label="T2旅检过检行李数" prop="t2TravelLuggageCount">
118
+              <el-input-number v-model="form.t2TravelLuggageCount" :min="0" style="width: 100%" />
120 119
             </el-form-item>
121 120
           </el-col>
122 121
         </el-row>
123 122
         <el-row :gutter="20">
124 123
           <el-col :span="12">
125
-            <el-form-item label="T1旅检查堵件数" prop="t1LuggageCheckBlockCount">
126
-              <el-input-number v-model="form.t1LuggageCheckBlockCount" :min="0" style="width: 100%" />
124
+            <el-form-item label="T1行检过检行李数" prop="t1WalkLuggageCount">
125
+              <el-input-number v-model="form.t1WalkLuggageCount" :min="0" style="width: 100%" />
127 126
             </el-form-item>
128 127
           </el-col>
129 128
           <el-col :span="12">
130
-            <el-form-item label="T1旅检万分率" prop="t1LuggageCheckBlockRate">
131
-              <el-input-number v-model="form.t1LuggageCheckBlockRate" :min="0" :precision="2" style="width: 100%" />
129
+            <el-form-item label="T2行检过检行李数" prop="t2WalkLuggageCount">
130
+              <el-input-number v-model="form.t2WalkLuggageCount" :min="0" style="width: 100%" />
132 131
             </el-form-item>
133 132
           </el-col>
134 133
         </el-row>
135 134
         <el-row :gutter="20">
136 135
           <el-col :span="12">
137
-            <el-form-item label="T2旅检查堵件数" prop="t2LuggageCheckBlockCount">
138
-              <el-input-number v-model="form.t2LuggageCheckBlockCount" :min="0" style="width: 100%" />
136
+            <el-form-item label="过检行李合计" prop="totalLuggageCount">
137
+              <el-input-number v-model="form.totalLuggageCount" :min="0" style="width: 100%" />
138
+            </el-form-item>
139
+          </el-col>
140
+        </el-row>
141
+        <el-row :gutter="20">
142
+          <el-col :span="12">
143
+            <el-form-item label="T1旅检查堵件数" prop="t1TravelBlockedCount">
144
+              <el-input-number v-model="form.t1TravelBlockedCount" :min="0" style="width: 100%" />
139 145
             </el-form-item>
140 146
           </el-col>
141 147
           <el-col :span="12">
142
-            <el-form-item label="T2旅检万分率" prop="t2LuggageCheckBlockRate">
143
-              <el-input-number v-model="form.t2LuggageCheckBlockRate" :min="0" :precision="2" style="width: 100%" />
148
+            <el-form-item label="T1旅检万分率" prop="t1TravelBlockRate">
149
+              <el-input-number v-model="form.t1TravelBlockRate" :min="0" :precision="2" style="width: 100%" />
144 150
             </el-form-item>
145 151
           </el-col>
146 152
         </el-row>
147 153
         <el-row :gutter="20">
148 154
           <el-col :span="12">
149
-            <el-form-item label="T1行检过检行李数" prop="t1BaggageCheckCount">
150
-              <el-input-number v-model="form.t1BaggageCheckCount" :min="0" style="width: 100%" />
155
+            <el-form-item label="T2旅检查堵件数" prop="t2TravelBlockedCount">
156
+              <el-input-number v-model="form.t2TravelBlockedCount" :min="0" style="width: 100%" />
151 157
             </el-form-item>
152 158
           </el-col>
153 159
           <el-col :span="12">
154
-            <el-form-item label="T2行检过检行李数" prop="t2BaggageCheckCount">
155
-              <el-input-number v-model="form.t2BaggageCheckCount" :min="0" style="width: 100%" />
160
+            <el-form-item label="T2旅检万分率" prop="t2TravelBlockRate">
161
+              <el-input-number v-model="form.t2TravelBlockRate" :min="0" :precision="2" style="width: 100%" />
156 162
             </el-form-item>
157 163
           </el-col>
158 164
         </el-row>
159 165
         <el-row :gutter="20">
160 166
           <el-col :span="12">
161
-            <el-form-item label="T1行检查堵件数" prop="t1BaggageCheckBlockCount">
162
-              <el-input-number v-model="form.t1BaggageCheckBlockCount" :min="0" style="width: 100%" />
167
+            <el-form-item label="T1行检查堵件数" prop="t1WalkBlockedCount">
168
+              <el-input-number v-model="form.t1WalkBlockedCount" :min="0" style="width: 100%" />
163 169
             </el-form-item>
164 170
           </el-col>
165 171
           <el-col :span="12">
166
-            <el-form-item label="T1行检万分率" prop="t1BaggageCheckBlockRate">
167
-              <el-input-number v-model="form.t1BaggageCheckBlockRate" :min="0" :precision="2" style="width: 100%" />
172
+            <el-form-item label="T1行检万分率" prop="t1WalkBlockRate">
173
+              <el-input-number v-model="form.t1WalkBlockRate" :min="0" :precision="2" style="width: 100%" />
168 174
             </el-form-item>
169 175
           </el-col>
170 176
         </el-row>
171 177
         <el-row :gutter="20">
172 178
           <el-col :span="12">
173
-            <el-form-item label="T2行检查堵件数" prop="t2BaggageCheckBlockCount">
174
-              <el-input-number v-model="form.t2BaggageCheckBlockCount" :min="0" style="width: 100%" />
179
+            <el-form-item label="T2行检查堵件数" prop="t2WalkBlockedCount">
180
+              <el-input-number v-model="form.t2WalkBlockedCount" :min="0" style="width: 100%" />
175 181
             </el-form-item>
176 182
           </el-col>
177 183
           <el-col :span="12">
178
-            <el-form-item label="T2行检万分率" prop="t2BaggageCheckBlockRate">
179
-              <el-input-number v-model="form.t2BaggageCheckBlockRate" :min="0" :precision="2" style="width: 100%" />
184
+            <el-form-item label="T2行检万分率" prop="t2WalkBlockRate">
185
+              <el-input-number v-model="form.t2WalkBlockRate" :min="0" :precision="2" style="width: 100%" />
180 186
             </el-form-item>
181 187
           </el-col>
182 188
         </el-row>
183 189
         <el-row :gutter="20">
184 190
           <el-col :span="12">
185
-            <el-form-item label="查堵合计件数" prop="totalCheckBlockCount">
186
-              <el-input-number v-model="form.totalCheckBlockCount" :min="0" style="width: 100%" />
191
+            <el-form-item label="查堵合计件数" prop="totalBlockedCount">
192
+              <el-input-number v-model="form.totalBlockedCount" :min="0" style="width: 100%" />
187 193
             </el-form-item>
188 194
           </el-col>
189 195
           <el-col :span="12">
190
-            <el-form-item label="当日查堵万分率" prop="dailyCheckBlockRate">
191
-              <el-input-number v-model="form.dailyCheckBlockRate" :min="0" :precision="2" style="width: 100%" />
196
+            <el-form-item label="当日查堵万分率" prop="dailyBlockRate">
197
+              <el-input-number v-model="form.dailyBlockRate" :min="0" :precision="2" style="width: 100%" />
192 198
             </el-form-item>
193 199
           </el-col>
194 200
         </el-row>
@@ -199,19 +205,19 @@
199 205
             </el-form-item>
200 206
           </el-col>
201 207
           <el-col :span="12">
202
-            <el-form-item label="T2-AI标记总数" prop="t2AiMarkTotal">
203
-              <el-input-number v-model="form.t2AiMarkTotal" :min="0" style="width: 100%" />
208
+            <el-form-item label="T1-AI标记总数" prop="t1AiMarkTotal">
209
+              <el-input-number v-model="form.t1AiMarkTotal" :min="0" style="width: 100%" />
204 210
             </el-form-item>
205 211
           </el-col>
206 212
         </el-row>
207 213
         <el-row :gutter="20">
208 214
           <el-col :span="12">
209
-            <el-form-item label="T1-AI误判总数" prop="t1AiMisjudgeTotal">
210
-              <el-input-number v-model="form.t1AiMisjudgeTotal" :min="0" style="width: 100%" />
215
+            <el-form-item label="T1-AI误判总数" prop="t1AiErrorTotal">
216
+              <el-input-number v-model="form.t1AiErrorTotal" :min="0" style="width: 100%" />
211 217
             </el-form-item>
212 218
           </el-col>
213 219
           <el-col :span="12">
214
-            <el-form-item label="T1AI漏判总数" prop="t1AiMissTotal">
220
+            <el-form-item label="T1-AI漏判总数" prop="t1AiMissTotal">
215 221
               <el-input-number v-model="form.t1AiMissTotal" :min="0" style="width: 100%" />
216 222
             </el-form-item>
217 223
           </el-col>
@@ -223,15 +229,15 @@
223 229
             </el-form-item>
224 230
           </el-col>
225 231
           <el-col :span="12">
226
-            <el-form-item label="T2-AI标记总数" prop="t2AiMarkTotal2">
227
-              <el-input-number v-model="form.t2AiMarkTotal2" :min="0" style="width: 100%" />
232
+            <el-form-item label="T2-AI标记总数" prop="t2AiMarkTotal">
233
+              <el-input-number v-model="form.t2AiMarkTotal" :min="0" style="width: 100%" />
228 234
             </el-form-item>
229 235
           </el-col>
230 236
         </el-row>
231 237
         <el-row :gutter="20">
232 238
           <el-col :span="12">
233
-            <el-form-item label="T2AI误判总数" prop="t2AiMisjudgeTotal">
234
-              <el-input-number v-model="form.t2AiMisjudgeTotal" :min="0" style="width: 100%" />
239
+            <el-form-item label="T2-AI误判总数" prop="t2AiErrorTotal">
240
+              <el-input-number v-model="form.t2AiErrorTotal" :min="0" style="width: 100%" />
235 241
             </el-form-item>
236 242
           </el-col>
237 243
           <el-col :span="12">
@@ -240,8 +246,8 @@
240 246
             </el-form-item>
241 247
           </el-col>
242 248
         </el-row>
243
-        <el-form-item label="其他(VP通道)数量" prop="vpChannelCount">
244
-          <el-input-number v-model="form.vpChannelCount" :min="0" style="width: 100%" />
249
+        <el-form-item label="其他(VP通道)数量" prop="otherVipCount">
250
+          <el-input-number v-model="form.otherVipCount" :min="0" style="width: 100%" />
245 251
         </el-form-item>
246 252
         <el-row :gutter="20">
247 253
           <el-col :span="12">
@@ -250,8 +256,8 @@
250 256
             </el-form-item>
251 257
           </el-col>
252 258
           <el-col :span="12">
253
-            <el-form-item label="AI标记图像总数" prop="aiMarkImageTotal">
254
-              <el-input-number v-model="form.aiMarkImageTotal" :min="0" style="width: 100%" />
259
+            <el-form-item label="AI标记图像总数" prop="aiMarkTotal">
260
+              <el-input-number v-model="form.aiMarkTotal" :min="0" style="width: 100%" />
255 261
             </el-form-item>
256 262
           </el-col>
257 263
         </el-row>
@@ -262,8 +268,8 @@
262 268
             </el-form-item>
263 269
           </el-col>
264 270
           <el-col :span="12">
265
-            <el-form-item label="AI误判图像总数" prop="aiMisjudgeImageTotal">
266
-              <el-input-number v-model="form.aiMisjudgeImageTotal" :min="0" style="width: 100%" />
271
+            <el-form-item label="AI误判图像总数" prop="aiErrorImageTotal">
272
+              <el-input-number v-model="form.aiErrorImageTotal" :min="0" style="width: 100%" />
267 273
             </el-form-item>
268 274
           </el-col>
269 275
         </el-row>
@@ -282,6 +288,10 @@
282 288
         accept=".xlsx,.xls">
283 289
         <el-button type="primary">选取文件</el-button>
284 290
         <div class="el-upload__tip">只能上传xls/xlsx文件</div>
291
+        <div class="el-upload__tip">
292
+          <el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
293
+            @click="importTemplate">下载模板</el-link>
294
+        </div>
285 295
       </el-upload>
286 296
       <template #footer>
287 297
         <div class="dialog-footer">
@@ -295,7 +305,7 @@
295 305
 
296 306
 <script setup>
297 307
 import { ref, reactive, onMounted, getCurrentInstance } from 'vue'
298
-import { listDailyLuggageCheckIn, getDailyLuggageCheckIn, delDailyLuggageCheckIn, addDailyLuggageCheckIn, updateDailyLuggageCheckIn, exportDailyLuggageCheckIn } from '@/api/blockingData/dailyLuggageCheckIn'
308
+import { listDailyLuggageCheckIn, getDailyLuggageCheckIn, delDailyLuggageCheckIn, addDailyLuggageCheckIn, updateDailyLuggageCheckIn, exportDailyLuggageCheckIn, downloadTemplate } from '@/api/blockingData/dailyLuggageCheckInList'
299 309
 import { listDept } from '@/api/system/dept'
300 310
 
301 311
 const { proxy } = getCurrentInstance()
@@ -327,8 +337,8 @@ const importFile = ref(null)
327 337
 const queryParams = reactive({
328 338
   pageNum: 1,
329 339
   pageSize: 10,
330
-  date: null,
331
-  shift: null
340
+  statDate: null,
341
+  shiftType: null
332 342
 })
333 343
 
334 344
 // 表单参数
@@ -336,9 +346,9 @@ const form = reactive({})
336 346
 
337 347
 // 表单校验
338 348
 const rules = {
339
-  date: [{ required: true, message: '日期不能为空', trigger: 'change' }],
340
-  shift: [{ required: true, message: '班次不能为空', trigger: 'change' }],
341
-  dutyBrigade: [{ required: true, message: '当班大队不能为空', trigger: 'change' }]
349
+  statDate: [{ required: true, message: '日期不能为空', trigger: 'change' }],
350
+  shiftType: [{ required: true, message: '班次不能为空', trigger: 'change' }],
351
+  brigadeName: [{ required: true, message: '当班大队不能为空', trigger: 'change' }]
342 352
 }
343 353
 
344 354
 // 大队选项
@@ -375,36 +385,37 @@ function cancel() {
375 385
 function reset() {
376 386
   form.value = {
377 387
     id: null,
378
-    date: null,
379
-    shift: null,
380
-    dutyBrigade: null,
381
-    t1T2LuggageCheckCount: 0,
382
-    totalLuggageCheckCount: 0,
383
-    t1LuggageCheckBlockCount: 0,
384
-    t1LuggageCheckBlockRate: 0,
385
-    t2LuggageCheckBlockCount: 0,
386
-    t2LuggageCheckBlockRate: 0,
387
-    t1BaggageCheckCount: 0,
388
-    t2BaggageCheckCount: 0,
389
-    t1BaggageCheckBlockCount: 0,
390
-    t1BaggageCheckBlockRate: 0,
391
-    t2BaggageCheckBlockCount: 0,
392
-    t2BaggageCheckBlockRate: 0,
393
-    totalCheckBlockCount: 0,
394
-    dailyCheckBlockRate: 0,
388
+    statDate: null,
389
+    shiftType: null,
390
+    brigadeName: null,
391
+    t1TravelLuggageCount: 0,
392
+    t2TravelLuggageCount: 0,
393
+    t1WalkLuggageCount: 0,
394
+    t2WalkLuggageCount: 0,
395
+    totalLuggageCount: 0,
396
+    t1TravelBlockedCount: 0,
397
+    t1TravelBlockRate: 0,
398
+    t2TravelBlockedCount: 0,
399
+    t2TravelBlockRate: 0,
400
+    t1WalkBlockedCount: 0,
401
+    t1WalkBlockRate: 0,
402
+    t2WalkBlockedCount: 0,
403
+    t2WalkBlockRate: 0,
404
+    totalBlockedCount: 0,
405
+    dailyBlockRate: 0,
395 406
     t1ReviewImageTotal: 0,
396
-    t2AiMarkTotal: 0,
397
-    t1AiMisjudgeTotal: 0,
407
+    t1AiMarkTotal: 0,
408
+    t1AiErrorTotal: 0,
398 409
     t1AiMissTotal: 0,
399 410
     t2ReviewImageTotal: 0,
400
-    t2AiMarkTotal2: 0,
401
-    t2AiMisjudgeTotal: 0,
411
+    t2AiMarkTotal: 0,
412
+    t2AiErrorTotal: 0,
402 413
     t2AiMissTotal: 0,
403
-    vpChannelCount: 0,
414
+    otherVipCount: 0,
404 415
     aiReviewImageTotal: 0,
405
-    aiMarkImageTotal: 0,
416
+    aiMarkTotal: 0,
406 417
     aiMissImageTotal: 0,
407
-    aiMisjudgeImageTotal: 0
418
+    aiErrorImageTotal: 0
408 419
   }
409 420
   proxy.resetForm('dailyLuggageCheckInRef')
410 421
 }
@@ -491,6 +502,11 @@ function handleImport() {
491 502
   importFile.value = null
492 503
 }
493 504
 
505
+/** 下载模板操作 */
506
+function importTemplate() {
507
+  proxy.download('blocked/daily/importTemplate', {}, `daily_luggage_checkin_template_${new Date().getTime()}.xlsx`)
508
+}
509
+
494 510
 /** 文件选择 */
495 511
 function handleFileChange(file) {
496 512
   importFile.value = file.raw
@@ -521,14 +537,4 @@ onMounted(() => {
521 537
 .app-container {
522 538
   padding: 20px;
523 539
 }
524
-
525
-:deep(.el-table) {
526
-  .el-table__header-wrapper {
527
-    th {
528
-      background-color: #303133;
529
-      color: #ffffff;
530
-      font-weight: 600;
531
-    }
532
-  }
533
-}
534 540
 </style>

+ 72 - 71
src/views/blockingData/dailyLuggageInspectionScheduleByTime/index.vue

@@ -6,8 +6,8 @@
6 6
           <el-option v-for="item in brigadeOptions" :key="item.value" :label="item.label" :value="item.value" />
7 7
         </el-select>
8 8
       </el-form-item>
9
-      <el-form-item label="日期" prop="date">
10
-        <el-date-picker clearable v-model="queryParams.date" type="date" placeholder="选择日期" value-format="YYYY-MM-DD"
9
+      <el-form-item label="统计日期" prop="statDate">
10
+        <el-date-picker clearable v-model="queryParams.statDate" type="date" placeholder="选择统计日期" value-format="YYYY-MM-DD"
11 11
           style="width: 200px" />
12 12
       </el-form-item>
13 13
       <el-form-item>
@@ -38,21 +38,21 @@
38 38
 
39 39
     <el-table v-loading="loading" :data="dailyLuggageInspectionScheduleByTimeList" @selection-change="handleSelectionChange">
40 40
       <el-table-column type="selection" width="55" align="center" />
41
-      <el-table-column label="日期" align="center" prop="date" width="120" />
42
-      <el-table-column label="当班大队" align="center" prop="dutyBrigade" width="120" />
43
-      <el-table-column label="时间段" align="center" prop="timePeriod" width="120" />
44
-      <el-table-column label="备注" align="center" prop="remark" width="120" />
45
-      <el-table-column label="T1行检箱包数" align="center" prop="t1BaggageCount" width="120" />
46
-      <el-table-column label="查堵数3" align="center" prop="checkBlockCount3" width="100" />
47
-      <el-table-column label="T2行检箱包数(国内+)" align="center" prop="t2BaggageCountDomestic" width="150" />
48
-      <el-table-column label="查堵数2" align="center" prop="checkBlockCount2" width="100" />
49
-      <el-table-column label="T1旅检箱包数" align="center" prop="t1LuggageCount" width="120" />
50
-      <el-table-column label="查堵数5" align="center" prop="checkBlockCount5" width="100" />
51
-      <el-table-column label="T2旅检箱包数(国内+)" align="center" prop="t2LuggageCountDomestic" width="150" />
52
-      <el-table-column label="查堵数" align="center" prop="checkBlockCount" width="100" />
53
-      <el-table-column label="过检行李数" align="center" prop="checkLuggageCount" width="120" />
54
-      <el-table-column label="时段查堵件数" align="center" prop="timePeriodCheckBlockCount" width="120" />
55
-      <el-table-column label="查堵万分率" align="center" prop="checkBlockRate" width="120" />
41
+      <el-table-column label="统计日期" align="center" prop="statDate"  />
42
+      <el-table-column label="当班大队" align="center" prop="brigadeName"  />
43
+      <el-table-column label="时间段" align="center" prop="timePeriod"  />
44
+      <el-table-column label="备注" align="center" prop="remark"  />
45
+      <el-table-column label="T1行检箱包数" align="center" prop="t1WalkBagCount"  />
46
+      <el-table-column label="T1行检查堵数" align="center" prop="t1WalkBlockedCount"  />
47
+      <el-table-column label="T2行检箱包数" align="center" prop="t2WalkBagCount"  />
48
+      <el-table-column label="T2行检查堵数" align="center" prop="t2WalkBlockedCount"  />
49
+      <el-table-column label="T1旅检箱包数" align="center" prop="t1TravelBagCount"  />
50
+      <el-table-column label="T1旅检查堵数" align="center" prop="t1TravelBlockedCount"  />
51
+      <el-table-column label="T2旅检箱包数" align="center" prop="t2TravelBagCount"  />
52
+      <el-table-column label="T2旅检查堵数" align="center" prop="t2TravelBlockedCount"  />
53
+      <el-table-column label="过检行李数" align="center" prop="totalLuggageCount"  />
54
+      <el-table-column label="时段查堵件数" align="center" prop="totalBlockedCount"  />
55
+      <el-table-column label="查堵万分率" align="center" prop="blockedRate"  />
56 56
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="140">
57 57
         <template #default="scope">
58 58
           <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
@@ -70,14 +70,14 @@
70 70
       <el-form ref="dailyLuggageInspectionScheduleByTimeRef" :model="form" :rules="rules" label-width="180px">
71 71
         <el-row :gutter="20">
72 72
           <el-col :span="12">
73
-            <el-form-item label="日期" prop="date">
74
-              <el-date-picker v-model="form.date" type="date" placeholder="选择日期" value-format="YYYY-MM-DD"
73
+            <el-form-item label="统计日期" prop="statDate">
74
+              <el-date-picker v-model="form.statDate" type="date" placeholder="选择统计日期" value-format="YYYY-MM-DD"
75 75
                 style="width: 100%" />
76 76
             </el-form-item>
77 77
           </el-col>
78 78
           <el-col :span="12">
79
-            <el-form-item label="当班大队" prop="dutyBrigade">
80
-              <el-select v-model="form.dutyBrigade" placeholder="请选择当班大队" style="width: 100%">
79
+            <el-form-item label="当班大队" prop="brigadeId">
80
+              <el-select v-model="form.brigadeId" placeholder="请选择当班大队" style="width: 100%">
81 81
                 <el-option v-for="item in brigadeOptions" :key="item.value" :label="item.label" :value="item.value" />
82 82
               </el-select>
83 83
             </el-form-item>
@@ -97,66 +97,66 @@
97 97
         </el-row>
98 98
         <el-row :gutter="20">
99 99
           <el-col :span="12">
100
-            <el-form-item label="T1行检箱包数" prop="t1BaggageCount">
101
-              <el-input-number v-model="form.t1BaggageCount" :min="0" style="width: 100%" />
100
+            <el-form-item label="T1行检箱包数" prop="t1WalkBagCount">
101
+              <el-input-number v-model="form.t1WalkBagCount" :min="0" style="width: 100%" />
102 102
             </el-form-item>
103 103
           </el-col>
104 104
           <el-col :span="12">
105
-            <el-form-item label="查堵数3" prop="checkBlockCount3">
106
-              <el-input-number v-model="form.checkBlockCount3" :min="0" style="width: 100%" />
105
+            <el-form-item label="T1行检查堵数" prop="t1WalkBlockedCount">
106
+              <el-input-number v-model="form.t1WalkBlockedCount" :min="0" style="width: 100%" />
107 107
             </el-form-item>
108 108
           </el-col>
109 109
         </el-row>
110 110
         <el-row :gutter="20">
111 111
           <el-col :span="12">
112
-            <el-form-item label="T2行检箱包数(国内+)" prop="t2BaggageCountDomestic">
113
-              <el-input-number v-model="form.t2BaggageCountDomestic" :min="0" style="width: 100%" />
112
+            <el-form-item label="T2行检箱包数" prop="t2WalkBagCount">
113
+              <el-input-number v-model="form.t2WalkBagCount" :min="0" style="width: 100%" />
114 114
             </el-form-item>
115 115
           </el-col>
116 116
           <el-col :span="12">
117
-            <el-form-item label="查堵数2" prop="checkBlockCount2">
118
-              <el-input-number v-model="form.checkBlockCount2" :min="0" style="width: 100%" />
117
+            <el-form-item label="T2行检查堵数" prop="t2WalkBlockedCount">
118
+              <el-input-number v-model="form.t2WalkBlockedCount" :min="0" style="width: 100%" />
119 119
             </el-form-item>
120 120
           </el-col>
121 121
         </el-row>
122 122
         <el-row :gutter="20">
123 123
           <el-col :span="12">
124
-            <el-form-item label="T1旅检箱包数" prop="t1LuggageCount">
125
-              <el-input-number v-model="form.t1LuggageCount" :min="0" style="width: 100%" />
124
+            <el-form-item label="T1旅检箱包数" prop="t1TravelBagCount">
125
+              <el-input-number v-model="form.t1TravelBagCount" :min="0" style="width: 100%" />
126 126
             </el-form-item>
127 127
           </el-col>
128 128
           <el-col :span="12">
129
-            <el-form-item label="查堵数5" prop="checkBlockCount5">
130
-              <el-input-number v-model="form.checkBlockCount5" :min="0" style="width: 100%" />
129
+            <el-form-item label="T1旅检查堵数" prop="t1TravelBlockedCount">
130
+              <el-input-number v-model="form.t1TravelBlockedCount" :min="0" style="width: 100%" />
131 131
             </el-form-item>
132 132
           </el-col>
133 133
         </el-row>
134 134
         <el-row :gutter="20">
135 135
           <el-col :span="12">
136
-            <el-form-item label="T2旅检箱包数(国内+)" prop="t2LuggageCountDomestic">
137
-              <el-input-number v-model="form.t2LuggageCountDomestic" :min="0" style="width: 100%" />
136
+            <el-form-item label="T2旅检箱包数" prop="t2TravelBagCount">
137
+              <el-input-number v-model="form.t2TravelBagCount" :min="0" style="width: 100%" />
138 138
             </el-form-item>
139 139
           </el-col>
140 140
           <el-col :span="12">
141
-            <el-form-item label="查堵数" prop="checkBlockCount">
142
-              <el-input-number v-model="form.checkBlockCount" :min="0" style="width: 100%" />
141
+            <el-form-item label="T2旅检查堵数" prop="t2TravelBlockedCount">
142
+              <el-input-number v-model="form.t2TravelBlockedCount" :min="0" style="width: 100%" />
143 143
             </el-form-item>
144 144
           </el-col>
145 145
         </el-row>
146 146
         <el-row :gutter="20">
147 147
           <el-col :span="12">
148
-            <el-form-item label="过检行李数" prop="checkLuggageCount">
149
-              <el-input-number v-model="form.checkLuggageCount" :min="0" style="width: 100%" />
148
+            <el-form-item label="过检行李数" prop="totalLuggageCount">
149
+              <el-input-number v-model="form.totalLuggageCount" :min="0" style="width: 100%" />
150 150
             </el-form-item>
151 151
           </el-col>
152 152
           <el-col :span="12">
153
-            <el-form-item label="时段查堵件数" prop="timePeriodCheckBlockCount">
154
-              <el-input-number v-model="form.timePeriodCheckBlockCount" :min="0" style="width: 100%" />
153
+            <el-form-item label="时段查堵件数" prop="totalBlockedCount">
154
+              <el-input-number v-model="form.totalBlockedCount" :min="0" style="width: 100%" />
155 155
             </el-form-item>
156 156
           </el-col>
157 157
         </el-row>
158
-        <el-form-item label="查堵万分率" prop="checkBlockRate">
159
-          <el-input-number v-model="form.checkBlockRate" :min="0" :precision="2" style="width: 100%" />
158
+        <el-form-item label="查堵万分率" prop="blockedRate">
159
+          <el-input-number v-model="form.blockedRate" :min="0" :precision="2" style="width: 100%" />
160 160
         </el-form-item>
161 161
       </el-form>
162 162
       <template #footer>
@@ -172,6 +172,10 @@
172 172
         accept=".xlsx,.xls">
173 173
         <el-button type="primary">选取文件</el-button>
174 174
         <div class="el-upload__tip">只能上传xls/xlsx文件</div>
175
+        <div class="el-upload__tip">
176
+          <el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
177
+            @click="importTemplate">下载模板</el-link>
178
+        </div>
175 179
       </el-upload>
176 180
       <template #footer>
177 181
         <div class="dialog-footer">
@@ -185,7 +189,7 @@
185 189
 
186 190
 <script setup>
187 191
 import { ref, reactive, onMounted, getCurrentInstance } from 'vue'
188
-import { listDailyLuggageInspectionScheduleByTime, getDailyLuggageInspectionScheduleByTime, delDailyLuggageInspectionScheduleByTime, addDailyLuggageInspectionScheduleByTime, updateDailyLuggageInspectionScheduleByTime, exportDailyLuggageInspectionScheduleByTime } from '@/api/blockingData/dailyLuggageInspectionScheduleByTime'
192
+import { listDailyLuggageInspectionScheduleByTime, getDailyLuggageInspectionScheduleByTime, delDailyLuggageInspectionScheduleByTime, addDailyLuggageInspectionScheduleByTime, updateDailyLuggageInspectionScheduleByTime, exportDailyLuggageInspectionScheduleByTime, downloadTemplate } from '@/api/blockingData/dailyLuggageInspectionScheduleByTime'
189 193
 import { listDept } from '@/api/system/dept'
190 194
 
191 195
 const { proxy } = getCurrentInstance()
@@ -206,14 +210,14 @@ const queryParams = reactive({
206 210
   pageNum: 1,
207 211
   pageSize: 10,
208 212
   brigadeId: null,
209
-  date: null
213
+  statDate: null
210 214
 })
211 215
 
212 216
 const form = reactive({})
213 217
 
214 218
 const rules = {
215
-  date: [{ required: true, message: '日期不能为空', trigger: 'change' }],
216
-  dutyBrigade: [{ required: true, message: '当班大队不能为空', trigger: 'change' }]
219
+  statDate: [{ required: true, message: '统计日期不能为空', trigger: 'change' }],
220
+  brigadeId: [{ required: true, message: '当班大队不能为空', trigger: 'change' }]
217 221
 }
218 222
 
219 223
 const brigadeOptions = ref([])
@@ -243,24 +247,24 @@ function cancel() {
243 247
 }
244 248
 
245 249
 function reset() {
246
-  form.value = {
250
+  Object.assign(form, {
247 251
     id: null,
248
-    date: null,
249
-    dutyBrigade: null,
252
+    statDate: null,
253
+    brigadeId: null,
250 254
     timePeriod: null,
251 255
     remark: null,
252
-    t1BaggageCount: 0,
253
-    checkBlockCount3: 0,
254
-    t2BaggageCountDomestic: 0,
255
-    checkBlockCount2: 0,
256
-    t1LuggageCount: 0,
257
-    checkBlockCount5: 0,
258
-    t2LuggageCountDomestic: 0,
259
-    checkBlockCount: 0,
260
-    checkLuggageCount: 0,
261
-    timePeriodCheckBlockCount: 0,
262
-    checkBlockRate: 0
263
-  }
256
+    t1WalkBagCount: 0,
257
+    t1WalkBlockedCount: 0,
258
+    t2WalkBagCount: 0,
259
+    t2WalkBlockedCount: 0,
260
+    t1TravelBagCount: 0,
261
+    t1TravelBlockedCount: 0,
262
+    t2TravelBagCount: 0,
263
+    t2TravelBlockedCount: 0,
264
+    totalLuggageCount: 0,
265
+    totalBlockedCount: 0,
266
+    blockedRate: 0
267
+  })
264 268
   proxy.resetForm('dailyLuggageInspectionScheduleByTimeRef')
265 269
 }
266 270
 
@@ -337,6 +341,11 @@ function handleImport() {
337 341
   importFile.value = null
338 342
 }
339 343
 
344
+/** 下载模板操作 */
345
+function importTemplate() {
346
+  proxy.download('blocked/pieceDaily/importTemplate', {}, `daily_luggage_inspection_schedule_template_${new Date().getTime()}.xlsx`)
347
+}
348
+
340 349
 function handleFileChange(file) {
341 350
   importFile.value = file.raw
342 351
 }
@@ -366,13 +375,5 @@ onMounted(() => {
366 375
   padding: 20px;
367 376
 }
368 377
 
369
-:deep(.el-table) {
370
-  .el-table__header-wrapper {
371
-    th {
372
-      background-color: #303133;
373
-      color: #ffffff;
374
-      font-weight: 600;
375
-    }
376
-  }
377
-}
378
+
378 379
 </style>

+ 200 - 0
src/views/blockingData/experienceDistributionStartupPerson/index.vue

@@ -0,0 +1,200 @@
1
+<template>
2
+  <div class="experience-distribution">
3
+    <h1 class="page-title">开机人员年限分布</h1>
4
+    
5
+    <div class="table-container">
6
+      <el-table 
7
+        :data="teams" 
8
+        border 
9
+        stripe
10
+        class="distribution-table"
11
+        :header-cell-style="{ background: '#f5f7fa', color: '#606266' }"
12
+      >
13
+        <el-table-column prop="name" label="业务大队"  align="center">
14
+          <template #default="{ row }">
15
+            <span class="team-name">{{ row.name }}</span>
16
+          </template>
17
+        </el-table-column>
18
+        
19
+        <el-table-column label="5年及5年以上人员数"  align="center">
20
+          <template #default="{ row }">
21
+            <el-input-number
22
+              v-model="row.fiveYearsPlus"
23
+              :min="0"
24
+              :controls="false"
25
+              size="small"
26
+              placeholder="0"
27
+              class="number-input"
28
+            />
29
+          </template>
30
+        </el-table-column>
31
+        
32
+        <el-table-column label="4年人员数"  align="center">
33
+          <template #default="{ row }">
34
+            <el-input-number
35
+              v-model="row.fourYears"
36
+              :min="0"
37
+              :controls="false"
38
+              size="small"
39
+              placeholder="0"
40
+              class="number-input"
41
+            />
42
+          </template>
43
+        </el-table-column>
44
+        
45
+        <el-table-column label="3年人员数"  align="center">
46
+          <template #default="{ row }">
47
+            <el-input-number
48
+              v-model="row.threeYears"
49
+              :min="0"
50
+              :controls="false"
51
+              size="small"
52
+              placeholder="0"
53
+              class="number-input"
54
+            />
55
+          </template>
56
+        </el-table-column>
57
+        
58
+        <el-table-column label="2年人员数"  align="center">
59
+          <template #default="{ row }">
60
+            <el-input-number
61
+              v-model="row.twoYears"
62
+              :min="0"
63
+              :controls="false"
64
+              size="small"
65
+              placeholder="0"
66
+              class="number-input"
67
+            />
68
+          </template>
69
+        </el-table-column>
70
+        
71
+        <el-table-column label="1年人员数"  align="center">
72
+          <template #default="{ row }">
73
+            <el-input-number
74
+              v-model="row.oneYear"
75
+              :min="0"
76
+              :controls="false"
77
+              size="small"
78
+              placeholder="0"
79
+              class="number-input"
80
+            />
81
+          </template>
82
+        </el-table-column>
83
+        
84
+        <el-table-column label="不足1年人员数" width="130" align="center">
85
+          <template #default="{ row }">
86
+            <el-input-number
87
+              v-model="row.lessThanOneYear"
88
+              :min="0"
89
+              :controls="false"
90
+              size="small"
91
+              placeholder="0"
92
+              class="number-input"
93
+            />
94
+          </template>
95
+        </el-table-column>
96
+      </el-table>
97
+    </div>
98
+    
99
+    <div class="button-container">
100
+      <el-button type="primary" size="medium" @click="handleConfirm" class="confirm-button">确定</el-button>
101
+    </div>
102
+  </div>
103
+</template>
104
+
105
+<script>
106
+export default {
107
+  name: 'ExperienceDistributionStartupPerson',
108
+  data() {
109
+    return {
110
+      teams: [
111
+        {
112
+          id: 1,
113
+          name: '安检一大队',
114
+          fiveYearsPlus: 0,
115
+          fourYears: 0,
116
+          threeYears: 0,
117
+          twoYears: 0,
118
+          oneYear: 0,
119
+          lessThanOneYear: 0
120
+        },
121
+        {
122
+          id: 2,
123
+          name: '安检二大队',
124
+          fiveYearsPlus: 0,
125
+          fourYears: 0,
126
+          threeYears: 0,
127
+          twoYears: 0,
128
+          oneYear: 0,
129
+          lessThanOneYear: 0
130
+        },
131
+        {
132
+          id: 3,
133
+          name: '安检三大队',
134
+          fiveYearsPlus: 0,
135
+          fourYears: 0,
136
+          threeYears: 0,
137
+          twoYears: 0,
138
+          oneYear: 0,
139
+          lessThanOneYear: 0
140
+        }
141
+      ]
142
+    }
143
+  },
144
+  methods: {
145
+    handleConfirm() {
146
+      console.log('提交数据:', this.teams)
147
+      this.$message.success('数据提交成功!')
148
+    }
149
+  }
150
+}
151
+</script>
152
+
153
+<style scoped>
154
+.experience-distribution {
155
+  padding: 20px;
156
+  max-width: 1200px;
157
+  margin: 0 auto;
158
+}
159
+
160
+.page-title {
161
+  text-align: center;
162
+  margin-bottom: 30px;
163
+  color: #333;
164
+  font-size: 24px;
165
+  font-weight: bold;
166
+}
167
+
168
+.table-container {
169
+  margin-bottom: 30px;
170
+}
171
+
172
+.distribution-table {
173
+  width: 100%;
174
+  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
175
+  border-radius: 4px;
176
+}
177
+
178
+.team-name {
179
+  font-weight: bold;
180
+  color: #333;
181
+}
182
+
183
+.number-input {
184
+  width: 100px;
185
+}
186
+
187
+.number-input :deep(.el-input__inner) {
188
+  text-align: center;
189
+}
190
+
191
+.button-container {
192
+  text-align: center;
193
+}
194
+
195
+.confirm-button {
196
+  width: 120px;
197
+  height: 40px;
198
+  font-size: 16px;
199
+}
200
+</style>

+ 0 - 0
src/views/blockingData/experienceDistributionStartupPerson/开机人员年限分布


+ 99 - 101
src/views/blockingData/missedInspectionList/index.vue

@@ -6,13 +6,13 @@
6 6
           <el-option v-for="item in brigadeOptions" :key="item.value" :label="item.label" :value="item.value" />
7 7
         </el-select>
8 8
       </el-form-item>
9
-      <el-form-item label="回查日期" prop="checkDate">
9
+      <el-form-item label="回查日期" prop="reviewDate">
10 10
         <el-date-picker clearable v-model="dateRange" value-format="YYYY-MM-DD" type="daterange" range-separator="-"
11 11
           start-placeholder="开始日期" end-placeholder="结束日期" style="width: 300px">
12 12
         </el-date-picker>
13 13
       </el-form-item>
14
-      <el-form-item label="被回查人" prop="checkedPerson">
15
-        <el-select v-model="queryParams.checkedPerson" placeholder="请选择被回查人" clearable style="width: 200px">
14
+      <el-form-item label="被回查人" prop="reviewedUserId">
15
+        <el-select v-model="queryParams.reviewedUserId" placeholder="请选择被回查人" clearable style="width: 200px">
16 16
           <el-option v-for="item in personOptions" :key="item.value" :label="item.label" :value="item.value" />
17 17
         </el-select>
18 18
       </el-form-item>
@@ -26,9 +26,9 @@
26 26
           <el-option v-for="item in supervisorOptions" :key="item.value" :label="item.label" :value="item.value" />
27 27
         </el-select>
28 28
       </el-form-item>
29
-      <el-form-item label="判别类型" prop="judgeType">
30
-        <el-select v-model="queryParams.judgeType" placeholder="请选择判别类型" clearable style="width: 200px">
31
-          <el-option v-for="item in judgeTypeOptions" :key="item.value" :label="item.label" :value="item.value" />
29
+      <el-form-item label="判别类型" prop="discriminationType">
30
+        <el-select v-model="queryParams.discriminationType" placeholder="请选择判别类型" clearable style="width: 200px">
31
+          <el-option v-for="item in discrimination_type" :key="item.value" :label="item.label" :value="item.value" />
32 32
         </el-select>
33 33
       </el-form-item>
34 34
       <el-form-item>
@@ -60,19 +60,19 @@
60 60
     <el-table v-loading="loading" :data="missedInspectionList" @selection-change="handleSelectionChange">
61 61
       <el-table-column type="selection" width="55" align="center" />
62 62
       <el-table-column label="大队" align="center" prop="brigadeName" width="120" />
63
-      <el-table-column label="区域" align="center" prop="area" width="120" />
64
-      <el-table-column label="被回查人" align="center" prop="checkedPerson" width="120" />
65
-      <el-table-column label="回查日期" align="center" prop="checkDate" width="120" />
66
-      <el-table-column label="漏检时间" align="center" prop="missedTime" width="120" />
67
-      <el-table-column label="漏检时间段" align="center" prop="missedTimePeriod" width="150" />
68
-      <el-table-column label="上岗位置" align="center" prop="workPosition" width="120" />
63
+      <el-table-column label="区域" align="center" prop="areaName" width="120" />
64
+      <el-table-column label="被回查人" align="center" prop="reviewedUserName" width="120" />
65
+      <el-table-column label="回查日期" align="center" prop="reviewDate" width="120" />
66
+      <el-table-column label="漏检时间" align="center" prop="missCheckTime" width="120" />
67
+      <el-table-column label="漏检时间段" align="center" prop="missCheckTimePeriod" width="150" />
68
+      <el-table-column label="上岗位置" align="center" prop="channelName" width="120" />
69 69
       <el-table-column label="分管主管" align="center" prop="supervisorName" width="120" />
70 70
       <el-table-column label="代管主管" align="center" prop="actingSupervisorName" width="120" />
71 71
       <el-table-column label="分管班组长" align="center" prop="teamLeaderName" width="120" />
72
-      <el-table-column label="物品位置" align="center" prop="itemPosition" width="120" />
73
-      <el-table-column label="简单/难" align="center" prop="difficulty" width="100" />
74
-      <el-table-column label="回查人" align="center" prop="checker" width="120" />
75
-      <el-table-column label="判别类型" align="center" prop="judgeType" width="100" />
72
+      <el-table-column label="物品位置" align="center" prop="itemLocation" width="120" />
73
+      <el-table-column label="简单/难" align="center" prop="difficultyLevel" width="100" />
74
+      <el-table-column label="回查人" align="center" prop="reviewUserName" width="120" />
75
+      <el-table-column label="判别类型" align="center" prop="discriminationType" width="100" />
76 76
       <el-table-column label="是否追回" align="center" prop="isRecovered" width="100">
77 77
         <template #default="scope">
78 78
           <el-tag :type="scope.row.isRecovered === '是' ? 'success' : 'warning'">
@@ -80,19 +80,19 @@
80 80
           </el-tag>
81 81
         </template>
82 82
       </el-table-column>
83
-      <el-table-column label="开机年限" align="center" prop="machineYears" width="100" />
83
+      <el-table-column label="开机年限" align="center" prop="machineOperatingYears" width="100" />
84 84
       <el-table-column label="证书级别" align="center" prop="certificateLevel" width="100" />
85
-      <el-table-column label="人员性别" align="center" prop="personGender" width="100" />
86
-      <el-table-column label="漏检原因分类" align="center" prop="missedReasonCategory" width="120" />
87
-      <el-table-column label="月考成绩" align="center" prop="monthlyExamScore" width="100" />
88
-      <el-table-column label="本月自测有无漏检" align="center" prop="monthlySelfTestMissed" width="120">
85
+      <el-table-column label="人员性别" align="center" prop="gender" width="100" />
86
+      <el-table-column label="漏检原因分类" align="center" prop="missCheckReasonCategory" width="120" />
87
+      <el-table-column label="月考成绩" align="center" prop="monthlyAssessment" width="100" />
88
+      <el-table-column label="本月自测有无漏检" align="center" prop="selfTestHasMissCheck" width="120">
89 89
         <template #default="scope">
90
-          <el-tag :type="scope.row.monthlySelfTestMissed === '是' ? 'warning' : 'success'">
91
-            {{ scope.row.monthlySelfTestMissed }}
90
+          <el-tag :type="scope.row.selfTestHasMissCheck === '是' ? 'warning' : 'success'">
91
+            {{ scope.row.selfTestHasMissCheck }}
92 92
           </el-tag>
93 93
         </template>
94 94
       </el-table-column>
95
-      <el-table-column label="漏检物品" align="center" prop="missedItem" width="120" />
95
+      <el-table-column label="漏检物品" align="center" prop="missCheckItem" width="120" />
96 96
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="140">
97 97
         <template #default="scope">
98 98
           <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
@@ -114,26 +114,26 @@
114 114
             <el-option v-for="item in brigadeOptions" :key="item.value" :label="item.label" :value="item.value" />
115 115
           </el-select>
116 116
         </el-form-item>
117
-        <el-form-item label="区域" prop="area">
118
-          <el-input v-model="form.area" placeholder="请输入区域" />
117
+        <el-form-item label="区域" prop="areaName">
118
+          <el-input v-model="form.areaName" placeholder="请输入区域" />
119 119
         </el-form-item>
120
-        <el-form-item label="被回查人" prop="checkedPerson">
121
-          <el-select v-model="form.checkedPerson" placeholder="请选择被回查人" style="width: 100%">
120
+        <el-form-item label="被回查人" prop="reviewedUserId">
121
+          <el-select v-model="form.reviewedUserId" placeholder="请选择被回查人" style="width: 100%">
122 122
             <el-option v-for="item in personOptions" :key="item.value" :label="item.label" :value="item.value" />
123 123
           </el-select>
124 124
         </el-form-item>
125
-        <el-form-item label="回查日期" prop="checkDate">
126
-          <el-date-picker v-model="form.checkDate" type="date" placeholder="选择回查日期" value-format="YYYY-MM-DD"
125
+        <el-form-item label="回查日期" prop="reviewDate">
126
+          <el-date-picker v-model="form.reviewDate" type="date" placeholder="选择回查日期" value-format="YYYY-MM-DD"
127 127
             style="width: 100%" />
128 128
         </el-form-item>
129
-        <el-form-item label="漏检时间" prop="missedTime">
130
-          <el-input v-model="form.missedTime" placeholder="请输入漏检时间" />
129
+        <el-form-item label="漏检时间" prop="missCheckTime">
130
+          <el-input v-model="form.missCheckTime" placeholder="请输入漏检时间" />
131 131
         </el-form-item>
132
-        <el-form-item label="漏检时间段" prop="missedTimePeriod">
133
-          <el-input v-model="form.missedTimePeriod" placeholder="请输入漏检时间段" />
132
+        <el-form-item label="漏检时间段" prop="missCheckTimePeriod">
133
+          <el-input v-model="form.missCheckTimePeriod" placeholder="请输入漏检时间段" />
134 134
         </el-form-item>
135
-        <el-form-item label="上岗位置" prop="workPosition">
136
-          <el-input v-model="form.workPosition" placeholder="请输入上岗位置" />
135
+        <el-form-item label="上岗位置" prop="channelName">
136
+          <el-input v-model="form.channelName" placeholder="请输入上岗位置" />
137 137
         </el-form-item>
138 138
         <el-form-item label="分管主管" prop="supervisorId">
139 139
           <el-select v-model="form.supervisorId" placeholder="请选择分管主管" style="width: 100%">
@@ -150,23 +150,23 @@
150 150
             <el-option v-for="item in teamLeaderOptions" :key="item.value" :label="item.label" :value="item.value" />
151 151
           </el-select>
152 152
         </el-form-item>
153
-        <el-form-item label="物品位置" prop="itemPosition">
154
-          <el-input v-model="form.itemPosition" placeholder="请输入物品位置" />
153
+        <el-form-item label="物品位置" prop="itemLocation">
154
+          <el-input v-model="form.itemLocation" placeholder="请输入物品位置" />
155 155
         </el-form-item>
156
-        <el-form-item label="简单/难" prop="difficulty">
157
-          <el-select v-model="form.difficulty" placeholder="请选择简单/难" style="width: 100%">
156
+        <el-form-item label="简单/难" prop="difficultyLevel">
157
+          <el-select v-model="form.difficultyLevel" placeholder="请选择简单/难" style="width: 100%">
158 158
             <el-option label="简单" value="简单" />
159 159
             <el-option label="难" value="难" />
160 160
           </el-select>
161 161
         </el-form-item>
162
-        <el-form-item label="回查人" prop="checker">
163
-          <el-select v-model="form.checker" placeholder="请选择回查人" style="width: 100%">
162
+        <el-form-item label="回查人" prop="reviewUserId">
163
+          <el-select v-model="form.reviewUserId" placeholder="请选择回查人" style="width: 100%">
164 164
             <el-option v-for="item in personOptions" :key="item.value" :label="item.label" :value="item.value" />
165 165
           </el-select>
166 166
         </el-form-item>
167
-        <el-form-item label="判别类型" prop="judgeType">
168
-          <el-select v-model="form.judgeType" placeholder="请选择判别类型" style="width: 100%">
169
-            <el-option v-for="item in judgeTypeOptions" :key="item.value" :label="item.label" :value="item.value" />
167
+        <el-form-item label="判别类型" prop="discriminationType">
168
+          <el-select v-model="form.discriminationType" placeholder="请选择判别类型" style="width: 100%">
169
+            <el-option v-for="item in discrimination_type" :key="item.value" :label="item.label" :value="item.value" />
170 170
           </el-select>
171 171
         </el-form-item>
172 172
         <el-form-item label="是否追回" prop="isRecovered">
@@ -175,8 +175,8 @@
175 175
             <el-option label="否" value="否" />
176 176
           </el-select>
177 177
         </el-form-item>
178
-        <el-form-item label="开机年限" prop="machineYears">
179
-          <el-input v-model="form.machineYears" placeholder="请输入开机年限" />
178
+        <el-form-item label="开机年限" prop="machineOperatingYears">
179
+          <el-input v-model="form.machineOperatingYears" placeholder="请输入开机年限" />
180 180
         </el-form-item>
181 181
         <el-form-item label="证书级别" prop="certificateLevel">
182 182
           <el-select v-model="form.certificateLevel" placeholder="请选择证书级别" style="width: 100%">
@@ -185,26 +185,26 @@
185 185
             <el-option label="高级" value="高级" />
186 186
           </el-select>
187 187
         </el-form-item>
188
-        <el-form-item label="人员性别" prop="personGender">
189
-          <el-select v-model="form.personGender" placeholder="请选择人员性别" style="width: 100%">
188
+        <el-form-item label="人员性别" prop="gender">
189
+          <el-select v-model="form.gender" placeholder="请选择人员性别" style="width: 100%">
190 190
             <el-option label="男" value="男" />
191 191
             <el-option label="女" value="女" />
192 192
           </el-select>
193 193
         </el-form-item>
194
-        <el-form-item label="漏检原因分类" prop="missedReasonCategory">
195
-          <el-input v-model="form.missedReasonCategory" placeholder="请输入漏检原因分类" />
194
+        <el-form-item label="漏检原因分类" prop="missCheckReasonCategory">
195
+          <el-input v-model="form.missCheckReasonCategory" placeholder="请输入漏检原因分类" />
196 196
         </el-form-item>
197
-        <el-form-item label="月考成绩" prop="monthlyExamScore">
198
-          <el-input v-model="form.monthlyExamScore" placeholder="请输入月考成绩" />
197
+        <el-form-item label="月考成绩" prop="monthlyAssessment">
198
+          <el-input v-model="form.monthlyAssessment" placeholder="请输入月考成绩" />
199 199
         </el-form-item>
200
-        <el-form-item label="本月自测有无漏检" prop="monthlySelfTestMissed">
201
-          <el-select v-model="form.monthlySelfTestMissed" placeholder="请选择本月自测有无漏检" style="width: 100%">
200
+        <el-form-item label="本月自测有无漏检" prop="selfTestHasMissCheck">
201
+          <el-select v-model="form.selfTestHasMissCheck" placeholder="请选择本月自测有无漏检" style="width: 100%">
202 202
             <el-option label="是" value="是" />
203 203
             <el-option label="否" value="否" />
204 204
           </el-select>
205 205
         </el-form-item>
206
-        <el-form-item label="漏检物品" prop="missedItem">
207
-          <el-input v-model="form.missedItem" placeholder="请输入漏检物品" />
206
+        <el-form-item label="漏检物品" prop="missCheckItem">
207
+          <el-input v-model="form.missCheckItem" placeholder="请输入漏检物品" />
208 208
         </el-form-item>
209 209
       </el-form>
210 210
       <template #footer>
@@ -221,6 +221,10 @@
221 221
         accept=".xlsx,.xls">
222 222
         <el-button type="primary">选取文件</el-button>
223 223
         <div class="el-upload__tip">只能上传xls/xlsx文件</div>
224
+        <div class="el-upload__tip">
225
+          <el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
226
+            @click="importTemplate">下载模板</el-link>
227
+        </div>
224 228
       </el-upload>
225 229
       <template #footer>
226 230
         <div class="dialog-footer">
@@ -234,9 +238,10 @@
234 238
 
235 239
 <script setup>
236 240
 import { ref, reactive, onMounted, getCurrentInstance } from 'vue'
237
-import { listMissedInspection, getMissedInspection, delMissedInspection, addMissedInspection, updateMissedInspection, exportMissedInspection } from '@/api/blockingData/missedInspection'
241
+import { listMissedInspection, getMissedInspection, delMissedInspection, addMissedInspection, updateMissedInspection, exportMissedInspection, downloadTemplate } from '@/api/blockingData/missedInspection'
238 242
 import { listDept } from '@/api/system/dept'
239 243
 import { listUser } from '@/api/system/user'
244
+import { useDict } from '@/utils/dict'
240 245
 
241 246
 const { proxy } = getCurrentInstance()
242 247
 
@@ -270,11 +275,11 @@ const queryParams = reactive({
270 275
   pageNum: 1,
271 276
   pageSize: 10,
272 277
   brigadeId: null,
273
-  checkDate: null,
274
-  checkedPerson: null,
278
+  reviewDate: null,
279
+  reviewedUserId: null,
275 280
   teamLeaderId: null,
276 281
   supervisorId: null,
277
-  judgeType: null
282
+  discriminationType: null
278 283
 })
279 284
 
280 285
 // 表单参数
@@ -283,9 +288,12 @@ const form = reactive({})
283 288
 // 表单校验
284 289
 const rules = {
285 290
   brigadeId: [{ required: true, message: '大队不能为空', trigger: 'change' }],
286
-  checkDate: [{ required: true, message: '回查日期不能为空', trigger: 'change' }]
291
+  reviewDate: [{ required: true, message: '回查日期不能为空', trigger: 'change' }]
287 292
 }
288 293
 
294
+// 字典数据
295
+const { discrimination_type } = useDict('discrimination_type')
296
+
289 297
 // 大队选项
290 298
 const brigadeOptions = ref([])
291 299
 // 人员选项
@@ -294,24 +302,17 @@ const personOptions = ref([])
294 302
 const teamLeaderOptions = ref([])
295 303
 // 主管选项
296 304
 const supervisorOptions = ref([])
297
-// 判别类别选项
298
-const judgeTypeOptions = ref([
299
-  { label: '火灾', value: '火灾' },
300
-  { label: '打火机', value: '打火机' },
301
-  { label: '火柴', value: '火柴' },
302
-  { label: '火种', value: '火种' },
303
-  { label: '其他', value: '其他' }
304
-])
305
+
305 306
 
306 307
 /** 查询漏检列表 */
307 308
 function getList() {
308 309
   loading.value = true
309 310
   if (dateRange.value && dateRange.value.length === 2) {
310
-    queryParams.checkDateStart = dateRange.value[0]
311
-    queryParams.checkDateEnd = dateRange.value[1]
311
+    queryParams.reviewDateStart = dateRange.value[0]
312
+    queryParams.reviewDateEnd = dateRange.value[1]
312 313
   } else {
313
-    queryParams.checkDateStart = null
314
-    queryParams.checkDateEnd = null
314
+    queryParams.reviewDateStart = null
315
+    queryParams.reviewDateEnd = null
315 316
   }
316 317
   listMissedInspection(queryParams).then(response => {
317 318
     missedInspectionList.value = response.rows
@@ -357,31 +358,31 @@ function cancel() {
357 358
 
358 359
 // 表单重置
359 360
 function reset() {
360
-  form.value = {
361
+  Object.assign(form, {
361 362
     id: null,
362 363
     brigadeId: null,
363
-    area: null,
364
-    checkedPerson: null,
365
-    checkDate: null,
366
-    missedTime: null,
367
-    missedTimePeriod: null,
368
-    workPosition: null,
364
+    areaName: null,
365
+    reviewedUserId: null,
366
+    reviewDate: null,
367
+    missCheckTime: null,
368
+    missCheckTimePeriod: null,
369
+    channelName: null,
369 370
     supervisorId: null,
370 371
     actingSupervisorId: null,
371 372
     teamLeaderId: null,
372
-    itemPosition: null,
373
-    difficulty: null,
374
-    checker: null,
375
-    judgeType: null,
373
+    itemLocation: null,
374
+    difficultyLevel: null,
375
+    reviewUserId: null,
376
+    discriminationType: null,
376 377
     isRecovered: null,
377
-    machineYears: null,
378
+    machineOperatingYears: null,
378 379
     certificateLevel: null,
379
-    personGender: null,
380
-    missedReasonCategory: null,
381
-    monthlyExamScore: null,
382
-    monthlySelfTestMissed: null,
383
-    missedItem: null
384
-  }
380
+    gender: null,
381
+    missCheckReasonCategory: null,
382
+    monthlyAssessment: null,
383
+    selfTestHasMissCheck: null,
384
+    missCheckItem: null
385
+  })
385 386
   proxy.resetForm('missedInspectionRef')
386 387
 }
387 388
 
@@ -468,6 +469,11 @@ function handleImport() {
468 469
   importFile.value = null
469 470
 }
470 471
 
472
+/** 下载模板操作 */
473
+function importTemplate() {
474
+  proxy.download('blocked/missReview/importTemplate', {}, `missed_inspection_template_${new Date().getTime()}.xlsx`)
475
+}
476
+
471 477
 /** 文件选择 */
472 478
 function handleFileChange(file) {
473 479
   importFile.value = file.raw
@@ -500,13 +506,5 @@ onMounted(() => {
500 506
   padding: 20px;
501 507
 }
502 508
 
503
-:deep(.el-table) {
504
-  .el-table__header-wrapper {
505
-    th {
506
-      background-color: #303133;
507
-      color: #ffffff;
508
-      font-weight: 600;
509
-    }
510
-  }
511
-}
509
+
512 510
 </style>

+ 17 - 25
src/views/blockingData/rateList/index.vue

@@ -7,8 +7,8 @@
7 7
         </el-select>
8 8
       </el-form-item>
9 9
       <el-form-item label="日期" prop="statDate">
10
-        <el-date-picker clearable v-model="queryParams.statDate" type="date" placeholder="选择日期" value-format="YYYY-MM-DD"
11
-          style="width: 200px" />
10
+        <el-date-picker clearable v-model="queryParams.statDate" type="date" placeholder="选择日期"
11
+          value-format="YYYY-MM-DD" style="width: 200px" />
12 12
       </el-form-item>
13 13
       <el-form-item label="班次" prop="shift">
14 14
         <el-select v-model="queryParams.shift" placeholder="请选择班次" clearable style="width: 200px">
@@ -43,17 +43,17 @@
43 43
 
44 44
     <el-table v-loading="loading" :data="rateList" @selection-change="handleSelectionChange">
45 45
       <el-table-column type="selection" width="55" align="center" />
46
-      <el-table-column label="日期" align="center" prop="statDate" width="120" />
47
-      <el-table-column label="旅检国内区域平均速率(高峰期时段)" align="center" prop="travelInspectionDomesticAvgRatePeak" width="220" />
48
-      <el-table-column label="当班大队" align="center" prop="dutyBrigadeName" width="120" />
49
-      <el-table-column label="T1-A区速率(高峰期时段)" align="center" prop="t1AAreaRatePeak" width="180" />
50
-      <el-table-column label="T1-B区速率(高峰期时段)" align="center" prop="t1BAreaRatePeak" width="180" />
51
-      <el-table-column label="T2-国内速率(高峰期时段)" align="center" prop="t2DomesticRatePeak" width="180" />
52
-      <el-table-column label="T2-国际速率(高峰期时段)" align="center" prop="t2InternationalRatePeak" width="180" />
53
-      <el-table-column label="班次" align="center" prop="shift" width="100" />
54
-      <el-table-column label="T2-中转(高峰期时段)" align="center" prop="t2TransferRatePeak" width="160" />
55
-      <el-table-column label="国际及中转区域平均速率(高峰期时段)" align="center" prop="internationalTransferAvgRatePeak" width="240" />
56
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="140">
46
+      <el-table-column label="日期" align="center" prop="statDate" />
47
+      <el-table-column label="旅检国内区域平均速率(高峰期时段)" align="center" prop="travelInspectionDomesticAvgRatePeak" />
48
+      <el-table-column label="当班大队" align="center" prop="dutyBrigadeName" />
49
+      <el-table-column label="T1-A区速率(高峰期时段)" align="center" prop="t1AAreaRatePeak" />
50
+      <el-table-column label="T1-B区速率(高峰期时段)" align="center" prop="t1BAreaRatePeak" />
51
+      <el-table-column label="T2-国内速率(高峰期时段)" align="center" prop="t2DomesticRatePeak" />
52
+      <el-table-column label="T2-国际速率(高峰期时段)" align="center" prop="t2InternationalRatePeak" />
53
+      <el-table-column label="班次" align="center" prop="shift" />
54
+      <el-table-column label="T2-中转(高峰期时段)" align="center" prop="t2TransferRatePeak" />
55
+      <el-table-column label="国际及中转区域平均速率(高峰期时段)" align="center" prop="internationalTransferAvgRatePeak" />
56
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
57 57
         <template #default="scope">
58 58
           <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
59 59
             v-hasPermi="['rateList:rateList:edit']">修改</el-button>
@@ -93,7 +93,8 @@
93 93
           </el-col>
94 94
           <el-col :span="12">
95 95
             <el-form-item label="旅检国内区域平均速率(高峰期时段)" prop="travelInspectionDomesticAvgRatePeak">
96
-              <el-input-number v-model="form.travelInspectionDomesticAvgRatePeak" :min="0" :precision="2" style="width: 100%" />
96
+              <el-input-number v-model="form.travelInspectionDomesticAvgRatePeak" :min="0" :precision="2"
97
+                style="width: 100%" />
97 98
             </el-form-item>
98 99
           </el-col>
99 100
         </el-row>
@@ -129,7 +130,8 @@
129 130
           </el-col>
130 131
           <el-col :span="12">
131 132
             <el-form-item label="国际及中转区域平均速率(高峰期时段)" prop="internationalTransferAvgRatePeak">
132
-              <el-input-number v-model="form.internationalTransferAvgRatePeak" :min="0" :precision="2" style="width: 100%" />
133
+              <el-input-number v-model="form.internationalTransferAvgRatePeak" :min="0" :precision="2"
134
+                style="width: 100%" />
133 135
             </el-form-item>
134 136
           </el-col>
135 137
         </el-row>
@@ -338,14 +340,4 @@ onMounted(() => {
338 340
 .app-container {
339 341
   padding: 20px;
340 342
 }
341
-
342
-:deep(.el-table) {
343
-  .el-table__header-wrapper {
344
-    th {
345
-      background-color: #303133;
346
-      color: #ffffff;
347
-      font-weight: 600;
348
-    }
349
-  }
350
-}
351 343
 </style>