瀏覽代碼

补录订单增加报价协议 对接人 是否现询 非现询费用
补录订单取入口 出口 加投 比例
补录订单实时计算费用

祁鹏飞 2 月之前
父節點
當前提交
7bafbffc9b
共有 3 個文件被更改,包括 81 次插入4 次删除
  1. 1 0
      src/api/modules/additional.ts
  2. 75 4
      src/views/additionalOrder/additional/index.vue
  3. 5 0
      src/views/insurancePolicy/index.vue

+ 1 - 0
src/api/modules/additional.ts

@@ -23,6 +23,7 @@ const additionalApi = (axiosInstance: ApiInstance) => ({
   updateOrders: (data: any) => axiosInstance.post('/supplementOrder/updateOrders', data), // 编辑
   getContactAgreement: (id: string) => axiosInstance.get(`agreement/getContactAgreement?companyId=${id}`), // 获取外部协议
   getCostExternalList: (data:any) => axiosInstance.post(`ptlAgreementCostExternal/costExternalList`,data), // 获取外部协议
+  cvalculateFees: (data:any) => axiosInstance.post(`/supplementOrder/cvalculateFees`,data), // 获取外部协议
   getContactAgreementCost: (data: { agreementId: string, productId: string, isInquiry: string | number }) => axiosInstance.get(`agreement/getContactAgreementCost?agreementId=${data.agreementId}&&productId=${data.productId}&&isInquiry=${data.isInquiry}`),
   // 权益相关接口
   getIPLocation: () => axiosInstance.get('https://ipapi.co/json/'), // ip定位查询

+ 75 - 4
src/views/additionalOrder/additional/index.vue

@@ -1240,7 +1240,7 @@
                   <el-radio-group v-model="additionalForm.productId">
                     <el-radio v-for="item in optionObj.insuranceType" :key="item.value" :value="item.value">{{
                       item.label
-                      }}</el-radio>
+                    }}</el-radio>
                   </el-radio-group>
                 </el-form-item>
                 <el-table :data="insuranceData">
@@ -1559,12 +1559,43 @@
               </el-col>
               <el-col :span="6">
                 <el-form-item class="p-l-24px" label="非现询费用" prop="">
-                  <el-select v-model="additionalForm.isxx" :disabled="additionalForm.isxx !== 0" placeholder="请选择" filterable>
-                    <el-option :value="1" label="是"></el-option>
-                    <el-option :value="0" label="否"></el-option>
+                  <el-select v-model="additionalForm.cost" :disabled="additionalForm.isxx !== 0" placeholder="请选择"
+                    filterable @change="cvalculateFees">
+                    <el-option v-for="item in costList" :key="item.id" :value="item.id"
+                      :label="item.productName"></el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
+              <el-col :span="6">
+                <el-form-item label="交强险总比例" prop="">
+                  <el-input-number v-model="additionalForm.jqInlet" :disabled="additionalForm.isxx === 0" class="w-100%"
+                    :precision="2" :min="1" :max="100" controls-position="right">
+                    <template #suffix>
+                      <span>%</span>
+                    </template>
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="商业险总比例" prop="">
+                  <el-input-number v-model="additionalForm.syInlet" :disabled="additionalForm.isxx === 0" class="w-100%"
+                    :precision="2" :min="1" :max="100" controls-position="right">
+                    <template #suffix>
+                      <span>%</span>
+                    </template>
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="驾意险总比例" prop="">
+                  <el-input-number v-model="additionalForm.jyInlet" :disabled="additionalForm.isxx === 0" class="w-100%"
+                    :precision="2" :min="1" :max="100" controls-position="right">
+                    <template #suffix>
+                      <span>%</span>
+                    </template>
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
             </el-row>
             <template #icon="{ isActive }">
               <span class="icon">
@@ -2847,6 +2878,10 @@ const handleSelectAgreement = (ptlAgreementId) => {
   })
 }
 
+const showCostList=computed(()=>{
+  if(additionalForm.value.productId) return costList.value.filter(v=>v.productId===additionalForm.value.productId)
+  return costList.value
+})
 // 根据对接人获取非现询费用
 let costList = ref([])
 const handleSelectPerson = (e) => {
@@ -2875,6 +2910,42 @@ const handleAgreementSelect = () => {
   })
 }
 
