作者 xiaoqiu

完成功能

@@ -10,10 +10,11 @@ export function addRules(data) { @@ -10,10 +10,11 @@ export function addRules(data) {
10 } 10 }
11 11
12 // 查询规则列表 12 // 查询规则列表
13 -export function queryRules() { 13 +export function queryRules(data) {
14 return request({ 14 return request({
15 url: '/system/rule/lsit', 15 url: '/system/rule/lsit',
16 - method: 'get' 16 + method: 'get',
  17 + params: data
17 }) 18 })
18 } 19 }
19 20
@@ -8,10 +8,10 @@ @@ -8,10 +8,10 @@
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="请输入企业名称"
15 clearable 15 clearable
16 style="width: 200px" 16 style="width: 200px"
17 @keyup.enter="handleQuery" 17 @keyup.enter="handleQuery"
@@ -8,10 +8,10 @@ @@ -8,10 +8,10 @@
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="请输入企业名称"
15 clearable 15 clearable
16 style="width: 200px" 16 style="width: 200px"
17 @keyup.enter="handleQuery" 17 @keyup.enter="handleQuery"
1 <template> 1 <template>
2 <div class="app-container"> 2 <div class="app-container">
  3 + <!-- 筛选条件 -->
  4 + <el-form
  5 + :model="queryParams"
  6 + ref="queryRef"
  7 + :inline="true"
  8 + label-width="68px"
  9 + >
  10 + <el-form-item label="企业名称" prop="name">
  11 + <el-input
  12 + v-model="queryParams.name"
  13 + placeholder="请输入企业名称"
  14 + clearable
  15 + style="width: 220px"
  16 + @keyup.enter="handleQuery"
  17 + />
  18 + </el-form-item>
  19 + <el-form-item label="车牌号码" prop="licensePlate">
  20 + <el-input
  21 + v-model="queryParams.licensePlate"
  22 + placeholder="请输入车牌号"
  23 + clearable
  24 + style="width: 220px"
  25 + @keyup.enter="handleQuery"
  26 + />
  27 + </el-form-item>
  28 + <el-form-item label="识别代码" prop="frameNumber">
  29 + <el-input
  30 + v-model="queryParams.frameNumber"
  31 + placeholder="请输入车辆识别代码"
  32 + clearable
  33 + style="width: 220px"
  34 + @keyup.enter="handleQuery"
  35 + />
  36 + </el-form-item>
  37 + <el-form-item label="时间范围" prop="timeFrame">
  38 + <el-date-picker
  39 + v-model="timeFrame"
  40 + type="datetimerange"
  41 + range-separator="To"
  42 + start-placeholder="开始时间"
  43 + end-placeholder="结束时间"
  44 + @change="handleTime"
  45 + />
  46 + </el-form-item>
  47 + <el-form-item>
  48 + <el-button type="primary" icon="Search" @click="handleQuery"
  49 + >查询</el-button
  50 + >
  51 + <el-button icon="Refresh" @click="resetQuery">重置</el-button>
  52 + </el-form-item>
  53 + </el-form>
  54 +
3 <!-- 表格数据 --> 55 <!-- 表格数据 -->
4 <el-table v-loading="loading" :data="policyList" @row-click="handleUpdate"> 56 <el-table v-loading="loading" :data="policyList" @row-click="handleUpdate">
5 <el-table-column label="序号" width="55" type="index" /> 57 <el-table-column label="序号" width="55" type="index" />
@@ -12,24 +64,49 @@ @@ -12,24 +64,49 @@
12 <el-table-column 64 <el-table-column
13 label="车牌号" 65 label="车牌号"
14 prop="licensePlateNumber" 66 prop="licensePlateNumber"
  67 + width="150"
15 align="center" 68 align="center"
16 /> 69 />
17 <el-table-column 70 <el-table-column
18 label="车架号" 71 label="车架号"
19 prop="frameNumber" 72 prop="frameNumber"
20 align="center" 73 align="center"
  74 + width="180"
21 :show-overflow-tooltip="true" 75 :show-overflow-tooltip="true"
22 /> 76 />
23 <el-table-column 77 <el-table-column
24 label="发动机号" 78 label="发动机号"
25 prop="engineNumber" 79 prop="engineNumber"
26 align="center" 80 align="center"
  81 + width="180"
27 :show-overflow-tooltip="true" 82 :show-overflow-tooltip="true"
28 /> 83 />
29 - <el-table-column label="车主姓名" prop="name" align="center" />  
30 - <el-table-column label="联系电话" prop="phone" align="center" />  
31 - <el-table-column label="是否新能源" prop="isNewEnergy" align="center" />  
32 - <el-table-column label="上年承保公司" prop="sysDeptName" align="center" /> 84 + <el-table-column label="企业名称" prop="businessName" align="center" />
  85 + <el-table-column
  86 + label="统一信用代码"
  87 + prop="uniformCreditCode"
  88 + width="180"
  89 + align="center"
  90 + :show-overflow-tooltip="true"
  91 + />
  92 + <el-table-column
  93 + label="联系电话"
  94 + prop="businessPhone"
  95 + width="160"
  96 + align="center"
  97 + />
  98 + <el-table-column
  99 + label="是否新能源"
  100 + width="120"
  101 + prop="isNewEnergy"
  102 + align="center"
  103 + />
  104 + <el-table-column
  105 + label="上年承保公司"
  106 + prop="sysDeptName"
  107 + width="150"
  108 + align="center"
  109 + />
