|
|
@@ -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>
|