ソースを参照

fix: 修改bug,添加新车规则

wuguojie 7 ヶ月 前
コミット
08b72b27d3

+ 4 - 0
src/api/modules/insurancePolicy.ts

@@ -34,6 +34,10 @@ const insurancePolicyApi = (axiosInstance: ApiInstance) => ({
   exportAdjustList: (data: any) => axiosInstance.post(`/adjust/exportAdjustList`, data, {responseType: 'blob'}), // 订单批改导出
   verifyOrder: (data: any) => axiosInstance.post(`/adjust/verifyOrder`, data), // 审核批改订单
 
+  getNewCarList: (data: any) => axiosInstance.post('newCarJudgeRules/getNewCarList', data), // 新旧车列表
+  addNewCar: (data: any) => axiosInstance.post('newCarJudgeRules/addNewCar', data), // 新增
+  updateNewCar: (data: any) => axiosInstance.post('newCarJudgeRules/updateNewCar', data), // 编辑
+  delNewCar: (data: any) => axiosInstance.post('newCarJudgeRules/delNewCar', data), // 删除
 })
 
 export default insurancePolicyApi

+ 8 - 0
src/router/modules/insurancePolicy.ts

@@ -82,6 +82,14 @@ const routes: RouteRecordRaw = {
           },
         }
       ]
+    },
+    {
+      path: 'carRules',
+      name: 'CarRules',
+      component: () => import('@/views/insurancePolicy/carRules.vue'),
+      meta: {
+        title: '新车规则维护'
+      }
     }
   ],
 }

+ 314 - 0
src/views/insurancePolicy/carRules.vue