33 <el-table-column label="保单进度" prop="orderProgress" align="center" /> 110 <el-table-column label="保单进度" prop="orderProgress" align="center" />
34 <el-table-column label="保单状态" prop="policyStatus" align="center" /> 111 <el-table-column label="保单状态" prop="policyStatus" align="center" />
35 </el-table> 112 </el-table>
@@ -157,26 +234,19 @@ const title = ref("保单信息"); @@ -157,26 +234,19 @@ const title = ref("保单信息");
157 const open = ref(false); 234 const open = ref(false);
158 const transferShow = ref(false); 235 const transferShow = ref(false);
159 const form = ref({}); 236 const form = ref({});
  237 +const timeFrame = ref(null);
160 const transferForm = ref({}); 238 const transferForm = ref({});
161 const transferOptions = ref([]); 239 const transferOptions = ref([]);
162 -const rules = ref({  
163 - carNum: [{ required: true, message: "车牌号不能为空", trigger: "blur" }],  
164 - frameNum: [{ required: true, message: "车架号不能为空", trigger: "blur" }],  
165 - name: [{ required: true, message: "车主姓名不能为空", trigger: "blur" }],  
166 - createTime: [{ required: true, message: "日期不能为空", trigger: "blur" }],  
167 - phone: [  
168 - {  
169 - pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,  
170 - message: "请输入正确的手机号码",  
171 - trigger: "blur",  
172 - },  
173 - ],  
174 -});  
175 const companyShow = ref(false); 240 const companyShow = ref(false);
176 const queryParams = reactive({ 241 const queryParams = reactive({
177 pageNum: 1, 242 pageNum: 1,
178 pageSize: 10, 243 pageSize: 10,
  244 + name: "",
  245 + licensePlate: "",
179 type: 1, 246 type: 1,
  247 + frameNumber: "",
  248 + startTime: "",
  249 + endTime: "",
180 }); 250 });
181 const policyList = ref([]); 251 const policyList = ref([]);
182 252
@@ -225,6 +295,31 @@ const handleUpdate = (row) => { @@ -225,6 +295,31 @@ const handleUpdate = (row) => {
225 // isCustom.value = data.isCustomizeBrandAndModel == "0"; 295 // isCustom.value = data.isCustomizeBrandAndModel == "0";
226 open.value = true; 296 open.value = true;
227 }; 297 };
  298 +
  299 +// 选择时间范围
  300 +const handleTime = (valu) => {
  301 + if (valu !== null) {
  302 + queryParams.startTime = proxy.parseTime(valu[0]);
  303 + queryParams.endTime = proxy.parseTime(valu[1]);
  304 + } else {
  305 + queryParams.startTime = "";
  306 + queryParams.endTime = "";
  307 + }
  308 +};
  309 +
  310 +/** 搜索按钮操作 */
  311 +function handleQuery() {
  312 + queryParams.pageNum = 1;
  313 + getList();
  314 +}
  315 +/** 重置按钮操作 */
  316 +function resetQuery() {
  317 + proxy.resetForm("queryRef");
  318 + queryParams.startTime = "";
  319 + queryParams.endTime = "";
  320 + handleQuery();
  321 +}
  322 +
