|
|
@@ -0,0 +1,2442 @@
|
|
|
+<template>
|
|
|
+ <div class="insurancePolicy">
|
|
|
+ <el-form ref="InsurancePolicyRefs" :model="insurancePolicyForm" :rules="insurancePolicyRules">
|
|
|
+ <el-row :gutter="20" class="formItem">
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="业务员:">
|
|
|
+ <el-input v-model="insurancePolicyForm.salesman" placeholder="输入业务员工姓名,手机号,工号查找" @click="handleFocus"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6" v-if="insurancePolicyForm.salesman">
|
|
|
+ <el-form-item label="手机号:">
|
|
|
+ <el-input v-model="insurancePolicyForm.mobile" disabled></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6" v-if="insurancePolicyForm.salesman">
|
|
|
+ <el-form-item label="归属:">
|
|
|
+ <el-cascader
|
|
|
+ clearable
|
|
|
+ style="width: 100%"
|
|
|
+ v-model="insurancePolicyForm.deptId"
|
|
|
+ :options="institutionList"
|
|
|
+ :props="tableProps"
|
|
|
+ ></el-cascader>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6" v-if="insurancePolicyForm.salesman">
|
|
|
+ <el-button link type="primary" @click="handleFocus">更换业务员</el-button>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-collapse v-model="activeName">
|
|
|
+ <el-collapse-item name="car">
|
|
|
+ <template #title>
|
|
|
+ <span class="title">车辆信息</span>
|
|
|
+ </template>
|
|
|
+ <el-row :gutter="20" class="formItem formBlock">
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="车辆是否上牌?" prop="isRegistered">
|
|
|
+ <el-radio-group v-model="insurancePolicyForm.isRegistered">
|
|
|
+ <el-radio value="1">是</el-radio>
|
|
|
+ <el-radio value="2">否</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item :disabled="insurancePolicyForm.isRegistered==2" label="车牌" prop="licenseNo">
|
|
|
+ <el-input v-model="insurancePolicyForm.licenseNo" minlength="7" maxlength="8" placeholder="输入车牌号" @change="getQuoteNumber"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="车牌识别代码" prop="vinNo">
|
|
|
+ <el-input v-model="insurancePolicyForm.vinNo" placeholder="请输入车辆识别代码" @change="getQuoteNumber">
|
|
|
+ <template #append>
|
|
|
+ <el-button icon="Search" @click="handleCarNumber" />
|
|
|
+ </template>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="品牌型号" prop="brandName">
|
|
|
+ <el-input v-model="insurancePolicyForm.brandName" placeholder="请输入品牌型号">
|
|
|
+ <template #append>
|
|
|
+ <el-button icon="Search" @click="handleCarCode" />
|
|
|
+ </template>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="发动机号" prop="engineNo">
|
|
|
+ <el-input v-model="insurancePolicyForm.engineNo" placeholder="请输入发动机号" @change="getQuoteNumber"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="使用性质" prop="carNatureCode">
|
|
|
+ <el-select v-model="insurancePolicyForm.carNatureCode" placeholder="请选择">
|
|
|
+ <el-option v-for="(item, index) in optionObj.car_nature_code" :label="item.label" :value="item.value" :key="item.value"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="车辆用途" prop="vehicleUseCode">
|
|
|
+ <el-select v-model="insurancePolicyForm.vehicleUseCode" placeholder="请选择">
|
|
|
+ <el-option v-for="(item, index) in optionObj.vehicle_use_code" :label="item.label" :value="item.value" :key="item.value"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="车辆种类" prop="plateType">
|
|
|
+ <el-select v-model="insurancePolicyForm.plateType" placeholder="请选择">
|
|
|
+ <el-option v-for="(item, index) in optionObj.car_kind_code" :label="item.label" :value="item.value" :key="item.value"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="车辆类型" prop="carTypeCode">
|
|
|
+ <el-select v-model="insurancePolicyForm.carTypeCode" placeholder="请选择">
|
|
|
+ <el-option v-for="(item, index) in optionObj.car_type_code" :label="item.label" :value="item.value" :key="item.value"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="能源种类" prop="energyTypeCode">
|
|
|
+ <el-select v-model="insurancePolicyForm.energyTypeCode" placeholder="请选择">
|
|
|
+ <el-option v-for="(item, index) in optionObj.energy_type_code" :label="item.label" :value="item.value" :key="item.value"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="注册日期" prop="registerDate">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="insurancePolicyForm.registerDate"
|
|
|
+ type="date"
|
|
|
+ placeholder="请选择"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ :disabled-date="disabledDateStart"
|
|
|
+ style="width: 100%"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="发证日期" prop="issueDate">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="insurancePolicyForm.issueDate"
|
|
|
+ type="date"
|
|
|
+ placeholder="请选择"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ :disabled-date="disabledDateStart"
|
|
|
+ style="width: 100%"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="整备质量" prop="completeKerbMass">
|
|
|
+ <el-input v-model="insurancePolicyForm.completeKerbMass" placeholder="输入整备质量">
|
|
|
+ <template #append>
|
|
|
+ <span>千克(KG)</span>
|
|
|
+ </template>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="核定载质量" prop="limitLoad">
|
|
|
+ <el-input v-model="insurancePolicyForm.limitLoad" placeholder="请输入核定载质量">
|
|
|
+ <template #append>
|
|
|
+ <span>千克(KG)</span>
|
|
|
+ </template>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="座位数" prop="seatCount">
|
|
|
+ <el-input v-model="insurancePolicyForm.seatCount" placeholder="请输入座位数">
|
|
|
+ <template #append>
|
|
|
+ <span>座</span>
|
|
|
+ </template>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="年款" prop="carYear">
|
|
|
+ <el-input v-model="insurancePolicyForm.carYear" placeholder="请输入年款"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="新车购置价" prop="purchasePrice">
|
|
|
+ <el-input v-model="insurancePolicyForm.purchasePrice" placeholder="请输入新车购置价">
|
|
|
+ <template #append>
|
|
|
+ <span>元</span>
|
|
|
+ </template>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="排量" prop="displacement">
|
|
|
+ <el-input v-model="insurancePolicyForm.displacement" placeholder="请输入排量">
|
|
|
+ <template #append>
|
|
|
+ <span>升(L)</span>
|
|
|
+ </template>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="功率" prop="powerScale">
|
|
|
+ <el-input v-model="insurancePolicyForm.powerScale" placeholder="输入功率">
|
|
|
+ <template #append>
|
|
|
+ <span>千瓦(KW)</span>
|
|
|
+ </template>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ </el-row>
|
|
|
+ <template #icon="{ isActive }">
|
|
|
+ <span class="icon">
|
|
|
+ <el-button link type="primary" @click.stop="handleRecognition"><img src="@/assets/images/insurancePolicy/sao.png" class="myIcon" />证件识别</el-button>
|
|
|
+ <span class="icon-ele">
|
|
|
+ {{ isActive ? '收起' : '展开' }}
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-collapse-item>
|
|
|
+ <el-collapse-item name="owner">
|
|
|
+ <template #title>
|
|
|
+ <span class="title">车主信息</span>
|
|
|
+ </template>
|
|
|
+ <el-row :gutter="20" class="formItem formBlock">
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="车主姓名" prop="name1">
|
|
|
+ <el-input v-model="insurancePolicyForm.name1" placeholder="输入车主姓名"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="车主手机号" prop="mobile1">
|
|
|
+ <el-input v-model="insurancePolicyForm.mobile1" placeholder="请输入车主手机号"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="证件类型" prop="personType1">
|
|
|
+ <el-select v-model="insurancePolicyForm.identifyType1" placeholder="请选择">
|
|
|
+ <el-option label="身份证" value="01" key="1"></el-option>
|
|
|
+ <el-option label="营业执照" value="02" key="2"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col v-if="insurancePolicyForm.identifyType1 === '01'" :span="6">
|
|
|
+ <el-form-item label="证件号码" prop="identifyNumber1">
|
|
|
+ <el-input v-model="insurancePolicyForm.identifyNumber1" placeholder="请输入证件号码" @change="getAgeByIdCard($event, insurancePolicyForm)"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col v-else :span="6">
|
|
|
+ <el-form-item label="统一社会信用代码" prop="identifyNumber1">
|
|
|
+ <el-input v-model="insurancePolicyForm.identifyNumber1" placeholder="请输入证件号码"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item prop="identifyValidDate1" label="有效期起期">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="insurancePolicyForm.identifyValidDate1"
|
|
|
+ type="date"
|
|
|
+ placeholder="请选择"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ style="width: 100%"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item prop="identifyValidEndDate1" label="有效期止期">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="insurancePolicyForm.identifyValidEndDate1"
|
|
|
+ type="date"
|
|
|
+ placeholder="请选择"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ style="width: 100%"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="地址" prop="addr1">
|
|
|
+ <el-input v-model="insurancePolicyForm.addr1" placeholder="请输入地址"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="投保人座机" prop="telephone">
|
|
|
+ <el-input v-model="insurancePolicyForm.telephone1" placeholder="请输入投保人座机"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="投保人联系人" prop="person">
|
|
|
+ <el-input v-model="insurancePolicyForm.person1" placeholder="请输入投保人联系人"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="联系人证件号码" prop="age">
|
|
|
+ <el-input v-model.number="insurancePolicyForm.age1" placeholder="请输入联系人证件号码"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item prop="identifyValidEndDate" label="有效期止期">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="insurancePolicyForm.identifyValidEndDate1"
|
|
|
+ type="date"
|
|
|
+ placeholder="请选择"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ style="width: 100%"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item prop="area" label="地区">
|
|
|
+ <el-cascader
|
|
|
+ clearable
|
|
|
+ style="width: 100%"
|
|
|
+ v-model="insurancePolicyForm.address1"
|
|
|
+ :options="areaOptins"
|
|
|
+ :props="areaProps"
|
|
|
+ ></el-cascader>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="注册资金" prop="money">
|
|
|
+ <el-input v-model="insurancePolicyForm.registeredCapital1" placeholder="请输入注册资金">
|
|
|
+ <template #append>
|
|
|
+ <span>元</span>
|
|
|
+ </template>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="电子邮箱" prop="email">
|
|
|
+ <el-input v-model="insurancePolicyForm.email1" placeholder="请输入电子邮箱"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+<!-- <el-col :span="6">
|
|
|
+ <el-form-item label="是否二手车" prop="gender">
|
|
|
+ <el-select v-model="insurancePolicyForm.gender" placeholder="请选择">
|
|
|
+ <el-option label="是" value="1" key="1"></el-option>
|
|
|
+ <el-option label="否" value="2" key="2"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="商业险是否过户" prop="gender">
|
|
|
+ <el-select v-model="insurancePolicyForm.gender" placeholder="请选择">
|
|
|
+ <el-option label="是" value="1" key="1"></el-option>
|
|
|
+ <el-option label="否" value="2" key="2"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>-->
|
|
|
+ </el-row>
|
|
|
+ <template #icon="{ isActive }">
|
|
|
+ <span class="icon">
|
|
|
+ <el-button link type="primary" @click.stop="handleRecognition"><img src="@/assets/images/insurancePolicy/sao.png" class="myIcon" />证件识别</el-button>
|
|
|
+ <span class="icon-ele">
|
|
|
+ {{ isActive ? '收起' : '展开' }}
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-collapse-item>
|
|
|
+ <el-collapse-item name="owner1">
|
|
|
+ <template #title>
|
|
|
+ <span class="title">
|
|
|
+ 投保人信息
|
|
|
+ <span class="ordinary" :class="{'active': item.checked}" v-for="(item, index) in btns.owner1" :key="item" @click.stop="handleChange(item, 'owner1')">
|
|
|
+ {{ item.text }}
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ <el-row :gutter="20" class="formItem formBlock">
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="车主姓名" prop="name2">
|
|
|
+ <el-input v-model="insurancePolicyForm.name2" placeholder="输入车主姓名"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="车主手机号" prop="mobile2">
|
|
|
+ <el-input v-model="insurancePolicyForm.mobile2" placeholder="请输入车主手机号"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="证件类型" prop="personType2">
|
|
|
+ <el-select v-model="insurancePolicyForm.identifyType2" placeholder="请选择">
|
|
|
+ <el-option label="身份证" value="01" key="1"></el-option>
|
|
|
+ <el-option label="营业执照" value="02" key="2"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col v-if="insurancePolicyForm.identifyType2 === '01'" :span="6">
|
|
|
+ <el-form-item label="证件号码" prop="identifyNumber2">
|
|
|
+ <el-input v-model="insurancePolicyForm.identifyNumber2" placeholder="请输入证件号码" @change="getAgeByIdCard($event, insurancePolicyForm)"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col v-else :span="6">
|
|
|
+ <el-form-item label="统一社会信用代码" prop="identifyNumber2">
|
|
|
+ <el-input v-model="insurancePolicyForm.identifyNumber2" placeholder="请输入证件号码"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item prop="identifyValidDate2" label="有效期起期">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="insurancePolicyForm.identifyValidDate2"
|
|
|
+ type="date"
|
|
|
+ placeholder="请选择"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ style="width: 100%"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item prop="identifyValidEndDate2" label="有效期止期">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="insurancePolicyForm.identifyValidEndDate2"
|
|
|
+ type="date"
|
|
|
+ placeholder="请选择"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ style="width: 100%"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="地址" prop="addr2">
|
|
|
+ <el-input v-model="insurancePolicyForm.addr2" placeholder="请输入地址"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="投保人座机" prop="telephone">
|
|
|
+ <el-input v-model="insurancePolicyForm.telephone2" placeholder="请输入投保人座机"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="投保人联系人" prop="person">
|
|
|
+ <el-input v-model="insurancePolicyForm.person2" placeholder="请输入投保人联系人"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="联系人证件号码" prop="age">
|
|
|
+ <el-input v-model.number="insurancePolicyForm.age2" placeholder="请输入联系人证件号码"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item prop="identifyValidEndDate" label="有效期止期">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="insurancePolicyForm.identifyValidEndDate2"
|
|
|
+ type="date"
|
|
|
+ placeholder="请选择"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ style="width: 100%"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item prop="area" label="地区">
|
|
|
+ <el-cascader
|
|
|
+ clearable
|
|
|
+ style="width: 100%"
|
|
|
+ v-model="insurancePolicyForm.address2"
|
|
|
+ :options="areaOptins"
|
|
|
+ :props="areaProps"
|
|
|
+ ></el-cascader>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="注册资金" prop="money">
|
|
|
+ <el-input v-model="insurancePolicyForm.registeredCapital2" placeholder="请输入注册资金">
|
|
|
+ <template #append>
|
|
|
+ <span>元</span>
|
|
|
+ </template>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="电子邮箱" prop="email">
|
|
|
+ <el-input v-model="insurancePolicyForm.email2" placeholder="请输入电子邮箱"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+<!-- <el-col :span="6">
|
|
|
+ <el-form-item label="是否二手车" prop="gender">
|
|
|
+ <el-select v-model="insurancePolicyForm.policyHolderInfo.gender" placeholder="请选择">
|
|
|
+ <el-option label="是" value="1" key="1"></el-option>
|
|
|
+ <el-option label="否" value="2" key="2"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="商业险是否过户" prop="gender">
|
|
|
+ <el-select v-model="insurancePolicyForm.policyHolderInfo.gender" placeholder="请选择">
|
|
|
+ <el-option label="是" value="1" key="1"></el-option>
|
|
|
+ <el-option label="否" value="2" key="2"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>-->
|
|
|
+ </el-row>
|
|
|
+ <template #icon="{ isActive }">
|
|
|
+ <span class="icon">
|
|
|
+ <el-button link type="primary" @click.stop="handleRecognition"><img src="@/assets/images/insurancePolicy/sao.png" class="myIcon" />证件识别</el-button>
|
|
|
+ <span class="icon-ele">
|
|
|
+ {{ isActive ? '收起' : '展开' }}
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-collapse-item>
|
|
|
+ <el-collapse-item name="owner2">
|
|
|
+ <template #title>
|
|
|
+ <span class="title">
|
|
|
+ 被保人信息
|
|
|
+ <span class="ordinary" :class="{'active': item.checked}" v-for="(item, index) in btns.owner2" :key="item" @click.stop="handleChange(item, 'owner2')">
|
|
|
+ {{ item.text }}
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ <el-row :gutter="20" class="formItem formBlock">
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="车主姓名" prop="name3">
|
|
|
+ <el-input v-model="insurancePolicyForm.name3" placeholder="输入车主姓名"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="车主手机号" prop="mobile3">
|
|
|
+ <el-input v-model="insurancePolicyForm.mobile3" placeholder="请输入车主手机号"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="证件类型" prop="personType3">
|
|
|
+ <el-select v-model="insurancePolicyForm.identifyType3" placeholder="请选择">
|
|
|
+ <el-option label="身份证" value="01" key="01"></el-option>
|
|
|
+ <el-option label="营业执照" value="02" key="02"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col v-if="insurancePolicyForm.identifyType3 === '01'" :span="6">
|
|
|
+ <el-form-item label="证件号码" prop="identifyNumber3">
|
|
|
+ <el-input v-model="insurancePolicyForm.identifyNumber3" placeholder="请输入证件号码" @change="getAgeByIdCard($event, insurancePolicyForm)"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col v-else :span="6">
|
|
|
+ <el-form-item label="统一社会信用代码" prop="identifyNumber3">
|
|
|
+ <el-input v-model="insurancePolicyForm.identifyNumber3" placeholder="请输入证件号码"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item prop="identifyValidDate3" label="有效期起期">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="insurancePolicyForm.identifyValidDate3"
|
|
|
+ type="date"
|
|
|
+ placeholder="请选择"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ style="width: 100%"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item prop="identifyValidEndDate3" label="有效期止期">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="insurancePolicyForm.identifyValidEndDate3"
|
|
|
+ type="date"
|
|
|
+ placeholder="请选择"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ style="width: 100%"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="地址" prop="addr3">
|
|
|
+ <el-input v-model="insurancePolicyForm.addr3" placeholder="请输入地址"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="投保人座机" prop="telephone">
|
|
|
+ <el-input v-model="insurancePolicyForm.telephone3" placeholder="请输入投保人座机"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="投保人联系人" prop="person">
|
|
|
+ <el-input v-model="insurancePolicyForm.person3" placeholder="请输入投保人联系人"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="联系人证件号码" prop="age">
|
|
|
+ <el-input v-model.number="insurancePolicyForm.age3" placeholder="请输入联系人证件号码"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item prop="identifyValidEndDate" label="有效期止期">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="insurancePolicyForm.identifyValidEndDate3"
|
|
|
+ type="date"
|
|
|
+ placeholder="请选择"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ style="width: 100%"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item prop="area" label="地区">
|
|
|
+ <el-cascader
|
|
|
+ clearable
|
|
|
+ style="width: 100%"
|
|
|
+ v-model="insurancePolicyForm.address3"
|
|
|
+ :options="areaOptins"
|
|
|
+ :props="areaProps"
|
|
|
+ ></el-cascader>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="注册资金" prop="money">
|
|
|
+ <el-input v-model="insurancePolicyForm.registeredCapital3" placeholder="请输入注册资金">
|
|
|
+ <template #append>
|
|
|
+ <span>元</span>
|
|
|
+ </template>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="电子邮箱" prop="email">
|
|
|
+ <el-input v-model="insurancePolicyForm.email3" placeholder="请输入电子邮箱"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+<!-- <el-col :span="6">
|
|
|
+ <el-form-item label="是否二手车" prop="gender">
|
|
|
+ <el-select v-model="insurancePolicyForm.gender3" placeholder="请选择">
|
|
|
+ <el-option label="是" value="1" key="1"></el-option>
|
|
|
+ <el-option label="否" value="2" key="2"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="商业险是否过户" prop="gender">
|
|
|
+ <el-select v-model="insurancePolicyForm.gender3" placeholder="请选择">
|
|
|
+ <el-option label="是" value="1" key="1"></el-option>
|
|
|
+ <el-option label="否" value="2" key="2"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>-->
|
|
|
+ </el-row>
|
|
|
+ <template #icon="{ isActive }">
|
|
|
+ <span class="icon">
|
|
|
+ <el-button link type="primary" @click.stop="handleRecognition"><img src="@/assets/images/insurancePolicy/sao.png" class="myIcon" />证件识别</el-button>
|
|
|
+ <span class="icon-ele">
|
|
|
+ {{ isActive ? '收起' : '展开' }}
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-collapse-item>
|
|
|
+ <el-collapse-item name="tax">
|
|
|
+ <template #title>
|
|
|
+ <span class="title">
|
|
|
+ 车船税
|
|
|
+ <span class="ordinary" :class="{'active': item.checked}" v-for="(item, index) in btns.owner3" :key="item" @click.stop="handleChange(item, 'owner3')">
|
|
|
+ {{ item.text }}
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ <div v-if="btns.owner3show === '免税'" style="width: 100%">
|
|
|
+ <el-row :gutter="20" class="formItem formBlock">
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="减免税凭证号" prop="extendChar2">
|
|
|
+ <el-input v-model="insurancePolicyForm.vehicleAndVesselTaxVo.extendChar2" placeholder="请输入减免税凭证号"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="减免税原因" prop="relifReason">
|
|
|
+ <el-select v-model="insurancePolicyForm.vehicleAndVesselTaxVo.relifReason" placeholder="请选择">
|
|
|
+ <el-option label="原因1" value="1" key="1"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="税务机关代码" prop="taxComCode">
|
|
|
+ <el-input v-model="insurancePolicyForm.vehicleAndVesselTaxVo.taxComCode" placeholder="请输入税务机关代码"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="税务机关名称" prop="taxComName">
|
|
|
+ <el-input v-model="insurancePolicyForm.vehicleAndVesselTaxVo.taxComName" placeholder="请输入税务机关名称"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ <div v-if="btns.owner3show === '减税'" style="width: 100%">
|
|
|
+ <el-row :gutter="20" class="formItem formBlock">
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="减免税凭证号" prop="extendChar2">
|
|
|
+ <el-input v-model="insurancePolicyForm.vehicleAndVesselTaxVo.extendChar2" placeholder="请输入减免税凭证号"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="减免税原因" prop="relifReason">
|
|
|
+ <el-select v-model="insurancePolicyForm.vehicleAndVesselTaxVo.relifReason" placeholder="请选择">
|
|
|
+ <el-option label="原因1" value="1" key="1"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="税务机关代码" prop="taxComCode">
|
|
|
+ <el-input v-model="insurancePolicyForm.vehicleAndVesselTaxVo.taxComCode" placeholder="请输入税务机关代码"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="税务机关名称" prop="taxComName">
|
|
|
+ <el-input v-model="insurancePolicyForm.vehicleAndVesselTaxVo.taxComName" placeholder="请输入税务机关名称"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="减税比例" prop="taxRelief">
|
|
|
+ <el-input v-model="insurancePolicyForm.vehicleAndVesselTaxVo.taxRelief" placeholder="请输入减税比例">
|
|
|
+ <template #append>
|
|
|
+ <span>%</span>
|
|
|
+ </template>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ <div v-if="btns.owner3show === '完税'" style="width: 100%">
|
|
|
+ <el-row :gutter="20" class="formItem formBlock">
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="完税凭证号" prop="extendChar2">
|
|
|
+ <el-input v-model="insurancePolicyForm.vehicleAndVesselTaxVo.extendChar2" placeholder="请输入完税凭证号"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="税务机关代码" prop="taxComCode">
|
|
|
+ <el-input v-model="insurancePolicyForm.vehicleAndVesselTaxVo.taxComCode" placeholder="请输入税务机关代码"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label=" 税务机关名称" prop="taxComName">
|
|
|
+ <el-input v-model="insurancePolicyForm.vehicleAndVesselTaxVo.taxComName" placeholder="请输入 税务机关名称"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item prop="taxDocumentDate" label="完税凭证填发日期">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="insurancePolicyForm.vehicleAndVesselTaxVo.taxDocumentDate"
|
|
|
+ type="date"
|
|
|
+ placeholder="请选择"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ style="width: 100%"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item prop="taxPaidAreaCode" label="完税凭证地区">
|
|
|
+ <el-cascader
|
|
|
+ clearable
|
|
|
+ style="width: 100%"
|
|
|
+ v-model="insurancePolicyForm.vehicleAndVesselTaxVo.taxPaidAreaCode"
|
|
|
+ :options="areaOptins"
|
|
|
+ :props="areaProps"
|
|
|
+ ></el-cascader>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ <template #icon="{ isActive }">
|
|
|
+ <span class="icon">
|
|
|
+ <span class="icon-ele">
|
|
|
+ {{ isActive ? '收起' : '展开' }}
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-collapse-item>
|
|
|
+ <el-collapse-item name="insurance">
|
|
|
+ <template #title>
|
|
|
+ <span class="title">
|
|
|
+ 投保信息
|
|
|
+ <span class="ordinary" :class="{'active': item.checked}" v-for="(item, index) in optionObj.insuranceType" :key="item.value" @click.stop="handleChange(item, 'insurance')">
|
|
|
+ {{ item.label }}
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ <el-form-item class="white-m-p24" label="车辆其他信息">
|
|
|
+ <el-radio-group v-model="insurancePolicyForm.insuranceType">
|
|
|
+ <el-radio value="1">商业险是否过户</el-radio>
|
|
|
+ <el-radio value="2">二手车</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <div class="insurance-jq" v-if="insurancePolicyForm.productId === '0330' || insurancePolicyForm.productId === '0330034002' || insurancePolicyForm.productId === '0330034001'">
|
|
|
+ <span>交强险</span>
|
|
|
+ <span class="checkbox" :class="{'cehcked': item.checked}" v-for="item in jqWork" :key="item" @click="JQChange(item)">{{ item.text }}</span>
|
|
|
+ <div class="time">
|
|
|
+ <el-form-item prop="startDate" label="">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="insurancePolicyForm.ciRiskInfoVo.startDate"
|
|
|
+ type="datetime"
|
|
|
+ placeholder="请选择"
|
|
|
+ value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
+ style="width: 100%"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ 至
|
|
|
+ <el-form-item prop="endDate" label="">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="insurancePolicyForm.ciRiskInfoVo.endDate"
|
|
|
+ type="datetime"
|
|
|
+ placeholder="请选择"
|
|
|
+ value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
+ style="width: 100%"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="insurance-jq" v-if="insurancePolicyForm.productId === '034001' || insurancePolicyForm.productId === '034002' || insurancePolicyForm.productId === '0330034002' || insurancePolicyForm.productId === '0330034001'">
|
|
|
+ <span>商业险</span>
|
|
|
+ <span class="checkbox" :class="{'cehcked': item.checked}" v-for="item in syWork" :key="item" @click="SYChange(item)">{{ item.text }}</span>
|
|
|
+ <div class="time">
|
|
|
+ <el-form-item prop="startDate" label="">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="insurancePolicyForm.biRiskInfoVo.startDate"
|
|
|
+ type="datetime"
|
|
|
+ placeholder="请选择"
|
|
|
+ value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
+ style="width: 100%"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ 至
|
|
|
+ <el-form-item prop="endDate" label="">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="insurancePolicyForm.biRiskInfoVo.endDate"
|
|
|
+ type="datetime"
|
|
|
+ placeholder="请选择"
|
|
|
+ value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
+ style="width: 100%"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <template #icon="{ isActive }">
|
|
|
+ <span class="icon">
|
|
|
+ <span class="icon-ele">
|
|
|
+ {{ isActive ? '收起' : '展开' }}
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-collapse-item>
|
|
|
+ <el-collapse-item name="company">
|
|
|
+ <template #title>
|
|
|
+ <span class="title">
|
|
|
+ 报价公司
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ <el-table
|
|
|
+ :data="quoteData"
|
|
|
+ style="width: calc(100% - 48px); margin: 0 24px"
|
|
|
+ row-key="id"
|
|
|
+ :preserve-expanded-content="true"
|
|
|
+ @selection-change="handleSelect"
|
|
|
+ @select="handelSelectRow"
|
|
|
+ >
|
|
|
+ <el-table-column type="expand">
|
|
|
+ <template #default="scope">
|
|
|
+ <div class="expandFlex">
|
|
|
+ <p class="expandTitle">车险方案</p>
|
|
|
+ <div style="width: calc(100% - 50px); overflow-x: hidden">
|
|
|
+ <div class="product">
|
|
|
+ <span class="productItem" :class="{'productActive': productIndex === index}" v-for="(item, index) in scope.row.projectList" @click.stop="handleProduct(item, index)">{{ item.schemeName }}</span>
|
|
|
+ </div>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="12">
|
|
|
+ <div class="quoteTitle">方案明细</div>
|
|
|
+ <el-table
|
|
|
+ :data="scope.row.projectList[productIndex].kinds"
|
|
|
+ >
|
|
|
+ <el-table-column width="50" align="center">
|
|
|
+ <template #header>
|
|
|
+ <el-icon style="cursor: pointer;" @click="handlePopover(scope)"><CirclePlus /></el-icon>
|
|
|
+ </template>
|
|
|
+ <template #default="props">
|
|
|
+ <el-icon><Delete /></el-icon>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="险种" prop="kindName" align="center"></el-table-column>
|
|
|
+ <el-table-column label="保额" align="center">
|
|
|
+ <template #default="props">
|
|
|
+ <el-select v-model="props.row.amount">
|
|
|
+ <el-option v-for="item in props.row.options" :label="item.label" :value="item.value"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="保费" prop="unitAmount" align="center"></el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <div class="quoteTitle">增值服务</div>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="6" class="quoteFlex">
|
|
|
+ 救援
|
|
|
+ <el-select size="small" style="width: 80px; margin: 0 10px">
|
|
|
+ <el-option label="1" value="1"></el-option>
|
|
|
+ </el-select>
|
|
|
+ 次
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6" class="quoteFlex">
|
|
|
+ 检测
|
|
|
+ <el-select size="small" style="width: 80px; margin: 0 10px">
|
|
|
+ <el-option label="1" value="1"></el-option>
|
|
|
+ </el-select>
|
|
|
+ 次
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6" class="quoteFlex">
|
|
|
+ 代驾
|
|
|
+ <el-select size="small" style="width: 80px; margin: 0 10px">
|
|
|
+ <el-option label="1" value="1"></el-option>
|
|
|
+ </el-select>
|
|
|
+ 次
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6" class="quoteFlex">
|
|
|
+ 送检
|
|
|
+ <el-select size="small" style="width: 80px; margin: 0 10px">
|
|
|
+ <el-option label="1" value="1"></el-option>
|
|
|
+ </el-select>
|
|
|
+ 次
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <div class="quoteTitle">驾意险</div>
|
|
|
+ <el-table
|
|
|
+ :data="scope.row.projectList[productIndex].drivings"
|
|
|
+ >
|
|
|
+ <el-table-column width="50" align="center">
|
|
|
+ <template #header>
|
|
|
+ <el-icon @click="handleDriving(scope)"><CirclePlus /></el-icon>
|
|
|
+ </template>
|
|
|
+ <template #default="props">
|
|
|
+ <el-icon><Delete /></el-icon>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="产品名称" prop="productName" align="center"></el-table-column>
|
|
|
+ <el-table-column label="数量" align="center">
|
|
|
+ <template #default="props">
|
|
|
+ <el-input v-model="props.row.quantity" style="width: 140px">
|
|
|
+ <template #append>
|
|
|
+ <span>份</span>
|
|
|
+ </template>
|
|
|
+ </el-input>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="保费" prop="premium" align="center"></el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12" style="border-left: 1px dashed #eeeeee">
|
|
|
+ <p style="text-align: center">保费因素</p>
|
|
|
+ <el-table
|
|
|
+ class="factorTable"
|
|
|
+ :data="scope.row.factorData"
|
|
|
+ >
|
|
|
+ <el-table-column label="评分" prop="" width="50">--</el-table-column>
|
|
|
+ <el-table-column label="交强险折扣系数" prop="">--</el-table-column>
|
|
|
+ <el-table-column label="鼎然车辆风险评分" prop="">--</el-table-column>
|
|
|
+ <el-table-column label="交强评分" prop="" width="70">--</el-table-column>
|
|
|
+ <el-table-column label="商业评分" prop="" width="70">--</el-table-column>
|
|
|
+ <el-table-column label="出险信息" prop="" width="70">--</el-table-column>
|
|
|
+ <el-table-column label="总赔付率" prop="" width="70">--</el-table-column>
|
|
|
+ <el-table-column label="交强赔付率" prop="" width="80">--</el-table-column>
|
|
|
+ <el-table-column label="商业赔付率" prop="" width="80">--</el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-table
|
|
|
+ class="factorTable"
|
|
|
+ :data="scope.row.factorData"
|
|
|
+ >
|
|
|
+ <el-table-column label="类型" prop="" width="50">--</el-table-column>
|
|
|
+ <el-table-column prop="">
|
|
|
+ <template #header>
|
|
|
+ <div style="display: flex; align-items: center; justify-content: center">
|
|
|
+ <span>商业险折扣系数</span>
|
|
|
+ <el-popover placement="bottom" width="200">
|
|
|
+ <div style="display: flex; align-items: center; justify-content: space-between;">
|
|
|
+ <span>NCD折扣系数</span>
|
|
|
+ <span>0.8</span>
|
|
|
+ </div>
|
|
|
+ <div style="display: flex; align-items: center; justify-content: space-between;">
|
|
|
+ <span>NCD折扣系数11</span>
|
|
|
+ <span>0.811</span>
|
|
|
+ </div>
|
|
|
+ <template #reference>
|
|
|
+ <div class="more">
|
|
|
+ <el-icon><MoreFilled /></el-icon>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-popover>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template #default="props">
|
|
|
+ <div style="display: flex; align-items: center; justify-content: center">
|
|
|
+ <span>--</span>
|
|
|
+ <el-popover placement="bottom" width="240" trigger="click">
|
|
|
+ <div class="number">
|
|
|
+ <p>商业险折扣系数和自主定价系数只能修改一个,修改后系统会重新报价,计算修改后的保费</p>
|
|
|
+ <el-radio-group>
|
|
|
+ <el-radio value="1" size="small" style="margin-bottom: 10px">
|
|
|
+ <template #default>
|
|
|
+ <div style="display: flex; justify-content: space-between; align-items: center; width: 180px">
|
|
|
+ <span>商业险折扣系数</span>
|
|
|
+ <el-input style="width: 80px" size="small"></el-input>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-radio>
|
|
|
+ <el-radio value="2" size="small">
|
|
|
+ <template #default>
|
|
|
+ <div style="display: flex; justify-content: space-between; align-items: center; width: 180px">
|
|
|
+ <span>自主定价系数</span>
|
|
|
+ <el-input style="width: 80px" size="small"></el-input>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </div>
|
|
|
+ <template #reference>
|
|
|
+ <el-icon style="font-size: 14px; color:#0083FF "><Edit /></el-icon>
|
|
|
+ </template>
|
|
|
+ </el-popover>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="交强出险次数" prop="" width="100">--</el-table-column>
|
|
|
+ <el-table-column label="商业出险次数" prop="" width="100">--</el-table-column>
|
|
|
+ <el-table-column label="交强续保" prop="" width="70">--</el-table-column>
|
|
|
+ <el-table-column label="商业续保" prop="" width="70">--</el-table-column>
|
|
|
+ <el-table-column label="总折扣率" prop="" width="70">--</el-table-column>
|
|
|
+ <el-table-column label="商业折扣" prop="" width="70">--</el-table-column>
|
|
|
+ <el-table-column label="交强折扣" prop="" width="70">--</el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column type="selection" width="55" />
|
|
|
+ <el-table-column label="保险公司" prop="" align="center" width="150">
|
|
|
+ <template #default="scope">
|
|
|
+ <div class="company">
|
|
|
+ <img :src="scope.row.logo"/>
|
|
|
+ <span>{{ scope.row.name }}</span>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="报价协议" prop="" align="center">
|
|
|
+ <template #default="scope">
|
|
|
+ <el-select v-if="currentRow.some(a => a.id === scope.row.id)">
|
|
|
+ <el-option v-for="item in scope.row.aggrements" :value="item.value" :label="item.label"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="" align="center">
|
|
|
+ <template #header>
|
|
|
+ <div style="display: flex; align-items: center; justify-content: center">
|
|
|
+ <span style="margin-right: 10px">报价结果</span>
|
|
|
+ <el-checkbox>仅查看报价成功</el-checkbox>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template #default="scope">
|
|
|
+ <div class="result" v-if="currentRow.some(a => a.id === scope.row.id)">
|
|
|
+ <span class="resultItem">
|
|
|
+ <span>保费:¥5687.06</span>
|
|
|
+ <span class="resultTips">
|
|
|
+ <el-icon style="color: #FF4545; font-size: 14px"><Warning /></el-icon> 未匹配到销管费用,不建议投保
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ <el-row class="resultItem">
|
|
|
+ <el-col :span="6" style="text-align: left">交强:¥800</el-col>
|
|
|
+ <el-col :span="6" style="text-align: left">车船税:¥200</el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row class="resultItem">
|
|
|
+ <el-col :span="6" style="text-align: left">商业险:¥800</el-col>
|
|
|
+ <el-col :span="6" style="text-align: left">驾意险:¥200</el-col>
|
|
|
+ </el-row>
|
|
|
+ <span class="resultItem">
|
|
|
+ <span>交强险保险期:2025-03-13 00:00:00 至 2025-03-14 00:00:00</span>
|
|
|
+ </span>
|
|
|
+ <span class="resultItem">
|
|
|
+ <span>商业险保险期:2025-03-13 00:00:00 至 2025-03-14 00:00:00</span>
|
|
|
+ </span>
|
|
|
+ <div>
|
|
|
+ <div class="quoteFail">
|
|
|
+ <el-icon style="color: #FF4545; font-size: 14px"><Warning /></el-icon> 报价失败
|
|
|
+ </div>
|
|
|
+ <div class="quoteReason">报价失败原因报价失败原因报价失败原因报价失败原因报价失败原因报价失败原因报价失败原因报价失败原因报价失败原因报价失败原因报价失败原因报价失败原因报价失败原因报价失败原因报价失败原因报价失败原因报价失败原因报价失败原因</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="操作" align="center">
|
|
|
+ <template #default="scope">
|
|
|
+ <div v-if="currentRow.some(a => a.id === scope.row.id)">
|
|
|
+ <el-button link type="primary" @click="handleCount(scope)">优惠测算</el-button>
|
|
|
+ <el-button link type="primary">详情</el-button>
|
|
|
+ <el-button link type="primary">计算保费</el-button>
|
|
|
+ <el-button link type="primary" @click="handleShare(scope)">分享</el-button>
|
|
|
+ <el-button link type="primary" @click="handleUnderwriting(scope)">核保</el-button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <template #icon="{ isActive }">
|
|
|
+ <span class="icon">
|
|
|
+ <span class="icon-ele">
|
|
|
+ {{ isActive ? '收起' : '展开' }}
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-collapse-item>
|
|
|
+ <el-collapse-item name="history">
|
|
|
+ <template #title>
|
|
|
+ <span class="title">
|
|
|
+ 报价历史
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ <el-table
|
|
|
+ :data="tableData"
|
|
|
+ style="width: calc(100% - 48px); margin: 0 24px"
|
|
|
+ >
|
|
|
+ <el-table-column label="保险公司" prop=""></el-table-column>
|
|
|
+ <el-table-column label="报价时间" prop=""></el-table-column>
|
|
|
+ <el-table-column label="险种" prop=""></el-table-column>
|
|
|
+ <el-table-column label="状态" prop="state">
|
|
|
+ <template #default="scope">
|
|
|
+ <span v-if="scope.row.state===1" class="success">报价成功</span>
|
|
|
+ <span v-if="scope.row.state===2" style="display: flex; align-items: center">
|
|
|
+ <span class="fail">报价失败</span>
|
|
|
+ <el-tooltip
|
|
|
+ class="box-item"
|
|
|
+ effect="dark"
|
|
|
+ content="报价失败的原因"
|
|
|
+ placement="bottom"
|
|
|
+ >
|
|
|
+ <el-icon style="color: #FF4545; font-size: 18px"><Warning /></el-icon>
|
|
|
+ </el-tooltip>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="保费计算" prop=""></el-table-column>
|
|
|
+ <el-table-column label="交强险" prop=""></el-table-column>
|
|
|
+ <el-table-column label="商业险" prop=""></el-table-column>
|
|
|
+ <el-table-column label="驾意险" prop=""></el-table-column>
|
|
|
+ <el-table-column label="操作">
|
|
|
+ <template #default="scope">
|
|
|
+ <el-button link type="primary">详情</el-button>
|
|
|
+ <el-button link type="primary">分享</el-button>
|
|
|
+ <el-button link type="primary">核保</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <template #icon="{ isActive }">
|
|
|
+ <span class="icon">
|
|
|
+ <span class="icon-ele">
|
|
|
+ {{ isActive ? '收起' : '展开' }}
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-collapse-item>
|
|
|
+ </el-collapse>
|
|
|
+ </el-form>
|
|
|
+ <div class="footer">
|
|
|
+ <span>已选保司:{{ currentRow.length }}家</span>
|
|
|
+ <el-button type="primary" :loading="loading" @click="handleSubmit(InsurancePolicyRefs)">确定</el-button>
|
|
|
+ </div>
|
|
|
+ <el-dialog
|
|
|
+ title="选择业务员"
|
|
|
+ v-model="salesmanShow"
|
|
|
+ width="700"
|
|
|
+ >
|
|
|
+ <salesmanSelect ref="SalesmanSelectRef" @close="handleSalesmanSelect"></salesmanSelect>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog
|
|
|
+ v-model="shareShow"
|
|
|
+ width="300"
|
|
|
+ title="分享"
|
|
|
+ >
|
|
|
+ <div class="imageCode">
|
|
|
+ <img />
|
|
|
+ </div>
|
|
|
+ <template #footer>
|
|
|
+ <el-button plain type="primary" @click="handleSaveImage">保存图片</el-button>
|
|
|
+ <el-button plain type="primary" @click="handleCopyLink">复制链接</el-button>
|
|
|
+ </template>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog
|
|
|
+ title="优惠测算"
|
|
|
+ v-model="calculatingShow"
|
|
|
+ width="600"
|
|
|
+ >
|
|
|
+ <calculating ref="calculatingRefs"></calculating>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog
|
|
|
+ title="提交核保"
|
|
|
+ width="930"
|
|
|
+ v-model="underwritingShow"
|
|
|
+ >
|
|
|
+ <underwriting ref="UnderwritingRefs" @close="handleUnderwritingClose"></underwriting>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog
|
|
|
+ title="证件识别"
|
|
|
+ width="800"
|
|
|
+ v-model="imageShow"
|
|
|
+ >
|
|
|
+ <recognition ref="RecognitionRefs" @close="handleImageClose"></recognition>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog
|
|
|
+ v-model="insuranceShow"
|
|
|
+ title="选择险种"
|
|
|
+ width="500"
|
|
|
+ >
|
|
|
+ <insurance ref="InsuranceTypeRef" @close="handleClose" ></insurance>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog
|
|
|
+ v-model="drivingShow"
|
|
|
+ title="选择驾意险"
|
|
|
+ width="700"
|
|
|
+ >
|
|
|
+ <driving ref="DrivingTypeRef" @close="handleDrivingClose"></driving>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup lang="ts">
|
|
|
+import type { FormInstance, FormRules } from 'element-plus'
|
|
|
+import api from "@/api";
|
|
|
+import { ElMessage } from "element-plus";
|
|
|
+import underwriting from './modules/underwriting.vue'
|
|
|
+import recognition from './modules/recognition.vue'
|
|
|
+import calculating from './modules/calculating.vue'
|
|
|
+import salesmanSelect from '../additionalOrder/additional/modules/salesmanSelect.vue'
|
|
|
+import insurance from "../additionalOrder/additional/modules/insuranceSelect.vue";
|
|
|
+import driving from '../../layouts/components/DrivingType/index.vue'
|
|
|
+
|
|
|
+const SalesmanSelectRef = ref()
|
|
|
+const InsuranceTypeRef = ref()
|
|
|
+const DrivingTypeRef = ref()
|
|
|
+
|
|
|
+// 选择业务员
|
|
|
+let salesmanShow = ref(false)
|
|
|
+const handleFocus = () => {
|
|
|
+ salesmanShow.value = true
|
|
|
+ nextTick(() => {
|
|
|
+ SalesmanSelectRef.value.initEditData()
|
|
|
+ })
|
|
|
+}
|
|
|
+const handleSalesmanSelect = (data) => {
|
|
|
+ salesmanShow.value = false
|
|
|
+ if(data) {
|
|
|
+ insurancePolicyForm.value.salesman = data.name
|
|
|
+ insurancePolicyForm.value.mobile = data.mobile
|
|
|
+ insurancePolicyForm.value.deptId = data.deptId
|
|
|
+ initDept()
|
|
|
+ }
|
|
|
+}
|
|
|
+// 归属
|
|
|
+let institutionList = ref([])
|
|
|
+const tableProps = ref({
|
|
|
+ value: "id",
|
|
|
+ label: "name",
|
|
|
+ children: "children",
|
|
|
+ checkStrictly: true,
|
|
|
+})
|
|
|
+const initDept = () => {
|
|
|
+ api.insuranceApi.getDeptTree({ sysCode: localStorage.getItem('sysCode')}).then((res: any) => {
|
|
|
+ if(res.code == 200) {
|
|
|
+ institutionList.value = res.data
|
|
|
+ } else {
|
|
|
+ ElMessage({
|
|
|
+ message: res.msg,
|
|
|
+ type: 'warning'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+//折叠面板
|
|
|
+let activeName = ref(['car','owner','owner1','owner2','tax','insurance','company','history'])
|
|
|
+
|
|
|
+const InsurancePolicyRefs = ref<FormInstance>()
|
|
|
+
|
|
|
+let insurancePolicyForm = ref({
|
|
|
+ systemType: '2',
|
|
|
+ propertyCode: '1',
|
|
|
+ isRegistered: 0,
|
|
|
+ // 车辆
|
|
|
+ licenseNo: '',
|
|
|
+ vinNo: '',
|
|
|
+ brandName: '',
|
|
|
+ engineNo: '',
|
|
|
+ carNatureCode: '',
|
|
|
+ vehicleUseCode: '',
|
|
|
+ carTypeCode: '',
|
|
|
+ plateType: '',
|
|
|
+ energyTypeCode: '',
|
|
|
+ registerDate: '',
|
|
|
+ issueDate: '',
|
|
|
+ completeKerbMass: '',
|
|
|
+ limitLoad: '',
|
|
|
+ seatCount: '',
|
|
|
+ carYear: '',
|
|
|
+ purchasePrice: '',
|
|
|
+ displacement: '',
|
|
|
+ powerScale: '',
|
|
|
+ carOwner: '',
|
|
|
+
|
|
|
+ // 险种类型
|
|
|
+ productId: '',
|
|
|
+
|
|
|
+ // 车主信息
|
|
|
+ name1: '',
|
|
|
+ mobile1: '',
|
|
|
+ identifyType1: '01',
|
|
|
+ identifyNumber1: '',
|
|
|
+ identifyValidDate1: '',
|
|
|
+ identifyValidEndDate1: '',
|
|
|
+ addr1: '',
|
|
|
+ telephone1: '',
|
|
|
+ person1: '',
|
|
|
+ age1: '',
|
|
|
+ address1: '',
|
|
|
+ registeredCapital1: '',
|
|
|
+ email1: '',
|
|
|
+ personType1: '1',
|
|
|
+
|
|
|
+ // 投保人信息
|
|
|
+ name2: '',
|
|
|
+ mobile2: '',
|
|
|
+ identifyType2: '01',
|
|
|
+ identifyNumber2: '',
|
|
|
+ identifyValidDate2: '',
|
|
|
+ identifyValidEndDate2: '',
|
|
|
+ addr2: '',
|
|
|
+ telephone2: '',
|
|
|
+ person2: '',
|
|
|
+ age2: '',
|
|
|
+ address2: '',
|
|
|
+ registeredCapital2: '',
|
|
|
+ email2: '',
|
|
|
+ personType2: '1',
|
|
|
+
|
|
|
+ // 被保人信息
|
|
|
+ name3: '',
|
|
|
+ mobile3: '',
|
|
|
+ identifyType3: '01',
|
|
|
+ identifyNumber3: '',
|
|
|
+ identifyValidDate3: '',
|
|
|
+ identifyValidEndDate3: '',
|
|
|
+ addr3: '',
|
|
|
+ telephone3: '',
|
|
|
+ person3: '',
|
|
|
+ age3: '',
|
|
|
+ address3: '',
|
|
|
+ registeredCapital3: '',
|
|
|
+ email3: '',
|
|
|
+ personType3: '1',
|
|
|
+
|
|
|
+ order: {},
|
|
|
+ vehicleAndVesselTaxVo: {},
|
|
|
+ ciRiskInfoVo: {
|
|
|
+ riskCode: '0507',
|
|
|
+ startDate: '',
|
|
|
+ endDate: '',
|
|
|
+ instantFlag: false
|
|
|
+ },
|
|
|
+ biRiskInfoVo: {
|
|
|
+ riskCode: '0510',
|
|
|
+ startDate: '',
|
|
|
+ endDate: '',
|
|
|
+ instantFlag: false
|
|
|
+ }
|
|
|
+})
|
|
|
+let insurancePolicyRules = ref<FormRules>({
|
|
|
+ isRegistered: [
|
|
|
+ { required: true, trigger: 'change', message: '请选择车辆是否上牌' },
|
|
|
+ ],
|
|
|
+ licenseNo: [
|
|
|
+ { required: true, trigger: 'blur', message: '请输入车牌' }
|
|
|
+ ],
|
|
|
+ vinNo: [
|
|
|
+ { required: true, trigger: 'blur', message: '请输入车牌识别代码' }
|
|
|
+ ],
|
|
|
+ brandName: [
|
|
|
+ { required: true, trigger: 'blur', message: '请输入品牌型号' }
|
|
|
+ ],
|
|
|
+ engineNo: [
|
|
|
+ { required: true, trigger: 'blur', message: '请输入发动机号' }
|
|
|
+ ],
|
|
|
+ carNatureCode: [
|
|
|
+ { required: true, trigger: 'change', message: '请选择车辆是否上牌' },
|
|
|
+ ],
|
|
|
+ vehicleUseCode: [
|
|
|
+ { required: true, trigger: 'change', message: '请选择车辆是否上牌' },
|
|
|
+ ],
|
|
|
+ carTypeCode: [
|
|
|
+ { required: true, trigger: 'change', message: '请选择车辆是否上牌' },
|
|
|
+ ],
|
|
|
+ plateType: [
|
|
|
+ { required: true, trigger: 'change', message: '请选择车辆类型' },
|
|
|
+ ],
|
|
|
+ energyTypeCode: [
|
|
|
+ { required: true, trigger: 'change', message: '请选择车辆是否上牌' },
|
|
|
+ ],
|
|
|
+ registerDate: [
|
|
|
+ { required: true, trigger: 'change', message: '请选择注册日期' },
|
|
|
+ ],
|
|
|
+ issueDate: [
|
|
|
+ { required: true, trigger: 'change', message: '请选择发证日期' },
|
|
|
+ ],
|
|
|
+ completeKerbMass: [
|
|
|
+ { required: true, trigger: 'blur', message: '请输入整备质量' }
|
|
|
+ ],
|
|
|
+ limitLoad: [
|
|
|
+ { required: true, trigger: 'blur', message: '请输入核定载质量' }
|
|
|
+ ],
|
|
|
+ seatCount: [
|
|
|
+ { required: true, trigger: 'blur', message: '请输入座位数' }
|
|
|
+ ],
|
|
|
+ carYear: [
|
|
|
+ { required: true, trigger: 'blur', message: '请输入年款' }
|
|
|
+ ],
|
|
|
+ purchasePrice: [
|
|
|
+ { required: true, trigger: 'blur', message: '请输入新车购置价' }
|
|
|
+ ],
|
|
|
+ displacement: [
|
|
|
+ { required: true, trigger: 'blur', message: '请输入排量' }
|
|
|
+ ],
|
|
|
+ powerScale: [
|
|
|
+ { required: true, trigger: 'blur', message: '请输入功率' }
|
|
|
+ ],
|
|
|
+ name1: [
|
|
|
+ { required: true, trigger: 'blur', message: '请输入姓名' }
|
|
|
+ ],
|
|
|
+ mobile1: [
|
|
|
+ { required: true, trigger: 'blur', message: '请输入手机号' }
|
|
|
+ ],
|
|
|
+ personType1: [
|
|
|
+ { required: true, trigger: 'change', message: '请选择证件类型' }
|
|
|
+ ],
|
|
|
+ identifyNumber1: [
|
|
|
+ { required: true, trigger: 'blur', message: '请输入证件号' }
|
|
|
+ ],
|
|
|
+ identifyValidDate1: [
|
|
|
+ { required: true, trigger: 'change', message: '请选择有效期起期' }
|
|
|
+ ],
|
|
|
+ identifyValidEndDate1: [
|
|
|
+ { required: true, trigger: 'change', message: '请选择有效期止期' }
|
|
|
+ ],
|
|
|
+ addr1: [
|
|
|
+ { required: true, trigger: 'blur', message: '请输入地址' }
|
|
|
+ ],
|
|
|
+ name2: [
|
|
|
+ { required: true, trigger: 'blur', message: '请输入姓名' }
|
|
|
+ ],
|
|
|
+ mobile2: [
|
|
|
+ { required: true, trigger: 'blur', message: '请输入手机号' }
|
|
|
+ ],
|
|
|
+ personType2: [
|
|
|
+ { required: true, trigger: 'change', message: '请选择证件类型' }
|
|
|
+ ],
|
|
|
+ identifyNumber2: [
|
|
|
+ { required: true, trigger: 'blur', message: '请输入证件号' }
|
|
|
+ ],
|
|
|
+ identifyValidDate2: [
|
|
|
+ { required: true, trigger: 'change', message: '请选择有效期起期' }
|
|
|
+ ],
|
|
|
+ identifyValidEndDate2: [
|
|
|
+ { required: true, trigger: 'change', message: '请选择有效期止期' }
|
|
|
+ ],
|
|
|
+ addr2: [
|
|
|
+ { required: true, trigger: 'blur', message: '请输入地址' }
|
|
|
+ ],
|
|
|
+ name3: [
|
|
|
+ { required: true, trigger: 'blur', message: '请输入姓名' }
|
|
|
+ ],
|
|
|
+ mobile3: [
|
|
|
+ { required: true, trigger: 'blur', message: '请输入手机号' }
|
|
|
+ ],
|
|
|
+ personType3: [
|
|
|
+ { required: true, trigger: 'change', message: '请选择证件类型' }
|
|
|
+ ],
|
|
|
+ identifyNumber3: [
|
|
|
+ { required: true, trigger: 'blur', message: '请输入证件号' }
|
|
|
+ ],
|
|
|
+ identifyValidDate3: [
|
|
|
+ { required: true, trigger: 'change', message: '请选择有效期起期' }
|
|
|
+ ],
|
|
|
+ identifyValidEndDate3: [
|
|
|
+ { required: true, trigger: 'change', message: '请选择有效期止期' }
|
|
|
+ ],
|
|
|
+ addr3: [
|
|
|
+ { required: true, trigger: 'blur', message: '请输入地址' }
|
|
|
+ ]
|
|
|
+})
|
|
|
+
|
|
|
+// 使用性质,车辆用途,车辆类型,能源种类,车辆种类
|
|
|
+let optionObj = ref({
|
|
|
+ vehicle_use_code: [], // 车辆用途
|
|
|
+ car_nature_code: [], // 使用性质
|
|
|
+ energy_type_code: [], // 能源种类
|
|
|
+ car_kind_code: [], // 车辆种类
|
|
|
+ vehicleType: [],
|
|
|
+ taxpayerIdentifier: [], // 证件类型
|
|
|
+ insuranceType: [], // 险种类型
|
|
|
+ car_type_code: [], // 车辆类型
|
|
|
+})
|
|
|
+
|
|
|
+// 地区
|
|
|
+const areaOptins = ref([]);
|
|
|
+const areaProps = ref({
|
|
|
+ value: "areaCode",
|
|
|
+ label: "areaCname",
|
|
|
+ children: "child",
|
|
|
+});
|
|
|
+const getAreaList = () => {
|
|
|
+ api.areaApi.areaList({}).then((res) => {
|
|
|
+ areaOptins.value = res.data;
|
|
|
+ });
|
|
|
+};
|
|
|
+
|
|
|
+// 车牌识别
|
|
|
+const handleCarNumber = () => {
|
|
|
+ api.additionalApi.vinSearch(insurancePolicyForm.value.licenseNo).then((res: any) => {
|
|
|
+ if(res.code == 200) {
|
|
|
+
|
|
|
+ } else {
|
|
|
+ ElMessage({
|
|
|
+ message: res.msg,
|
|
|
+ type: 'warning'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+// 车架号识别
|
|
|
+const handleCarCode = () => {
|
|
|
+ api.additionalApi.licenseSearch(insurancePolicyForm.value.vinNo).then((res: any) => {
|
|
|
+ if(res.code == 200) {
|
|
|
+
|
|
|
+ } else {
|
|
|
+ ElMessage({
|
|
|
+ message: res.msg,
|
|
|
+ type: 'warning'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+// 获取报价号
|
|
|
+const getQuoteNumber = () => {
|
|
|
+ if(insurancePolicyForm.value.licenseNo&&insurancePolicyForm.value.vinNo&&insurancePolicyForm.value.engineNo) {
|
|
|
+ api.insurancePolicyApi.getQuoteNo({
|
|
|
+ licenseNo: insurancePolicyForm.value.licenseNo,
|
|
|
+ vinNo: insurancePolicyForm.value.vinNo,
|
|
|
+ engineNo: insurancePolicyForm.value.engineNo
|
|
|
+ }).then((res: any) => {
|
|
|
+ if(res.code == 200) {
|
|
|
+ // insuranceCompanyCode
|
|
|
+ insurancePolicyForm.value.order.quoteNo = res.msg
|
|
|
+ } else {
|
|
|
+ ElMessage({
|
|
|
+ message: res.msg,
|
|
|
+ type: "warning"
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 是否同车主/同投保人
|
|
|
+let btns = ref({
|
|
|
+ owner1Show: false,
|
|
|
+ owner2show: false,
|
|
|
+ owner3show: '正常交税',
|
|
|
+ owner1: [{
|
|
|
+ text: '同车主',
|
|
|
+ checked: false
|
|
|
+ },{
|
|
|
+ text: '其他人',
|
|
|
+ checked: false
|
|
|
+ },],
|
|
|
+ owner2: [{
|
|
|
+ text: '同被保人',
|
|
|
+ checked: false
|
|
|
+ },{
|
|
|
+ text: '同车主',
|
|
|
+ checked: false
|
|
|
+ },{
|
|
|
+ text: '其他人',
|
|
|
+ checked: false
|
|
|
+ }],
|
|
|
+ owner3: [{
|
|
|
+ text: '正常交税',
|
|
|
+ checked: true
|
|
|
+ },{
|
|
|
+ text: '免税',
|
|
|
+ checked: false
|
|
|
+ },{
|
|
|
+ text: '减税',
|
|
|
+ checked: false
|
|
|
+ },{
|
|
|
+ text: '完税',
|
|
|
+ checked: false
|
|
|
+ }],
|
|
|
+})
|
|
|
+const handleChange = (item, type) => {
|
|
|
+ switch (type) {
|
|
|
+ case 'owner1':
|
|
|
+ item.checked = !item.checked
|
|
|
+ let list1 = btns.value.owner1.filter(a => a.text != item.text)
|
|
|
+ list1.forEach(a => a.checked = false)
|
|
|
+ btns.value.owner1Show = btns.value.owner1.some(a => a.checked)
|
|
|
+ break;
|
|
|
+ case 'owner2':
|
|
|
+ item.checked = !item.checked
|
|
|
+ let list2 = btns.value.owner2.filter(a => a.text != item.text)
|
|
|
+ list2.forEach(a => a.checked = false)
|
|
|
+ btns.value.owner2show = btns.value.owner2.some(a => a.checked)
|
|
|
+ break;
|
|
|
+ case 'owner3':
|
|
|
+ item.checked = true
|
|
|
+ let list3 = btns.value.owner3.filter(a => a.text != item.text)
|
|
|
+ list3.forEach(a => a.checked = false)
|
|
|
+ btns.value.owner3show = btns.value.owner3.find(a => a.checked)?.text
|
|
|
+ insurancePolicyForm.value.vehicleAndVesselTaxVo.taxRelifFlag = btns.value.owner3show === '正常交税'?'1':btns.value.owner3show === '免税'?'2':btns.value.owner3show === '减税'?'3':btns.value.owner3show === '完税'?'4':''
|
|
|
+ break;
|
|
|
+ case 'insurance':
|
|
|
+ ruleFilterCompany(item)
|
|
|
+ let list4 = optionObj.value.insuranceType.filter(a => a.label != item.label)
|
|
|
+ list4.forEach(a => a.checked = false)
|
|
|
+ item.checked = true
|
|
|
+ insurancePolicyForm.value.productId = item.value
|
|
|
+ if(insurancePolicyForm.value.productId === '0330' || insurancePolicyForm.value.productId === '0330034001' || insurancePolicyForm.value.productId === '0330034002') {
|
|
|
+ let date = new Date()
|
|
|
+ let year = date.getFullYear()
|
|
|
+ let month = date.getMonth() + 1<10?`0${date.getMonth() + 1}`:date.getMonth() + 1
|
|
|
+ let day = date.getDate()
|
|
|
+ insurancePolicyForm.value.ciRiskInfoVo.startDate = `${year}-${month}-${day + 1} 00:00:00`
|
|
|
+ insurancePolicyForm.value.ciRiskInfoVo.endDate = `${year + 1}-${month}-${day} 23:59:59`
|
|
|
+ }
|
|
|
+ if(insurancePolicyForm.value.productId === '034001' || insurancePolicyForm.value.productId === '034002' || insurancePolicyForm.value.productId === '0330034001' || insurancePolicyForm.value.productId === '0330034002') {
|
|
|
+ let date = new Date()
|
|
|
+ let year = date.getFullYear()
|
|
|
+ let month = date.getMonth() + 1<10?`0${date.getMonth() + 1}`:date.getMonth() + 1
|
|
|
+ let day = date.getDate()
|
|
|
+ insurancePolicyForm.value.biRiskInfoVo.startDate = `${year}-${month}-${day + 1} 00:00:00`
|
|
|
+ insurancePolicyForm.value.biRiskInfoVo.endDate = `${year + 1}-${month}-${day} 23:59:59`
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+const initOption = () => {
|
|
|
+ let list = ['vehicle_use_code', 'car_nature_code', 'energy_type_code', 'car_kind_code', 'car_type_code']
|
|
|
+ list.forEach(item => {
|
|
|
+ api.additionalApi.dictDetails(item).then((res: any) => {
|
|
|
+ if(res.code == 200) {
|
|
|
+ if(res.data) {
|
|
|
+ optionObj.value[item] = res.data
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ api.commonApi.personInfo('insurance_type').then((res: any) => {
|
|
|
+ if(res.code == 200) {
|
|
|
+ if(res.data&&res.data.length>0) {
|
|
|
+ res.data.forEach(a => {
|
|
|
+ a.checked = false
|
|
|
+ })
|
|
|
+ optionObj.value.insuranceType = res.data
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ ElMessage({
|
|
|
+ message: res.msg,
|
|
|
+ type: 'warning'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+// 交强即时生效
|
|
|
+let jqWork = ref([
|
|
|
+ { text: '即时生效', checked: false }
|
|
|
+])
|
|
|
+// 根据身份证号换算年龄
|
|
|
+const getAgeByIdCard = (idCard: any, type?: any) => {
|
|
|
+ //获取用户身份证号码
|
|
|
+ const userCard = idCard
|
|
|
+ //如果用户身份证号码为undefined则返回空
|
|
|
+ if (!userCard) {
|
|
|
+ return ''
|
|
|
+ }
|
|
|
+ // 获取出生日期
|
|
|
+ const yearBirth = userCard.substring(6, 10)
|
|
|
+ const monthBirth = userCard.substring(10, 12)
|
|
|
+ const dayBirth = userCard.substring(12, 14)
|
|
|
+ // 获取当前年月日并计算年龄
|
|
|
+ const myDate = new Date()
|
|
|
+ const monthNow = myDate.getMonth() + 1
|
|
|
+ const dayNow = myDate.getDate()
|
|
|
+ let age = myDate.getFullYear() - yearBirth
|
|
|
+ if (monthNow > monthBirth || (monthNow == monthBirth && dayNow > dayBirth)) {
|
|
|
+ age++
|
|
|
+ }
|
|
|
+ type.age = age
|
|
|
+ return age
|
|
|
+}
|
|
|
+const oneYearPast1 = (time) => {
|
|
|
+ //明年减一秒
|
|
|
+ let date = new Date(time);
|
|
|
+ date.setSeconds(date.getSeconds() - 1);
|
|
|
+ date.setFullYear(date.getFullYear() + 1); //一年后
|
|
|
+ date.setTime(date.getTime()); //一年后的前一天
|
|
|
+ let strYear: any = date.getFullYear();
|
|
|
+ let strDay: any = date.getDate();
|
|
|
+ let strMonth: any = date.getMonth() + 1;
|
|
|
+ let hh: any = date.getHours();
|
|
|
+ let minutes: any = date.getMinutes(); // 分
|
|
|
+ let Seconds: any = date.getSeconds();
|
|
|
+ if (hh < 10) {
|
|
|
+ hh = "0" + hh;
|
|
|
+ }
|
|
|
+ if (minutes < 10) {
|
|
|
+ minutes = "0" + minutes;
|
|
|
+ }
|
|
|
+ if (Seconds < 10) {
|
|
|
+ Seconds = "0" + Seconds;
|
|
|
+ }
|
|
|
+ if (strMonth < 10) {
|
|
|
+ strMonth = "0" + strMonth;
|
|
|
+ }
|
|
|
+ if (strDay < 10) {
|
|
|
+ strDay = "0" + strDay;
|
|
|
+ }
|
|
|
+ let datastr =
|
|
|
+ strYear +
|
|
|
+ "-" +
|
|
|
+ strMonth +
|
|
|
+ "-" +
|
|
|
+ strDay +
|
|
|
+ " " +
|
|
|
+ hh +
|
|
|
+ ":" +
|
|
|
+ minutes +
|
|
|
+ ":" +
|
|
|
+ Seconds;
|
|
|
+ return datastr;
|
|
|
+}
|
|
|
+//当前日期的次日
|
|
|
+const transformTime1 = () => {
|
|
|
+ let date = new Date();
|
|
|
+ date.setFullYear(date.getFullYear());
|
|
|
+ date.setTime(date.getTime() + 24 * 60 * 60 * 1000);
|
|
|
+ let strYear: any = date.getFullYear();
|
|
|
+ let strDay: any = date.getDate();
|
|
|
+ let strMonth: any = date.getMonth() + 1;
|
|
|
+ let hh: any = date.getHours();
|
|
|
+ if (hh < 10) {
|
|
|
+ hh = "0" + hh;
|
|
|
+ }
|
|
|
+ if (strMonth < 10) {
|
|
|
+ strMonth = "0" + strMonth;
|
|
|
+ }
|
|
|
+ if (strDay < 10) {
|
|
|
+ strDay = "0" + strDay;
|
|
|
+ }
|
|
|
+ let datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
|
|
|
+ return datastr;
|
|
|
+}
|
|
|
+const JQChange = (item) => {
|
|
|
+ item.checked = !item.checked
|
|
|
+ if(jqWork.value.some( a => a.checked )) {
|
|
|
+ let date: any = new Date();
|
|
|
+ date.setHours(date.getHours() + 2);
|
|
|
+ date.setMinutes(0);
|
|
|
+ date.setSeconds(0);
|
|
|
+ insurancePolicyForm.value.ciRiskInfoVo.startDate = date
|
|
|
+ insurancePolicyForm.value.ciRiskInfoVo.endDate = oneYearPast1(date)
|
|
|
+ insurancePolicyForm.value.ciRiskInfoVo.instantFlag = true
|
|
|
+ } else {
|
|
|
+ insurancePolicyForm.value.ciRiskInfoVo.startDate = transformTime1()
|
|
|
+ insurancePolicyForm.value.ciRiskInfoVo.endDate = oneYearPast1(insurancePolicyForm.value.ciRiskInfoVo.startDate)
|
|
|
+ insurancePolicyForm.value.ciRiskInfoVo.instantFlag = false
|
|
|
+ }
|
|
|
+}
|
|
|
+// 商业即时生效
|
|
|
+let syWork = ref([
|
|
|
+ { text: '即时生效', checked: false }
|
|
|
+])
|
|
|
+const SYChange = (item) => {
|
|
|
+ item.checked = !item.checked
|
|
|
+ if(jqWork.value.some( a => a.checked )) {
|
|
|
+ let date: any = new Date();
|
|
|
+ date.setHours(date.getHours() + 2);
|
|
|
+ date.setMinutes(0);
|
|
|
+ date.setSeconds(0);
|
|
|
+ insurancePolicyForm.value.biRiskInfoVo.startDate = date
|
|
|
+ insurancePolicyForm.value.biRiskInfoVo.endDate = oneYearPast1(date)
|
|
|
+ insurancePolicyForm.value.biRiskInfoVo.instantFlag = true
|
|
|
+ } else {
|
|
|
+ insurancePolicyForm.value.biRiskInfoVo.startDate = transformTime1()
|
|
|
+ insurancePolicyForm.value.biRiskInfoVo.endDate = oneYearPast1(insurancePolicyForm.value.biRiskInfoVo.startDate)
|
|
|
+ insurancePolicyForm.value.biRiskInfoVo.instantFlag = false
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 报价公司
|
|
|
+let currentRow = ref([])
|
|
|
+let quoteData = ref([])
|
|
|
+const handleSelect = (a, b) => {
|
|
|
+ // console.log(123, a, b)
|
|
|
+ // currentRow.value = a
|
|
|
+ // insurancePolicyForm.value.order.insuranceCompanyCode = a[0].id
|
|
|
+}
|
|
|
+const handelSelectRow = (a, b) => {
|
|
|
+ currentRow.value = a
|
|
|
+ if(a.some(c => c.id === b.id)) {
|
|
|
+ insurancePolicyForm.value.order.insuranceCompanyCode = b.id
|
|
|
+ if(insurancePolicyForm.value.productId) {
|
|
|
+ api.insurancePolicyApi.getSchemeResult({
|
|
|
+ companyId: b.id,
|
|
|
+ productId: insurancePolicyForm.value.productId
|
|
|
+ }).then((res: any) => {
|
|
|
+ if(res.data?.schemes) {
|
|
|
+ res.data?.schemes.forEach(item => {
|
|
|
+ item.checked = false
|
|
|
+ })
|
|
|
+ }
|
|
|
+ quoteData.value.forEach(item => {
|
|
|
+ if(item.id === b.id) {
|
|
|
+ item.projectList = res.data.schemes
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ insurancePolicyForm.value.order.insuranceCompanyCode = ''
|
|
|
+ }
|
|
|
+}
|
|
|
+// 选择险种
|
|
|
+let insuranceShow = ref(false)
|
|
|
+const handlePopover = (scope) => {
|
|
|
+ insuranceShow.value = true
|
|
|
+ nextTick(() => {
|
|
|
+ InsuranceTypeRef.value.initEditData()
|
|
|
+ })
|
|
|
+}
|
|
|
+const handleClose = (data) => {
|
|
|
+ insuranceShow.value = false
|
|
|
+ if(data&&data.list.length>0) {
|
|
|
+ data.list.forEach(item => {
|
|
|
+ let obj = item.options.find(a => a.checked)
|
|
|
+ item.amount = obj.value
|
|
|
+ item.unitAmount = obj.value
|
|
|
+ })
|
|
|
+ }
|
|
|
+ quoteData.value.forEach(a => {
|
|
|
+ if(insurancePolicyForm.value.order.insuranceCompanyCode === a.id) {
|
|
|
+ a.projectList[productIndex.value].kinds = data.list
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+// 选择驾意险
|
|
|
+let drivingShow = ref(false)
|
|
|
+let drivingRow = ref(0)
|
|
|
+const handleDriving = (scope) => {
|
|
|
+ drivingRow.value = scope.$index
|
|
|
+ drivingShow.value = true
|
|
|
+ nextTick(() => {
|
|
|
+ DrivingTypeRef.value.initEditData(scope.row.projectList[productIndex.value].drivingList, 0, insurancePolicyForm.value.order.insuranceCompanyCode)
|
|
|
+ })
|
|
|
+}
|
|
|
+const handleDrivingClose = (data) => {
|
|
|
+ if(data&&data.list.length>0) {
|
|
|
+ data.list.forEach(a => {
|
|
|
+ a.quantity = 1
|
|
|
+ })
|
|
|
+ quoteData.value[drivingRow.value].projectList[productIndex.value].drivings = [...data.list]
|
|
|
+ }
|
|
|
+ drivingShow.value = false
|
|
|
+}
|
|
|
+
|
|
|
+let productIndex = ref(0)
|
|
|
+const handleProduct = (e, index) => {
|
|
|
+ productIndex.value = index
|
|
|
+}
|
|
|
+
|
|
|
+// 报价历史
|
|
|
+let tableData = ref([
|
|
|
+ {
|
|
|
+ state: 1
|
|
|
+ },{
|
|
|
+ state: 2
|
|
|
+ }
|
|
|
+])
|
|
|
+
|
|
|
+// 分享
|
|
|
+let shareShow = ref(false)
|
|
|
+const handleShare = (scope) => {
|
|
|
+ shareShow.value = true
|
|
|
+}
|
|
|
+const handleSaveImage = () => {
|
|
|
+ shareShow.value = false
|
|
|
+}
|
|
|
+const handleCopyLink = () => {
|
|
|
+ shareShow.value = false
|
|
|
+}
|
|
|
+
|
|
|
+// 优惠测算
|
|
|
+let calculatingShow = ref(false)
|
|
|
+const handleCount = (scope) => {
|
|
|
+ calculatingShow.value = true
|
|
|
+}
|
|
|
+
|
|
|
+// 提交核保
|
|
|
+let underwritingShow = ref(false)
|
|
|
+const handleUnderwriting = (scope) => {
|
|
|
+ underwritingShow.value = true
|
|
|
+}
|
|
|
+const handleUnderwritingClose = () => {
|
|
|
+ underwritingShow.value = false
|
|
|
+}
|
|
|
+
|
|
|
+// 证件识别
|
|
|
+let imageShow = ref(false)
|
|
|
+const handleImageClose = (data) => {
|
|
|
+ imageShow.value = false
|
|
|
+ if(data) {
|
|
|
+ const { carForm, owerForm, ower1Form, ower2Form } = data
|
|
|
+ if(carForm) {
|
|
|
+ insurancePolicyForm.value.isRegistered = '1'
|
|
|
+ insurancePolicyForm.value.licenseNo = carForm.licenseNo
|
|
|
+ insurancePolicyForm.value.vinNo = carForm.vinNo
|
|
|
+ insurancePolicyForm.value.brandName = carForm.brandName
|
|
|
+ insurancePolicyForm.value.engineNo = carForm.engineNo
|
|
|
+ insurancePolicyForm.value.carNatureCode = carForm.carNatureCode
|
|
|
+ insurancePolicyForm.value.vehicleUseCode = carForm.vehicleUseCode
|
|
|
+ insurancePolicyForm.value.carTypeCode = carForm.carTypeCode
|
|
|
+ insurancePolicyForm.value.plateType = carForm.plateType
|
|
|
+ insurancePolicyForm.value.energyTypeCode = carForm.energyTypeCode
|
|
|
+ insurancePolicyForm.value.registerDate = carForm.registerDate
|
|
|
+ insurancePolicyForm.value.issueDate = carForm.issueDate
|
|
|
+ insurancePolicyForm.value.completeKerbMass = carForm.completeKerbMass
|
|
|
+ insurancePolicyForm.value.limitLoad = carForm.limitLoad
|
|
|
+ insurancePolicyForm.value.seatCount = carForm.seatCount
|
|
|
+ insurancePolicyForm.value.carYear = carForm.carYear
|
|
|
+ insurancePolicyForm.value.purchasePrice = carForm.purchasePrice
|
|
|
+ insurancePolicyForm.value.displacement = carForm.displacement
|
|
|
+ insurancePolicyForm.value.powerScale = carForm.powerScale
|
|
|
+ insurancePolicyForm.value.carOwner = carForm.carOwner
|
|
|
+ if(carForm.licenseNo&&carForm.vinNo&&carForm.engineNo) {
|
|
|
+ getQuoteNumber()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(owerForm) {
|
|
|
+ insurancePolicyForm.value.name1 = owerForm.name
|
|
|
+ insurancePolicyForm.value.mobile1 = owerForm.mobile
|
|
|
+ insurancePolicyForm.value.identifyType1 = owerForm.identifyType
|
|
|
+ insurancePolicyForm.value.identifyNumber1 = owerForm.identifyNumber
|
|
|
+ insurancePolicyForm.value.identifyValidDate1 = owerForm.identifyValidDate
|
|
|
+ insurancePolicyForm.value.identifyValidEndDate1 = owerForm.identifyValidEndDate
|
|
|
+ insurancePolicyForm.value.addr1 = owerForm.addr
|
|
|
+ insurancePolicyForm.value.telephone1 = owerForm.telephone
|
|
|
+ insurancePolicyForm.value.person1 = owerForm.person
|
|
|
+ insurancePolicyForm.value.age1 = owerForm.age
|
|
|
+ insurancePolicyForm.value.address1 = owerForm.address
|
|
|
+ insurancePolicyForm.value.registeredCapital1 = owerForm.registeredCapital
|
|
|
+ insurancePolicyForm.value.email1 = owerForm.email
|
|
|
+ }
|
|
|
+ if(ower1Form) {
|
|
|
+ insurancePolicyForm.value.name2 = ower1Form.name
|
|
|
+ insurancePolicyForm.value.mobile2 = ower1Form.mobile
|
|
|
+ insurancePolicyForm.value.identifyType2 = ower1Form.identifyType
|
|
|
+ insurancePolicyForm.value.identifyNumber2 = ower1Form.identifyNumber
|
|
|
+ insurancePolicyForm.value.identifyValidDate2 = ower1Form.identifyValidDate
|
|
|
+ insurancePolicyForm.value.identifyValidEndDate2 = ower1Form.identifyValidEndDate
|
|
|
+ insurancePolicyForm.value.addr2 = ower1Form.addr
|
|
|
+ insurancePolicyForm.value.telephone2 = ower1Form.telephone
|
|
|
+ insurancePolicyForm.value.person2 = ower1Form.person
|
|
|
+ insurancePolicyForm.value.age2 = ower1Form.age
|
|
|
+ insurancePolicyForm.value.address2 = ower1Form.address
|
|
|
+ insurancePolicyForm.value.registeredCapital2 = ower1Form.registeredCapital
|
|
|
+ insurancePolicyForm.value.email2 = ower1Form.email
|
|
|
+ }
|
|
|
+ if(ower2Form) {
|
|
|
+ insurancePolicyForm.value.name3 = ower2Form.name
|
|
|
+ insurancePolicyForm.value.mobile3 = ower2Form.mobile
|
|
|
+ insurancePolicyForm.value.identifyType3 = ower2Form.identifyType
|
|
|
+ insurancePolicyForm.value.identifyNumber3 = ower2Form.identifyNumber
|
|
|
+ insurancePolicyForm.value.identifyValidDate3 = ower2Form.identifyValidDate
|
|
|
+ insurancePolicyForm.value.identifyValidEndDate3 = ower2Form.identifyValidEndDate
|
|
|
+ insurancePolicyForm.value.addr3 = ower2Form.addr
|
|
|
+ insurancePolicyForm.value.telephone3 = ower2Form.telephone
|
|
|
+ insurancePolicyForm.value.person3 = ower2Form.person
|
|
|
+ insurancePolicyForm.value.age3 = ower2Form.age
|
|
|
+ insurancePolicyForm.value.address3 = ower2Form.address
|
|
|
+ insurancePolicyForm.value.registeredCapital3 = ower2Form.registeredCapital
|
|
|
+ insurancePolicyForm.value.email3 = ower2Form.email
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+const handleRecognition = () => {
|
|
|
+ imageShow.value = true
|
|
|
+}
|
|
|
+
|
|
|
+// 提交
|
|
|
+let loading = ref(false)
|
|
|
+const handleSubmit = async (InsurancePolicyRefs: FormInstance | undefined) => {
|
|
|
+ if(!InsurancePolicyRefs) {
|
|
|
+ InsurancePolicyRefs?.resetFields()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ await InsurancePolicyRefs.validate((valid) => {
|
|
|
+ if(valid) {
|
|
|
+ loading.value = true
|
|
|
+ let arr = [], brr = []
|
|
|
+ if(quoteData.value.length>0) {
|
|
|
+ let obj = quoteData.value.find(a => a.id === insurancePolicyForm.value.order.insuranceCompanyCode)
|
|
|
+ obj.projectList?.forEach(sub => {
|
|
|
+ sub.kinds?.forEach(max => {
|
|
|
+ arr.push(max)
|
|
|
+ })
|
|
|
+ sub.drivings?.forEach(max => {
|
|
|
+ brr.push(max)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ let data = {
|
|
|
+ systemType: '2',
|
|
|
+ order: {
|
|
|
+ insuranceCompanyCode: insurancePolicyForm.value.order.insuranceCompanyCode,
|
|
|
+ quoteNo: '340149409004261376'
|
|
|
+ },
|
|
|
+ productId: insurancePolicyForm.value.productId,
|
|
|
+ carInfoVo: {
|
|
|
+ licenseKindCode: '02',
|
|
|
+ propertyCode: insurancePolicyForm.value.propertyCode,
|
|
|
+ licenseNo: insurancePolicyForm.value.licenseNo,
|
|
|
+ vinNo: insurancePolicyForm.value.vinNo,
|
|
|
+ brandName: insurancePolicyForm.value.brandName,
|
|
|
+ engineNo: insurancePolicyForm.value.engineNo,
|
|
|
+ carNatureCode: insurancePolicyForm.value.carNatureCode,
|
|
|
+ vehicleUseCode: insurancePolicyForm.value.vehicleUseCode,
|
|
|
+ carTypeCode: insurancePolicyForm.value.carTypeCode,
|
|
|
+ energyTypeCode: insurancePolicyForm.value.energyTypeCode,
|
|
|
+ registerDate: insurancePolicyForm.value.registerDate,
|
|
|
+ issueDate: insurancePolicyForm.value.issueDate,
|
|
|
+ completeKerbMass: insurancePolicyForm.value.completeKerbMass,
|
|
|
+ limitLoad: insurancePolicyForm.value.limitLoad,
|
|
|
+ seatCount: insurancePolicyForm.value.seatCount,
|
|
|
+ carYear: insurancePolicyForm.value.carYear,
|
|
|
+ purchasePrice: insurancePolicyForm.value.purchasePrice,
|
|
|
+ displacement: insurancePolicyForm.value.displacement,
|
|
|
+ powerScale: insurancePolicyForm.value.powerScale,
|
|
|
+ },
|
|
|
+ ownersInfo: {
|
|
|
+ property: 1,
|
|
|
+ name: insurancePolicyForm.value.name1,
|
|
|
+ mobile: insurancePolicyForm.value.mobile1,
|
|
|
+ identifyType: insurancePolicyForm.value.identifyType1,
|
|
|
+ identifyNumber: insurancePolicyForm.value.identifyNumber1,
|
|
|
+ identifyValidDate: insurancePolicyForm.value.identifyValidDate1,
|
|
|
+ identifyValidEndDate: insurancePolicyForm.value.identifyValidEndDate1,
|
|
|
+ addr: insurancePolicyForm.value.addr1,
|
|
|
+ telephone: insurancePolicyForm.value.telephone1,
|
|
|
+ person: insurancePolicyForm.value.person1,
|
|
|
+ age: insurancePolicyForm.value.age1,
|
|
|
+ address: insurancePolicyForm.value.address1,
|
|
|
+ registeredCapital: insurancePolicyForm.value.registeredCapital1,
|
|
|
+ email: insurancePolicyForm.value.email1,
|
|
|
+ },
|
|
|
+ policyHolderInfo: {
|
|
|
+ property: 1,
|
|
|
+ name: insurancePolicyForm.value.name2,
|
|
|
+ mobile: insurancePolicyForm.value.mobile2,
|
|
|
+ identifyType: insurancePolicyForm.value.identifyType2,
|
|
|
+ identifyNumber: insurancePolicyForm.value.identifyNumber2,
|
|
|
+ identifyValidDate: insurancePolicyForm.value.identifyValidDate2,
|
|
|
+ identifyValidEndDate: insurancePolicyForm.value.identifyValidEndDate2,
|
|
|
+ addr: insurancePolicyForm.value.addr2,
|
|
|
+ telephone: insurancePolicyForm.value.telephone2,
|
|
|
+ person: insurancePolicyForm.value.person2,
|
|
|
+ age: insurancePolicyForm.value.age2,
|
|
|
+ address: insurancePolicyForm.value.address2,
|
|
|
+ registeredCapital: insurancePolicyForm.value.registeredCapital2,
|
|
|
+ email: insurancePolicyForm.value.email2,
|
|
|
+ },
|
|
|
+ insuredPersonInfo: {
|
|
|
+ property: 1,
|
|
|
+ name: insurancePolicyForm.value.name3,
|
|
|
+ mobile: insurancePolicyForm.value.mobile3,
|
|
|
+ identifyType: insurancePolicyForm.value.identifyType3,
|
|
|
+ identifyNumber: insurancePolicyForm.value.identifyNumber3,
|
|
|
+ identifyValidDate: insurancePolicyForm.value.identifyValidDate3,
|
|
|
+ identifyValidEndDate: insurancePolicyForm.value.identifyValidEndDate3,
|
|
|
+ addr: insurancePolicyForm.value.addr3,
|
|
|
+ telephone: insurancePolicyForm.value.telephone3,
|
|
|
+ person: insurancePolicyForm.value.person3,
|
|
|
+ age: insurancePolicyForm.value.age3,
|
|
|
+ address: insurancePolicyForm.value.address3,
|
|
|
+ registeredCapital: insurancePolicyForm.value.registeredCapital3,
|
|
|
+ email: insurancePolicyForm.value.email3,
|
|
|
+ },
|
|
|
+ ciRiskInfoVo: insurancePolicyForm.value.ciRiskInfoVo.startDate&&insurancePolicyForm.value.ciRiskInfoVo.endDate?insurancePolicyForm.value.ciRiskInfoVo: null,
|
|
|
+ biRiskInfoVo: insurancePolicyForm.value.biRiskInfoVo.startDate&&insurancePolicyForm.value.biRiskInfoVo.endDate?insurancePolicyForm.value.biRiskInfoVo: null,
|
|
|
+ vehicleAndVesselTaxVo: insurancePolicyForm.value.vehicleAndVesselTaxVo,
|
|
|
+ kindInfoVo: [...arr],
|
|
|
+ accidentalDrivings: [...brr]
|
|
|
+ }
|
|
|
+ api.insurancePolicyApi.quote(data).then((res: any) => {
|
|
|
+ if(res.code == 200) {
|
|
|
+ ElMessage({
|
|
|
+ message: res.msg,
|
|
|
+ type: 'success'
|
|
|
+ })
|
|
|
+ quoteData.value[drivingRow.value].quoteResult = res.data
|
|
|
+ loading.value = false
|
|
|
+ } else {
|
|
|
+ ElMessage({
|
|
|
+ message: res.msg,
|
|
|
+ type: 'warning'
|
|
|
+ })
|
|
|
+ loading.value = false
|
|
|
+ }
|
|
|
+ // InsurancePolicyRefs.resetFields()
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+// 获取保司
|
|
|
+const ruleFilterCompany = (item) => {
|
|
|
+ let data = {
|
|
|
+ productId: item.value,
|
|
|
+ carInfo: {
|
|
|
+ carOwner: insurancePolicyForm.value.carOwner,
|
|
|
+ licenseNo: insurancePolicyForm.value.licenseNo,
|
|
|
+ vinNo: insurancePolicyForm.value.vinNo,
|
|
|
+ brandName: insurancePolicyForm.value.brandName,
|
|
|
+ engineNo: insurancePolicyForm.value.engineNo,
|
|
|
+ carNatureCode: insurancePolicyForm.value.carNatureCode,
|
|
|
+ vehicleUseCode: insurancePolicyForm.value.vehicleUseCode,
|
|
|
+ carTypeCode: insurancePolicyForm.value.carTypeCode,
|
|
|
+ energyTypeCode: insurancePolicyForm.value.energyTypeCode,
|
|
|
+ registerDate: insurancePolicyForm.value.registerDate,
|
|
|
+ issueDate: insurancePolicyForm.value.issueDate,
|
|
|
+ completeKerbMass: insurancePolicyForm.value.completeKerbMass,
|
|
|
+ limitLoad: insurancePolicyForm.value.limitLoad,
|
|
|
+ seatCount: insurancePolicyForm.value.seatCount,
|
|
|
+ carYear: insurancePolicyForm.value.carYear,
|
|
|
+ purchasePrice: insurancePolicyForm.value.purchasePrice,
|
|
|
+ displacement: insurancePolicyForm.value.displacement,
|
|
|
+ powerScale: insurancePolicyForm.value.powerScale,
|
|
|
+ carKindCode: insurancePolicyForm.value.plateType
|
|
|
+ },
|
|
|
+ ownerInfo: {
|
|
|
+ name: insurancePolicyForm.value.name1,
|
|
|
+ mobile: insurancePolicyForm.value.mobile1,
|
|
|
+ identifyType: insurancePolicyForm.value.identifyType1,
|
|
|
+ identifyNumber: insurancePolicyForm.value.identifyNumber1,
|
|
|
+ identifyValidDate: insurancePolicyForm.value.identifyValidDate1,
|
|
|
+ identifyValidEndDate: insurancePolicyForm.value.identifyValidEndDate1,
|
|
|
+ addr: insurancePolicyForm.value.addr1,
|
|
|
+ telephone: insurancePolicyForm.value.telephone1,
|
|
|
+ person: insurancePolicyForm.value.person1,
|
|
|
+ age: insurancePolicyForm.value.age1,
|
|
|
+ address: insurancePolicyForm.value.address1,
|
|
|
+ registeredCapital: insurancePolicyForm.value.registeredCapital1,
|
|
|
+ email: insurancePolicyForm.value.email1,
|
|
|
+ },
|
|
|
+ applyInfo: {
|
|
|
+ name: insurancePolicyForm.value.name2,
|
|
|
+ mobile: insurancePolicyForm.value.mobile2,
|
|
|
+ identifyType: insurancePolicyForm.value.identifyType2,
|
|
|
+ identifyNumber: insurancePolicyForm.value.identifyNumber2,
|
|
|
+ identifyValidDate: insurancePolicyForm.value.identifyValidDate2,
|
|
|
+ identifyValidEndDate: insurancePolicyForm.value.identifyValidEndDate2,
|
|
|
+ addr: insurancePolicyForm.value.addr2,
|
|
|
+ telephone: insurancePolicyForm.value.telephone2,
|
|
|
+ person: insurancePolicyForm.value.person2,
|
|
|
+ age: insurancePolicyForm.value.age2,
|
|
|
+ address: insurancePolicyForm.value.address2,
|
|
|
+ registeredCapital: insurancePolicyForm.value.registeredCapital2,
|
|
|
+ email: insurancePolicyForm.value.email2,
|
|
|
+ },
|
|
|
+ insureInfo: {
|
|
|
+ name: insurancePolicyForm.value.name3,
|
|
|
+ mobile: insurancePolicyForm.value.mobile3,
|
|
|
+ identifyType: insurancePolicyForm.value.identifyType3,
|
|
|
+ identifyNumber: insurancePolicyForm.value.identifyNumber3,
|
|
|
+ identifyValidDate: insurancePolicyForm.value.identifyValidDate3,
|
|
|
+ identifyValidEndDate: insurancePolicyForm.value.identifyValidEndDate3,
|
|
|
+ addr: insurancePolicyForm.value.addr3,
|
|
|
+ telephone: insurancePolicyForm.value.telephone3,
|
|
|
+ person: insurancePolicyForm.value.person3,
|
|
|
+ age: insurancePolicyForm.value.age3,
|
|
|
+ address: insurancePolicyForm.value.address3,
|
|
|
+ registeredCapital: insurancePolicyForm.value.registeredCapital3,
|
|
|
+ email: insurancePolicyForm.value.email3,
|
|
|
+ },
|
|
|
+ }
|
|
|
+ api.insurancePolicyApi.ruleFilterCompany(data).then((res: any) => {
|
|
|
+ if(res.code == 200) {
|
|
|
+ quoteData.value = res.data
|
|
|
+ } else {
|
|
|
+ quoteData.value = []
|
|
|
+ ElMessage({
|
|
|
+ message: res.msg,
|
|
|
+ type: 'warning'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+onMounted(() => {
|
|
|
+ getAreaList()
|
|
|
+ initOption()
|
|
|
+})
|
|
|
+
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped lang="scss">
|
|
|
+@use "@/assets/styles/common/style";
|
|
|
+.insurancePolicy{
|
|
|
+ width: calc(100% - 48px);
|
|
|
+ height: calc(100vh - 128px);
|
|
|
+ margin: 10px 24px 0;
|
|
|
+ overflow-y: auto;
|
|
|
+ overflow-x: hidden;
|
|
|
+ .formItem{
|
|
|
+ padding: 24px;
|
|
|
+ background: #FFFFFF;
|
|
|
+ border-radius: 6px;
|
|
|
+ }
|
|
|
+ .title{
|
|
|
+ height: 18px;
|
|
|
+ border-left: 4px solid #00a0f4;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-start;
|
|
|
+ padding-left: 12px;
|
|
|
+ margin-left: 24px;
|
|
|
+ color: #333333;
|
|
|
+ font-size: 15px;
|
|
|
+ }
|
|
|
+ .icon{
|
|
|
+ padding-right: 24px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
+ .myIcon{
|
|
|
+ display: inline-block;
|
|
|
+ width: 14px;
|
|
|
+ height: 14px;
|
|
|
+ margin-right: 10px;
|
|
|
+ }
|
|
|
+ .icon-ele{
|
|
|
+ margin-left: 10px;
|
|
|
+ }
|
|
|
+ .ordinary{
|
|
|
+ height: 22px;
|
|
|
+ line-height: 22px;
|
|
|
+ padding: 0 10px;
|
|
|
+ border: 1px solid #EEEEEE;
|
|
|
+ border-radius: 2px;
|
|
|
+ color: #666666;
|
|
|
+ display: flex;
|
|
|
+ font-size: 12px;
|
|
|
+ margin: 0 5px;
|
|
|
+ }
|
|
|
+ .active{
|
|
|
+ border: 1px solid #0083FF;
|
|
|
+ color: #0083FF;
|
|
|
+ background: url("@/assets/images/additional/right.png") no-repeat right bottom;
|
|
|
+ background-size: 12px 12px;
|
|
|
+ }
|
|
|
+ .insurance-jq{
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-start;
|
|
|
+ margin: 10px 0 24px 24px;
|
|
|
+ .checkbox{
|
|
|
+ margin: 0 24px;
|
|
|
+ height: 22px;
|
|
|
+ line-height: 22px;
|
|
|
+ padding: 0 10px;
|
|
|
+ border: 1px solid #EEEEEE;
|
|
|
+ border-radius: 2px;
|
|
|
+ color: #666666;
|
|
|
+ display: flex;
|
|
|
+ font-size: 12px;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ .cehcked{
|
|
|
+ border: 1px solid #0083FF;
|
|
|
+ color: #0083FF;
|
|
|
+ background: url("@/assets/images/additional/right.png") no-repeat right bottom;
|
|
|
+ background-size: 12px 12px;
|
|
|
+ }
|
|
|
+ .time{
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-start;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .success{
|
|
|
+ color: #1DAEFF;
|
|
|
+ border: 1px solid #1DAEFF;
|
|
|
+ background: #E7F7FF;
|
|
|
+ padding: 2px 4px;
|
|
|
+ border-radius: 2px;
|
|
|
+ font-size: 12px;
|
|
|
+ }
|
|
|
+ .fail{
|
|
|
+ color: #FF4545;
|
|
|
+ border: 1px solid #FF4545;
|
|
|
+ background: #FFF4F4;
|
|
|
+ padding: 2px 4px;
|
|
|
+ border-radius: 2px;
|
|
|
+ font-size: 12px;
|
|
|
+ margin-right: 10px;
|
|
|
+ }
|
|
|
+ .company{
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ img{
|
|
|
+ width: 24px;
|
|
|
+ height: 24px;
|
|
|
+ margin-right: 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .resultItem{
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-start;
|
|
|
+ font-size: 12px;
|
|
|
+ .resultTips{
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-start;
|
|
|
+ background: #FFFAEF;
|
|
|
+ border: 1px solid #FAA21E;
|
|
|
+ border-radius: 2px;
|
|
|
+ padding: 0 4px;
|
|
|
+ font-size: 10px;
|
|
|
+ margin-left: 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .quoteFail{
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-start;
|
|
|
+ font-size: 12px;
|
|
|
+ }
|
|
|
+ .quoteReason{
|
|
|
+ text-align: left;
|
|
|
+ padding-left: 22px;
|
|
|
+ width: 100%;
|
|
|
+ display: -webkit-box; /* 必须设置,用于多行溢出 */
|
|
|
+ -webkit-box-orient: vertical; /* 设置盒子排列方向为垂直 */
|
|
|
+ -webkit-line-clamp: 2; /* 限制显示的行数,例如显示 3 行 */
|
|
|
+ overflow: hidden;
|
|
|
+ font-size: 12px;
|
|
|
+ }
|
|
|
+ .product{
|
|
|
+ .productItem{
|
|
|
+ border: 1px solid #E5E5E5;
|
|
|
+ font-size: 12px;
|
|
|
+ padding: 0 4px;
|
|
|
+ border-radius: 2px;
|
|
|
+ color: #666666;
|
|
|
+ cursor: pointer;
|
|
|
+ margin: 0 10px 0 0;
|
|
|
+ }
|
|
|
+ .productActive{
|
|
|
+ border: 1px solid #0083FF;
|
|
|
+ color: #0083FF;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .quoteTitle{
|
|
|
+ height: 14px;
|
|
|
+ border-left: 2px solid #00a0f4;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-start;
|
|
|
+ padding-left: 6px;
|
|
|
+ margin: 14px 0;
|
|
|
+ color: #333333;
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
+ .quoteFlex{
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ }
|
|
|
+ .imageCode{
|
|
|
+ height: 140px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ img{
|
|
|
+ width: 140px;
|
|
|
+ height: 140px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .expandFlex{
|
|
|
+ display: flex;
|
|
|
+ .expandTitle{
|
|
|
+ text-align: center;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ width: 40px;
|
|
|
+ padding: 0 8px;
|
|
|
+ margin: 0 10px 0 0;
|
|
|
+ background: #F6FBFF;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ :deep(.el-collapse-item__header) {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ }
|
|
|
+ :deep(.el-form-item) {
|
|
|
+ margin-bottom: 0;
|
|
|
+ }
|
|
|
+ .formBlock{
|
|
|
+ :deep(.el-form-item) {
|
|
|
+ display: block;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .factorTable{
|
|
|
+ .more{
|
|
|
+ border: 1px solid #0083FF;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ border-radius: 50%;
|
|
|
+ width: 12px;
|
|
|
+ height: 12px;
|
|
|
+ color: #0083FF;
|
|
|
+ font-size: 10px;
|
|
|
+ margin-left: 2px;
|
|
|
+ }
|
|
|
+ :deep(.cell) {
|
|
|
+ font-size: 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ :deep(thead .el-table__cell) {
|
|
|
+ background: #eeeeee;
|
|
|
+ }
|
|
|
+ .footer{
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ margin-top: 10px;
|
|
|
+ background: #FFFFFF;
|
|
|
+ padding: 16px 0;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|