소스 검색

Merge branch 'master' of http://www.baoxianzhanggui.com:8090/sxzgd/vue-insagent-pc

lihongxiao 2 년 전
부모
커밋
d77a023e0a
2개의 변경된 파일과 150개의 추가작업 그리고 42개의 파일을 삭제
  1. 128 28
      src/views/AgreementManage/CarInsurance/AgreementEntry.vue
  2. 22 14
      src/views/Letter/Letter.vue

+ 128 - 28
src/views/AgreementManage/CarInsurance/AgreementEntry.vue

@@ -1278,7 +1278,7 @@
           @click="submitForm">提交</el-button>
       </span>
     </el-dialog>
-    <el-dialog title="费用因子" :visible.sync="VehicleFactorVisible" :close-on-click-modal="false" width="50%">
+    <el-dialog title="费用因子" :visible.sync="VehicleFactorVisible" :close-on-click-modal="false" width="70%">
       <el-form ref="CostfactorForm" :model="CostfactorForm" label-width="100px" :size="overSize">
         <el-row>
           <el-col :span="6">
@@ -1313,7 +1313,8 @@
               </el-radio-group>
             </el-form-item>
           </el-col>
-
+        </el-row>
+        <el-row>
           <el-col :span="24">
             <el-form-item label="车辆大类">
               <el-checkbox-group v-model="vehicleCategoryList" @change="vehicleCategoryChange">
@@ -1326,6 +1327,8 @@
               </el-checkbox-group>
             </el-form-item>
           </el-col>
+        </el-row>
+        <el-row>
           <el-col :span="24">
             <el-form-item label="使用性质">
               <el-checkbox :indeterminate="isIndeterminateFyy" v-model="checkAllFyy" @change="handleCheckAllChangeFyy">非营业全选</el-checkbox>
@@ -1347,79 +1350,136 @@
               </el-checkbox-group>
             </el-form-item>
           </el-col>
-          <el-col :span="12">
+        </el-row>
+        <el-row>
+          <el-col :span="9" :offset="1">
             <el-form-item label="客车座位数">
               <el-input-number v-model="CostfactorForm.minSeats"></el-input-number>
               <i class="el-icon-minus"></i>
               <el-input-number v-model="CostfactorForm.maxSeats"></el-input-number>
             </el-form-item>
-            <el-form-item label="新车购置价">
-              <el-input-number v-model="CostfactorForm.minPurchasePrice"></el-input-number>
-              <i class="el-icon-minus"></i>
-              <el-input-number v-model="CostfactorForm.maxPurchasePrice"></el-input-number>
-            </el-form-item>
           </el-col>
-          <el-col :span="12">
+          <el-col :span="4">&nbsp;</el-col>
+          <el-col :span="10">
             <el-form-item label="货车吨位数">
               <el-input-number v-model="CostfactorForm.minTruckTonnage"></el-input-number>
               <i class="el-icon-minus"></i>
               <el-input-number v-model="CostfactorForm.maxTruckTonnage"></el-input-number>
             </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="9" :offset="1">
+            <el-form-item label="新车购置价">
+              <el-input-number v-model="CostfactorForm.minPurchasePrice"></el-input-number>
+              <i class="el-icon-minus"></i>
+              <el-input-number v-model="CostfactorForm.maxPurchasePrice"></el-input-number>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">&nbsp;</el-col>
+          <el-col :span="10">
             <el-form-item label="核定载质量">
               <el-input-number v-model="CostfactorForm.minApprovedLoadCapacity"></el-input-number>
               <i class="el-icon-minus"></i>
               <el-input-number v-model="CostfactorForm.maxApprovedLoadCapacity"></el-input-number>
             </el-form-item>
           </el-col>
-          <el-col :span="12">
+        </el-row>
+        <el-row>
+          <el-col :span="9" :offset="1">
             <el-form-item label="交强险保费">
               <el-input-number v-model="CostfactorForm.minCompulsoryInsurancePremium"></el-input-number>
               <i class="el-icon-minus"></i>
               <el-input-number v-model="CostfactorForm.maxCompulsoryInsurancePremium"></el-input-number>
             </el-form-item>
-            <el-form-item label="三者险保额">
-              <el-input-number v-model="CostfactorForm.minTheThreePremium"></el-input-number>
-              <i class="el-icon-minus"></i>
-              <el-input-number v-model="CostfactorForm.maxTheThreePremium"></el-input-number>
-            </el-form-item>
           </el-col>
-          <el-col :span="12">
+          <el-col :span="4">&nbsp;</el-col>
+          <el-col :span="10">
             <el-form-item label="车船税金额">
               <el-input-number v-model="CostfactorForm.minTaxAmount"></el-input-number>
               <i class="el-icon-minus"></i>
               <el-input-number v-model="CostfactorForm.maxTaxAmount"></el-input-number>
             </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row type="flex" justify="center">