228 getList(); 323 getList();
229 </script> 324 </script>
230 325
@@ -8,10 +8,10 @@ @@ -8,10 +8,10 @@
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="请输入企业名称"
15 clearable 15 clearable
16 style="width: 200px" 16 style="width: 200px"
17 @keyup.enter="handleQuery" 17 @keyup.enter="handleQuery"
@@ -413,7 +413,7 @@ function handleUpdate(row) { @@ -413,7 +413,7 @@ function handleUpdate(row) {
413 413
414 /** 搜索按钮操作 */ 414 /** 搜索按钮操作 */
415 function handleQuery() { 415 function handleQuery() {
416 - queryParams.value.pageNum = 1; 416 + queryParams.pageNum = 1;
417 getList(); 417 getList();
418 } 418 }
419 /** 重置按钮操作 */ 419 /** 重置按钮操作 */
1 <template> 1 <template>
2 <div class="app-container"> 2 <div class="app-container">
  3 + <!-- 筛选条件 -->
  4 + <el-form
  5 + :model="queryParams"
  6 + ref="queryRef"
  7 + :inline="true"
  8 + label-width="68px"
  9 + >
  10 + <el-form-item label="企业名称" prop="name">
  11 + <el-input
  12 + v-model="queryParams.name"
  13 + placeholder="请输入企业名称"
  14 + clearable
  15 + style="width: 220px"
  16 + @keyup.enter="handleQuery"
  17 + />
  18 + </el-form-item>
  19 + <el-form-item label="车牌号码" prop="licensePlate">
  20 + <el-input
  21 + v-model="queryParams.licensePlate"
  22 + placeholder="请输入车牌号"
  23 + clearable
  24 + style="width: 220px"
  25 + @keyup.enter="handleQuery"
  26 + />
  27 + </el-form-item>
  28 + <el-form-item label="识别代码" prop="frameNumber">
  29 + <el-input
  30 + v-model="queryParams.frameNumber"
  31 + placeholder="请输入车辆识别代码"
  32 + clearable
  33 + style="width: 220px"
  34 + @keyup.enter="handleQuery"
  35 + />
  36 + </el-form-item>
  37 + <el-form-item label="时间范围" prop="timeFrame">
  38 + <el-date-picker
  39 + v-model="timeFrame"
  40 + type="datetimerange"
  41 + range-separator="To"
  42 + start-placeholder="开始时间"
  43 + end-placeholder="结束时间"
  44 + @change="handleTime"
  45 + />
  46 + </el-form-item>
  47 + <el-form-item>
  48 + <el-button type="primary" icon="Search" @click="handleQuery"
  49 + >查询</el-button
  50 + >
  51 + <el-button icon="Refresh" @click="resetQuery">重置</el-button>
  52 + </el-form-item>
  53 + </el-form>
  54 +
3 <!-- 表格数据 --> 55 <!-- 表格数据 -->
4 <el-table v-loading="loading" :data="policyList" @row-click="handleTask"> 56 <el-table v-loading="loading" :data="policyList" @row-click="handleTask">
5 <el-table-column label="序号" width="55" type="index" /> 57 <el-table-column label="序号" width="55" type="index" />
@@ -494,6 +546,7 @@ const open = ref(false); @@ -494,6 +546,7 @@ const open = ref(false);
494 const timer = ref(null); 546 const timer = ref(null);
495 const timerReason = ref(null); 547 const timerReason = ref(null);
496 const form = ref({}); 548 const form = ref({});
  549 +const timeFrame = ref(null);
497 const showFeedback = ref(false); 550 const showFeedback = ref(false);
498 const transferShow = ref(false); 551 const transferShow = ref(false);
499 const transferForm = ref({}); 552 const transferForm = ref({});
@@ -519,10 +572,16 @@ const deprecatedForm = ref({ @@ -519,10 +572,16 @@ const deprecatedForm = ref({
519 associationapprove: "", 572 associationapprove: "",
520 }); 573 });
521 const companyForm = ref({}); 574 const companyForm = ref({});
  575 +// 查询参数
522 const queryParams = reactive({ 576 const queryParams = reactive({
523 pageNum: 1, 577 pageNum: 1,
524 pageSize: 10, 578 pageSize: 10,
  579 + name: "",
  580 + licensePlate: "",
525 type: 1, 581 type: 1,
  582 + frameNumber: "",
  583 + startTime: "",
  584 + endTime: "",
526 }); 585 });
527 const companyQueryParams = reactive({ 586 const companyQueryParams = reactive({
528 deptName: undefined, 587 deptName: undefined,
@@ -712,7 +771,6 @@ const handleSharing = (id) => { @@ -712,7 +771,6 @@ const handleSharing = (id) => {
712 }; 771 };
713 /** 查询部门列表 */ 772 /** 查询部门列表 */
714 const getDeptList = () => { 773 const getDeptList = () => {
715 - loading.value = true;  
716 listDept(companyQueryParams).then((response) => { 774 listDept(companyQueryParams).then((response) => {
717 let newArr = []; 775 let newArr = [];
718 newArr = response.data.filter((item) => item.parentId === 100); 776 newArr = response.data.filter((item) => item.parentId === 100);
@@ -722,7 +780,6 @@ const getDeptList = () => { @@ -722,7 +780,6 @@ const getDeptList = () => {
722 deptName: child.deptName, 780 deptName: child.deptName,
723 }; 781 };
724 }); 782 });
725 - loading.value = false;  
726 }); 783 });
727 }; 784 };
728 /** 重置操作表单 */ 785 /** 重置操作表单 */
@@ -794,7 +851,7 @@ const getTransferTip = async () => { @@ -794,7 +851,7 @@ const getTransferTip = async () => {
794 loadingBtn.value = true; 851 loadingBtn.value = true;
795 const { data } = await getCompanyTip(); 852 const { data } = await getCompanyTip();
796 transferTip.value = data.deptName; 853 transferTip.value = data.deptName;
797 - transferDeptId.value = data.deptId; 854 + transferDeptId.value = data.deptId.toString();
798 loadingBtn.value = false; 855 loadingBtn.value = false;
799 }; 856 };
800 857
@@ -814,7 +871,33 @@ const submitUpdate = () => { @@ -814,7 +871,33 @@ const submitUpdate = () => {
814 }); 871 });
815 }; 872 };
816 873
817 -getList(); 874 +// 选择时间范围
  875 +const handleTime = (valu) => {
  876 + if (valu !== null) {
  877 + queryParams.startTime = proxy.parseTime(valu[0]);
  878 + queryParams.endTime = proxy.parseTime(valu[1]);
  879 + } else {
  880 + queryParams.startTime = "";
  881 + queryParams.endTime = "";
  882 + }
  883 +};
  884 +
  885 +/** 搜索按钮操作 */
  886 +function handleQuery() {
  887 + queryParams.pageNum = 1;
  888 + getList();
  889 +}
  890 +/** 重置按钮操作 */
  891 +function resetQuery() {
  892 + proxy.resetForm("queryRef");
  893 + queryParams.startTime = "";
  894 + queryParams.endTime = "";
  895 + handleQuery();
  896 +}
  897 +
  898 +onMounted(() => {
  899 + getList();
  900 +});
818 if (checkRole(["associationemployee"])) { 901 if (checkRole(["associationemployee"])) {
819 getDeptList(); 902 getDeptList();
820 } 903 }
@@ -8,10 +8,10 @@ @@ -8,10 +8,10 @@
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="请输入企业名称"
15 clearable 15 clearable
16 style="width: 200px" 16 style="width: 200px"
17 @keyup.enter="handleQuery" 17 @keyup.enter="handleQuery"
@@ -23,6 +23,16 @@ @@ -23,6 +23,16 @@
23 >新增</el-button 23 >新增</el-button
24 > 24 >
25 </el-col> 25 </el-col>
  26 + <el-col :span="1.5">
  27 + <el-button
  28 + type="success"
  29 + plain
  30 + icon="Edit"
  31 + :disabled="multiple"
  32 + @click="handleMultipleUpdate"
  33 + >批量修改</el-button
  34 + >
  35 + </el-col>
26 </el-row> 36 </el-row>
27 37
28 <!-- 表格数据 --> 38 <!-- 表格数据 -->
@@ -40,7 +50,6 @@ @@ -40,7 +50,6 @@
40 v-model="scope.row.status" 50 v-model="scope.row.status"
41 active-value="0" 51 active-value="0"
42 inactive-value="1" 52 inactive-value="1"
43 - @change="handleUpdate(scope.row)"  
44 /> 53 />
45 </template> 54 </template>
46 </el-table-column> 55 </el-table-column>
@@ -126,6 +135,7 @@ const { proxy } = getCurrentInstance(); @@ -126,6 +135,7 @@ const { proxy } = getCurrentInstance();
126 const loading = ref(false); 135 const loading = ref(false);
127 const multiple = ref(true); 136 const multiple = ref(true);
128 const ids = ref([]); 137 const ids = ref([]);
  138 +const selectList = ref([]);
