作者 xiaoqiu

完成部分修改

1 # 页面标题 1 # 页面标题
2 -VITE_APP_TITLE = 车险登记平台 2 +VITE_APP_TITLE = 广西车险登记平台
3 3
4 # 开发环境配置 4 # 开发环境配置
5 VITE_APP_ENV = 'development' 5 VITE_APP_ENV = 'development'
1 # 页面标题 1 # 页面标题
2 -VITE_APP_TITLE = 车险登记平台 2 +VITE_APP_TITLE = 广西车险登记平台
3 3
4 # 生产环境配置 4 # 生产环境配置
5 VITE_APP_ENV = 'production' 5 VITE_APP_ENV = 'production'
@@ -63,7 +63,7 @@ export function queryResult(params) { @@ -63,7 +63,7 @@ export function queryResult(params) {
63 }) 63 })
64 } 64 }
65 65
66 -// 查询作废备注 66 +// 查询备注
67 export function queryDefeatContent(params) { 67 export function queryDefeatContent(params) {
68 return request({ 68 return request({
69 url: '/registration/monitor/getComment', 69 url: '/registration/monitor/getComment',
@@ -123,3 +123,19 @@ export function getCarDetail(id) { @@ -123,3 +123,19 @@ export function getCarDetail(id) {
123 method: 'get' 123 method: 'get'
124 }) 124 })
125 } 125 }
  126 +
  127 +// 获取流转下一家公司
  128 +export function getCompanyTip() {
  129 + return request({
  130 + url: `/registration/getNext`,
  131 + method: 'post'
  132 + })
  133 +}
  134 +
  135 +// 获取轮次
  136 +export function getCount() {
  137 + return request({
  138 + url: `/system/rule/getCounting`,
  139 + method: 'post'
  140 + })
  141 +}
@@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@
9 <div class="card-panel-text">未承接</div> 9 <div class="card-panel-text">未承接</div>
10 <count-to 10 <count-to
11 :start-val="0" 11 :start-val="0"
12 - :end-val="102400" 12 + :end-val="totalList[0]"
13 :duration="2600" 13 :duration="2600"
14 class="card-panel-num" 14 class="card-panel-num"
15 /> 15 />
@@ -25,7 +25,7 @@ @@ -25,7 +25,7 @@
25 <div class="card-panel-text">已承接</div> 25 <div class="card-panel-text">已承接</div>
26 <count-to 26 <count-to
27 :start-val="0" 27 :start-val="0"
28 - :end-val="81212" 28 + :end-val="totalList[1]"
29 :duration="3000" 29 :duration="3000"
30 class="card-panel-num" 30 class="card-panel-num"
31 /> 31 />
@@ -41,7 +41,7 @@ @@ -41,7 +41,7 @@
41 <div class="card-panel-text">未完成</div> 41 <div class="card-panel-text">未完成</div>
42 <count-to 42 <count-to
43 :start-val="0" 43 :start-val="0"
44 - :end-val="9280" 44 + :end-val="totalList[2]"
45 :duration="3200" 45 :duration="3200"
46 class="card-panel-num" 46 class="card-panel-num"
47 /> 47 />
@@ -57,7 +57,7 @@ @@ -57,7 +57,7 @@
57 <div class="card-panel-text">已完成</div> 57 <div class="card-panel-text">已完成</div>
58 <count-to 58 <count-to
59 :start-val="0" 59 :start-val="0"
60 - :end-val="13600" 60 + :end-val="totalList[3]"
61 :duration="3600" 61 :duration="3600"
62 class="card-panel-num" 62 class="card-panel-num"
63 /> 63 />
@@ -69,6 +69,13 @@ @@ -69,6 +69,13 @@
69 69
70 <script setup> 70 <script setup>
71 import { CountTo } from "vue3-count-to"; 71 import { CountTo } from "vue3-count-to";
  72 +defineProps({
  73 + totalList: {
  74 + type: Object,
  75 + default: () => {},
  76 + },
  77 +});
  78 +
72 const $emit = defineEmits(["handleSetLineChartData"]); 79 const $emit = defineEmits(["handleSetLineChartData"]);
73 const handleSetLineChartData = (type) => { 80 const handleSetLineChartData = (type) => {
74 $emit("handleSetLineChartData", type); 81 $emit("handleSetLineChartData", type);
  1 +//计算两个时间之间的时间差 多少天时分秒
  2 +export function intervalTime(timestamp1, timestamp2) {
  3 + // 将时间戳转换为毫秒
  4 + const diffInMilliseconds = Math.abs(timestamp2 - timestamp1);
  5 + // 1 小时等于 3600000 毫秒
  6 + return (diffInMilliseconds / 3600000).toFixed(2) + '时';
  7 +}
@@ -26,7 +26,22 @@ @@ -26,7 +26,22 @@
26 <el-table-column type="selection" width="55" align="center" /> 26 <el-table-column type="selection" width="55" align="center" />
27 <el-table-column label="序号" prop="id" align="center" /> 27 <el-table-column label="序号" prop="id" align="center" />
28 <el-table-column label="保险公司名称" prop="deptName" align="center" /> 28 <el-table-column label="保险公司名称" prop="deptName" align="center" />
29 - <el-table-column label="周分配订单" width="240" align="center" prop="num"> 29 + <el-table-column label="状态" align="center" key="status">
  30 + <template #default="scope">
  31 + <el-switch
  32 + v-model="scope.row.status"
  33 + active-value="0"
  34 + inactive-value="1"
  35 + @change="handleUpdate(scope.row)"
  36 + />
  37 + </template>
  38 + </el-table-column>
  39 + <el-table-column
  40 + label="周期分配订单"
  41 + width="240"
  42 + align="center"
  43 + prop="num"
  44 + >
30 <template #default="{ row }"> 45 <template #default="{ row }">
31 <el-input v-model="row.num" type="num" /> 46 <el-input v-model="row.num" type="num" />
32 </template> 47 </template>
@@ -125,8 +140,9 @@ onMounted(() => { @@ -125,8 +140,9 @@ onMounted(() => {
125 140
126 // 获取规则列表 141 // 获取规则列表
127 const getList = async () => { 142 const getList = async () => {
128 - const { data } = await queryRules();  
129 - rulesList.value = data; 143 + const { data } = await queryRules(queryParams);
  144 + rulesList.value = data.records || data;
  145 + total.value = data.total || 0;
130 }; 146 };
131 /** 查询部门列表 */ 147 /** 查询部门列表 */
132 const getDeptList = () => { 148 const getDeptList = () => {
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 </div> 17 </div>
18 <ul class="list-group list-group-striped"> 18 <ul class="list-group list-group-striped">
19 <li class="list-group-item"> 19 <li class="list-group-item">
20 - <svg-icon icon-class="user" />用户昵称 20 + <svg-icon icon-class="user" />用户姓名
21 <div class="pull-right">{{ state.user.nickName }}</div> 21 <div class="pull-right">{{ state.user.nickName }}</div>
22 </li> 22 </li>
23 <li class="list-group-item"> 23 <li class="list-group-item">
@@ -47,7 +47,7 @@ @@ -47,7 +47,7 @@
47 </el-card> 47 </el-card>
48 </el-col> 48 </el-col>
49 <el-col :span="18" :xs="24"> 49 <el-col :span="18" :xs="24">
50 - <PanelGroup :listData="listData" /> 50 + <PanelGroup :totalList="totalList" />
51 <!-- 统计柱状图 --> 51 <!-- 统计柱状图 -->
52 <div class="echarts_box"> 52 <div class="echarts_box">
53 <div 53 <div
@@ -87,6 +87,12 @@ const { proxy } = getCurrentInstance(); @@ -87,6 +87,12 @@ const { proxy } = getCurrentInstance();
87 const userStore = useUserStore(); 87 const userStore = useUserStore();
88 const chartRef = ref(null); 88 const chartRef = ref(null);
89 const listData = ref([]); 89 const listData = ref([]);
  90 +const totalList = ref({
  91 + 0: 0,
  92 + 1: 0,
  93 + 2: 0,
  94 + 3: 0,
  95 +});
90 const xList = ref([]); 96 const xList = ref([]);
91 const company = ref(""); 97 const company = ref("");
92 const option = ref({}); 98 const option = ref({});
@@ -107,7 +113,7 @@ const state = reactive({ @@ -107,7 +113,7 @@ const state = reactive({
107 113
108 onMounted(() => { 114 onMounted(() => {
109 getList(); 115 getList();
110 - if (proxy.$auth.hasRoleOr(["admin", "common"])) { 116 + if (proxy.$auth.hasRoleOr(["admin", "associationemployee"])) {
111 getDeptList(); 117 getDeptList();
112 } 118 }
113 }); 119 });
@@ -151,6 +157,7 @@ const getList = async () => { @@ -151,6 +157,7 @@ const getList = async () => {
151 for (let i = 0; i < 4; i++) { 157 for (let i = 0; i < 4; i++) {
152 for (let j = 0; j < 13; j++) { 158 for (let j = 0; j < 13; j++) {
153 arrList[i]?.push(newArr[j][i]); 159 arrList[i]?.push(newArr[j][i]);
  160 + totalList.value[i] += newArr[j][i];
154 } 161 }
155 } 162 }
156 listData.value = arrList.map((child, index) => { 163 listData.value = arrList.map((child, index) => {
@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
8 :inline="true" 8 :inline="true"
9 label-width="68px" 9 label-width="68px"
10 > 10 >
11 - <el-form-item label="用户姓名" prop="name"> 11 + <el-form-item label="车主姓名" prop="name">
12 <el-input 12 <el-input
13 v-model="queryParams.name" 13 v-model="queryParams.name"
14 placeholder="请输入名称" 14 placeholder="请输入名称"
@@ -62,7 +62,6 @@ @@ -62,7 +62,6 @@
62 <el-table-column 62 <el-table-column
63 label="车架号" 63 label="车架号"
64 prop="frameNumber" 64 prop="frameNumber"
65 - width="180"  
66 align="center" 65 align="center"
67 :show-overflow-tooltip="true" 66 :show-overflow-tooltip="true"
68 /> 67 />
@@ -90,7 +89,7 @@ @@ -90,7 +89,7 @@
90 prop="associationEmployeeUserName" 89 prop="associationEmployeeUserName"
91 width="120" 90 width="120"
92 /> 91 />
93 - <el-table-column label="作废备注" fixed="right" width="120" prop="remark"> 92 + <el-table-column label="作废备注" width="120" fixed="right" prop="remark">
94 <template #default> 93 <template #default>
95 <el-button type="primary">查阅</el-button> 94 <el-button type="primary">查阅</el-button>
96 </template> 95 </template>
@@ -129,18 +128,6 @@ @@ -129,18 +128,6 @@
129 </el-row> 128 </el-row>
130 <el-row> 129 <el-row>
131 <el-col :span="12"> 130 <el-col :span="12">
132 - <el-form-item label="发动机号" prop="engineNumber">  
133 - <el-input v-model="form.engineNumber" placeholder="无" disabled />  
134 - </el-form-item>  
135 - </el-col>  
136 - <el-col :span="12">  
137 - <el-form-item label="上年承保公司" prop="sysDeptName">  
138 - <el-input v-model="form.sysDeptName" disabled placeholder="无" />  
139 - </el-form-item>  
140 - </el-col>  
141 - </el-row>  
142 - <el-row>  
143 - <el-col :span="12">  
144 <el-form-item label="车主姓名" prop="name"> 131 <el-form-item label="车主姓名" prop="name">
145 <el-input 132 <el-input
146 v-model="form.name" 133 v-model="form.name"
@@ -161,80 +148,16 @@ @@ -161,80 +148,16 @@
161 </el-row> 148 </el-row>
162 <el-row> 149 <el-row>
163 <el-col :span="12"> 150 <el-col :span="12">
164 - <el-form-item label="车辆类型" prop="vehicleType">  
165 - <el-input  
166 - v-model="form.vehicleType"  
167 - disabled  
168 - placeholder="请输入登记时间"  
169 - />  
170 - </el-form-item>  
171 - </el-col>  
172 - <el-col :span="12">  
173 - <el-form-item label="车辆使用性质" prop="vehicleNature">  
174 - <el-input  
175 - v-model="form.vehicleNature"  
176 - disabled  
177 - placeholder="请输入办理人"  
178 - />  
179 - </el-form-item>  
180 - </el-col>  
181 - </el-row>  
182 - <el-row>  
183 - <el-col :span="12">  
184 - <el-form-item label="核定载客数" prop="passengersNumber">  
185 - <el-input  
186 - v-model="form.passengersNumber"  
187 - disabled  
188 - placeholder="请输入办理人"  
189 - />  
190 - </el-form-item>  
191 - </el-col>  
192 - <el-col :span="12">  
193 - <el-form-item label="核定载质量" prop="passengerCapacity">  
194 - <el-input  
195 - v-model="form.passengerCapacity"  
196 - disabled  
197 - placeholder="请输入承保公司"  
198 - />  
199 - </el-form-item>  
200 - </el-col>  
201 - </el-row>  
202 - <el-row>  
203 - <el-col :span="12">  
204 - <el-form-item label="排量毫升" prop="emissions">  
205 - <el-input  
206 - v-model="form.emissions"  
207 - disabled  
208 - placeholder="请输入办理人"  
209 - />  
210 - </el-form-item>  
211 - </el-col>  
212 - <el-col :span="12">  
213 - <el-form-item label="中文品牌" prop="vehicleBrand">  
214 - <el-input  
215 - v-model="form.vehicleBrand"  
216 - disabled  
217 - placeholder="请输入办理人"  
218 - />  
219 - </el-form-item>  
220 - </el-col>  
221 - </el-row>  
222 - <el-row>  
223 - <el-col :span="12">  
224 - <el-form-item label="车辆型号" prop="vehicleModel">  
225 - <el-input  
226 - v-model="form.vehicleModel"  
227 - disabled  
228 - placeholder="请输入办理人"  
229 - /> 151 + <el-form-item label="发动机号" prop="engineNumber">
  152 + <el-input v-model="form.engineNumber" placeholder="无" disabled />
230 </el-form-item> 153 </el-form-item>
231 </el-col> 154 </el-col>
232 <el-col :span="12"> 155 <el-col :span="12">
233 - <el-form-item label="准牵引准质量" prop="tractionMass"> 156 + <el-form-item label="上年承保公司" prop="sysDeptName">
234 <el-input 157 <el-input
235 - v-model="form.tractionMass" 158 + v-model="form.sysDeptName"
236 disabled 159 disabled
237 - placeholder="请输入办理人" 160 + placeholder="请输入上年承保公司"
238 /> 161 />
239 </el-form-item> 162 </el-form-item>
240 </el-col> 163 </el-col>
@@ -242,17 +165,13 @@ @@ -242,17 +165,13 @@
242 <el-row> 165 <el-row>
243 <el-col :span="12"> 166 <el-col :span="12">
244 <el-form-item label="保险需求" prop="requirements"> 167 <el-form-item label="保险需求" prop="requirements">
245 - <el-input  
246 - v-model="form.requirements"  
247 - disabled  
248 - placeholder="请输入办理人"  
249 - /> 168 + <el-input v-model="form.requirements" disabled placeholder="无" />
250 </el-form-item> 169 </el-form-item>
251 </el-col> 170 </el-col>
252 <el-col :span="12"> 171 <el-col :span="12">
253 - <el-form-item label="号牌种类" prop="lincensePlateType"> 172 + <el-form-item label="使用性质" prop="vehicleNature">
254 <el-input 173 <el-input
255 - v-model="form.lincensePlateType" 174 + v-model="form.vehicleNature"
256 disabled 175 disabled
257 placeholder="无" 176 placeholder="无"
258 /> 177 />
@@ -290,12 +209,13 @@ function reset() { @@ -290,12 +209,13 @@ function reset() {
290 proxy.resetForm("policyRef"); 209 proxy.resetForm("policyRef");
291 } 210 }
292 211
293 -/** 修改按钮操作 */ 212 +/** 查阅操作 */
294 const handleUpdate = async (row) => { 213 const handleUpdate = async (row) => {
295 reset(); 214 reset();
296 form.value = row; 215 form.value = row;
297 const { data } = await queryDefeatContent({ 216 const { data } = await queryDefeatContent({
298 processInstanceId: row.processInstanceId, 217 processInstanceId: row.processInstanceId,
  218 + type: 2,
299 }); 219 });
300 form.value.deprecatedReason = data.message; 220 form.value.deprecatedReason = data.message;
301 open.value = true; 221 open.value = true;
@@ -86,7 +86,7 @@ @@ -86,7 +86,7 @@
86 <el-table-column 86 <el-table-column
87 label="办理人" 87 label="办理人"
88 prop="companyEmployeeUserName" 88 prop="companyEmployeeUserName"
89 - width="100" 89 + width="150"
90 align="center" 90 align="center"
91 /> 91 />
92 <el-table-column label="保单状态" width="100" prop="statue"> 92 <el-table-column label="保单状态" width="100" prop="statue">
@@ -142,22 +142,6 @@ @@ -142,22 +142,6 @@
142 </el-row> 142 </el-row>
143 <el-row> 143 <el-row>
144 <el-col :span="12"> 144 <el-col :span="12">
145 - <el-form-item label="发动机号" prop="engineNumber">  
146 - <el-input v-model="form.engineNumber" placeholder="无" disabled />  
147 - </el-form-item>  
148 - </el-col>  
149 - <el-col :span="12">  
150 - <el-form-item label="号牌种类" prop="lincensePlateType">  
151 - <el-input  
152 - v-model="form.lincensePlateType"  
153 - disabled  
154 - placeholder="无"  
155 - />  
156 - </el-form-item>  
157 - </el-col>  
158 - </el-row>  
159 - <el-row>  
160 - <el-col :span="12">  
161 <el-form-item label="车主姓名" prop="name"> 145 <el-form-item label="车主姓名" prop="name">
162 <el-input 146 <el-input
163 v-model="form.name" 147 v-model="form.name"
@@ -178,98 +162,73 @@ @@ -178,98 +162,73 @@
178 </el-row> 162 </el-row>
179 <el-row> 163 <el-row>
180 <el-col :span="12"> 164 <el-col :span="12">
181 - <el-form-item label="车辆类型" prop="vehicleType">  
182 - <el-input  
183 - v-model="form.vehicleType"  
184 - disabled  
185 - placeholder="请输入登记时间"  
186 - />  
187 - </el-form-item>  
188 - </el-col>  
189 - <el-col :span="12">  
190 - <el-form-item label="车辆使用性质" prop="vehicleNature">  
191 - <el-input  
192 - v-model="form.vehicleNature"  
193 - disabled  
194 - placeholder="请输入办理人"  
195 - />  
196 - </el-form-item>  
197 - </el-col>  
198 - </el-row>  
199 - <el-row>  
200 - <el-col :span="12">  
201 - <el-form-item label="核定载客数" prop="passengersNumber">  
202 - <el-input  
203 - v-model="form.passengersNumber"  
204 - disabled  
205 - placeholder="请输入办理人"  
206 - /> 165 + <el-form-item label="发动机号" prop="engineNumber">
  166 + <el-input v-model="form.engineNumber" placeholder="无" disabled />
207 </el-form-item> 167 </el-form-item>
208 </el-col> 168 </el-col>
209 <el-col :span="12"> 169 <el-col :span="12">
210 - <el-form-item label="核定载质量" prop="passengerCapacity"> 170 + <el-form-item label="上年承保公司" prop="sysDeptName">
211 <el-input 171 <el-input
212 - v-model="form.passengerCapacity" 172 + v-model="form.sysDeptName"
213 disabled 173 disabled
214 - placeholder="请输入承保公司" 174 + placeholder="请输入上年承保公司"
215 /> 175 />
216 </el-form-item> 176 </el-form-item>
217 </el-col> 177 </el-col>
218 </el-row> 178 </el-row>
219 <el-row> 179 <el-row>
220 <el-col :span="12"> 180 <el-col :span="12">
221 - <el-form-item label="排量毫升" prop="emissions"> 181 + <el-form-item label="分配机制" prop="distributionMechanism">
222 <el-input 182 <el-input
223 - v-model="form.emissions" 183 + v-model="form.distributionMechanism"
224 disabled 184 disabled
225 - placeholder="请输入办理人" 185 + placeholder=""
226 /> 186 />
227 </el-form-item> 187 </el-form-item>
228 </el-col> 188 </el-col>
229 <el-col :span="12"> 189 <el-col :span="12">
230 - <el-form-item label="中文品牌" prop="vehicleBrand">  
231 - <el-input  
232 - v-model="form.vehicleBrand"  
233 - disabled  
234 - placeholder="请输入办理人"  
235 - /> 190 + <el-form-item label="承保公司" prop="companyName">
  191 + <el-input v-model="form.companyName" disabled placeholder="无" />
236 </el-form-item> 192 </el-form-item>
237 </el-col> 193 </el-col>
238 </el-row> 194 </el-row>
239 <el-row> 195 <el-row>
240 <el-col :span="12"> 196 <el-col :span="12">
241 - <el-form-item label="车辆型号" prop="vehicleModel"> 197 + <el-form-item label="保险需求" prop="requirements">
242 <el-input 198 <el-input
243 - v-model="form.vehicleModel" 199 + v-model="form.requirements"
244 disabled 200 disabled
245 placeholder="请输入办理人" 201 placeholder="请输入办理人"
246 /> 202 />
247 </el-form-item> 203 </el-form-item>
248 </el-col> 204 </el-col>
249 <el-col :span="12"> 205 <el-col :span="12">
250 - <el-form-item label="准牵引准质量" prop="tractionMass"> 206 + <el-form-item label="使用性质" prop="vehicleNature">
251 <el-input 207 <el-input
252 - v-model="form.tractionMass" 208 + v-model="form.vehicleNature"
253 disabled 209 disabled
254 - placeholder="请输入办理人" 210 + placeholder=""
255 /> 211 />
256 </el-form-item> 212 </el-form-item>
257 </el-col> 213 </el-col>
258 </el-row> 214 </el-row>
259 <el-row> 215 <el-row>
260 <el-col :span="12"> 216 <el-col :span="12">
261 - <el-form-item label="保险需求" prop="requirements"> 217 + <el-form-item label="强险单号" prop="strongInsurancePolicyNumber">
262 <el-input 218 <el-input
263 - v-model="form.requirements" 219 + v-model="form.strongInsurancePolicyNumber"
264 disabled 220 disabled
265 - placeholder="请输入办理人" 221 + placeholder="请输入承保单号"
266 /> 222 />
267 </el-form-item> 223 </el-form-item>
268 </el-col> 224 </el-col>
269 <el-col :span="12"> 225 <el-col :span="12">
270 - <el-form-item label="承保单号" prop="policyNumber"> 226 + <el-form-item
  227 + label="商险单号"
  228 + prop="commercialInsurancePolicyNumber"
  229 + >
271 <el-input 230 <el-input
272 - v-model="form.policyNumber" 231 + v-model="form.commercialInsurancePolicyNumber"
273 disabled 232 disabled
274 placeholder="请输入承保单号" 233 placeholder="请输入承保单号"
275 /> 234 />
@@ -335,7 +294,10 @@ function lookRemark(row) { @@ -335,7 +294,10 @@ function lookRemark(row) {
335 reset(); 294 reset();
336 queryResult({ processInstanceId: row.processInstanceId }).then((res) => { 295 queryResult({ processInstanceId: row.processInstanceId }).then((res) => {
337 form.value = row; 296 form.value = row;
338 - form.value.policyNumber = res?.data?.policyNumber; 297 + form.value.strongInsurancePolicyNumber =
  298 + res?.data?.strongInsurancePolicyNumber;
  299 + form.value.commercialInsurancePolicyNumber =
  300 + res?.data?.commercialInsurancePolicyNumber;
339 form.value.message = res?.data?.message; 301 form.value.message = res?.data?.message;
340 open.value = true; 302 open.value = true;
341 }); 303 });
@@ -3,7 +3,12 @@ @@ -3,7 +3,12 @@
3 <!-- 表格数据 --> 3 <!-- 表格数据 -->
4 <el-table v-loading="loading" :data="policyList" @row-click="handleUpdate"> 4 <el-table v-loading="loading" :data="policyList" @row-click="handleUpdate">
5 <el-table-column label="序号" width="55" type="index" /> 5 <el-table-column label="序号" width="55" type="index" />
6 - <el-table-column label="登记时间" prop="createTime" align="center" /> 6 + <el-table-column
  7 + label="登记时间"
  8 + width="160"
  9 + prop="createTime"
  10 + align="center"
  11 + />
7 <el-table-column 12 <el-table-column
8 label="车牌号" 13 label="车牌号"
9 prop="licensePlateNumber" 14 prop="licensePlateNumber"
@@ -15,24 +20,18 @@ @@ -15,24 +20,18 @@
15 align="center" 20 align="center"
16 :show-overflow-tooltip="true" 21 :show-overflow-tooltip="true"
17 /> 22 />
  23 + <el-table-column
  24 + label="发动机号"
  25 + prop="engineNumber"
  26 + align="center"
  27 + :show-overflow-tooltip="true"
  28 + />
18 <el-table-column label="车主姓名" prop="name" align="center" /> 29 <el-table-column label="车主姓名" prop="name" align="center" />
19 <el-table-column label="联系电话" prop="phone" align="center" /> 30 <el-table-column label="联系电话" prop="phone" align="center" />
  31 + <el-table-column label="是否新能源" prop="isNewEnergy" align="center" />
20 <el-table-column label="上年承保公司" prop="sysDeptName" align="center" /> 32 <el-table-column label="上年承保公司" prop="sysDeptName" align="center" />
21 - <el-table-column  
22 - label="操作"  
23 - align="center"  
24 - min-width="120"  
25 - fixed="right"  
26 - >  
27 - <template #default="{ row }">  
28 - <el-button  
29 - type="primary"  
30 - v-hasRole="['companyadmin']"  
31 - @click.stop="handleSharing(row.taskId)"  
32 - >分配</el-button  
33 - >  
34 - </template>  
35 - </el-table-column> 33 + <el-table-column label="保单进度" prop="orderProgress" align="center" />
  34 + <el-table-column label="保单状态" prop="policyStatus" align="center" />
36 </el-table> 35 </el-table>
37 36
38 <pagination 37 <pagination
@@ -71,14 +70,14 @@ @@ -71,14 +70,14 @@
71 70
72 <!-- 编辑对话框 --> 71 <!-- 编辑对话框 -->
73 <el-dialog v-model="open" :title="title" width="700" append-to-body> 72 <el-dialog v-model="open" :title="title" width="700" append-to-body>
74 - <el-form :model="form" :rules="rules" ref="policyRef" label-width="100px"> 73 + <el-form :model="form" ref="policyRef" label-width="100px">
75 <el-row> 74 <el-row>
76 <el-col :span="12"> 75 <el-col :span="12">
77 <el-form-item label="车牌号" prop="licensePlateNumber"> 76 <el-form-item label="车牌号" prop="licensePlateNumber">
78 <el-input 77 <el-input
79 v-model="form.licensePlateNumber" 78 v-model="form.licensePlateNumber"
80 placeholder="请输入车牌号" 79 placeholder="请输入车牌号"
81 - maxlength="30" 80 + disabled
82 /> 81 />
83 </el-form-item> 82 </el-form-item>
84 </el-col> 83 </el-col>
@@ -86,8 +85,8 @@ @@ -86,8 +85,8 @@
86 <el-form-item label="车架号" prop="frameNumber"> 85 <el-form-item label="车架号" prop="frameNumber">
87 <el-input 86 <el-input
88 v-model="form.frameNumber" 87 v-model="form.frameNumber"
  88 + disabled
89 placeholder="请输入车架号" 89 placeholder="请输入车架号"
90 - maxlength="30"  
91 /> 90 />
92 </el-form-item> 91 </el-form-item>
93 </el-col> 92 </el-col>
@@ -97,8 +96,8 @@ @@ -97,8 +96,8 @@
97 <el-form-item label="车主姓名" prop="name"> 96 <el-form-item label="车主姓名" prop="name">
98 <el-input 97 <el-input
99 v-model="form.name" 98 v-model="form.name"
  99 + disabled
100 placeholder="请输入车主姓名" 100 placeholder="请输入车主姓名"
101 - maxlength="11"  
102 /> 101 />
103 </el-form-item> 102 </el-form-item>
104 </el-col> 103 </el-col>
@@ -106,27 +105,40 @@ @@ -106,27 +105,40 @@
106 <el-form-item label="联系电话" prop="phone"> 105 <el-form-item label="联系电话" prop="phone">
107 <el-input 106 <el-input
108 v-model="form.phone" 107 v-model="form.phone"
  108 + disabled
109 placeholder="请输入联系电话" 109 placeholder="请输入联系电话"
110 - maxlength="50"  
111 /> 110 />
112 </el-form-item> 111 </el-form-item>
113 </el-col> 112 </el-col>
114 </el-row> 113 </el-row>
115 <el-row> 114 <el-row>
116 <el-col :span="12"> 115 <el-col :span="12">
117 - <el-form-item label="登记时间" prop="createTime">  
118 - <el-input  
119 - v-model="form.createTime"  
120 - placeholder="请输入登记时间"  
121 - /> 116 + <el-form-item label="发动机号" prop="engineNumber">
  117 + <el-input v-model="form.engineNumber" placeholder="无" disabled />
122 </el-form-item> 118 </el-form-item>
123 </el-col> 119 </el-col>
124 <el-col :span="12"> 120 <el-col :span="12">
125 <el-form-item label="上年承保公司" prop="sysDeptName"> 121 <el-form-item label="上年承保公司" prop="sysDeptName">
126 <el-input 122 <el-input
127 v-model="form.sysDeptName" 123 v-model="form.sysDeptName"
  124 + disabled
128 placeholder="请输入上年承保公司" 125 placeholder="请输入上年承保公司"
129 - maxlength="50" 126 + />
  127 + </el-form-item>
  128 + </el-col>
  129 + </el-row>
  130 + <el-row>
  131 + <el-col :span="12">
  132 + <el-form-item label="保险需求" prop="requirements">
  133 + <el-input v-model="form.requirements" disabled placeholder="无" />
  134 + </el-form-item>
  135 + </el-col>
  136 + <el-col :span="12">
  137 + <el-form-item label="使用性质" prop="vehicleNature">
  138 + <el-input
  139 + v-model="form.vehicleNature"
  140 + disabled
  141 + placeholder="无"
130 /> 142 />
131 </el-form-item> 143 </el-form-item>
132 </el-col> 144 </el-col>
@@ -89,12 +89,7 @@ @@ -89,12 +89,7 @@
89 </el-form> 89 </el-form>
90 90
91 <!-- 表格数据 --> 91 <!-- 表格数据 -->
92 - <el-table  
93 - v-loading="loading"  
94 - :data="policyList"  
95 - @selection-change="handleSelectionChange"  
96 - @row-click="handleUpdate"  
97 - > 92 + <el-table v-loading="loading" :data="policyList" @row-click="handleUpdate">
98 <el-table-column label="序号" type="index" width="55" /> 93 <el-table-column label="序号" type="index" width="55" />
99 <el-table-column 94 <el-table-column
100 label="登记时间" 95 label="登记时间"
@@ -155,7 +150,7 @@ @@ -155,7 +150,7 @@
155 <el-table-column 150 <el-table-column
156 label="办理人" 151 label="办理人"
157 prop="companyEmployeeUserName" 152 prop="companyEmployeeUserName"
158 - width="100" 153 + width="150"
159 align="center" 154 align="center"
160 /> 155 />
161 <el-table-column 156 <el-table-column
@@ -164,6 +159,22 @@ @@ -164,6 +159,22 @@
164 prop="orderProgress" 159 prop="orderProgress"
165 align="center" 160 align="center"
166 /> 161 />
  162 + <el-table-column
  163 + label="操作"
  164 + v-hasRole="['companyadmin']"
  165 + align="center"
  166 + min-width="120"
  167 + fixed="right"
  168 + >
  169 + <template #default="{ row }">
  170 + <el-button
  171 + type="primary"
  172 + v-show="row.orderProgress !== '已承接'"
  173 + @click.stop="handleTransfer(row.taskId)"
  174 + >分配/转办</el-button
  175 + >
  176 + </template>
  177 + </el-table-column>
167 </el-table> 178 </el-table>
168 179
169 <pagination 180 <pagination
@@ -174,6 +185,32 @@ @@ -174,6 +185,32 @@
174 @pagination="getList" 185 @pagination="getList"
175 /> 186 />
176 187
  188 + <!-- 转办分配对话框 -->
  189 + <el-dialog
  190 + v-model="transferShow"
  191 + title="请选择人员:"
  192 + width="500"
  193 + append-to-body
  194 + >
  195 + <div class="company_box">
  196 + <el-radio-group v-model="transferForm.username">
  197 + <el-radio
  198 + v-for="item in transferOptions"
  199 + :key="item.userName"
  200 + :label="item.userName"
  201 + >{{ item.nickName }}</el-radio
  202 + >
  203 + </el-radio-group>
  204 + <div v-show="transferOptions.length === 0">暂无其他员工</div>
  205 + </div>
  206 + <template #footer>
  207 + <div class="dialog-footer">
  208 + <el-button @click="transferShow = false">取消</el-button>
  209 + <el-button type="primary" @click="submitTransfer">确定</el-button>
  210 + </div>
  211 + </template>
  212 + </el-dialog>
  213 +
177 <!-- 编辑对话框 --> 214 <!-- 编辑对话框 -->
178 <el-dialog v-model="open" title="保单信息" width="700" append-to-body> 215 <el-dialog v-model="open" title="保单信息" width="700" append-to-body>
179 <el-form :model="form" ref="policyRef" label-width="100px"> 216 <el-form :model="form" ref="policyRef" label-width="100px">
@@ -199,22 +236,6 @@ @@ -199,22 +236,6 @@
199 </el-row> 236 </el-row>
200 <el-row> 237 <el-row>
201 <el-col :span="12"> 238 <el-col :span="12">
202 - <el-form-item label="发动机号" prop="engineNumber">  
203 - <el-input v-model="form.engineNumber" placeholder="无" disabled />  
204 - </el-form-item>  
205 - </el-col>  
206 - <el-col :span="12">  
207 - <el-form-item label="排放毫升量" prop="emissions">  
208 - <el-input  
209 - v-model="form.emissions"  
210 - disabled  
211 - placeholder="请输入车架号"  
212 - />  
213 - </el-form-item>  
214 - </el-col>  
215 - </el-row>  
216 - <el-row>  
217 - <el-col :span="12">  
218 <el-form-item label="车主姓名" prop="name"> 239 <el-form-item label="车主姓名" prop="name">
219 <el-input 240 <el-input
220 v-model="form.name" 241 v-model="form.name"
@@ -235,12 +256,8 @@ @@ -235,12 +256,8 @@
235 </el-row> 256 </el-row>
236 <el-row> 257 <el-row>
237 <el-col :span="12"> 258 <el-col :span="12">
238 - <el-form-item label="登记时间" prop="createTime">  
239 - <el-input  
240 - v-model="form.createTime"  
241 - disabled  
242 - placeholder="请输入登记时间"  
243 - /> 259 + <el-form-item label="发动机号" prop="engineNumber">
  260 + <el-input v-model="form.engineNumber" placeholder="无" disabled />
244 </el-form-item> 261 </el-form-item>
245 </el-col> 262 </el-col>
246 <el-col :span="12"> 263 <el-col :span="12">
@@ -255,22 +272,6 @@ @@ -255,22 +272,6 @@
255 </el-row> 272 </el-row>
256 <el-row> 273 <el-row>
257 <el-col :span="12"> 274 <el-col :span="12">
258 - <el-form-item label="核定载质量" prop="passengerCapacity">  
259 - <el-input  
260 - v-model="form.passengerCapacity"  
261 - disabled  
262 - placeholder="无"  
263 - />  
264 - </el-form-item>  
265 - </el-col>  
266 - <el-col :span="12">  
267 - <el-form-item label="核定载人数" prop="passengersNumber">  
268 - <el-input v-model="form.passengersNumber" disabled />  
269 - </el-form-item>  
270 - </el-col>  
271 - </el-row>  
272 - <el-row>  
273 - <el-col :span="12">  
274 <el-form-item label="分配机制" prop="distributionMechanism"> 275 <el-form-item label="分配机制" prop="distributionMechanism">
275 <el-input 276 <el-input
276 v-model="form.distributionMechanism" 277 v-model="form.distributionMechanism"
@@ -287,38 +288,11 @@ @@ -287,38 +288,11 @@
287 </el-row> 288 </el-row>
288 <el-row> 289 <el-row>
289 <el-col :span="12"> 290 <el-col :span="12">
290 - <el-form-item label="车辆品牌" prop="vehicleBrand">  
291 - <el-input  
292 - v-model="form.vehicleBrand"  
293 - disabled  
294 - placeholder="车辆品牌"  
295 - />  
296 - </el-form-item>  
297 - </el-col>  
298 - <el-col :span="12">  
299 - <el-form-item label="车辆型号" prop="vehicleModel">  
300 - <el-input v-model="form.vehicleModel" disabled placeholder="无" />  
301 - </el-form-item>  
302 - </el-col>  
303 - </el-row>  
304 - <el-row>  
305 - <el-col :span="12">  
306 <el-form-item label="保险需求" prop="requirements"> 291 <el-form-item label="保险需求" prop="requirements">
307 <el-input v-model="form.requirements" disabled placeholder="无" /> 292 <el-input v-model="form.requirements" disabled placeholder="无" />
308 </el-form-item> 293 </el-form-item>
309 </el-col> 294 </el-col>
310 <el-col :span="12"> 295 <el-col :span="12">
311 - <el-form-item label="号牌种类" prop="lincensePlateType">  
312 - <el-input  
313 - v-model="form.lincensePlateType"  
314 - disabled  
315 - placeholder="无"  
316 - />  
317 - </el-form-item>  
318 - </el-col>  
319 - </el-row>  
320 - <el-row>  
321 - <el-col :span="12">  
322 <el-form-item label="使用性质" prop="vehicleNature"> 296 <el-form-item label="使用性质" prop="vehicleNature">
323 <el-input 297 <el-input
324 v-model="form.vehicleNature" 298 v-model="form.vehicleNature"
@@ -327,11 +301,6 @@ @@ -327,11 +301,6 @@
327 /> 301 />
328 </el-form-item> 302 </el-form-item>
329 </el-col> 303 </el-col>
330 - <el-col :span="12">  
331 - <el-form-item label="车辆类型" prop="vehicleType">  
332 - <el-input v-model="form.vehicleType" disabled placeholder="无" />  
333 - </el-form-item>  
334 - </el-col>  
335 </el-row> 304 </el-row>
336 </el-form> 305 </el-form>
337 </el-dialog> 306 </el-dialog>
@@ -339,13 +308,15 @@ @@ -339,13 +308,15 @@
339 </template> 308 </template>
340 309
341 <script setup> 310 <script setup>
342 -import { queryOngoingList } from "@/api/policy";  
343 -import { get } from "@vueuse/core"; 311 +import { queryOngoingList, getUserList, transfer } from "@/api/policy";
344 const { proxy } = getCurrentInstance(); 312 const { proxy } = getCurrentInstance();
345 const loading = ref(false); 313 const loading = ref(false);
346 const total = ref(5); 314 const total = ref(5);
347 const open = ref(false); 315 const open = ref(false);
348 const form = ref({}); 316 const form = ref({});
  317 +const transferForm = ref({});
  318 +const transferShow = ref(false);
  319 +const transferOptions = ref([]);
349 const showSearch = ref(true); 320 const showSearch = ref(true);
350 const queryParams = reactive({ 321 const queryParams = reactive({
351 pageNum: 1, 322 pageNum: 1,
@@ -395,14 +366,19 @@ const statusOption = ref([ @@ -395,14 +366,19 @@ const statusOption = ref([
395 ]); 366 ]);
396 const policyList = ref([]); 367 const policyList = ref([]);
397 368
398 -/** 多选框选中数据 */  
399 -function handleSelectionChange(selection) {  
400 - // ids.value = selection.map(item => item.roleId);  
401 - // single.value = selection.length != 1;  
402 - // multiple.value = !selection.length;  
403 - console.log(selection);  
404 -} 369 +// 获取人员列表
  370 +const getUser = async () => {
  371 + const { data } = await getUserList();
  372 + transferOptions.value = data;
  373 +};
  374 +// 分配人员
  375 +const handleTransfer = (id) => {
  376 + transferForm.value.taskId = id;
  377 + getUser();
  378 + transferShow.value = true;
  379 +};
405 380
  381 +// 获取进行中列表
406 const getList = async () => { 382 const getList = async () => {
407 loading.value = true; 383 loading.value = true;
408 const res = await queryOngoingList(queryParams); 384 const res = await queryOngoingList(queryParams);
@@ -433,6 +409,19 @@ function resetQuery() { @@ -433,6 +409,19 @@ function resetQuery() {
433 proxy.resetForm("queryRef"); 409 proxy.resetForm("queryRef");
434 handleQuery(); 410 handleQuery();
435 } 411 }
  412 +
  413 +/** 提交通过分配转办人员 */
  414 +function submitTransfer() {
  415 + const data = {
  416 + username: transferForm.value.username,
  417 + };
  418 + const taskId = transferForm.value.taskId;
  419 + transfer(data, taskId).then((res) => {
  420 + transferShow.value = false;
  421 + getList();
  422 + proxy.$modal.msgSuccess("保单已分配成功");
  423 + });
  424 +}
436 getList(); 425 getList();
437 </script> 426 </script>
438 427
1 <template> 1 <template>
2 <div class="app-container"> 2 <div class="app-container">
3 <!-- 表格数据 --> 3 <!-- 表格数据 -->
4 - <el-table v-loading="loading" :data="policyList"> 4 + <el-table v-loading="loading" :data="policyList" @row-click="handleTask">
5 <el-table-column label="序号" width="55" type="index" /> 5 <el-table-column label="序号" width="55" type="index" />
6 - <el-table-column label="登记时间" width="160" align="center">  
7 - <template #default="{ row }">  
8 - <span>{{ row.initialRegistration || row.createTime }}</span>  
9 - </template>  
10 - </el-table-column>  
11 - 6 + <el-table-column
  7 + label="登记时间"
  8 + prop="createTime"
  9 + width="160"
  10 + align="center"
  11 + />
12 <el-table-column 12 <el-table-column
13 label="车牌号" 13 label="车牌号"
14 prop="licensePlateNumber" 14 prop="licensePlateNumber"
@@ -16,80 +16,64 @@ @@ -16,80 +16,64 @@
16 align="center" 16 align="center"
17 /> 17 />
18 <el-table-column 18 <el-table-column
19 - label="车号" 19 + label="车辆识别代号"
20 width="180" 20 width="180"
21 prop="frameNumber" 21 prop="frameNumber"
22 align="center" 22 align="center"
23 :show-overflow-tooltip="true" 23 :show-overflow-tooltip="true"
24 /> 24 />
25 <el-table-column 25 <el-table-column
26 - label="车主姓名"  
27 - prop="name"  
28 - width="100"  
29 - align="center"  
30 - />  
31 - <el-table-column  
32 - label="联系电话"  
33 - prop="phone" 26 + label="发动机号"
34 width="180" 27 width="180"
  28 + prop="engineNumber"
35 align="center" 29 align="center"
  30 + :show-overflow-tooltip="true"
36 /> 31 />
37 <el-table-column 32 <el-table-column
38 - label="上年承保公司"  
39 - prop="sysDeptName"  
40 - width="150"  
41 - align="center"  
42 - />  
43 - <el-table-column  
44 - v-show="hasCompanyadmin"  
45 - label="分配机制"  
46 - prop="distributionMechanism" 33 + label="是否新能源"
  34 + prop="isNewEnergy"
47 width="150" 35 width="150"
48 align="center" 36 align="center"
49 /> 37 />
50 <el-table-column 38 <el-table-column
51 - label="订单分配时间"  
52 - prop="distributionTime"  
53 - width="160"  
54 - align="center"  
55 - />  
56 - <el-table-column  
57 - label="保单进度"  
58 - prop="orderProgress"  
59 - width="150" 39 + label="车主姓名"
  40 + prop="name"
  41 + width="100"
60 align="center" 42 align="center"
61 /> 43 />
62 <el-table-column 44 <el-table-column
63 - label="承接时间"  
64 - prop="companyEmployeeUndertakeTime"  
65 - width="160" 45 + label="联系电话"
  46 + prop="phone"
  47 + width="180"
66 align="center" 48 align="center"
67 /> 49 />
68 <el-table-column 50 <el-table-column
69 - v-show="hasCompanyadmin"  
70 - label="分配人"  
71 - prop="associationEmployeeUserName" 51 + label="上年承保公司"
  52 + prop="sysDeptName"
72 width="150" 53 width="150"
73 align="center" 54 align="center"
74 /> 55 />
75 <el-table-column 56 <el-table-column
76 - v-show="hasCompanyadmin"  
77 - label="承接人"  
78 - prop="companyEmployeeUserName"  
79 - width="150"  
80 - align="center"  
81 - /> 57 + v-hasRole="['associationemployee']"
  58 + label="保单状态"
  59 + width="100"
  60 + prop="statue"
  61 + >
  62 + <template #default="{ row }">
  63 + {{ row.policyStatus || "待处理" }}
  64 + </template>
  65 + </el-table-column>
82 <el-table-column 66 <el-table-column
83 label="操作" 67 label="操作"
84 align="center" 68 align="center"
85 - min-width="380" 69 + min-width="280"
86 fixed="right" 70 fixed="right"
87 > 71 >
88 <template #default="{ row }"> 72 <template #default="{ row }">
89 <el-button 73 <el-button
90 type="primary" 74 type="primary"
91 v-hasPermi="['policy:pending:continue']" 75 v-hasPermi="['policy:pending:continue']"
92 - @click.stop="handleContinue(row)" 76 + @click="handleContinue(row)"
93 >{{ 77 >{{
94 row.orderProgress === "已承接" ? "承接回馈" : "承接" 78 row.orderProgress === "已承接" ? "承接回馈" : "承接"
95 }}</el-button 79 }}</el-button
@@ -97,53 +81,59 @@ @@ -97,53 +81,59 @@
97 <el-button 81 <el-button
98 type="primary" 82 type="primary"
99 v-show=" 83 v-show="
100 - row.policyStatus !== '疑难件' && row.orderProgress === '已承接' 84 + row.policyStatus !== '问题件' && row.orderProgress === '已承接'
101 " 85 "
102 v-hasPermi="['policy:pending:troubleshooting']" 86 v-hasPermi="['policy:pending:troubleshooting']"
103 - @click.stop="handleTroubleshooting(row.taskId)"  
104 - >疑难件</el-button 87 + @click="handleTroubleshooting(row.taskId)"
  88 + >问题件</el-button
105 > 89 >
106 <el-button 90 <el-button
107 type="primary" 91 type="primary"
108 - v-hasPermi="['policy:pending:sharing']"  
109 - @click.stop="handleSharing(row.taskId)" 92 + v-hasRole="['companyadmin']"
  93 + @click="handleSharing(row.taskId)"
110 >分配</el-button 94 >分配</el-button
111 > 95 >
112 <el-button 96 <el-button
113 type="primary" 97 type="primary"
114 v-show="row.orderProgress !== '已承接'" 98 v-show="row.orderProgress !== '已承接'"
115 v-hasPermi="['policy:pending:transfer']" 99 v-hasPermi="['policy:pending:transfer']"
116 - @click.stop="handleSharing(row.taskId)" 100 + @click="handleSharing(row.taskId)"
117 >转办</el-button 101 >转办</el-button
118 > 102 >
119 <el-button 103 <el-button
120 type="primary" 104 type="primary"
121 - v-show="hasRole"  
122 - @click.stop="handleSuccess('0', row.taskId)"  
123 - >通过</el-button  
124 - >  
125 - <el-button  
126 - type="primary"  
127 - v-show="hasRole"  
128 - @click.stop="handleFallback('1', row.taskId)"  
129 - >退回</el-button 105 + v-show="
  106 + row.policyStatus !== '问题件' &&
  107 + checkRole(['associationemployee'])
  108 + "
  109 + @click="handleUpdate(row)"
  110 + >审核</el-button
130 > 111 >
131 <el-button 112 <el-button
132 type="primary" 113 type="primary"
133 - v-show="hasRole"  
134 - @click.stop="handleUpdate(row)"  
135 - >修改</el-button 114 + v-show="
  115 + row.policyStatus === '问题件' &&
  116 + checkRole(['associationemployee'])
  117 + "
  118 + @click="lookReason(row)"
  119 + >查询</el-button
136 > 120 >
137 <el-button 121 <el-button
138 type="primary" 122 type="primary"
139 - v-show="hasRole"  
140 - @click.stop="handleVoid('2', row.taskId)" 123 + v-show="
  124 + row.policyStatus === '问题件' &&
  125 + checkRole(['associationemployee'])
  126 + "
  127 + @click="handleVoid('2')"
141 >作废</el-button 128 >作废</el-button
142 > 129 >
143 <el-button 130 <el-button
144 type="primary" 131 type="primary"
145 - v-show="hasRole"  
146 - @click.stop="handleAuthCompany('0', row.taskId)" 132 + v-show="
  133 + row.policyStatus === '问题件' &&
  134 + checkRole(['associationemployee'])
  135 + "
  136 + @click="handleAuthCompany('0')"
147 >分配</el-button 137 >分配</el-button
148 > 138 >
149 </template> 139 </template>
@@ -159,10 +149,10 @@ @@ -159,10 +149,10 @@
159 @pagination="getList" 149 @pagination="getList"
160 /> 150 />
161 151
162 - <!-- 表单作废对话框 --> 152 + <!-- 表单作废,退回。问题件对话框 -->
163 <el-dialog 153 <el-dialog
164 v-model="deprecatedShow" 154 v-model="deprecatedShow"
165 - title="温馨提示:该保单作废后车牌号、车架号在本自然年度无法重新提交" 155 + :title="activeTitle"
166 width="500" 156 width="500"
167 append-to-body 157 append-to-body
168 > 158 >
@@ -195,6 +185,7 @@ @@ -195,6 +185,7 @@
195 /> 185 />
196 <el-button type="primary" @click="getDeptList">查询</el-button> 186 <el-button type="primary" @click="getDeptList">查询</el-button>
197 </div> 187 </div>
  188 + <div class="company_content">
198 <el-radio-group v-model="companyForm.deptId"> 189 <el-radio-group v-model="companyForm.deptId">
199 <el-radio 190 <el-radio
200 v-for="item in deptOptions" 191 v-for="item in deptOptions"
@@ -204,6 +195,7 @@ @@ -204,6 +195,7 @@
204 > 195 >
205 </el-radio-group> 196 </el-radio-group>
206 </div> 197 </div>
  198 + </div>
207 <template #footer> 199 <template #footer>
208 <div class="dialog-footer"> 200 <div class="dialog-footer">
209 <el-button @click="companyShow = false">取消</el-button> 201 <el-button @click="companyShow = false">取消</el-button>
@@ -225,14 +217,14 @@ @@ -225,14 +217,14 @@
225 v-for="item in transferOptions" 217 v-for="item in transferOptions"
226 :key="item.userName" 218 :key="item.userName"
227 :label="item.userName" 219 :label="item.userName"
228 - >{{ item.userName }}</el-radio 220 + >{{ item.nickName }}</el-radio
229 > 221 >
230 </el-radio-group> 222 </el-radio-group>
231 <div v-show="transferOptions.length === 0">暂无其他员工</div> 223 <div v-show="transferOptions.length === 0">暂无其他员工</div>
232 </div> 224 </div>
233 <template #footer> 225 <template #footer>
234 <div class="dialog-footer"> 226 <div class="dialog-footer">
235 - <el-button @click="companyShow = false">取消</el-button> 227 + <el-button @click="transferShow = false">取消</el-button>
236 <el-button type="primary" @click="submitTransfer">确定</el-button> 228 <el-button type="primary" @click="submitTransfer">确定</el-button>
237 </div> 229 </div>
238 </template> 230 </template>
@@ -248,14 +240,14 @@ @@ -248,14 +240,14 @@
248 <el-form :model="FeedbackForm" ref="policyRef" label-width="100px"> 240 <el-form :model="FeedbackForm" ref="policyRef" label-width="100px">
249 <el-form-item label="商险单号" prop="progress"> 241 <el-form-item label="商险单号" prop="progress">
250 <el-input 242 <el-input
251 - v-model="FeedbackForm.shoppolicynumber" 243 + v-model="FeedbackForm.commercialinsurancepolicynumber"
252 placeholder="请输入保单号" 244 placeholder="请输入保单号"
253 :disabled="hasRole" 245 :disabled="hasRole"
254 /> 246 />
255 </el-form-item> 247 </el-form-item>
256 - <el-form-item label="强险单号" prop="progress"> 248 + <el-form-item label="强险单号" prop="progress">
257 <el-input 249 <el-input
258 - v-model="FeedbackForm.policynumber" 250 + v-model="FeedbackForm.stronginsurancepolicynumber"
259 placeholder="请输入保单号" 251 placeholder="请输入保单号"
260 :disabled="hasRole" 252 :disabled="hasRole"
261 /> 253 />
@@ -272,6 +264,15 @@ @@ -272,6 +264,15 @@
272 </template> 264 </template>
273 </el-dialog> 265 </el-dialog>
274 266
  267 + <!-- 查询问题件弹出框 -->
  268 + <el-dialog v-model="showIssue" title="保单信息" width="700" append-to-body>
  269 + <el-form :model="IssueForm" ref="policyRef" label-width="100px">
  270 + <el-form-item label="问题件原因" prop="progress">
  271 + <QuillEditor :value="IssueForm.deprecatedReason" />
  272 + </el-form-item>
  273 + </el-form>
  274 + </el-dialog>
  275 +
275 <!-- 编辑对话框 --> 276 <!-- 编辑对话框 -->
276 <el-dialog v-model="open" title="保单信息" width="700" append-to-body> 277 <el-dialog v-model="open" title="保单信息" width="700" append-to-body>
277 <el-form :model="form" ref="policyRef" label-width="100px"> 278 <el-form :model="form" ref="policyRef" label-width="100px">
@@ -286,7 +287,7 @@ @@ -286,7 +287,7 @@
286 </el-form-item> 287 </el-form-item>
287 </el-col> 288 </el-col>
288 <el-col :span="12"> 289 <el-col :span="12">
289 - <el-form-item label="车号" prop="frameNumber"> 290 + <el-form-item label="车辆识别号" prop="frameNumber">
290 <el-input 291 <el-input
291 v-model="form.frameNumber" 292 v-model="form.frameNumber"
292 :disabled="!hasRole" 293 :disabled="!hasRole"
@@ -317,17 +318,17 @@ @@ -317,17 +318,17 @@
317 </el-row> 318 </el-row>
318 <el-row> 319 <el-row>
319 <el-col :span="12"> 320 <el-col :span="12">
320 - <el-form-item label="车辆类型" prop="vehicleType"> 321 + <el-form-item label="上年承保公司" prop="sysDeptId">
321 <el-select 322 <el-select
322 - v-model="form.vehicleTypeId" 323 + v-model="form.sysDeptId"
323 :disabled="!hasRole" 324 :disabled="!hasRole"
324 style="width: 230px" 325 style="width: 230px"
325 > 326 >
326 <el-option 327 <el-option
327 - v-for="item in carTypeOption"  
328 - :key="item.id"  
329 - :label="item.name"  
330 - :value="item.id" 328 + v-for="item in deptOptions"
  329 + :key="item.deptId"
  330 + :label="item.deptName"
  331 + :value="item.deptId"
331 /> 332 />
332 </el-select> 333 </el-select>
333 </el-form-item> 334 </el-form-item>
@@ -351,43 +352,23 @@ @@ -351,43 +352,23 @@
351 </el-row> 352 </el-row>
352 <el-row> 353 <el-row>
353 <el-col :span="12"> 354 <el-col :span="12">
354 - <el-form-item label="核定载客数" prop="passengersNumber">  
355 - <el-input  
356 - v-model="form.passengersNumber"  
357 - :disabled="!hasRole"  
358 - placeholder="请输入核定载客数"  
359 - />  
360 - </el-form-item>  
361 - </el-col>  
362 - <el-col :span="12">  
363 - <el-form-item label="核定载质量" prop="passengerCapacity"> 355 + <el-form-item label="发动机号" prop="engineNumber">
364 <el-input 356 <el-input
365 - v-model="form.passengerCapacity" 357 + v-model="form.engineNumber"
366 :disabled="!hasRole" 358 :disabled="!hasRole"
367 - placeholder="请输入核定载质量" 359 + placeholder="请输入发动机号"
368 /> 360 />
369 </el-form-item> 361 </el-form-item>
370 </el-col> 362 </el-col>
371 - </el-row>  
372 - <el-row>  
373 <el-col :span="12"> 363 <el-col :span="12">
374 - <el-form-item label="排量毫升" prop="emissions">  
375 - <el-input  
376 - v-model="form.emissions"  
377 - :disabled="!hasRole"  
378 - placeholder="请输入排量毫升"  
379 - />  
380 - </el-form-item>  
381 - </el-col>  
382 - <el-col v-if="isCustom" :span="12">  
383 - <el-form-item label="中文品牌" prop="vehicleBrand"> 364 + <el-form-item label="是否新能源" prop="isNewEnergy">
384 <el-select 365 <el-select
385 - v-model="form.vehicleBrandId" 366 + v-model="form.isNewEnergy"
386 :disabled="!hasRole" 367 :disabled="!hasRole"
387 style="width: 230px" 368 style="width: 230px"
388 > 369 >
389 <el-option 370 <el-option
390 - v-for="item in carBrandOption" 371 + v-for="item in NewEnergyOption"
391 :key="item.id" 372 :key="item.id"
392 :label="item.name" 373 :label="item.name"
393 :value="item.id" 374 :value="item.id"
@@ -395,54 +376,9 @@ @@ -395,54 +376,9 @@
395 </el-select> 376 </el-select>
396 </el-form-item> 377 </el-form-item>
397 </el-col> 378 </el-col>
398 - <el-col v-else :span="12">  
399 - <el-form-item label="中文品牌" prop="vehicleBrand">  
400 - <el-input  
401 - v-model="form.customizeVehicleBrand"  
402 - :disabled="!hasRole"  
403 - placeholder="中文品牌"  
404 - />  
405 - </el-form-item>  
406 - </el-col>  
407 </el-row> 379 </el-row>
408 <el-row> 380 <el-row>
409 <el-col :span="12"> 381 <el-col :span="12">
410 - <el-form-item label="车辆型号" prop="customizeVehicleModel">  
411 - <el-input  
412 - v-model="form.customizeVehicleModel"  
413 - :disabled="!hasRole"  
414 - placeholder="请输入车辆型号"  
415 - />  
416 - </el-form-item>  
417 - </el-col>  
418 - <el-col :span="12">  
419 - <el-form-item label="准牵引准质量" prop="tractionMass">  
420 - <el-input  
421 - v-model="form.tractionMass"  
422 - :disabled="!hasRole"  
423 - placeholder="请输入准牵引准质量"  
424 - />  
425 - </el-form-item>  
426 - </el-col>  
427 - </el-row>  
428 - <el-row>  
429 - <el-col :span="12">  
430 - <el-form-item label="号牌种类" prop="customizeVehicleModel">  
431 - <el-select  
432 - v-model="form.lincensePlateTypeId"  
433 - :disabled="!hasRole"  
434 - style="width: 230px"  
435 - >  
436 - <el-option  
437 - v-for="item in carNumOption"  
438 - :key="item.id"  
439 - :label="item.name"  
440 - :value="item.id"  
441 - />  
442 - </el-select>  
443 - </el-form-item>  
444 - </el-col>  
445 - <el-col :span="12">  
446 <el-form-item label="保险需求" prop="requirements"> 382 <el-form-item label="保险需求" prop="requirements">
447 <el-select 383 <el-select
448 v-model="form.requirementsId" 384 v-model="form.requirementsId"
@@ -459,11 +395,55 @@ @@ -459,11 +395,55 @@
459 </el-form-item> 395 </el-form-item>
460 </el-col> 396 </el-col>
461 </el-row> 397 </el-row>
  398 + <!-- 流转提示 -->
  399 + <div class="transferTip">
  400 + <span>本次订单流转:{{ transferTip }}</span>
  401 + <el-button :loading="loadingBtn" @click="getTransferTip"
  402 + >刷新</el-button
  403 + >
  404 + </div>
462 </el-form> 405 </el-form>
463 <template #footer> 406 <template #footer>
464 - <div class="dialog-footer">  
465 - <el-button @click="open = false">取消</el-button>  
466 - <el-button type="primary" @click="submitUpdate">提交修改</el-button> 407 + <div
  408 + class="dialog-footer"
  409 + style="
  410 + display: flex;
  411 + justify-content: space-around;
  412 + width: 65%;
  413 + margin-left: auto;
  414 + "
  415 + >
  416 + <el-button
  417 + type="primary"
  418 + v-hasRole="['associationemployee']"
  419 + @click.stop="handleSuccess('0')"
  420 + >
  421 + 通过
  422 + </el-button>
  423 + <el-button
  424 + type="primary"
  425 + v-hasRole="['associationemployee']"
  426 + @click="submitUpdate"
  427 + >保存</el-button
  428 + >
  429 + <el-button
  430 + type="primary"
  431 + v-hasRole="['associationemployee']"
  432 + @click="handleVoid('2')"
  433 + >作废</el-button
  434 + >
  435 + <el-button
  436 + type="primary"
  437 + v-hasRole="['associationemployee']"
  438 + @click="handleFallback('1')"
  439 + >退回</el-button
  440 + >
  441 + <el-button
  442 + type="primary"
  443 + v-hasRole="['associationemployee']"
  444 + @click.stop="handleAuthCompany('0')"
  445 + >分配</el-button
  446 + >
467 </div> 447 </div>
468 </template> 448 </template>
469 </el-dialog> 449 </el-dialog>
@@ -478,18 +458,23 @@ import { @@ -478,18 +458,23 @@ import {
478 getUserList, 458 getUserList,
479 updateCarInfo, 459 updateCarInfo,
480 getCarDetail, 460 getCarDetail,
  461 + getCompanyTip,
  462 + queryDefeatContent,
481 } from "@/api/policy/index"; 463 } from "@/api/policy/index";
  464 +import { checkRole } from "@/utils/permission"; // 权限判断函数
482 import { queryCarType } from "@/api/configurationCenter/carType.js"; 465 import { queryCarType } from "@/api/configurationCenter/carType.js";
483 import { queryCarNature } from "@/api/configurationCenter/carNature.js"; 466 import { queryCarNature } from "@/api/configurationCenter/carNature.js";
484 -import { queryCarBrand } from "@/api/configurationCenter/carBrand.js";  
485 -import { queryCarNum } from "@/api/configurationCenter/carNum.js";  
486 import { queryNeed } from "@/api/configurationCenter/need.js"; 467 import { queryNeed } from "@/api/configurationCenter/need.js";
487 import { listDept } from "@/api/system/dept"; 468 import { listDept } from "@/api/system/dept";
488 -import { ref } from "vue";  
489 const { proxy } = getCurrentInstance(); 469 const { proxy } = getCurrentInstance();
490 const loading = ref(false); 470 const loading = ref(false);
  471 +const activeTitle = ref("");
  472 +const loadingBtn = ref(false);
  473 +const showIssue = ref(false);
491 const total = ref(0); 474 const total = ref(0);
492 -const isCustom = ref(false); 475 +const typeId = ref(0); // 判断类型 0 问题件 1 退回 2 作废
  476 +const transferTip = ref(""); //流转下一家名称
  477 +const transferDeptId = ref(""); // 流转的部门公司ID
493 const open = ref(false); 478 const open = ref(false);
494 const timer = ref(null); 479 const timer = ref(null);
495 const timerReason = ref(null); 480 const timerReason = ref(null);
@@ -497,9 +482,13 @@ const form = ref({}); @@ -497,9 +482,13 @@ const form = ref({});
497 const showFeedback = ref(false); 482 const showFeedback = ref(false);
498 const transferShow = ref(false); 483 const transferShow = ref(false);
499 const transferForm = ref({}); 484 const transferForm = ref({});
  485 +const taskId = ref("");
  486 +const IssueForm = ref({
  487 + deprecatedReason: "",
  488 +});
500 const FeedbackForm = ref({ 489 const FeedbackForm = ref({
501 - shoppolicynumber: "",  
502 - policynumber: "", 490 + stronginsurancepolicynumber: "",
  491 + commercialinsurancepolicynumber: "",
503 message: "", 492 message: "",
504 }); 493 });
505 const getParams = reactive({ 494 const getParams = reactive({
@@ -510,7 +499,10 @@ const companyShow = ref(false); @@ -510,7 +499,10 @@ const companyShow = ref(false);
510 const deptOptions = ref([]); 499 const deptOptions = ref([]);
511 const transferOptions = ref([]); 500 const transferOptions = ref([]);
512 const deprecatedShow = ref(false); 501 const deprecatedShow = ref(false);
513 -const deprecatedForm = ref({}); 502 +const deprecatedForm = ref({
  503 + deprecatedReason: "",
  504 + associationapprove: "",
  505 +});
514 const companyForm = ref({}); 506 const companyForm = ref({});
515 const queryParams = reactive({ 507 const queryParams = reactive({
516 pageNum: 1, 508 pageNum: 1,
@@ -527,17 +519,18 @@ const hasRole = computed(() => { @@ -527,17 +519,18 @@ const hasRole = computed(() => {
527 return proxy.$auth.hasRole("associationemployee"); 519 return proxy.$auth.hasRole("associationemployee");
528 }); 520 });
529 521
530 -const hasCompanyadmin = computed(() => {  
531 - return proxy.$auth.hasRole("companyadmin");  
532 -}); 522 +// 新能源
  523 +const NewEnergyOption = ref([
  524 + {
  525 + id: "0",
  526 + name: "否",
  527 + },
  528 + {
  529 + id: "1",
  530 + name: "是",
  531 + },
  532 +]);
533 533
534 -// 号牌种类  
535 -const carNumOption = ref([]);  
536 -const getCarNumOption = async () => {  
537 - const { data } = await queryCarNum(getParams);  
538 - carNumOption.value = data.records;  
539 -};  
540 -getCarNumOption();  
541 // 车辆类型 534 // 车辆类型
542 const carTypeOption = ref([]); 535 const carTypeOption = ref([]);
543 const getCarTypeOption = async () => { 536 const getCarTypeOption = async () => {
@@ -552,13 +545,6 @@ const getcarNatureOption = async () => { @@ -552,13 +545,6 @@ const getcarNatureOption = async () => {
552 carNatureOption.value = data.records; 545 carNatureOption.value = data.records;
553 }; 546 };
554 getcarNatureOption(); 547 getcarNatureOption();
555 -// 中文品牌  
556 -const carBrandOption = ref([]);  
557 -const getCarBrandOption = async () => {  
558 - const { data } = await queryCarBrand(getParams);  
559 - carBrandOption.value = data.records;  
560 -};  
561 -getCarBrandOption();  
562 548
563 // 保险需求 549 // 保险需求
564 const needOption = ref([]); 550 const needOption = ref([]);
@@ -568,6 +554,11 @@ const getNeedOption = async () => { @@ -568,6 +554,11 @@ const getNeedOption = async () => {
568 }; 554 };
569 getNeedOption(); 555 getNeedOption();
570 556
  557 +// 赋值taskId
  558 +const handleTask = (row) => {
  559 + taskId.value = row.taskId;
  560 +};
  561 +
571 const getList = async () => { 562 const getList = async () => {
572 loading.value = true; 563 loading.value = true;
573 const { data } = await queryMyList(queryParams); 564 const { data } = await queryMyList(queryParams);
@@ -596,76 +587,100 @@ const handleContinue = (row) => { @@ -596,76 +587,100 @@ const handleContinue = (row) => {
596 showFeedback.value = true; 587 showFeedback.value = true;
597 } 588 }
598 }; 589 };
599 -// 疑难 590 +// 问题
600 const handleTroubleshooting = (taskId) => { 591 const handleTroubleshooting = (taskId) => {
601 - const data = {  
602 - policystatus: "1",  
603 - };  
604 - disposeUser(data, taskId).then((res) => {  
605 - getList();  
606 - proxy.$modal.msgSuccess("处理成功");  
607 - }); 592 + deprecatedForm.value.taskId = taskId;
  593 + activeTitle.value = "问题件退回至协会";
  594 + typeId.value = 0;
  595 + deprecatedShow.value = true;
608 }; 596 };
609 // 通过保单 597 // 通过保单
610 -const handleSuccess = (associationapprove, taskId) => { 598 +const handleSuccess = (associationapprove) => {
611 proxy.$modal 599 proxy.$modal
612 .confirm("是否通过该保单") 600 .confirm("是否通过该保单")
613 .then(function () {}) 601 .then(function () {})
614 - .then(() => {  
615 - disposeUser({ associationapprove }, taskId).then((res) => { 602 + .then(async () => {
  603 + await updateCarInfo(form.value);
  604 + await disposeUser(
  605 + {
  606 + associationapprove,
  607 + associationapprovetype: "0",
  608 + deptid: transferDeptId.value,
  609 + },
  610 + taskId.value
  611 + );
616 proxy.$modal.msgSuccess("保单已通过"); 612 proxy.$modal.msgSuccess("保单已通过");
  613 + open.value = false;
617 getList(); 614 getList();
618 - });  
619 }) 615 })
620 .catch(() => { 616 .catch(() => {
621 proxy.$modal.msg("取消通过"); 617 proxy.$modal.msg("取消通过");
622 }); 618 });
623 }; 619 };
624 // 退回保单 620 // 退回保单
625 -const handleFallback = (associationapprove, taskId) => {  
626 - proxy.$modal  
627 - .confirm("是否退回该保单")  
628 - .then(function () {})  
629 - .then(() => {  
630 - disposeUser({ associationapprove }, taskId).then((res) => {  
631 - proxy.$modal.msgSuccess("保单已退回");  
632 - getList();  
633 - });  
634 - })  
635 - .catch(() => {  
636 - proxy.$modal.msg("已取消");  
637 - }); 621 +const handleFallback = (associationapprove) => {
  622 + clearTimeout(timerReason.value);
  623 + deprecatedForm.value = {
  624 + associationapprove,
  625 + taskId: taskId.value,
  626 + };
  627 + deprecatedForm.value.deprecatedReason = "";
  628 + typeId.value = 1;
  629 + activeTitle.value = "退回后用户需修改后重新提交";
  630 + deprecatedShow.value = true;
638 }; 631 };
639 // 作废保单 632 // 作废保单
640 -const handleVoid = (associationapprove, taskId) => { 633 +const handleVoid = (associationapprove) => {
  634 + clearTimeout(timerReason.value);
641 deprecatedForm.value = { 635 deprecatedForm.value = {
642 associationapprove, 636 associationapprove,
643 - taskId, 637 + taskId: taskId.value,
644 }; 638 };
  639 + deprecatedForm.value.deprecatedReason = "";
  640 + typeId.value = 2;
  641 + activeTitle.value =
  642 + "温馨提示:该保单作废后车牌号、车架号在本自然年度无法重新提交";
645 deprecatedShow.value = true; 643 deprecatedShow.value = true;
646 }; 644 };
  645 +// 提交方法
647 646
648 -// 提交作废表单 647 +// 查询问题件原因
  648 +const lookReason = async (row) => {
  649 + const { data } = await queryDefeatContent({
  650 + processInstanceId: row.processInstanceId,
  651 + type: 0,
  652 + });
  653 + IssueForm.value.deprecatedReason = data.message;
  654 + showIssue.value = true;
  655 +};
  656 +// 提交作废,退回,问题件表单
649 const sunmitDeprecated = () => { 657 const sunmitDeprecated = () => {
650 - const data = { 658 + let data = {};
  659 + if (typeId.value === 0) {
  660 + data = {
  661 + policystatus: "1",
  662 + comment: deprecatedForm.value.deprecatedReason,
  663 + };
  664 + } else {
  665 + data = {
651 associationapprove: deprecatedForm.value.associationapprove, 666 associationapprove: deprecatedForm.value.associationapprove,
652 comment: deprecatedForm.value.deprecatedReason, 667 comment: deprecatedForm.value.deprecatedReason,
653 }; 668 };
  669 + }
654 const taskId = deprecatedForm.value.taskId; 670 const taskId = deprecatedForm.value.taskId;
655 disposeUser(data, taskId).then((res) => { 671 disposeUser(data, taskId).then((res) => {
656 getList(); 672 getList();
657 deprecatedShow.value = false; 673 deprecatedShow.value = false;
658 - proxy.$modal.msgSuccess("保单已作废"); 674 + proxy.$modal.msgSuccess("操作成功");
659 }); 675 });
660 }; 676 };
661 // 分配承保公司 677 // 分配承保公司
662 -const handleAuthCompany = (associationapprove, taskId) => { 678 +const handleAuthCompany = (associationapprove) => {
663 companyForm.value = { 679 companyForm.value = {
664 associationapprove, 680 associationapprove,
665 - taskId, 681 + taskId: taskId.value,
666 }; 682 };
667 companyShow.value = true; 683 companyShow.value = true;
668 - getDeptList();  
669 }; 684 };
670 685
671 // 获取人员列表 686 // 获取人员列表
@@ -683,22 +698,19 @@ const handleSharing = (id) => { @@ -683,22 +698,19 @@ const handleSharing = (id) => {
683 const getDeptList = () => { 698 const getDeptList = () => {
684 loading.value = true; 699 loading.value = true;
685 listDept(companyQueryParams).then((response) => { 700 listDept(companyQueryParams).then((response) => {
686 - deptOptions.value = response.data.filter((item) => item.parentId === 100); 701 + let newArr = [];
  702 + newArr = response.data.filter((item) => item.parentId === 100);
  703 + deptOptions.value = newArr.map((child) => {
  704 + return {
  705 + deptId: child.deptId.toString(),
  706 + deptName: child.deptName,
  707 + };
  708 + });
687 loading.value = false; 709 loading.value = false;
688 }); 710 });
689 }; 711 };
690 -  
691 /** 重置操作表单 */ 712 /** 重置操作表单 */
692 function reset() { 713 function reset() {
693 - form.value = {  
694 - policyId: undefined,  
695 - createTime: undefined,  
696 - carNum: undefined,  
697 - frameNum: undefined,  
698 - name: undefined,  
699 - phone: undefined,  
700 - company: undefined,  
701 - };  
702 proxy.resetForm("policyRef"); 714 proxy.resetForm("policyRef");
703 } 715 }
704 716
@@ -706,14 +718,15 @@ function reset() { @@ -706,14 +718,15 @@ function reset() {
706 const handleUpdate = async (row) => { 718 const handleUpdate = async (row) => {
707 reset(); 719 reset();
708 const { data } = await getCarDetail(row.businessKey); 720 const { data } = await getCarDetail(row.businessKey);
  721 + getTransferTip();
709 form.value = data; 722 form.value = data;
710 - isCustom.value = data.isCustomizeBrandAndModel == "0";  
711 open.value = true; 723 open.value = true;
712 }; 724 };
713 /** 提交通过分配承保公司 */ 725 /** 提交通过分配承保公司 */
714 function submitForm() { 726 function submitForm() {
715 const data = { 727 const data = {
716 associationapprove: companyForm.value.associationapprove, 728 associationapprove: companyForm.value.associationapprove,
  729 + associationapprovetype: "1",
717 deptid: companyForm.value.deptId.toString(), 730 deptid: companyForm.value.deptId.toString(),
718 }; 731 };
719 const taskId = companyForm.value.taskId; 732 const taskId = companyForm.value.taskId;
@@ -742,7 +755,9 @@ const submit = () => { @@ -742,7 +755,9 @@ const submit = () => {
742 const data = { 755 const data = {
743 policystatus: "2", 756 policystatus: "2",
744 message: FeedbackForm.value.comment, 757 message: FeedbackForm.value.comment,
745 - policynumber: FeedbackForm.value.policynumber, 758 + commercialinsurancepolicynumber:
  759 + FeedbackForm.value.commercialinsurancepolicynumber,
  760 + stronginsurancepolicynumber: FeedbackForm.value.stronginsurancepolicynumber,
746 }; 761 };
747 disposeUser(data, FeedbackForm.value.taskId).then((res) => { 762 disposeUser(data, FeedbackForm.value.taskId).then((res) => {
748 getList(); 763 getList();
@@ -758,11 +773,20 @@ const getMsg = (val) => { @@ -758,11 +773,20 @@ const getMsg = (val) => {
758 }, 1000); 773 }, 1000);
759 }; 774 };
760 775
761 -// 获取作废原因 776 +// 获取流转下一家分配公司
  777 +const getTransferTip = async () => {
  778 + loadingBtn.value = true;
  779 + const { data } = await getCompanyTip();
  780 + transferTip.value = data.deptName;
  781 + transferDeptId.value = data.deptId;
  782 + loadingBtn.value = false;
  783 +};
  784 +
  785 +// 填写作废原因
762 const getReason = (val) => { 786 const getReason = (val) => {
763 clearTimeout(timerReason.value); 787 clearTimeout(timerReason.value);
764 timerReason.value = setTimeout(() => { 788 timerReason.value = setTimeout(() => {
765 - deprecatedForm.value.deprecatedReaso = val; 789 + deprecatedForm.value.deprecatedReason = val;
766 }, 1000); 790 }, 1000);
767 }; 791 };
768 // 提交修改 792 // 提交修改
@@ -775,6 +799,9 @@ const submitUpdate = () => { @@ -775,6 +799,9 @@ const submitUpdate = () => {
775 }; 799 };
776 800
777 getList(); 801 getList();
  802 +if (checkRole(["associationemployee"])) {
  803 + getDeptList();
  804 +}
778 </script> 805 </script>
779 806
780 <style lang="scss" scoped> 807 <style lang="scss" scoped>
@@ -788,4 +815,16 @@ getList(); @@ -788,4 +815,16 @@ getList();
788 gap: 30px; 815 gap: 30px;
789 margin-bottom: 20px; 816 margin-bottom: 20px;
790 } 817 }
  818 +.transferTip {
  819 + display: flex;
  820 + align-items: center;
  821 + gap: 20px;
  822 + font-size: 14px;
  823 + color: #666;
  824 +}
  825 +.company_content {
  826 + width: 100%;
  827 + height: 200px;
  828 + overflow-y: scroll;
  829 +}
791 </style> 830 </style>
@@ -78,12 +78,7 @@ @@ -78,12 +78,7 @@
78 </el-form> 78 </el-form>
79 79
80 <!-- 表格数据 --> 80 <!-- 表格数据 -->
81 - <el-table  
82 - v-loading="loading"  
83 - :data="policyList"  
84 - @selection-change="handleSelectionChange"  
85 - @row-click="handleUpdate"  
86 - > 81 + <el-table v-loading="loading" :data="policyList" @row-click="handleUpdate">
87 <el-table-column label="序号" type="index" width="55" /> 82 <el-table-column label="序号" type="index" width="55" />
88 <el-table-column label="登记时间" prop="createTime" width="160" /> 83 <el-table-column label="登记时间" prop="createTime" width="160" />
89 <el-table-column label="车牌号" prop="licensePlateNumber" width="150" /> 84 <el-table-column label="车牌号" prop="licensePlateNumber" width="150" />
@@ -161,22 +156,6 @@ @@ -161,22 +156,6 @@
161 </el-row> 156 </el-row>
162 <el-row> 157 <el-row>
163 <el-col :span="12"> 158 <el-col :span="12">
164 - <el-form-item label="发动机号" prop="engineNumber">  
165 - <el-input v-model="form.engineNumber" placeholder="无" disabled />  
166 - </el-form-item>  
167 - </el-col>  
168 - <el-col :span="12">  
169 - <el-form-item label="排放毫升量" prop="emissions">  
170 - <el-input  
171 - v-model="form.emissions"  
172 - disabled  
173 - placeholder="请输入车架号"  
174 - />  
175 - </el-form-item>  
176 - </el-col>  
177 - </el-row>  
178 - <el-row>  
179 - <el-col :span="12">  
180 <el-form-item label="车主姓名" prop="name"> 159 <el-form-item label="车主姓名" prop="name">
181 <el-input 160 <el-input
182 v-model="form.name" 161 v-model="form.name"
@@ -197,12 +176,8 @@ @@ -197,12 +176,8 @@
197 </el-row> 176 </el-row>
198 <el-row> 177 <el-row>
199 <el-col :span="12"> 178 <el-col :span="12">
200 - <el-form-item label="登记时间" prop="createTime">  
201 - <el-input  
202 - v-model="form.createTime"  
203 - disabled  
204 - placeholder="请输入登记时间"  
205 - /> 179 + <el-form-item label="发动机号" prop="engineNumber">
  180 + <el-input v-model="form.engineNumber" placeholder="无" disabled />
206 </el-form-item> 181 </el-form-item>
207 </el-col> 182 </el-col>
208 <el-col :span="12"> 183 <el-col :span="12">
@@ -217,22 +192,6 @@ @@ -217,22 +192,6 @@
217 </el-row> 192 </el-row>
218 <el-row> 193 <el-row>
219 <el-col :span="12"> 194 <el-col :span="12">
220 - <el-form-item label="核定载质量" prop="passengerCapacity">  
221 - <el-input  
222 - v-model="form.passengerCapacity"  
223 - disabled  
224 - placeholder="无"  
225 - />  
226 - </el-form-item>  
227 - </el-col>  
228 - <el-col :span="12">  
229 - <el-form-item label="核定载人数" prop="passengersNumber">  
230 - <el-input v-model="form.passengersNumber" disabled />  
231 - </el-form-item>  
232 - </el-col>  
233 - </el-row>  
234 - <el-row>  
235 - <el-col :span="12">  
236 <el-form-item label="分配机制" prop="distributionMechanism"> 195 <el-form-item label="分配机制" prop="distributionMechanism">
237 <el-input 196 <el-input
238 v-model="form.distributionMechanism" 197 v-model="form.distributionMechanism"
@@ -249,38 +208,11 @@ @@ -249,38 +208,11 @@
249 </el-row> 208 </el-row>
250 <el-row> 209 <el-row>
251 <el-col :span="12"> 210 <el-col :span="12">
252 - <el-form-item label="车辆品牌" prop="vehicleBrand">  
253 - <el-input  
254 - v-model="form.vehicleBrand"  
255 - disabled  
256 - placeholder="车辆品牌"  
257 - />  
258 - </el-form-item>  
259 - </el-col>  
260 - <el-col :span="12">  
261 - <el-form-item label="车辆型号" prop="vehicleModel">  
262 - <el-input v-model="form.vehicleModel" disabled placeholder="无" />  
263 - </el-form-item>  
264 - </el-col>  
265 - </el-row>  
266 - <el-row>  
267 - <el-col :span="12">  
268 <el-form-item label="保险需求" prop="requirements"> 211 <el-form-item label="保险需求" prop="requirements">
269 <el-input v-model="form.requirements" disabled placeholder="无" /> 212 <el-input v-model="form.requirements" disabled placeholder="无" />
270 </el-form-item> 213 </el-form-item>
271 </el-col> 214 </el-col>
272 <el-col :span="12"> 215 <el-col :span="12">
273 - <el-form-item label="号牌种类" prop="lincensePlateType">  
274 - <el-input  
275 - v-model="form.lincensePlateType"  
276 - disabled  
277 - placeholder="无"  
278 - />  
279 - </el-form-item>  
280 - </el-col>  
281 - </el-row>  
282 - <el-row>  
283 - <el-col :span="12">  
284 <el-form-item label="使用性质" prop="vehicleNature"> 216 <el-form-item label="使用性质" prop="vehicleNature">
285 <el-input 217 <el-input
286 v-model="form.vehicleNature" 218 v-model="form.vehicleNature"
@@ -289,11 +221,6 @@ @@ -289,11 +221,6 @@
289 /> 221 />
290 </el-form-item> 222 </el-form-item>
291 </el-col> 223 </el-col>
292 - <el-col :span="12">  
293 - <el-form-item label="车辆类型" prop="vehicleType">  
294 - <el-input v-model="form.vehicleType" disabled placeholder="无" />  
295 - </el-form-item>  
296 - </el-col>  
297 </el-row> 224 </el-row>
298 </el-form> 225 </el-form>
299 </el-dialog> 226 </el-dialog>
@@ -342,14 +269,6 @@ const associationapproveOptions = [ @@ -342,14 +269,6 @@ const associationapproveOptions = [
342 269
343 const policyList = ref([]); 270 const policyList = ref([]);
344 271
345 -/** 多选框选中数据 */  
346 -function handleSelectionChange(selection) {  
347 - // ids.value = selection.map(item => item.roleId);  
348 - // single.value = selection.length != 1;  
349 - // multiple.value = !selection.length;  
350 - console.log(selection);  
351 -}  
352 -  
353 const getList = async () => { 272 const getList = async () => {
354 loading.value = true; 273 loading.value = true;
355 const res = await queryProcessedList(queryParams); 274 const res = await queryProcessedList(queryParams);
@@ -116,6 +116,19 @@ @@ -116,6 +116,19 @@
116 </el-form-item> 116 </el-form-item>
117 </el-form> 117 </el-form>
118 118
  119 + <el-row :gutter="10" class="mb8">
  120 + <el-col :span="1.5">
  121 + <el-button
  122 + type="warning"
  123 + plain
  124 + icon="Download"
  125 + @click="handleExport"
  126 + v-hasPermi="['system:registrationmonitor:export']"
  127 + >导出</el-button
  128 + >
  129 + </el-col>
  130 + </el-row>
  131 +
119 <!-- 表格数据 --> 132 <!-- 表格数据 -->
120 <el-table v-loading="loading" :data="policyList"> 133 <el-table v-loading="loading" :data="policyList">
121 <el-table-column label="序号" width="55" type="index" /> 134 <el-table-column label="序号" width="55" type="index" />
@@ -138,6 +151,18 @@ @@ -138,6 +151,18 @@
138 align="center" 151 align="center"
139 /> 152 />
140 <el-table-column 153 <el-table-column
  154 + label="发动机号"
  155 + width="180"
  156 + prop="engineNumber"
  157 + align="center"
  158 + :show-overflow-tooltip="true"
  159 + />
  160 + <el-table-column label="是否新能源" width="150" align="center">
  161 + <template #default="{ row }">
  162 + {{ row.isNewEnergy === "1" ? "是" : "否" }}
  163 + </template>
  164 + </el-table-column>
  165 + <el-table-column
141 label="车主姓名" 166 label="车主姓名"
142 prop="name" 167 prop="name"
143 width="100" 168 width="100"
@@ -156,18 +181,29 @@ @@ -156,18 +181,29 @@
156 prop="distributionMechanism" 181 prop="distributionMechanism"
157 /> 182 />
158 <el-table-column 183 <el-table-column
159 - label="承保公司"  
160 - prop="companyName"  
161 - width="150"  
162 align="center" 184 align="center"
163 - />  
164 - <el-table-column label="办理人" width="100" align="center"> 185 + label="操作人"
  186 + width="120"
  187 + prop="distributionMechanism"
  188 + >
165 <template #default="{ row }"> 189 <template #default="{ row }">
166 <span>{{ 190 <span>{{
167 - row.associationEmployeeUserName ?? row.companyEmployeeUserName 191 + row.companyEmployeeUserName || row.associationEmployeeUserName
168 }}</span> 192 }}</span>
169 </template> 193 </template>
170 </el-table-column> 194 </el-table-column>
  195 + <el-table-column
  196 + align="center"
  197 + label="操作时间"
  198 + width="160"
  199 + prop="distributionTime"
  200 + />
  201 + <el-table-column
  202 + label="承保公司"
  203 + prop="companyName"
  204 + width="150"
  205 + align="center"
  206 + />
171 <el-table-column label="保单进度" width="100" prop="orderProgress" /> 207 <el-table-column label="保单进度" width="100" prop="orderProgress" />
172 <el-table-column 208 <el-table-column
173 label="保单状态" 209 label="保单状态"
@@ -175,6 +211,16 @@ @@ -175,6 +211,16 @@
175 prop="policyStatus" 211 prop="policyStatus"
176 :show-overflow-tooltip="true" 212 :show-overflow-tooltip="true"
177 /> 213 />
  214 + <el-table-column label="时效" width="100">
  215 + <template #default="{ row }">
  216 + <span>{{
  217 + row.policyStatus === "已作废" ||
  218 + row.policyStatus === "退回后用户取消登记"
  219 + ? "无"
  220 + : timeDifference(row)
  221 + }}</span>
  222 + </template>
  223 + </el-table-column>
178 <el-table-column 224 <el-table-column
179 label="查询回馈" 225 label="查询回馈"
180 fixed="right" 226 fixed="right"
@@ -247,22 +293,6 @@ @@ -247,22 +293,6 @@
247 </el-row> 293 </el-row>
248 <el-row> 294 <el-row>
249 <el-col :span="12"> 295 <el-col :span="12">
250 - <el-form-item label="车辆类型" prop="vehicleType">  
251 - <el-select  
252 - v-model="form.vehicleTypeId"  
253 - disabled  
254 - style="width: 230px"  
255 - >  
256 - <el-option  
257 - v-for="item in carTypeOption"  
258 - :key="item.id"  
259 - :label="item.name"  
260 - :value="item.id"  
261 - />  
262 - </el-select>  
263 - </el-form-item>  
264 - </el-col>  
265 - <el-col :span="12">  
266 <el-form-item label="车辆使用性质" prop="vehicleNature"> 296 <el-form-item label="车辆使用性质" prop="vehicleNature">
267 <el-select 297 <el-select
268 v-model="form.vehicleNatureId" 298 v-model="form.vehicleNatureId"
@@ -278,100 +308,6 @@ @@ -278,100 +308,6 @@
278 </el-select> 308 </el-select>
279 </el-form-item> 309 </el-form-item>
280 </el-col> 310 </el-col>
281 - </el-row>  
282 - <el-row>  
283 - <el-col :span="12">  
284 - <el-form-item label="核定载客数" prop="passengersNumber">  
285 - <el-input  
286 - v-model="form.passengersNumber"  
287 - disabled  
288 - placeholder="请输入核定载客数"  
289 - />  
290 - </el-form-item>  
291 - </el-col>  
292 - <el-col :span="12">  
293 - <el-form-item label="核定载质量" prop="passengerCapacity">  
294 - <el-input  
295 - v-model="form.passengerCapacity"  
296 - disabled  
297 - placeholder="请输入核定载质量"  
298 - />  
299 - </el-form-item>  
300 - </el-col>  
301 - </el-row>  
302 - <el-row>  
303 - <el-col :span="12">  
304 - <el-form-item label="排量毫升" prop="emissions">  
305 - <el-input  
306 - v-model="form.emissions"  
307 - disabled  
308 - placeholder="请输入办理人"  
309 - />  
310 - </el-form-item>  
311 - </el-col>  
312 - <el-col v-if="isCustom" :span="12">  
313 - <el-form-item label="中文品牌" prop="vehicleBrand">  
314 - <el-select  
315 - v-model="form.vehicleBrandId"  
316 - disabled  
317 - style="width: 230px"  
318 - >  
319 - <el-option  
320 - v-for="item in carBrandOption"  
321 - :key="item.id"  
322 - :label="item.name"  
323 - :value="item.id"  
324 - />  
325 - </el-select>  
326 - </el-form-item>  
327 - </el-col>  
328 - <el-col v-else :span="12">  
329 - <el-form-item label="中文品牌" prop="vehicleBrand">  
330 - <el-input  
331 - v-model="form.customizeVehicleBrand"  
332 - disabled  
333 - placeholder="中文品牌"  
334 - />  
335 - </el-form-item>  
336 - </el-col>  
337 - </el-row>  
338 - <el-row>  
339 - <el-col :span="12">  
340 - <el-form-item label="车辆型号" prop="customizeVehicleModel">  
341 - <el-input  
342 - v-model="form.customizeVehicleModel"  
343 - disabled  
344 - placeholder="请输入车辆型号"  
345 - />  
346 - </el-form-item>  
347 - </el-col>  
348 - <el-col :span="12">  
349 - <el-form-item label="准牵引准质量" prop="tractionMass">  
350 - <el-input  
351 - v-model="form.tractionMass"  
352 - disabled  
353 - placeholder="请输入办理人"  
354 - />  
355 - </el-form-item>  
356 - </el-col>  
357 - </el-row>  
358 - <el-row>  
359 - <el-col :span="12">  
360 - <el-form-item label="号牌种类" prop="customizeVehicleModel">  
361 - <el-select  
362 - v-model="form.lincensePlateTypeId"  
363 - disabled  
364 - style="width: 230px"  
365 - >  
366 - <el-option  
367 - v-for="item in carNumOption"  
368 - :key="item.id"  
369 - :label="item.name"  
370 - :value="item.id"  
371 - />  
372 - </el-select>  
373 - </el-form-item>  
374 - </el-col>  
375 <el-col :span="12"> 311 <el-col :span="12">
376 <el-form-item label="保险需求" prop="requirements"> 312 <el-form-item label="保险需求" prop="requirements">
377 <el-select 313 <el-select
@@ -427,18 +363,17 @@ import { @@ -427,18 +363,17 @@ import {
427 queryDefeatContent, 363 queryDefeatContent,
428 getCarDetail, 364 getCarDetail,
429 } from "@/api/policy"; 365 } from "@/api/policy";
430 -import { queryCarType } from "@/api/configurationCenter/carType.js";  
431 import { queryCarNature } from "@/api/configurationCenter/carNature.js"; 366 import { queryCarNature } from "@/api/configurationCenter/carNature.js";
432 -import { queryCarBrand } from "@/api/configurationCenter/carBrand.js";  
433 -import { queryCarNum } from "@/api/configurationCenter/carNum.js";  
434 import { queryNeed } from "@/api/configurationCenter/need.js"; 367 import { queryNeed } from "@/api/configurationCenter/need.js";
435 -import { reactive } from "vue"; 368 +import { computed, reactive } from "vue";
  369 +import { intervalTime } from "@/utils/intervalTime";
436 const { proxy } = getCurrentInstance(); 370 const { proxy } = getCurrentInstance();
437 const loading = ref(false); 371 const loading = ref(false);
438 const total = ref(0); 372 const total = ref(0);
439 const open = ref(false); 373 const open = ref(false);
440 const isCustom = ref(false); 374 const isCustom = ref(false);
441 const labelTitle = ref("保单回馈"); 375 const labelTitle = ref("保单回馈");
  376 +// 表单
442 const form = ref({ 377 const form = ref({
443 name: "", 378 name: "",
444 identificationNumber: "", 379 identificationNumber: "",
@@ -461,10 +396,12 @@ const form = ref({ @@ -461,10 +396,12 @@ const form = ref({
461 requirementsId: "", 396 requirementsId: "",
462 }); 397 });
463 const showSearch = ref(true); 398 const showSearch = ref(true);
  399 +// 请求选项参数
464 const getParams = reactive({ 400 const getParams = reactive({
465 pageNum: 1, 401 pageNum: 1,
466 pageSize: 100, 402 pageSize: 100,
467 }); 403 });
  404 +// 查询参数
468 const queryParams = reactive({ 405 const queryParams = reactive({
469 pageNum: 1, 406 pageNum: 1,
470 pageSize: 10, 407 pageSize: 10,
@@ -479,9 +416,6 @@ const queryParams = reactive({ @@ -479,9 +416,6 @@ const queryParams = reactive({
479 startTime: "", 416 startTime: "",
480 endTime: "", 417 endTime: "",
481 }); 418 });
482 -const hasRole = computed(() => {  
483 - return !proxy.$auth.hasRole("associationemployee");  
484 -});  
485 const timeFrame = ref(null); 419 const timeFrame = ref(null);
486 const statusOption = ref([ 420 const statusOption = ref([
487 { 421 {
@@ -527,22 +461,29 @@ const options = [ @@ -527,22 +461,29 @@ const options = [
527 label: "人工分配", 461 label: "人工分配",
528 }, 462 },
529 ]; 463 ];
530 - 464 +// 保单列表
531 const policyList = ref([]); 465 const policyList = ref([]);
532 -// 号牌种类  
533 -const carNumOption = ref([]);  
534 -const getCarNumOption = async () => {  
535 - const { data } = await queryCarNum(getParams);  
536 - carNumOption.value = data.records;  
537 -};  
538 -getCarNumOption();  
539 -// 车辆类型  
540 -const carTypeOption = ref([]);  
541 -const getCarTypeOption = async () => {  
542 - const { data } = await queryCarType(getParams);  
543 - carTypeOption.value = data.records;  
544 -};  
545 -getCarTypeOption(); 466 +
  467 +// 计算时效
  468 +const timeDifference = computed(() => (row) => {
  469 + let startTime = "";
  470 + let endTime = "";
  471 + // 判断协会是否处理了,如果没有则不计算时效
  472 + if (row.distributionTime !== null) {
  473 + startTime = new Date(row.distributionTime);
  474 + } else {
  475 + return "无";
  476 + }
  477 + // 判断结束时间,已办结时间为最后时间,如果没有则使用员工承接时间
  478 + if (row.policyTime !== null) {
  479 + endTime = new Date(row.policyTime);
  480 + } else if (row.companyEmployeeUndertakeTime !== null) {
  481 + endTime = new Date(row.companyEmployeeUndertakeTime);
  482 + } else {
  483 + endTime = Date.now();
  484 + }
  485 + return intervalTime(startTime, endTime);
  486 +});
546 // 车辆使用性质 487 // 车辆使用性质
547 const carNatureOption = ref([]); 488 const carNatureOption = ref([]);
548 const getcarNatureOption = async () => { 489 const getcarNatureOption = async () => {
@@ -550,13 +491,6 @@ const getcarNatureOption = async () => { @@ -550,13 +491,6 @@ const getcarNatureOption = async () => {
550 carNatureOption.value = data.records; 491 carNatureOption.value = data.records;
551 }; 492 };
552 getcarNatureOption(); 493 getcarNatureOption();
553 -// 中文品牌  
554 -const carBrandOption = ref([]);  
555 -const getCarBrandOption = async () => {  
556 - const { data } = await queryCarBrand(getParams);  
557 - carBrandOption.value = data.records;  
558 -};  
559 -getCarBrandOption();  
560 494
561 // 保险需求 495 // 保险需求
562 const needOption = ref([]); 496 const needOption = ref([]);
@@ -566,10 +500,23 @@ const getNeedOption = async () => { @@ -566,10 +500,23 @@ const getNeedOption = async () => {
566 }; 500 };
567 getNeedOption(); 501 getNeedOption();
568 502
  503 +/** 导出按钮操作 */
  504 +function handleExport() {
  505 + proxy.download(
  506 + "registration/monitor/export",
  507 + {
  508 + ...queryParams,
  509 + },
  510 + `user_${new Date().getTime()}.xlsx`
  511 + );
  512 +}
  513 +
  514 +// 选择时间范围
569 const handleTime = (valu) => { 515 const handleTime = (valu) => {
570 queryParams.startTime = proxy.parseTime(valu[0]); 516 queryParams.startTime = proxy.parseTime(valu[0]);
571 queryParams.endTime = proxy.parseTime(valu[1]); 517 queryParams.endTime = proxy.parseTime(valu[1]);
572 }; 518 };
  519 +// 获取保单列表
573 const getList = async () => { 520 const getList = async () => {
574 loading.value = true; 521 loading.value = true;
575 const res = await queryList(queryParams); 522 const res = await queryList(queryParams);
@@ -592,6 +539,7 @@ const queryRemark = async (row) => { @@ -592,6 +539,7 @@ const queryRemark = async (row) => {
592 labelTitle.value = "作废备注"; 539 labelTitle.value = "作废备注";
593 const { data } = await queryDefeatContent({ 540 const { data } = await queryDefeatContent({
594 processInstanceId: row.processInstanceId, 541 processInstanceId: row.processInstanceId,
  542 + type: 2,
595 }); 543 });
596 form.value.comment = data.message; 544 form.value.comment = data.message;
597 open.value = true; 545 open.value = true;
@@ -616,6 +564,8 @@ function handleQuery() { @@ -616,6 +564,8 @@ function handleQuery() {
616 /** 重置按钮操作 */ 564 /** 重置按钮操作 */
617 function resetQuery() { 565 function resetQuery() {
618 proxy.resetForm("queryRef"); 566 proxy.resetForm("queryRef");
  567 + queryParams.startTime = "";
  568 + queryParams.endTime = "";
619 handleQuery(); 569 handleQuery();
620 } 570 }
621 const submit = async () => { 571 const submit = async () => {
1 -  
2 <template> 1 <template>
3 <div class="app-container"> 2 <div class="app-container">
4 - <el-form :model="queryParams" ref="queryRef" v-show="showSearch" :inline="true"> 3 + <el-form
  4 + :model="queryParams"
  5 + ref="queryRef"
  6 + v-show="showSearch"
  7 + :inline="true"
  8 + >
5 <el-form-item label="用户名称" prop="userName"> 9 <el-form-item label="用户名称" prop="userName">
6 <el-input 10 <el-input
7 v-model="queryParams.userName" 11 v-model="queryParams.userName"
@@ -21,7 +25,9 @@ @@ -21,7 +25,9 @@
21 /> 25 />
22 </el-form-item> 26 </el-form-item>
23 <el-form-item> 27 <el-form-item>
24 - <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button> 28 + <el-button type="primary" icon="Search" @click="handleQuery"
  29 + >搜索</el-button
  30 + >
25 <el-button icon="Refresh" @click="resetQuery">重置</el-button> 31 <el-button icon="Refresh" @click="resetQuery">重置</el-button>
26 </el-form-item> 32 </el-form-item>
27 </el-form> 33 </el-form>
@@ -34,7 +40,8 @@ @@ -34,7 +40,8 @@
34 icon="Plus" 40 icon="Plus"
35 @click="openSelectUser" 41 @click="openSelectUser"
36 v-hasPermi="['system:role:add']" 42 v-hasPermi="['system:role:add']"
37 - >添加用户</el-button> 43 + >添加用户</el-button
  44 + >
38 </el-col> 45 </el-col>
39 <el-col :span="1.5"> 46 <el-col :span="1.5">
40 <el-button 47 <el-button
@@ -44,38 +51,75 @@ @@ -44,38 +51,75 @@
44 :disabled="multiple" 51 :disabled="multiple"
45 @click="cancelAuthUserAll" 52 @click="cancelAuthUserAll"
46 v-hasPermi="['system:role:remove']" 53 v-hasPermi="['system:role:remove']"
47 - >批量取消授权</el-button> 54 + >批量取消授权</el-button
  55 + >
48 </el-col> 56 </el-col>
49 <el-col :span="1.5"> 57 <el-col :span="1.5">
50 - <el-button  
51 - type="warning"  
52 - plain  
53 - icon="Close"  
54 - @click="handleClose"  
55 - >关闭</el-button> 58 + <el-button type="warning" plain icon="Close" @click="handleClose"
  59 + >关闭</el-button
  60 + >
56 </el-col> 61 </el-col>
57 - <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> 62 + <right-toolbar
  63 + v-model:showSearch="showSearch"
  64 + @queryTable="getList"
  65 + ></right-toolbar>
58 </el-row> 66 </el-row>
59 67
60 - <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange"> 68 + <el-table
  69 + v-loading="loading"
  70 + :data="userList"
  71 + @selection-change="handleSelectionChange"
  72 + >
61 <el-table-column type="selection" width="55" align="center" /> 73 <el-table-column type="selection" width="55" align="center" />
62 - <el-table-column label="用户名称" prop="userName" :show-overflow-tooltip="true" />  
63 - <el-table-column label="用户昵称" prop="nickName" :show-overflow-tooltip="true" />  
64 - <el-table-column label="邮箱" prop="email" :show-overflow-tooltip="true" />  
65 - <el-table-column label="手机" prop="phonenumber" :show-overflow-tooltip="true" /> 74 + <el-table-column
  75 + label="用户名称"
  76 + prop="userName"
  77 + :show-overflow-tooltip="true"
  78 + />
  79 + <el-table-column
  80 + label="用户姓名"
  81 + prop="nickName"
  82 + :show-overflow-tooltip="true"
  83 + />
  84 + <el-table-column
  85 + label="邮箱"
  86 + prop="email"
  87 + :show-overflow-tooltip="true"
  88 + />
  89 + <el-table-column
  90 + label="手机"
  91 + prop="phonenumber"
  92 + :show-overflow-tooltip="true"
  93 + />
66 <el-table-column label="状态" align="center" prop="status"> 94 <el-table-column label="状态" align="center" prop="status">
67 <template #default="scope"> 95 <template #default="scope">
68 <dict-tag :options="sys_normal_disable" :value="scope.row.status" /> 96 <dict-tag :options="sys_normal_disable" :value="scope.row.status" />
69 </template> 97 </template>
70 </el-table-column> 98 </el-table-column>
71 - <el-table-column label="创建时间" align="center" prop="createTime" width="180"> 99 + <el-table-column
  100 + label="创建时间"
  101 + align="center"
  102 + prop="createTime"
  103 + width="180"
  104 + >
72 <template #default="scope"> 105 <template #default="scope">
73 <span>{{ parseTime(scope.row.createTime) }}</span> 106 <span>{{ parseTime(scope.row.createTime) }}</span>
74 </template> 107 </template>
75 </el-table-column> 108 </el-table-column>
76 - <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> 109 + <el-table-column
  110 + label="操作"
  111 + align="center"
  112 + class-name="small-padding fixed-width"
  113 + >
77 <template #default="scope"> 114 <template #default="scope">
78 - <el-button link type="primary" icon="CircleClose" @click="cancelAuthUser(scope.row)" v-hasPermi="['system:role:remove']">取消授权</el-button> 115 + <el-button
  116 + link
  117 + type="primary"
  118 + icon="CircleClose"
  119 + @click="cancelAuthUser(scope.row)"
  120 + v-hasPermi="['system:role:remove']"
  121 + >取消授权</el-button
  122 + >
79 </template> 123 </template>
80 </el-table-column> 124 </el-table-column>
81 </el-table> 125 </el-table>
@@ -87,13 +131,21 @@ @@ -87,13 +131,21 @@
87 v-model:limit="queryParams.pageSize" 131 v-model:limit="queryParams.pageSize"
88 @pagination="getList" 132 @pagination="getList"
89 /> 133 />
90 - <select-user ref="selectRef" :roleId="queryParams.roleId" @ok="handleQuery" /> 134 + <select-user
  135 + ref="selectRef"
  136 + :roleId="queryParams.roleId"
  137 + @ok="handleQuery"
  138 + />
91 </div> 139 </div>
92 </template> 140 </template>
93 141
94 <script setup name="AuthUser"> 142 <script setup name="AuthUser">
95 import selectUser from "./selectUser"; 143 import selectUser from "./selectUser";
96 -import { allocatedUserList, authUserCancel, authUserCancelAll } from "@/api/system/role"; 144 +import {
  145 + allocatedUserList,
  146 + authUserCancel,
  147 + authUserCancelAll,
  148 +} from "@/api/system/role";
97 149
98 const route = useRoute(); 150 const route = useRoute();
99 const { proxy } = getCurrentInstance(); 151 const { proxy } = getCurrentInstance();
@@ -117,7 +169,7 @@ const queryParams = reactive({ @@ -117,7 +169,7 @@ const queryParams = reactive({
117 /** 查询授权用户列表 */ 169 /** 查询授权用户列表 */
118 function getList() { 170 function getList() {
119 loading.value = true; 171 loading.value = true;
120 - allocatedUserList(queryParams).then(response => { 172 + allocatedUserList(queryParams).then((response) => {
121 userList.value = response.rows; 173 userList.value = response.rows;
122 total.value = response.total; 174 total.value = response.total;
123 loading.value = false; 175 loading.value = false;
@@ -140,7 +192,7 @@ function resetQuery() { @@ -140,7 +192,7 @@ function resetQuery() {
140 } 192 }
141 // 多选框选中数据 193 // 多选框选中数据
142 function handleSelectionChange(selection) { 194 function handleSelectionChange(selection) {
143 - userIds.value = selection.map(item => item.userId); 195 + userIds.value = selection.map((item) => item.userId);
144 multiple.value = !selection.length; 196 multiple.value = !selection.length;
145 } 197 }
146 /** 打开授权用户表弹窗 */ 198 /** 打开授权用户表弹窗 */
@@ -149,23 +201,31 @@ function openSelectUser() { @@ -149,23 +201,31 @@ function openSelectUser() {
149 } 201 }
150 /** 取消授权按钮操作 */ 202 /** 取消授权按钮操作 */
151 function cancelAuthUser(row) { 203 function cancelAuthUser(row) {
152 - proxy.$modal.confirm('确认要取消该用户"' + row.userName + '"角色吗?').then(function () { 204 + proxy.$modal
  205 + .confirm('确认要取消该用户"' + row.userName + '"角色吗?')
  206 + .then(function () {
153 return authUserCancel({ userId: row.userId, roleId: queryParams.roleId }); 207 return authUserCancel({ userId: row.userId, roleId: queryParams.roleId });
154 - }).then(() => { 208 + })
  209 + .then(() => {
155 getList(); 210 getList();
156 proxy.$modal.msgSuccess("取消授权成功"); 211 proxy.$modal.msgSuccess("取消授权成功");
157 - }).catch(() => {}); 212 + })
  213 + .catch(() => {});
158 } 214 }
159 /** 批量取消授权按钮操作 */ 215 /** 批量取消授权按钮操作 */
160 function cancelAuthUserAll(row) { 216 function cancelAuthUserAll(row) {
161 const roleId = queryParams.roleId; 217 const roleId = queryParams.roleId;
162 const uIds = userIds.value.join(","); 218 const uIds = userIds.value.join(",");
163 - proxy.$modal.confirm("是否取消选中用户授权数据项?").then(function () { 219 + proxy.$modal
  220 + .confirm("是否取消选中用户授权数据项?")
  221 + .then(function () {
164 return authUserCancelAll({ roleId: roleId, userIds: uIds }); 222 return authUserCancelAll({ roleId: roleId, userIds: uIds });
165 - }).then(() => { 223 + })
  224 + .then(() => {
166 getList(); 225 getList();
167 proxy.$modal.msgSuccess("取消授权成功"); 226 proxy.$modal.msgSuccess("取消授权成功");
168 - }).catch(() => {}); 227 + })
  228 + .catch(() => {});
169 } 229 }
170 230
171 getList(); 231 getList();
1 <template> 1 <template>
2 <!-- 授权用户 --> 2 <!-- 授权用户 -->
3 - <el-dialog title="选择用户" v-model="visible" width="800px" top="5vh" append-to-body> 3 + <el-dialog
  4 + title="选择用户"
  5 + v-model="visible"
  6 + width="800px"
  7 + top="5vh"
  8 + append-to-body
  9 + >
4 <el-form :model="queryParams" ref="queryRef" :inline="true"> 10 <el-form :model="queryParams" ref="queryRef" :inline="true">
5 <el-form-item label="用户名称" prop="userName"> 11 <el-form-item label="用户名称" prop="userName">
6 <el-input 12 <el-input
@@ -21,23 +27,52 @@ @@ -21,23 +27,52 @@
21 /> 27 />
22 </el-form-item> 28 </el-form-item>
23 <el-form-item> 29 <el-form-item>
24 - <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button> 30 + <el-button type="primary" icon="Search" @click="handleQuery"
  31 + >搜索</el-button
  32 + >
25 <el-button icon="Refresh" @click="resetQuery">重置</el-button> 33 <el-button icon="Refresh" @click="resetQuery">重置</el-button>
26 </el-form-item> 34 </el-form-item>
27 </el-form> 35 </el-form>
28 <el-row> 36 <el-row>
29 - <el-table @row-click="clickRow" ref="refTable" :data="userList" @selection-change="handleSelectionChange" height="260px"> 37 + <el-table
  38 + @row-click="clickRow"
  39 + ref="refTable"
  40 + :data="userList"
  41 + @selection-change="handleSelectionChange"
  42 + height="260px"
  43 + >
30 <el-table-column type="selection" width="55"></el-table-column> 44 <el-table-column type="selection" width="55"></el-table-column>
31 - <el-table-column label="用户名称" prop="userName" :show-overflow-tooltip="true" />  
32 - <el-table-column label="用户昵称" prop="nickName" :show-overflow-tooltip="true" />  
33 - <el-table-column label="邮箱" prop="email" :show-overflow-tooltip="true" />  
34 - <el-table-column label="手机" prop="phonenumber" :show-overflow-tooltip="true" /> 45 + <el-table-column
  46 + label="用户名称"
  47 + prop="userName"
  48 + :show-overflow-tooltip="true"
  49 + />
  50 + <el-table-column
  51 + label="用户姓名"
  52 + prop="nickName"
  53 + :show-overflow-tooltip="true"
  54 + />
  55 + <el-table-column
  56 + label="邮箱"
  57 + prop="email"
  58 + :show-overflow-tooltip="true"
  59 + />
  60 + <el-table-column
  61 + label="手机"
  62 + prop="phonenumber"
  63 + :show-overflow-tooltip="true"
  64 + />
35 <el-table-column label="状态" align="center" prop="status"> 65 <el-table-column label="状态" align="center" prop="status">
36 <template #default="scope"> 66 <template #default="scope">
37 <dict-tag :options="sys_normal_disable" :value="scope.row.status" /> 67 <dict-tag :options="sys_normal_disable" :value="scope.row.status" />
38 </template> 68 </template>
39 </el-table-column> 69 </el-table-column>
40 - <el-table-column label="创建时间" align="center" prop="createTime" width="180"> 70 + <el-table-column
  71 + label="创建时间"
  72 + align="center"
  73 + prop="createTime"
  74 + width="180"
  75 + >
41 <template #default="scope"> 76 <template #default="scope">
42 <span>{{ parseTime(scope.row.createTime) }}</span> 77 <span>{{ parseTime(scope.row.createTime) }}</span>
43 </template> 78 </template>
@@ -65,8 +100,8 @@ import { authUserSelectAll, unallocatedUserList } from "@/api/system/role"; @@ -65,8 +100,8 @@ import { authUserSelectAll, unallocatedUserList } from "@/api/system/role";
65 100
66 const props = defineProps({ 101 const props = defineProps({
67 roleId: { 102 roleId: {
68 - type: [Number, String]  
69 - } 103 + type: [Number, String],
  104 + },
70 }); 105 });
71 106
72 const { proxy } = getCurrentInstance(); 107 const { proxy } = getCurrentInstance();
@@ -82,7 +117,7 @@ const queryParams = reactive({ @@ -82,7 +117,7 @@ const queryParams = reactive({
82 pageSize: 10, 117 pageSize: 10,
83 roleId: undefined, 118 roleId: undefined,
84 userName: undefined, 119 userName: undefined,
85 - phonenumber: undefined 120 + phonenumber: undefined,
86 }); 121 });
87 122
88 // 显示弹框 123 // 显示弹框
@@ -97,11 +132,11 @@ function clickRow(row) { @@ -97,11 +132,11 @@ function clickRow(row) {
97 } 132 }
98 // 多选框选中数据 133 // 多选框选中数据
99 function handleSelectionChange(selection) { 134 function handleSelectionChange(selection) {
100 - userIds.value = selection.map(item => item.userId); 135 + userIds.value = selection.map((item) => item.userId);
101 } 136 }
102 // 查询表数据 137 // 查询表数据
103 function getList() { 138 function getList() {
104 - unallocatedUserList(queryParams).then(res => { 139 + unallocatedUserList(queryParams).then((res) => {
105 userList.value = res.rows; 140 userList.value = res.rows;
106 total.value = res.total; 141 total.value = res.total;
107 }); 142 });
@@ -125,7 +160,7 @@ function handleSelectUser() { @@ -125,7 +160,7 @@ function handleSelectUser() {
125 proxy.$modal.msgError("请选择要分配的用户"); 160 proxy.$modal.msgError("请选择要分配的用户");
126 return; 161 return;
127 } 162 }
128 - authUserSelectAll({ roleId: roleId, userIds: uIds }).then(res => { 163 + authUserSelectAll({ roleId: roleId, userIds: uIds }).then((res) => {
129 proxy.$modal.msgSuccess(res.msg); 164 proxy.$modal.msgSuccess(res.msg);
130 if (res.code === 200) { 165 if (res.code === 200) {
131 visible.value = false; 166 visible.value = false;
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 <el-form :model="form" label-width="80px"> 4 <el-form :model="form" label-width="80px">
5 <el-row> 5 <el-row>
6 <el-col :span="8" :offset="2"> 6 <el-col :span="8" :offset="2">
7 - <el-form-item label="用户昵称" prop="nickName"> 7 + <el-form-item label="用户姓名" prop="nickName">
8 <el-input v-model="form.nickName" disabled /> 8 <el-input v-model="form.nickName" disabled />
9 </el-form-item> 9 </el-form-item>
10 </el-col> 10 </el-col>
@@ -17,27 +17,48 @@ @@ -17,27 +17,48 @@
17 </el-form> 17 </el-form>
18 18
19 <h4 class="form-header h4">角色信息</h4> 19 <h4 class="form-header h4">角色信息</h4>
20 - <el-table v-loading="loading" :row-key="getRowKey" @row-click="clickRow" ref="roleRef" @selection-change="handleSelectionChange" :data="roles.slice((pageNum - 1) * pageSize, pageNum * pageSize)"> 20 + <el-table
  21 + v-loading="loading"
  22 + :row-key="getRowKey"
  23 + @row-click="clickRow"
  24 + ref="roleRef"
  25 + @selection-change="handleSelectionChange"
  26 + :data="roles.slice((pageNum - 1) * pageSize, pageNum * pageSize)"
  27 + >
21 <el-table-column label="序号" width="55" type="index" align="center"> 28 <el-table-column label="序号" width="55" type="index" align="center">
22 <template #default="scope"> 29 <template #default="scope">
23 <span>{{ (pageNum - 1) * pageSize + scope.$index + 1 }}</span> 30 <span>{{ (pageNum - 1) * pageSize + scope.$index + 1 }}</span>
24 </template> 31 </template>
25 </el-table-column> 32 </el-table-column>
26 - <el-table-column type="selection" :reserve-selection="true" width="55"></el-table-column> 33 + <el-table-column
  34 + type="selection"
  35 + :reserve-selection="true"
  36 + width="55"
  37 + ></el-table-column>
27 <el-table-column label="角色编号" align="center" prop="roleId" /> 38 <el-table-column label="角色编号" align="center" prop="roleId" />
28 <el-table-column label="角色名称" align="center" prop="roleName" /> 39 <el-table-column label="角色名称" align="center" prop="roleName" />
29 <el-table-column label="权限字符" align="center" prop="roleKey" /> 40 <el-table-column label="权限字符" align="center" prop="roleKey" />
30 - <el-table-column label="创建时间" align="center" prop="createTime" width="180"> 41 + <el-table-column
  42 + label="创建时间"
  43 + align="center"
  44 + prop="createTime"
  45 + width="180"
  46 + >
31 <template #default="scope"> 47 <template #default="scope">
32 <span>{{ parseTime(scope.row.createTime) }}</span> 48 <span>{{ parseTime(scope.row.createTime) }}</span>
33 </template> 49 </template>
34 </el-table-column> 50 </el-table-column>
35 </el-table> 51 </el-table>
36 52
37 - <pagination v-show="total > 0" :total="total" v-model:page="pageNum" v-model:limit="pageSize" /> 53 + <pagination
  54 + v-show="total > 0"
  55 + :total="total"
  56 + v-model:page="pageNum"
  57 + v-model:limit="pageSize"
  58 + />
38 59
39 <el-form label-width="100px"> 60 <el-form label-width="100px">
40 - <div style="text-align: center;margin-left:-120px;margin-top:30px;"> 61 + <div style="text-align: center; margin-left: -120px; margin-top: 30px">
41 <el-button type="primary" @click="submitForm()">提交</el-button> 62 <el-button type="primary" @click="submitForm()">提交</el-button>
42 <el-button @click="close()">返回</el-button> 63 <el-button @click="close()">返回</el-button>
43 </div> 64 </div>
@@ -60,46 +81,46 @@ const roles = ref([]); @@ -60,46 +81,46 @@ const roles = ref([]);
60 const form = ref({ 81 const form = ref({
61 nickName: undefined, 82 nickName: undefined,
62 userName: undefined, 83 userName: undefined,
63 - userId: undefined 84 + userId: undefined,
64 }); 85 });
65 86
66 /** 单击选中行数据 */ 87 /** 单击选中行数据 */
67 function clickRow(row) { 88 function clickRow(row) {
68 proxy.$refs["roleRef"].toggleRowSelection(row); 89 proxy.$refs["roleRef"].toggleRowSelection(row);
69 -}; 90 +}
70 /** 多选框选中数据 */ 91 /** 多选框选中数据 */
71 function handleSelectionChange(selection) { 92 function handleSelectionChange(selection) {
72 - roleIds.value = selection.map(item => item.roleId);  
73 -}; 93 + roleIds.value = selection.map((item) => item.roleId);
  94 +}
74 /** 保存选中的数据编号 */ 95 /** 保存选中的数据编号 */
75 function getRowKey(row) { 96 function getRowKey(row) {
76 return row.roleId; 97 return row.roleId;
77 -}; 98 +}
78 /** 关闭按钮 */ 99 /** 关闭按钮 */
79 function close() { 100 function close() {
80 const obj = { path: "/system/user" }; 101 const obj = { path: "/system/user" };
81 proxy.$tab.closeOpenPage(obj); 102 proxy.$tab.closeOpenPage(obj);
82 -}; 103 +}
83 /** 提交按钮 */ 104 /** 提交按钮 */
84 function submitForm() { 105 function submitForm() {
85 const userId = form.value.userId; 106 const userId = form.value.userId;
86 const rIds = roleIds.value.join(","); 107 const rIds = roleIds.value.join(",");
87 - updateAuthRole({ userId: userId, roleIds: rIds }).then(response => { 108 + updateAuthRole({ userId: userId, roleIds: rIds }).then((response) => {
88 proxy.$modal.msgSuccess("授权成功"); 109 proxy.$modal.msgSuccess("授权成功");
89 close(); 110 close();
90 }); 111 });
91 -}; 112 +}
92 113
93 (() => { 114 (() => {
94 const userId = route.params && route.params.userId; 115 const userId = route.params && route.params.userId;
95 if (userId) { 116 if (userId) {
96 loading.value = true; 117 loading.value = true;
97 - getAuthRole(userId).then(response => { 118 + getAuthRole(userId).then((response) => {
98 form.value = response.user; 119 form.value = response.user;
99 roles.value = response.roles; 120 roles.value = response.roles;
100 total.value = roles.value.length; 121 total.value = roles.value.length;
101 nextTick(() => { 122 nextTick(() => {
102 - roles.value.forEach(row => { 123 + roles.value.forEach((row) => {
103 if (row.flag) { 124 if (row.flag) {
104 proxy.$refs["roleRef"].toggleRowSelection(row); 125 proxy.$refs["roleRef"].toggleRowSelection(row);
105 } 126 }
@@ -168,7 +168,7 @@ @@ -168,7 +168,7 @@
168 :show-overflow-tooltip="true" 168 :show-overflow-tooltip="true"
169 /> 169 />
170 <el-table-column 170 <el-table-column
171 - label="用户昵称" 171 + label="用户姓名"
172 align="center" 172 align="center"
173 key="nickName" 173 key="nickName"
174 prop="nickName" 174 prop="nickName"
@@ -294,10 +294,10 @@ @@ -294,10 +294,10 @@
294 <el-form :model="form" :rules="rules" ref="userRef" label-width="80px"> 294 <el-form :model="form" :rules="rules" ref="userRef" label-width="80px">
295 <el-row> 295 <el-row>
296 <el-col :span="12"> 296 <el-col :span="12">
297 - <el-form-item label="用户昵称" prop="nickName"> 297 + <el-form-item label="用户姓名" prop="nickName">
298 <el-input 298 <el-input
299 v-model="form.nickName" 299 v-model="form.nickName"
300 - placeholder="请输入用户昵称" 300 + placeholder="请输入用户姓名"
301 maxlength="30" 301 maxlength="30"
302 /> 302 />
303 </el-form-item> 303 </el-form-item>
@@ -542,7 +542,7 @@ const upload = reactive({ @@ -542,7 +542,7 @@ const upload = reactive({
542 const columns = ref([ 542 const columns = ref([
543 { key: 0, label: `用户编号`, visible: true }, 543 { key: 0, label: `用户编号`, visible: true },
544 { key: 1, label: `用户名称`, visible: true }, 544 { key: 1, label: `用户名称`, visible: true },
545 - { key: 2, label: `用户昵称`, visible: true }, 545 + { key: 2, label: `用户姓名`, visible: true },
546 { key: 3, label: `部门`, visible: true }, 546 { key: 3, label: `部门`, visible: true },
547 { key: 4, label: `手机号码`, visible: true }, 547 { key: 4, label: `手机号码`, visible: true },
548 { key: 5, label: `状态`, visible: true }, 548 { key: 5, label: `状态`, visible: true },
@@ -570,7 +570,7 @@ const data = reactive({ @@ -570,7 +570,7 @@ const data = reactive({
570 }, 570 },
571 ], 571 ],
572 nickName: [ 572 nickName: [
573 - { required: true, message: "用户昵称不能为空", trigger: "blur" }, 573 + { required: true, message: "用户姓名不能为空", trigger: "blur" },
574 ], 574 ],
575 password: [ 575 password: [
576 { required: true, message: "用户密码不能为空", trigger: "blur" }, 576 { required: true, message: "用户密码不能为空", trigger: "blur" },
1 <template> 1 <template>
2 <el-form ref="userRef" :model="user" :rules="rules" label-width="80px"> 2 <el-form ref="userRef" :model="user" :rules="rules" label-width="80px">
3 - <el-form-item label="用户昵称" prop="nickName"> 3 + <el-form-item label="用户姓名" prop="nickName">
4 <el-input v-model="user.nickName" maxlength="30" /> 4 <el-input v-model="user.nickName" maxlength="30" />
5 </el-form-item> 5 </el-form-item>
6 <el-form-item label="手机号码" prop="phonenumber"> 6 <el-form-item label="手机号码" prop="phonenumber">
@@ -40,7 +40,7 @@ const props = defineProps({ @@ -40,7 +40,7 @@ const props = defineProps({
40 const { proxy } = getCurrentInstance(); 40 const { proxy } = getCurrentInstance();
41 41
42 const rules = ref({ 42 const rules = ref({
43 - nickName: [{ required: true, message: "用户昵称不能为空", trigger: "blur" }], 43 + nickName: [{ required: true, message: "用户姓名不能为空", trigger: "blur" }],
44 email: [ 44 email: [
45 { required: true, message: "邮箱地址不能为空", trigger: "blur" }, 45 { required: true, message: "邮箱地址不能为空", trigger: "blur" },
46 { 46 {