+
+// 根据协议获取费用
+const cvalculateFees = (e) => {
+  const { costExternalTypeAdds, productId } = costList.value.find(v => v.id === e)
+  additionalForm.value.productId = productId
+  const objInsurance = {
+    '交强险': 'jq',
+    '商业险': 'sy',
+    '驾意险': 'jy',
+  }
+  for (const key in objInsurance) {
+    const obj = costExternalTypeAdds.find(v => v.costType === key)
+    const element = objInsurance[key];
+    additionalForm.value[element + 'Inlet'] = obj?.inlet
+    additionalForm.value[element + 'AddThrow'] = obj?.addThrow
+    additionalForm.value[element + 'Export'] = obj?.export
+    additionalForm.value[element + 'KeepPointRatio'] = obj?.keepPointRatio
+  }
+  api.additionalApi.cvalculateFees({
+    agreementId: additionalForm.value.agreementId,
+    ...additionalForm.value,
+    // jqPremium: additionalForm.value.jqPremium,
+    // jyPremium: additionalForm.value.jyPremium,
+    // syPremium: additionalForm.value.syPremium,
+  }).then((res: any) => {
+    if (res.code == 200) {
+      detailData.value = res.data
+    } else {
+      ElMessage({
+        message: res.msg,
+        type: 'warning'
+      })
+    }
+  })
+}
+
 // 影像上传
 let uploadShow = ref(false)
 let fileList = ref([])

+ 5 - 0
src/views/insurancePolicy/index.vue

@@ -1543,6 +1543,7 @@ interface OptionItem {
 interface CarInfo {
   ratedPassengerCapacity: number; // 核定载客数
   modelName: string;              // 品牌型号
+  modelCode: string;              // 品牌型号
   marketYear: number;             // 年款
   replacementValue: number;       // 新车购置价
   displacement: number;           // 排量
@@ -1619,6 +1620,7 @@ const initDetail = () => {
       insurancePolicyForm.value.licenseNo = obj?.carInfoVo?.licenseNo
       insurancePolicyForm.value.vinNo = obj?.carInfoVo?.vinNo
       insurancePolicyForm.value.brandName = obj?.carInfoVo?.brandName
+      insurancePolicyForm.value.carModelNo = obj?.carInfoVo?.carModelNo
       insurancePolicyForm.value.engineNo = obj?.carInfoVo?.engineNo
       insurancePolicyForm.value.carNatureCode = obj?.carInfoVo?.carNatureCode
       insurancePolicyForm.value.vehicleUseCode = obj?.carInfoVo?.vehicleUseCode
@@ -2209,8 +2211,10 @@ const licenseNoDataCancel = () => {
 const licenseNoDataSubmit = () => {
   if (selectRowData.value && 'ratedPassengerCapacity' in selectRowData.value) {
     const carData = selectRowData.value as CarInfo;
+    console.log("🚀 ~ licenseNoDataSubmit ~ carData:", carData)
     insurancePolicyForm.value.seatCount = carData.ratedPassengerCapacity
     insurancePolicyForm.value.brandName = carData.modelName
+    insurancePolicyForm.value.carModelNo = carData.modelCode
     insurancePolicyForm.value.carYear = carData.marketYear
     insurancePolicyForm.value.purchasePrice = carData.replacementValue
     insurancePolicyForm.value.displacement = carData.displacement
@@ -3534,6 +3538,7 @@ const quoteInsurance = async (companyId: any, companyIndex: any, val: any) => {
       licenseNo: insurancePolicyForm.value.licenseNo,        // 车牌号
       vinNo: insurancePolicyForm.value.vinNo,                // 车架号
       brandName: insurancePolicyForm.value.brandName,        // 品牌型号
+      carModelNo: insurancePolicyForm.value.carModelNo,        // 品牌型号
       engineNo: insurancePolicyForm.value.engineNo,          // 发动机号
       carNatureCode: insurancePolicyForm.value.carNatureCode, // 使用性质代码
       vehicleUseCode: insurancePolicyForm.value.vehicleUseCode, // 车辆用途代码