129 const total = ref(0); 139 const total = ref(0);
130 const countData = ref({}); 140 const countData = ref({});
131 const deptOptions = ref([]); 141 const deptOptions = ref([]);
@@ -151,9 +161,12 @@ onMounted(() => { @@ -151,9 +161,12 @@ onMounted(() => {
151 161
152 // 获取规则列表 162 // 获取规则列表
153 const getList = async () => { 163 const getList = async () => {
  164 + loading.value = true;
154 const { data } = await queryRules(queryParams); 165 const { data } = await queryRules(queryParams);
  166 + loading.value = false;
155 rulesList.value = data.records || data; 167 rulesList.value = data.records || data;
156 total.value = data.total || 0; 168 total.value = data.total || 0;
  169 + getNumber();
157 }; 170 };
158 /** 查询部门列表 */ 171 /** 查询部门列表 */
159 const getDeptList = () => { 172 const getDeptList = () => {
@@ -175,8 +188,19 @@ function handleAdd() { @@ -175,8 +188,19 @@ function handleAdd() {
175 const handleUpdate = async (row) => { 188 const handleUpdate = async (row) => {
176 reset(); 189 reset();
177 form.value = row; 190 form.value = row;
  191 + loading.value = true;
178 await updateRules([form.value]); 192 await updateRules([form.value]);
179 proxy.$modal.msgSuccess("修改成功"); 193 proxy.$modal.msgSuccess("修改成功");
  194 + loading.value = false;
  195 + getList();
  196 +};
  197 +
  198 +// 批量修改
  199 +const handleMultipleUpdate = async () => {
  200 + loading.value = true;
  201 + await updateRules(selectList.value);
  202 + proxy.$modal.msgSuccess("修改成功");
  203 + loading.value = false;
180 getList(); 204 getList();
181 }; 205 };
182 206
@@ -208,6 +232,7 @@ function reset() { @@ -208,6 +232,7 @@ function reset() {
208 232
209 /** 多选框选中数据 */ 233 /** 多选框选中数据 */
210 function handleSelectionChange(selection) { 234 function handleSelectionChange(selection) {
  235 + selectList.value = selection;
211 ids.value = selection.map((item) => item.deptId); 236 ids.value = selection.map((item) => item.deptId);
212 multiple.value = !selection.length; 237 multiple.value = !selection.length;
213 } 238 }
@@ -231,7 +231,7 @@ const getList = async () => { @@ -231,7 +231,7 @@ const getList = async () => {
231 231
232 /** 搜索按钮操作 */ 232 /** 搜索按钮操作 */
233 function handleQuery() { 233 function handleQuery() {
234 - queryParams.value.pageNum = 1; 234 + queryParams.pageNum = 1;
235 getList(); 235 getList();
236 } 236 }
237 /** 重置按钮操作 */ 237 /** 重置按钮操作 */
1 <template> 1 <template>
2 <div class="app-container"> 2 <div class="app-container">
  3 + <!-- 筛选条件 -->
  4 + <el-form
  5 + :model="queryParams"
  6 + ref="queryRef"
  7 + :inline="true"
  8 + label-width="68px"
  9 + >
  10 + <el-form-item label="车主姓名" prop="name">
  11 + <el-input
  12 + v-model="queryParams.name"
  13 + placeholder="请输入车主"
  14 + clearable
  15 + style="width: 220px"
  16 + @keyup.enter="handleQuery"
  17 + />
  18 + </el-form-item>
  19 + <el-form-item label="车牌号码" prop="licensePlate">
  20 + <el-input
  21 + v-model="queryParams.licensePlate"
  22 + placeholder="请输入车牌号"
  23 + clearable
  24 + style="width: 220px"
  25 + @keyup.enter="handleQuery"
  26 + />
  27 + </el-form-item>
  28 + <el-form-item label="识别代码" prop="frameNumber">
  29 + <el-input
  30 + v-model="queryParams.frameNumber"
  31 + placeholder="请输入车辆识别代码"
  32 + clearable
  33 + style="width: 220px"
  34 + @keyup.enter="handleQuery"
  35 + />
  36 + </el-form-item>
  37 + <el-form-item label="时间范围" prop="timeFrame">
  38 + <el-date-picker
  39 + v-model="timeFrame"
  40 + type="datetimerange"
  41 + range-separator="To"
  42 + start-placeholder="开始时间"
  43 + end-placeholder="结束时间"
  44 + @change="handleTime"
  45 + />
  46 + </el-form-item>
  47 + <el-form-item>
  48 + <el-button type="primary" icon="Search" @click="handleQuery"
  49 + >查询</el-button
  50 + >
  51 + <el-button icon="Refresh" @click="resetQuery">重置</el-button>
  52 + </el-form-item>
  53 + </el-form>
  54 +
3 <!-- 表格数据 --> 55 <!-- 表格数据 -->
4 <el-table v-loading="loading" :data="policyList" @row-click="handleUpdate"> 56 <el-table v-loading="loading" :data="policyList" @row-click="handleUpdate">
5 <el-table-column label="序号" width="55" type="index" /> 57 <el-table-column label="序号" width="55" type="index" />
@@ -11,6 +63,7 @@ @@ -11,6 +63,7 @@
11 /> 63 />
12 <el-table-column 64 <el-table-column
13 label="车牌号" 65 label="车牌号"
  66 + width="150"
14 prop="licensePlateNumber" 67 prop="licensePlateNumber"
15 align="center" 68 align="center"
16 /> 69 />
@@ -18,18 +71,35 @@ @@ -18,18 +71,35 @@
18 label="车架号" 71 label="车架号"
19 prop="frameNumber" 72 prop="frameNumber"
20 align="center" 73 align="center"
  74 + width="180"
21 :show-overflow-tooltip="true" 75 :show-overflow-tooltip="true"
22 /> 76 />
23 <el-table-column 77 <el-table-column
24 label="发动机号" 78 label="发动机号"
25 prop="engineNumber" 79 prop="engineNumber"
26 align="center" 80 align="center"
  81 + width="180"
27 :show-overflow-tooltip="true" 82 :show-overflow-tooltip="true"
28 /> 83 />
29 <el-table-column label="车主姓名" prop="name" align="center" /> 84 <el-table-column label="车主姓名" prop="name" align="center" />
30 - <el-table-column label="联系电话" prop="phone" align="center" />  
31 - <el-table-column label="是否新能源" prop="isNewEnergy" align="center" />  
32 - <el-table-column label="上年承保公司" prop="sysDeptName" align="center" /> 85 + <el-table-column
  86 + label="联系电话"
  87 + width="150"
  88 + prop="phone"
  89 + align="center"
  90 + />
  91 + <el-table-column
  92 + label="是否新能源"
  93 + width="120"
  94 + prop="isNewEnergy"
  95 + align="center"
  96 + />
  97 + <el-table-column
  98 + label="上年承保公司"
  99 + prop="sysDeptName"
  100 + width="150"
  101 + align="center"
  102 + />
33 <el-table-column label="保单进度" prop="orderProgress" align="center" /> 103 <el-table-column label="保单进度" prop="orderProgress" align="center" />
34 <el-table-column label="保单状态" prop="policyStatus" align="center" /> 104 <el-table-column label="保单状态" prop="policyStatus" align="center" />
35 </el-table> 105 </el-table>
@@ -158,25 +228,18 @@ const open = ref(false); @@ -158,25 +228,18 @@ const open = ref(false);
158 const transferShow = ref(false); 228 const transferShow = ref(false);
159 const form = ref({}); 229 const form = ref({});
160 const transferForm = ref({}); 230 const transferForm = ref({});
  231 +const timeFrame = ref(null);
161 const transferOptions = ref([]); 232 const transferOptions = ref([]);
162 -const rules = ref({  
163 - carNum: [{ required: true, message: "车牌号不能为空", trigger: "blur" }],  
164 - frameNum: [{ required: true, message: "车架号不能为空", trigger: "blur" }],  
165 - name: [{ required: true, message: "车主姓名不能为空", trigger: "blur" }],  
166 - createTime: [{ required: true, message: "日期不能为空", trigger: "blur" }],  
167 - phone: [  
168 - {  
169 - pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,  
170 - message: "请输入正确的手机号码",  
171 - trigger: "blur",  
172 - },  
173 - ],  
174 -});  
175 const companyShow = ref(false); 233 const companyShow = ref(false);
176 const queryParams = reactive({ 234 const queryParams = reactive({
177 pageNum: 1, 235 pageNum: 1,
178 pageSize: 10, 236 pageSize: 10,
  237 + name: "",
  238 + licensePlate: "",
179 type: 0, 239 type: 0,
  240 + frameNumber: "",
  241 + startTime: "",
  242 + endTime: "",
180 }); 243 });
181 const policyList = ref([]); 244 const policyList = ref([]);
182 245
@@ -225,6 +288,29 @@ const handleUpdate = (row) => { @@ -225,6 +288,29 @@ const handleUpdate = (row) => {
225 // isCustom.value = data.isCustomizeBrandAndModel == "0"; 288 // isCustom.value = data.isCustomizeBrandAndModel == "0";
226 open.value = true; 289 open.value = true;
227 }; 290 };
  291 +// 选择时间范围
  292 +const handleTime = (valu) => {
  293 + if (valu !== null) {
  294 + queryParams.startTime = proxy.parseTime(valu[0]);
  295 + queryParams.endTime = proxy.parseTime(valu[1]);
  296 + } else {
  297 + queryParams.startTime = "";
  298 + queryParams.endTime = "";
  299 + }
  300 +};
  301 +/** 搜索按钮操作 */
  302 +function handleQuery() {
  303 + queryParams.pageNum = 1;
  304 + getList();
  305 +}
  306 +/** 重置按钮操作 */
  307 +function resetQuery() {
  308 + proxy.resetForm("queryRef");
  309 + queryParams.startTime = "";
  310 + queryParams.endTime = "";
  311 + handleQuery();
  312 +}
  313 +
228 getList(); 314 getList();
229 </script> 315 </script>
230 316
@@ -65,21 +65,6 @@ @@ -65,21 +65,6 @@
65 /> 65 />
66 </el-select> 66 </el-select>
67 </el-form-item> 67 </el-form-item>
68 - <el-form-item label="保单状态" prop="status">  
69 - <el-select  
70 - v-model="queryParams.status"  
71 - placeholder="选择进度"  
72 - clearable  
73 - style="width: 200px"  
74 - >  
75 - <el-option  
76 - v-for="dict in statusOption"  
77 - :key="dict.value"  
78 - :label="dict.label"  
79 - :value="dict.value"  
80 - />  
81 - </el-select>  
82 - </el-form-item>  
83 <el-form-item> 68 <el-form-item>
84 <el-button type="primary" icon="Search" @click="handleQuery" 69 <el-button type="primary" icon="Search" @click="handleQuery"
85 >查询</el-button 70 >查询</el-button
@@ -351,20 +336,6 @@ const options = [ @@ -351,20 +336,6 @@ const options = [
351 label: "人工分配", 336 label: "人工分配",
352 }, 337 },
353 ]; 338 ];
354 -const statusOption = ref([  
355 - {  
356 - value: 0,  
357 - label: "进行中",  
358 - },  
359 - {  
360 - value: 1,  
361 - label: "疑难件",  
362 - },  
363 - {  
364 - value: 2,  
365 - label: "已办结",  
366 - },  
367 -]);  
368 const policyList = ref([]); 339 const policyList = ref([]);
369 340
370 // 获取人员列表 341 // 获取人员列表
@@ -402,7 +373,7 @@ function handleUpdate(row) { @@ -402,7 +373,7 @@ function handleUpdate(row) {
402 373
403 /** 搜索按钮操作 */ 374 /** 搜索按钮操作 */
404 function handleQuery() { 375 function handleQuery() {
405 - queryParams.value.pageNum = 1; 376 + queryParams.pageNum = 1;
406 getList(); 377 getList();
407 } 378 }
408 /** 重置按钮操作 */ 379 /** 重置按钮操作 */
1 <template> 1 <template>
2 <div class="app-container"> 2 <div class="app-container">
  3 + <!-- 筛选条件 -->
  4 + <el-form
  5 + :model="queryParams"
  6 + ref="queryRef"
  7 + :inline="true"
  8 + label-width="68px"
  9 + >
  10 + <el-form-item label="车主姓名" prop="name">
  11 + <el-input
  12 + v-model="queryParams.name"
  13 + placeholder="请输入车主"
  14 + clearable
  15 + style="width: 220px"
  16 + @keyup.enter="handleQuery"
  17 + />
  18 + </el-form-item>
  19 + <el-form-item label="车牌号码" prop="licensePlate">
  20 + <el-input
  21 + v-model="queryParams.licensePlate"
  22 + placeholder="请输入车牌号"
  23 + clearable
  24 + style="width: 220px"
  25 + @keyup.enter="handleQuery"
  26 + />
  27 + </el-form-item>
  28 + <el-form-item label="识别代码" prop="frameNumber">
  29 + <el-input
  30 + v-model="queryParams.frameNumber"
  31 + placeholder="请输入车辆识别代码"
  32 + clearable
  33 + style="width: 220px"
  34 + @keyup.enter="handleQuery"
  35 + />
  36 + </el-form-item>
  37 + <el-form-item label="时间范围" prop="timeFrame">
  38 + <el-date-picker
  39 + v-model="timeFrame"
  40 + type="datetimerange"
  41 + range-separator="To"
  42 + start-placeholder="开始时间"
  43 + end-placeholder="结束时间"
  44 + @change="handleTime"
  45 + />
  46 + </el-form-item>
  47 + <el-form-item>
  48 + <el-button type="primary" icon="Search" @click="handleQuery"
  49 + >查询</el-button
  50 + >
  51 + <el-button icon="Refresh" @click="resetQuery">重置</el-button>
  52 + </el-form-item>
  53 + </el-form>
  54 +
3 <!-- 表格数据 --> 55 <!-- 表格数据 -->
4 <el-table v-loading="loading" :data="policyList" @row-click="handleTask"> 56 <el-table v-loading="loading" :data="policyList" @row-click="handleTask">
5 <el-table-column label="序号" width="55" type="index" /> 57 <el-table-column label="序号" width="55" type="index" />
@@ -44,7 +96,7 @@ @@ -44,7 +96,7 @@
44 <el-table-column 96 <el-table-column
45 label="联系电话" 97 label="联系电话"
46 prop="phone" 98 prop="phone"
47 - width="180" 99 + width="150"
48 align="center" 100 align="center"
49 /> 101 />
50 <el-table-column 102 <el-table-column
@@ -472,6 +524,7 @@ const activeTitle = ref(""); @@ -472,6 +524,7 @@ const activeTitle = ref("");
472 const loadingBtn = ref(false); 524 const loadingBtn = ref(false);
473 const showIssue = ref(false); 525 const showIssue = ref(false);
474 const total = ref(0); 526 const total = ref(0);
  527 +const timeFrame = ref(null);
475 const typeId = ref(0); // 判断类型 0 问题件 1 退回 2 作废 528 const typeId = ref(0); // 判断类型 0 问题件 1 退回 2 作废
476 const transferTip = ref(""); //流转下一家名称 529 const transferTip = ref(""); //流转下一家名称
477 const transferDeptId = ref(""); // 流转的部门公司ID 530 const transferDeptId = ref(""); // 流转的部门公司ID
@@ -504,17 +557,22 @@ const deprecatedForm = ref({ @@ -504,17 +557,22 @@ const deprecatedForm = ref({
504 associationapprove: "", 557 associationapprove: "",
505 }); 558 });
506 const companyForm = ref({}); 559 const companyForm = ref({});
  560 +// 查询参数
507 const queryParams = reactive({ 561 const queryParams = reactive({
508 pageNum: 1, 562 pageNum: 1,
509 pageSize: 10, 563 pageSize: 10,
  564 + name: "",
  565 + licensePlate: "",
510 type: 0, 566 type: 0,
  567 + frameNumber: "",
  568 + startTime: "",
  569 + endTime: "",
511 }); 570 });
512 const companyQueryParams = reactive({ 571 const companyQueryParams = reactive({
513 deptName: undefined, 572 deptName: undefined,
514 status: undefined, 573 status: undefined,
515 }); 574 });
516 const policyList = ref([]); 575 const policyList = ref([]);
517 -  
518 // 判断是否有权限 576 // 判断是否有权限
519 const hasRole = computed(() => { 577 const hasRole = computed(() => {
520 return proxy.$auth.hasRole("associationemployee"); 578 return proxy.$auth.hasRole("associationemployee");
@@ -531,7 +589,16 @@ const NewEnergyOption = ref([ @@ -531,7 +589,16 @@ const NewEnergyOption = ref([
531 name: "是", 589 name: "是",
532 }, 590 },
533 ]); 591 ]);
534 - 592 +// 选择时间范围
  593 +const handleTime = (valu) => {
  594 + if (valu !== null) {
  595 + queryParams.startTime = proxy.parseTime(valu[0]);
  596 + queryParams.endTime = proxy.parseTime(valu[1]);
  597 + } else {
  598 + queryParams.startTime = "";
  599 + queryParams.endTime = "";
  600 + }
  601 +};
535 // 车辆类型 602 // 车辆类型
536 const carTypeOption = ref([]); 603 const carTypeOption = ref([]);
537 const getCarTypeOption = async () => { 604 const getCarTypeOption = async () => {
@@ -697,7 +764,6 @@ const handleSharing = (id) => { @@ -697,7 +764,6 @@ const handleSharing = (id) => {
697 }; 764 };
698 /** 查询部门列表 */ 765 /** 查询部门列表 */
699 const getDeptList = () => { 766 const getDeptList = () => {
700 - loading.value = true;  
701 listDept(companyQueryParams).then((response) => { 767 listDept(companyQueryParams).then((response) => {
702 let newArr = []; 768 let newArr = [];
703 newArr = response.data.filter((item) => item.parentId === 100); 769 newArr = response.data.filter((item) => item.parentId === 100);
@@ -707,7 +773,6 @@ const getDeptList = () => { @@ -707,7 +773,6 @@ const getDeptList = () => {
707 deptName: child.deptName, 773 deptName: child.deptName,
708 }; 774 };
709 }); 775 });
710 - loading.value = false;  
711 }); 776 });
712 }; 777 };
713 /** 重置操作表单 */ 778 /** 重置操作表单 */
@@ -779,7 +844,7 @@ const getTransferTip = async () => { @@ -779,7 +844,7 @@ const getTransferTip = async () => {
779 loadingBtn.value = true; 844 loadingBtn.value = true;
780 const { data } = await getCompanyTip(); 845 const { data } = await getCompanyTip();
781 transferTip.value = data.deptName; 846 transferTip.value = data.deptName;
782 - transferDeptId.value = data.deptId; 847 + transferDeptId.value = data.deptId.toString();
783 loadingBtn.value = false; 848 loadingBtn.value = false;
784 }; 849 };
785 850
@@ -799,7 +864,23 @@ const submitUpdate = () => { @@ -799,7 +864,23 @@ const submitUpdate = () => {
799 }); 864 });
800 }; 865 };
801 866
802 -getList(); 867 +/** 搜索按钮操作 */
  868 +function handleQuery() {
  869 + queryParams.pageNum = 1;
  870 + getList();
  871 +}
  872 +/** 重置按钮操作 */
  873 +function resetQuery() {
  874 + proxy.resetForm("queryRef");
  875 + queryParams.startTime = "";
  876 + queryParams.endTime = "";
  877 + handleQuery();
  878 +}
  879 +
  880 +onMounted(() => {
  881 + getList();
  882 +});
  883 +
803 if (checkRole(["associationemployee"])) { 884 if (checkRole(["associationemployee"])) {
804 getDeptList(); 885 getDeptList();
805 } 886 }
@@ -41,10 +41,10 @@ @@ -41,10 +41,10 @@
41 @keyup.enter="handleQuery" 41 @keyup.enter="handleQuery"
42 /> 42 />
43 </el-form-item> 43 </el-form-item>
44 - <el-form-item label="承接人" prop="companyEmployeeUserName"> 44 + <el-form-item label="处理人" prop="companyEmployeeUserName">
45 <el-input 45 <el-input
46 v-model="queryParams.companyEmployeeUserName" 46 v-model="queryParams.companyEmployeeUserName"
47 - placeholder="请输入承接人" 47 + placeholder="请输入处理人"
48 clearable 48 clearable
49 style="width: 220px" 49 style="width: 220px"
50 @keyup.enter="handleQuery" 50 @keyup.enter="handleQuery"
@@ -80,10 +80,10 @@ @@ -80,10 +80,10 @@
80 /> 80 />
81 </el-select> 81 </el-select>
82 </el-form-item> 82 </el-form-item>
83 - <el-form-item label="车主" prop="name"> 83 + <el-form-item label="企业名称" prop="name">
84 <el-input 84 <el-input
85 v-model="queryParams.name" 85 v-model="queryParams.name"
86 - placeholder="请输入车主" 86 + placeholder="请输入企业名称"
87 clearable 87 clearable
88 style="width: 220px" 88 style="width: 220px"
89 @keyup.enter="handleQuery" 89 @keyup.enter="handleQuery"
@@ -190,14 +190,8 @@ @@ -190,14 +190,8 @@
190 align="center" 190 align="center"
191 label="操作人" 191 label="操作人"
192 width="120" 192 width="120"
193 - prop="distributionMechanism"  
194 - >  
195 - <template #default="{ row }">  
196 - <span>{{  
197 - row.companyEmployeeUserName || row.associationEmployeeUserName  
198 - }}</span>  
199 - </template>  
200 - </el-table-column> 193 + prop="associationEmployeeUserName"
  194 + />
201 <el-table-column 195 <el-table-column
202 align="center" 196 align="center"
203 label="操作时间" 197 label="操作时间"
@@ -210,6 +204,12 @@ @@ -210,6 +204,12 @@
210 width="150" 204 width="150"
211 align="center" 205 align="center"
212 /> 206 />
  207 + <el-table-column
  208 + label="处理人"
  209 + prop="companyEmployeeUserName"
  210 + width="150"
  211 + align="center"
  212 + />
213 <el-table-column label="保单进度" width="100" prop="orderProgress" /> 213 <el-table-column label="保单进度" width="100" prop="orderProgress" />
214 <el-table-column 214 <el-table-column
215 label="保单状态" 215 label="保单状态"
@@ -536,8 +536,13 @@ function handleExport() { @@ -536,8 +536,13 @@ function handleExport() {
536 536
537 // 选择时间范围 537 // 选择时间范围
538 const handleTime = (valu) => { 538 const handleTime = (valu) => {
  539 + if (valu !== null) {
539 queryParams.startTime = proxy.parseTime(valu[0]); 540 queryParams.startTime = proxy.parseTime(valu[0]);
540 queryParams.endTime = proxy.parseTime(valu[1]); 541 queryParams.endTime = proxy.parseTime(valu[1]);
  542 + } else {
  543 + queryParams.startTime = "";
  544 + queryParams.endTime = "";
  545 + }
541 }; 546 };
542 // 获取保单列表 547 // 获取保单列表
543 const getList = async () => { 548 const getList = async () => {
@@ -41,10 +41,10 @@ @@ -41,10 +41,10 @@
41 @keyup.enter="handleQuery" 41 @keyup.enter="handleQuery"
42 /> 42 />
43 </el-form-item> 43 </el-form-item>
44 - <el-form-item label="承接人" prop="companyEmployeeUserName"> 44 + <el-form-item label="处理人" prop="companyEmployeeUserName">
45 <el-input 45 <el-input
46 v-model="queryParams.companyEmployeeUserName" 46 v-model="queryParams.companyEmployeeUserName"
47 - placeholder="请输入承接人" 47 + placeholder="请输入处理人"
48 clearable 48 clearable
49 style="width: 220px" 49 style="width: 220px"
50 @keyup.enter="handleQuery" 50 @keyup.enter="handleQuery"
@@ -182,16 +182,10 @@ @@ -182,16 +182,10 @@
182 /> 182 />
183 <el-table-column 183 <el-table-column
184 align="center" 184 align="center"
185 - label="操作人" 185 + label="操作人"
186 width="120" 186 width="120"
187 - prop="distributionMechanism"  
188 - >  
189 - <template #default="{ row }">  
190 - <span>{{  
191 - row.companyEmployeeUserName || row.associationEmployeeUserName  
192 - }}</span>  
193 - </template>  
194 - </el-table-column> 187 + prop="associationEmployeeUserName"
  188 + />
195 <el-table-column 189 <el-table-column
196 align="center" 190 align="center"
197 label="操作时间" 191 label="操作时间"
@@ -204,6 +198,12 @@ @@ -204,6 +198,12 @@
204 width="150" 198 width="150"
205 align="center" 199 align="center"
206 /> 200 />
  201 + <el-table-column
  202 + align="center"
  203 + label="处理人"
  204 + width="120"
  205 + prop="companyEmployeeUserName"
  206 + />
207 <el-table-column label="保单进度" width="100" prop="orderProgress" /> 207 <el-table-column label="保单进度" width="100" prop="orderProgress" />
208 <el-table-column 208 <el-table-column
209 label="保单状态" 209 label="保单状态"
@@ -530,8 +530,13 @@ function handleExport() { @@ -530,8 +530,13 @@ function handleExport() {
530 530
531 // 选择时间范围 531 // 选择时间范围
532 const handleTime = (valu) => { 532 const handleTime = (valu) => {
  533 + if (valu !== null) {
533 queryParams.startTime = proxy.parseTime(valu[0]); 534 queryParams.startTime = proxy.parseTime(valu[0]);
534 queryParams.endTime = proxy.parseTime(valu[1]); 535 queryParams.endTime = proxy.parseTime(valu[1]);
  536 + } else {
  537 + queryParams.startTime = "";
  538 + queryParams.endTime = "";
  539 + }
535 }; 540 };
536 // 获取保单列表 541 // 获取保单列表
537 const getList = async () => { 542 const getList = async () => {
@@ -156,7 +156,7 @@ import { @@ -156,7 +156,7 @@ import {
156 } from "@/api/process/deployService"; 156 } from "@/api/process/deployService";
157 import commonHelper from "@/utils/common.js"; 157 import commonHelper from "@/utils/common.js";
158 import { computed, onMounted, reactive } from "vue"; 158 import { computed, onMounted, reactive } from "vue";
159 - 159 +import { ElMessage, ElMessageBox } from "element-plus";
160 const responseData = ref({}); 160 const responseData = ref({});
161 const searchParams = reactive({ 161 const searchParams = reactive({
162 key: "", 162 key: "",
@@ -267,7 +267,7 @@ const handleDelete = (index, row) => { @@ -267,7 +267,7 @@ const handleDelete = (index, row) => {
267 const { deploymentId } = row; 267 const { deploymentId } = row;
268 deleteProcessByDeployId(deploymentId).then((res) => { 268 deleteProcessByDeployId(deploymentId).then((res) => {
269 ElMessage({ type: "success", message: "删除成功" }); 269 ElMessage({ type: "success", message: "删除成功" });
270 - this.getListAndRenderByParams(this.searchParams); 270 + getListAndRenderByParams(searchParams);
271 }); 271 });
272 }) 272 })
273 .catch(() => { 273 .catch(() => {
@@ -122,6 +122,7 @@ import { @@ -122,6 +122,7 @@ import {
122 import commonHelper from "@/utils/common.js"; 122 import commonHelper from "@/utils/common.js";
123 import TableTemplate from "@/components/TableTemplate"; 123 import TableTemplate from "@/components/TableTemplate";
124 import { reactive } from "vue"; 124 import { reactive } from "vue";
  125 +import { ElMessage, ElMessageBox } from "element-plus";
125 126
126 const responseData = ref({}); 127 const responseData = ref({});
127 const showAddDialog = ref(false); 128 const showAddDialog = ref(false);