+          <el-col :span="9" :offset="1">
+            <el-form-item label="车上人司机保额(万元)">
+              <el-input-number v-model="CostfactorForm.minDriverAmount"></el-input-number>
+              <i class="el-icon-minus"></i>
+              <el-input-number v-model="CostfactorForm.maxDriverAmount"></el-input-number>
+            </el-form-item>
+          </el-col>
+          <el-col :span="3" :offset="1">
+            <el-form-item label-width="0px">
+              <el-select v-model="CostfactorForm.driverPassengerRelation" :selected="0" style="width: 80%" >
+                <el-option label="无关系" value="0"></el-option>
+                <el-option label="或的关系" value="1"></el-option>
+                <el-option label="且的关系" value="2"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="10" >
+            <el-form-item label="车上人乘客保额(万元)">
+              <el-input-number v-model="CostfactorForm.minPassengerAmount"></el-input-number>
+              <i class="el-icon-minus"></i>
+              <el-input-number v-model="CostfactorForm.maxPassengerAmount"></el-input-number>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="9" :offset="1">
+            <el-form-item label="三者险保额(万元)">
+              <el-input-number v-model="CostfactorForm.minTheThreePremium"></el-input-number>
+              <i class="el-icon-minus"></i>
+              <el-input-number v-model="CostfactorForm.maxTheThreePremium"></el-input-number>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">&nbsp;</el-col>
+          <el-col :span="10">
             <el-form-item label="随车产品保费">
               <el-input-number v-model="CostfactorForm.minOnboardProductsPremium"></el-input-number>
               <i class="el-icon-minus"></i>
               <el-input-number v-model="CostfactorForm.maxOnboardProductsPremium"></el-input-number>
             </el-form-item>
           </el-col>
-          <el-col :span="12">
+        </el-row>
+        <el-row>
+          <el-col :span="9" :offset="1">
             <el-form-item label="商业险折扣">
               <el-input-number v-model="CostfactorForm.minCommercialInsuranceDiscount"></el-input-number>
               <i class="el-icon-minus"></i>
               <el-input-number v-model="CostfactorForm.maxCommercialInsuranceDiscount"></el-input-number>
             </el-form-item>
-            <el-form-item label="保司评分">
-              <el-input-number v-model="CostfactorForm.minScore"></el-input-number>
-              <i class="el-icon-minus"></i>
-              <el-input-number v-model="CostfactorForm.maxScore"></el-input-number>
-            </el-form-item>
           </el-col>
-          <el-col :span="12">
+          <el-col :span="4">&nbsp;</el-col>
+          <el-col :span="10">
             <el-form-item label="交强险折扣">
               <el-input-number v-model="CostfactorForm.minCompulsoryInsuranceDiscount"></el-input-number>
               <i class="el-icon-minus"></i>
               <el-input-number v-model="CostfactorForm.maxCompulsoryInsuranceDiscount"></el-input-number>
             </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="9" :offset="1">
+            <el-form-item label="保司评分">
+              <el-input-number v-model="CostfactorForm.minScore"></el-input-number>
+              <i class="el-icon-minus"></i>
+              <el-input-number v-model="CostfactorForm.maxScore"></el-input-number>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">&nbsp;</el-col>
+          <el-col :span="10">
             <el-form-item label="预期赔付率">
               <el-input-number v-model="CostfactorForm.minLossRation"></el-input-number>
               <i class="el-icon-minus"></i>
               <el-input-number v-model="CostfactorForm.maxLossRation"></el-input-number>
             </el-form-item>
           </el-col>
-          <el-col :span="12">
+        </el-row>
+        <el-row>
+          <el-col :span="9" :offset="1">
             <el-form-item label="车牌号">
               <el-select style="width: 80%;" v-model="value1" multiple placeholder="请选择" @change="licenseNumberChange">
                 <el-option v-for="item in areanumberplateList" :key="item.id" :label="item.license" :value="item.license">
@@ -1588,7 +1648,12 @@ export default {
         minLossRation: "",//预期赔付
         maxLossRation: "",
         licenseNumber: "",//车牌号
-        containNoLicense:""//含暂未上牌
+        containNoLicense:"",//含暂未上牌
+        minDriverAmount: "",//司机
+        maxDriverAmount: "",
+        minPassengerAmount: "",//乘客
+        maxPassengerAmount: "",
+        driverPassengerRelation: "",//司机乘客关联关系
       },
       value1: [],
       value2: [],