@@ -0,0 +1,314 @@
+<template>
+    <div class="carRules">
+        <div class="btn">
+            <el-button icon="Plus" type="primary" @click="add">添加</el-button>
+        </div>
+        <el-table
+            :data="tableData"
+            style="width: 100%"
+        >
+            <el-table-column type="index" label="序号" width="80"></el-table-column>
+            <el-table-column prop="companyName" label="保险公司名称"></el-table-column>
+            <el-table-column prop="unitTypeCode" label="新车判断单位">
+                <template #default="scope">
+                    {{ scope.row.unitTypeCode === '1'?'天':scope.row.unitTypeCode === '2'?'月':'' }}
+                </template>
+            </el-table-column>
+            <el-table-column prop="vehicleType" label="车辆类型">
+                <template #default="scope">
+                    {{ scope.row.vehicleType === 'A1'?'货车':scope.row.vehicleType === 'A0'?'客车':'' }}
+                </template>
+            </el-table-column>
+            <el-table-column prop="unitTypeValue" label="新车判断单位值"></el-table-column>
+            <el-table-column label="操作">
+                <template #default="scope">
+                    <el-button link type="primary" size="small" @click="handleEdit(scope)">编辑</el-button>
+                    <el-button link type="primary" size="small" @click="handleDel(scope)">删除</el-button>
+                </template>
+            </el-table-column>
+        </el-table>
+        <div class="pagination">
+            <el-pagination
+                v-model:current-page="pageNum"
+                v-model:page-size="pageSize"
+                :page-sizes="[10, 20, 30, 40]"
+                layout="total, sizes, prev, pager, next, jumper"
+                :total="total"
+                @size-change="handleSizeChange"
+                @current-change="handleCurrentChange"
+            ></el-pagination>
+        </div>
+        <el-dialog
+            v-model="addShow"
+            title="新增"
+            width="800"
+        >
+            <el-form ref="AddFormRefs" :model="addForm" :rules="addRules" label-width="100">
+                <el-form-item prop="companyId" label="归属保司">
+                    <el-select v-model="addForm.companyId" placeholder="请选择" filterable clearable>
+                        <el-option v-for="(item, index) in companyList" :key="item.id" :value="item.id" :label="item.name"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item prop="vehicleType" label="车辆类型">
+                    <el-radio-group v-model="addForm.vehicleType">
+                        <el-radio v-for="(item, index) in carType" :key="item.value" :value="item.value">{{ item.label }}</el-radio>
+                    </el-radio-group>
+                </el-form-item>
+                <el-form-item prop="unitTypeCode" label="单位">
+                    <el-select v-model="addForm.unitTypeCode" placeholder="请选择">
+                        <el-option v-for="(item, index) in unit" :key="item.id" :value="item.value" :label="item.label"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item prop="unitTypeValue" label="单位值">
+                    <el-input-number v-model="addForm.unitTypeValue"/>
+                </el-form-item>
+            </el-form>
+            <template #footer>
+                <el-button @click="handleCancel">取消</el-button>
+                <el-button type="primary" @click="handleSave(AddFormRefs)">保存</el-button>
+            </template>
+        </el-dialog>
+    </div>
+</template>
+
+<script setup lang="ts">
+import api from '@/api'
+import {ElMessage, ElMessageBox} from "element-plus";
+
+let id = ref('')
+const add = ()=> {
+    id.value = ''
+    addForm.value = {
+        companyId: '',
+        vehicleType: '',
+        unitTypeCode: '',
+        unitTypeValue: 0
+    }
+    addShow.value = true
+}
+
+let tableData = ref([])
+let pageNum = ref(1)
+let pageSize = ref(10)
+let total = ref(0)
+const initData = () => {
+    api.insurancePolicyApi.getNewCarList({
+        pageNum: pageNum.value,
+        pageSize: pageSize.value
+    }).then((res: any) => {
+        if(res.code == 200) {
+            tableData.value = res.data.records
+            total.value = res.data.total
+        } else {
+            ElMessage({
+                message: res.msg,
+                type: 'warning'
+            })
+        }
+    })
+}
+const handleSizeChange = (size) => {
+    pageNum.value = 1
+    pageSize.value = size
+    initData()
+}
+const handleCurrentChange = (page) => {
+    pageNum.value = page
+    initData()
+}
+
+let addShow = ref(false)
+let AddFormRefs = ref()
+let addForm = ref({
+    companyId: '',
+    vehicleType: '',
+    unitTypeCode: '',
+    unitTypeValue: 0
+})
+let addRules = ref({
+    companyId: [
+        { required: true, message: "请选择归属公司", trigger: "change" },
+    ],
+    vehicleType: [
+        { required: true, message: "请选择车辆类型", trigger: "change" },
+    ],
+    unitTypeCode: [
+        { required: true, message: "请选择单位", trigger: "change" },
+    ],
+    unitTypeValue: [
+        { required: true, message: "请填写单位值", trigger: "blur" },
+    ],
+})
+
+const handleCancel = () => {
+    addForm.value = {
+        companyId: '',
+        vehicleType: '',
+        unitTypeCode: '',
+        unitTypeValue: 0
+    }
+    addShow.value = false
+}
+const handleSave = async (form) => {
+    if(!form) {
+        form.resetFields()
+        return
+    }
+    await form.validate((valid) => {
+        if(valid) {
+            if(id.value) {
+                api.insurancePolicyApi.updateNewCar({
+                    ...addForm.value,
+                    id: id.value
+                }).then((res: any) => {
+                    if(res.code == 200) {
+                        addForm.value = {
+                            companyId: '',
+                            vehicleType: '',
+                            unitTypeCode: '',
+                            unitTypeValue: 0
+                        }
+                        ElMessage({
+                            message: res.msg,
+                            type: 'success'
+                        })
+                        initData()
+                    } else {
+                        ElMessage({
+                            message: res.msg,
+                            type: 'warning'
+                        })
+                    }
+                })
+            } else {
+                api.insurancePolicyApi.addNewCar({
+                    ...addForm.value
+                }).then((res: any) => {
+                    if(res.code == 200) {
+                        addForm.value = {
+                            companyId: '',
+                            vehicleType: '',
+                            unitTypeCode: '',
+                            unitTypeValue: 0
+                        }
+                        ElMessage({
+                            message: res.msg,
+                            type: 'success'
+                        })
+                        initData()
+                    } else {
+                        ElMessage({
+                            message: res.msg,
+                            type: 'warning'
+                        })
+                    }
+                })
+            }
+        }
+    })
+    addShow.value = false
+}
+
+const handleEdit = (scow) => {
+    addForm.value = {
+        companyId: scow.row.companyId,
+        vehicleType: scow.row.vehicleType,
+        unitTypeCode: scow.row.unitTypeCode,
+        unitTypeValue: scow.row.unitTypeValue,
+    }
+    id.value = scow.row.id
+    addShow.value = true
+}
+const handleDel = (scow) => {
+    ElMessageBox({
+        title: '提示',
+        message: '确认要删除当前数据吗?',
+        confirmButtonText: "确认",
+        cancelButtonText: "取消",
+        type: "warning",
+        center:true
+    }).then((action) => {
+        if(action === 'confirm') {
+            api.insurancePolicyApi.delNewCar({
+                id: scow.row.id
+            }).then((res: any) => {
+                if(res.code == 200) {
+                    ElMessage({
+                        message: res.msg,
+                        type: 'success'
+                    })
+                    initData();
+                } else {
+                    ElMessage({
+                        message: res.msg,
+                        type: 'warning'
+                    })
+                }
+            })
+        }
+    })
+}
+
+let companyList = ref([])
+const initCompany = ()=> {
+    api.insuranceApi.leftList('').then((res: any) => {
+        if(res.code == 200) {
+            companyList.value = res.data
+        } else {
+            ElMessage({
+                message: res.msg,
+                type: 'warning'
+            })
+        }
+    })
+}
+
+let carType = ref([])
+let unit = ref([])
+const initDict = ()=> {
+    api.commonApi.personInfo('car_kind_code').then((res: any) => {
+        if(res.code == 200) {
+            carType.value = res.data
+        } else {
+            ElMessage({
+                message: res.msg,
+                type: 'warning'
+            })
+        }
+    })
+    api.commonApi.personInfo('new_car_unit').then((res: any) => {
+        if(res.code == 200) {
+            unit.value = res.data
+        } else {
+            ElMessage({
+                message: res.msg,
+                type: 'warning'
+            })
+        }
+    })
+}
+
+onMounted(() => {
+    initData();
+    initCompany();
+    initDict();
+})
+</script>
+
+<style scoped lang="scss">
+.carRules {
+    width: calc(100% - 48px);
+    height: calc(100vh - 130px);
+    margin: 10px auto;
+    overflow: hidden;
+    .btn{
+        margin-bottom: 20px;
+    }
+    .pagination{
+        margin-top: 20px;
+        display: flex;
+        align-items: center;
+        justify-content: flex-end;
+    }
+}
+</style>

+ 0 - 1
src/views/insurancePolicy/orderDetail.vue

@@ -1653,7 +1653,6 @@ const initDetail = () => {
             drivingData.value = detailData.value.accidentalDrivings
             // 批改数据的判断
             if (detailData.value.insOrderAdjustVo && detailData.value.insOrderAdjustVo.adjustInfoList?.length > 0) {
-                console.log('有批改数据')
                 let adjustInfoList = detailData.value.insOrderAdjustVo.adjustInfoList;
                 insuranceData.value = adjustInfoList.filter((item: any) => item.kindType !== 2 && item.isHide !== 1).map((item: any) => ({
                     ...item,