@@ -2537,6 +2602,7 @@ export default {
       if (this.operType == "ADD") {
         for (let key in this.CostfactorForm) {
           this.CostfactorForm[key] = ""
+          this.CostfactorForm.driverPassengerRelation="0";//关系默认无关系
         }
         this.vehicleCategoryList = [];
         this.checkedUserNatureFyy=[];
@@ -2586,18 +2652,52 @@ export default {
           this.isIndeterminateYy=false;
           this.checkAllYy=false;
         }
-
+        if(!item.driverPassengerRelation){
+          item.driverPassengerRelation="0"
+        }
         this.value1 = item.licenseNumber ? item.licenseNumber.split(",") : [];
         const {
-          transfer, newEnergy, oldAndNew, renewal, minSeats, maxSeats, minTruckTonnage, maxTruckTonnage, minPurchasePrice, maxPurchasePrice, minApprovedLoadCapacity, maxApprovedLoadCapacity, minCompulsoryInsurancePremium, maxCompulsoryInsurancePremium, minTaxAmount, maxTaxAmount, minTheThreePremium, maxTheThreePremium, minOnboardProductsPremium, maxOnboardProductsPremium, minCommercialInsuranceDiscount, maxCommercialInsuranceDiscount, minCompulsoryInsuranceDiscount, maxCompulsoryInsuranceDiscount, minScore, maxScore, minLossRation, maxLossRation,containNoLicense
+          transfer, newEnergy, oldAndNew, renewal, minSeats, maxSeats, minTruckTonnage, maxTruckTonnage, minPurchasePrice, maxPurchasePrice, minApprovedLoadCapacity, maxApprovedLoadCapacity, minCompulsoryInsurancePremium, maxCompulsoryInsurancePremium, minTaxAmount, maxTaxAmount, minTheThreePremium, maxTheThreePremium, minOnboardProductsPremium, maxOnboardProductsPremium, minCommercialInsuranceDiscount, maxCommercialInsuranceDiscount, minCompulsoryInsuranceDiscount, maxCompulsoryInsuranceDiscount, minScore, maxScore, minLossRation, maxLossRation,containNoLicense,minPassengerAmount,maxPassengerAmount,driverPassengerRelation,maxDriverAmount,minDriverAmount
         } = item;
         this.CostfactorForm = {
-          transfer, newEnergy, oldAndNew, renewal, minSeats, maxSeats, minTruckTonnage, maxTruckTonnage, minPurchasePrice, maxPurchasePrice, minApprovedLoadCapacity, maxApprovedLoadCapacity, minCompulsoryInsurancePremium, maxCompulsoryInsurancePremium, minTaxAmount, maxTaxAmount, minTheThreePremium, maxTheThreePremium, minOnboardProductsPremium, maxOnboardProductsPremium, minCommercialInsuranceDiscount, maxCommercialInsuranceDiscount, minCompulsoryInsuranceDiscount, maxCompulsoryInsuranceDiscount, minScore, maxScore, minLossRation, maxLossRation,containNoLicense
+          transfer, newEnergy, oldAndNew, renewal, minSeats, maxSeats, minTruckTonnage, maxTruckTonnage, minPurchasePrice, maxPurchasePrice, minApprovedLoadCapacity, maxApprovedLoadCapacity, minCompulsoryInsurancePremium, maxCompulsoryInsurancePremium, minTaxAmount, maxTaxAmount, minTheThreePremium, maxTheThreePremium, minOnboardProductsPremium, maxOnboardProductsPremium, minCommercialInsuranceDiscount, maxCommercialInsuranceDiscount, minCompulsoryInsuranceDiscount, maxCompulsoryInsuranceDiscount, minScore, maxScore, minLossRation, maxLossRation,containNoLicense,minPassengerAmount,maxPassengerAmount,driverPassengerRelation,maxDriverAmount,minDriverAmount
         }
       }
     },
 
     VehicleFactorsubmit() {//车辆因子暂存
+      //校验司乘保额关联关系值
+       let driverConfigFlag=false;//默认没有配置司机保额
+       let passengerConfigFlag=false;//默认没有配置乘客保额
+       if(this.CostfactorForm.minDriverAmount==0&&this.CostfactorForm.maxDriverAmount==0){
+         driverConfigFlag=false;
+       }else{
+         driverConfigFlag=true;
+       }
+      if(this.CostfactorForm.minPassengerAmount==0&&this.CostfactorForm.maxPassengerAmount==0){
+        passengerConfigFlag=false;
+      }else{
+        passengerConfigFlag=true;
+      }
+
+      if((driverConfigFlag&&!passengerConfigFlag)||(!driverConfigFlag&&passengerConfigFlag)){//如果仅配置了一个因子
+        if(this.CostfactorForm.driverPassengerRelation!=0){
+          this.$message({
+            message: '司机、乘客保额区间因子只配置一项,两者只能为无关系!',
+            type: 'error'
+          });
+          return false;
+        }
+      }else if(driverConfigFlag&&passengerConfigFlag){//如果2个因子都配置了
+        if(this.CostfactorForm.driverPassengerRelation==0){
+          this.$message({
+            message: '司机、乘客保额区间因子全部配置,两者不能为无关系!',
+            type: 'error'
+          });
+          return false;
+        }
+      }
+
       let key1 = this.VehicleFactorlineindex;
       let key2 = this.VehicleFactoroutindex;
       let item = this.costform.scheme[key1].productCosts[key2];

+ 22 - 14
src/views/Letter/Letter.vue

@@ -966,7 +966,7 @@
                     <el-select clearable v-model="accidentForm.accidentType" placeholder="选择类型" @clear="clearAccidentForm"
                       @change="ywxxxchange">
                       <el-option v-for="(item, index) in accidentDataList" :key="index" :label="item.name"
-                        :value="item.id"></el-option>
+                        :value="item.code"></el-option>
                     </el-select>
                   </el-form-item>
                   <el-form-item label="份数:" style="margin-right:30px;">
@@ -3800,17 +3800,28 @@ export default {
     },
     // 选择意外险类型
     async ywxxxchange(index) {
+      if(!index){
+        return
+      }
       this.accidentForm = Object.assign(
         this.accidentForm,
-        this.accidentDataList.find(val => val.id == index)
+        this.accidentDataList.find(val => val.code == index)
       );
       this.accidentForm.fen = "1";
-      this.accidentPremium = this.accidentForm.premium;
       this.accidentLoading = true;
       let data = await this.$api.letter.ycgainAccidentSchemeList({
-        accidentId: index
+        companyCode:this.accidentForm.companyId,
+        code:index,
+        agreementId:this.accidentForm.agreementId,
+        seatNum:Number(this.carInfo.seatCount)
       });
       if (data.code == 200) {
+        let num = 0;
+        data.data.forEach(item => {
+          num += Number(item.premium);
+        });
+        this.accidentPremium = num
+        this.accidentForm.premium = num
         this.accidentLoading = false;
         this.accidenttableData = data.data;
       }
@@ -3916,7 +3927,7 @@ export default {
       switch (item.namesimple) {
         case '永诚财险':
           this.accidentForm.agreementId = item.agreementId
-          this.$api.letter.ycgainAccidentList({ companyCode: item.id, agreementId: item.agreementId }).then(res => {
+          this.$api.letter.ycgainAccidentList({ companyCode: item.id, agreementId: item.agreementId,seatNum: Number(this.carInfo.seatCount) }).then(res => {
             if (res.code == 200) {
               this.accidentDataList = res.data;
             }
@@ -4049,7 +4060,7 @@ export default {
       switch (ins) {
         case '永诚财险':
           this.accidentForm.agreementId = this.totalCompanyList[index].agreement[0].id;
-          this.$api.letter.ycgainAccidentList({ companyCode: this.totalCompanyList[index].id, agreementId: this.totalCompanyList[index].agreement[0].id }).then(res => {
+          this.$api.letter.ycgainAccidentList({ companyCode: this.totalCompanyList[index].id, agreementId: this.totalCompanyList[index].agreement[0].id,seatNum: Number(this.carInfo.seatCount) }).then(res => {
             if (res.code == 200) {
               this.accidentDataList = res.data;
             }
@@ -4122,10 +4133,8 @@ export default {
 
     },
     clearAccidentForm() {
-      this.accidentForm = {
-        fen: "1",
-        premium:0
-      };
+      this.accidentForm.fen=1
+      this.accidentForm.premium=0
     },
     clearAccidentFormGr() {
       this.guoRenaccidenttableData=[],
@@ -4797,16 +4806,15 @@ export default {
       this.iscCrownerShow=false
       this.isInsuredShow=false
       this.isApplicantShow=false
-
       let accidentalDrivingVo = {};
-      if (this.accidentForm.id) {
+      if (this.accidentForm.code) {
         let data = this.accidentDataList.find(
-          val => val.id == this.accidentForm.accidentType
+          val => val.code == this.accidentForm.accidentType
         );
         accidentalDrivingVo = {
           rideRiskCode: data.code ? data.code : "",
           rideRiskName: data.name ? data.name : "",
-          quantity: this.accidentForm.fen ? this.accidentForm.fen : ""
+          quantity: this.accidentForm.fen ? this.accidentForm.fen : "",
         };
       }
       let params = {