@dongkboy 4 месяцев назад
Родитель
Сommit
dd909936ea
1 измененных файлов с 109 добавлено и 57 удалено
  1. 109 57
      src/views/insurancePolicy/index.vue

+ 109 - 57
src/views/insurancePolicy/index.vue

@@ -292,8 +292,9 @@
               <el-form-item prop="identifyValidDate1" label="有效期起期">
                 <div id="identifyValidDate1" style="width: 100%">
                   <el-date-picker v-model="insurancePolicyForm.identifyValidDate1" type="date" placeholder="请选择"
-                  value-format="YYYY-MM-DD" style="width: 100%"
-                  @blur="(e: any) => insurancePolicyForm.identifyValidDate1 = changeDate(e)" @focus="inParkingDataFocus('identifyValidDate1', insurancePolicyForm.identifyValidDate1)" />
+                    value-format="YYYY-MM-DD" style="width: 100%"
+                    @blur="(e: any) => insurancePolicyForm.identifyValidDate1 = changeDate(e)"
+                    @focus="inParkingDataFocus('identifyValidDate1', insurancePolicyForm.identifyValidDate1)" />
                 </div>
 
               </el-form-item>
@@ -304,7 +305,8 @@
                 <div id="identifyValidEndDate1" style="width: 100%;display: flex;">
                   <el-date-picker v-model="insurancePolicyForm.identifyValidEndDate1" type="date" placeholder="请选择"
                     value-format="YYYY-MM-DD" style="width: calc(100% - 64px)"
-                    @blur="(e: any) => insurancePolicyForm.identifyValidEndDate1 = changeDate(e)" @focus="inParkingDataFocus('identifyValidEndDate1', insurancePolicyForm.identifyValidEndDate1)" />
+                    @blur="(e: any) => insurancePolicyForm.identifyValidEndDate1 = changeDate(e)"
+                    @focus="inParkingDataFocus('identifyValidEndDate1', insurancePolicyForm.identifyValidEndDate1)" />
                   <el-button type="primary" @click="longTime">长期</el-button>
                 </div>
               </el-form-item>
@@ -418,7 +420,7 @@
             <el-col :span="6">
               <el-form-item label="投保人手机号" prop="mobile2">
                 <el-input v-model="insurancePolicyForm.mobile2" placeholder="请输入投保人手机号" maxlength="11"
-                show-word-limit></el-input>
+                  show-word-limit></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="6">
@@ -445,8 +447,9 @@
               <el-form-item prop="identifyValidDate2" label="有效期起期">
                 <div id="identifyValidDate2" style="width: 100%">
                   <el-date-picker v-model="insurancePolicyForm.identifyValidDate2" type="date" placeholder="请选择"
-                  value-format="YYYY-MM-DD" style="width: 100%"
-                  @blur="(e: any) => insurancePolicyForm.identifyValidDate2 = changeDate(e)" @focus="inParkingDataFocus('identifyValidDate2', insurancePolicyForm.identifyValidDate2)" />
+                    value-format="YYYY-MM-DD" style="width: 100%"
+                    @blur="(e: any) => insurancePolicyForm.identifyValidDate2 = changeDate(e)"
+                    @focus="inParkingDataFocus('identifyValidDate2', insurancePolicyForm.identifyValidDate2)" />
                 </div>
               </el-form-item>
             </el-col>
@@ -454,8 +457,9 @@
               <el-form-item prop="identifyValidEndDate2" label="有效期止期">
                 <div id="identifyValidEndDate2" style="width: 100%">
                   <el-date-picker v-model="insurancePolicyForm.identifyValidEndDate2" type="date" placeholder="请选择"
-                  value-format="YYYY-MM-DD" style="width: 100%"
-                  @blur="(e: any) => insurancePolicyForm.identifyValidEndDate2 = changeDate(e)" @focus="inParkingDataFocus('identifyValidEndDate2', insurancePolicyForm.identifyValidEndDate2)" />
+                    value-format="YYYY-MM-DD" style="width: 100%"
+                    @blur="(e: any) => insurancePolicyForm.identifyValidEndDate2 = changeDate(e)"
+                    @focus="inParkingDataFocus('identifyValidEndDate2', insurancePolicyForm.identifyValidEndDate2)" />
                 </div>
               </el-form-item>
             </el-col>
@@ -589,8 +593,9 @@
               <el-form-item prop="identifyValidDate3" label="有效期起期">
                 <div id="identifyValidDate3" style="width: 100%">
                   <el-date-picker v-model="insurancePolicyForm.identifyValidDate3" type="date" placeholder="请选择"
-                  value-format="YYYY-MM-DD" style="width: 100%"
-                  @blur="(e: any) => insurancePolicyForm.identifyValidDate3 = changeDate(e)" @focus="inParkingDataFocus('identifyValidDate3', insurancePolicyForm.identifyValidDate3)" />
+                    value-format="YYYY-MM-DD" style="width: 100%"
+                    @blur="(e: any) => insurancePolicyForm.identifyValidDate3 = changeDate(e)"
+                    @focus="inParkingDataFocus('identifyValidDate3', insurancePolicyForm.identifyValidDate3)" />
                 </div>
               </el-form-item>
 
@@ -599,8 +604,9 @@
               <el-form-item prop="identifyValidEndDate3" label="有效期止期">
                 <div id="identifyValidEndDate3" style="width: 100%">
                   <el-date-picker v-model="insurancePolicyForm.identifyValidEndDate3" type="date" placeholder="请选择"
-                  value-format="YYYY-MM-DD" style="width: 100%"
-                  @blur="(e: any) => insurancePolicyForm.identifyValidEndDate3 = changeDate(e)" @focus="inParkingDataFocus('identifyValidEndDate3', insurancePolicyForm.identifyValidEndDate3)" />
+                    value-format="YYYY-MM-DD" style="width: 100%"
+                    @blur="(e: any) => insurancePolicyForm.identifyValidEndDate3 = changeDate(e)"
+                    @focus="inParkingDataFocus('identifyValidEndDate3', insurancePolicyForm.identifyValidEndDate3)" />
                 </div>
               </el-form-item>
             </el-col>
@@ -853,16 +859,18 @@
               <el-form-item prop="startDate" label="">
                 <div id="JQStartDate" style="width: 100%">
                   <el-date-picker v-model="insurancePolicyForm.JQStartDate" type="datetime" placeholder="请选择"
-                  value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" @change="jqChange"
-                  :disabled-date="disabledDate" @focus="inParkingDataFocus('JQStartDate', insurancePolicyForm.JQStartDate)" />
+                    value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" @change="jqChange"
+                    :disabled-date="disabledDate"
+                    @focus="inParkingDataFocus('JQStartDate', insurancePolicyForm.JQStartDate)" />
                 </div>
               </el-form-item>
               <span class="ml-5 mr-5">至</span>
               <el-form-item prop="endDate" label="">
                 <div id="JQEndDate" style="width: 100%">
                   <el-date-picker v-model="insurancePolicyForm.JQEndDate" type="datetime" placeholder="请选择"
-                  value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" @change="jqChange"
-                  :disabled-date="disabledDate" @focus="inParkingDataFocus('JQEndDate', insurancePolicyForm.JQEndDate)" />
+                    value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" @change="jqChange"
+                    :disabled-date="disabledDate"
+                    @focus="inParkingDataFocus('JQEndDate', insurancePolicyForm.JQEndDate)" />
                 </div>
               </el-form-item>
             </div>
@@ -876,16 +884,18 @@
               <el-form-item prop="startDate" label="">
                 <div id="SYStartDate" style="width: 100%">
                   <el-date-picker v-model="insurancePolicyForm.SYStartDate" type="datetime" placeholder="请选择"
-                  value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" @change="syChange"
-                  :disabled-date="disabledDate" @focus="inParkingDataFocus('SYStartDate', insurancePolicyForm.SYStartDate)" />
+                    value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" @change="syChange"
+                    :disabled-date="disabledDate"
+                    @focus="inParkingDataFocus('SYStartDate', insurancePolicyForm.SYStartDate)" />
                 </div>
               </el-form-item>
               <span class="ml-5 mr-5">至</span>
               <el-form-item prop="endDate" label="">
                 <div id="SYEndDate" style="width: 100%">
                   <el-date-picker v-model="insurancePolicyForm.SYEndDate" type="datetime" placeholder="请选择"
-                  value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" @change="syChange"
-                  :disabled-date="disabledDate" @focus="inParkingDataFocus('SYEndDate', insurancePolicyForm.SYEndDate)" />
+                    value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" @change="syChange"
+                    :disabled-date="disabledDate"
+                    @focus="inParkingDataFocus('SYEndDate', insurancePolicyForm.SYEndDate)" />
                 </div>
               </el-form-item>
             </div>
@@ -1164,7 +1174,8 @@
                 </div>
               </template>
               <template #default="scope">
-                <div class="result" v-if="currentRow.some((a: any) => a.id === scope.row.id) && !scope.row.loading || isViewSuccess">
+                <div class="result"
+                  v-if="currentRow.some((a: any) => a.id === scope.row.id) && !scope.row.loading || isViewSuccess">
                   <div class="resultItem">
                     <span v-if="scope.row.quoteResult?.costs?.sumPremium">总保费:{{
                       scope.row.quoteResult?.costs?.sumPremium }}</span>
@@ -1250,30 +1261,40 @@
               报价历史
             </span>
           </template>
-          <el-table :data="tableData" style="width: calc(100% - 48px); margin: 0 24px">
-            <el-table-column label="保险公司" prop="companyName"></el-table-column>
-            <el-table-column label="报价时间" prop="quoteTime"></el-table-column>
-            <el-table-column label="险种" prop="productName"></el-table-column>
-            <el-table-column label="状态" prop="orderStatusName">
+          <el-table :data="tableData" style="width: calc(100% - 48px); margin: 0 24px"
+          :header-cell-style="{ 'background-color': '#F7F7F9', 'color': '#333', 'font-weight': 'bold', 'fontSize': '16px', 'padding': '14px 0 '}">
+            <el-table-column label="保险公司" prop="companyName"  width="200"  align="center"></el-table-column>
+            <el-table-column label="报价时间" prop="quoteTime" width="200"></el-table-column>
+            <el-table-column label="险种" prop="productName" width="170" align="center"></el-table-column>
+            <el-table-column label="状态" prop="orderStatusName" width="200">
               <template #default="scope">
-                <span v-if="scope.row.orderStatusName == '报价成功'" class="success">报价成功</span>
-                <span v-if="scope.row.orderStatus == '6' || scope.row.orderStatus == '7'"
-                  style="display: flex; align-items: center">
-                  <span class="fail">{{ scope.row.orderStatusName }}</span>
-                  <el-tooltip class="box-item" effect="dark" :content="scope.row.errorMessage" placement="bottom">
-                    <el-icon style="color: #FF4545; font-size: 18px">
+                <div class="quote_success flex a-c " v-if="scope.row.orderStatusName == '报价成功'">
+                  <div class="dot"></div>
+                  <span class="text">报价成功</span>
+                </div>
+                <div class="quote_error flex a-c " v-if="scope.row.orderStatus == '6' || scope.row.orderStatus == '7'">
+                  <div class="dot"></div>
+                  <span class="text">报价失败</span>
+                  <el-tooltip style="width: 200px;" placement="right" popper-class="error-tooltip" :popper-style="{ 'background-color': 'rgba(0,0,0,0.65)','border':'none'}">
+                    <template #content>
+                      <div style="max-width: 400px;">{{ scope.row.errorMessage }}</div>
+                    </template>
+                    <el-icon style="color: #FF4545; font-size: 14px">
                       <Warning />
                     </el-icon>
                   </el-tooltip>
-                </span>
+                </div>
               </template>
             </el-table-column>
-            <el-table-column label="保费计算" prop="sumPremium"></el-table-column>
-            <el-table-column label="交强险" prop="jqPremium"></el-table-column>
-            <el-table-column label="商业险" prop="syPremium"></el-table-column>
-            <el-table-column label="驾意险" prop="jyPremium"></el-table-column>
-            <el-table-column label="操作">
+            <el-table-column label="保费总计" prop="sumPremium" width="130" align="right">
+            </el-table-column>
+            <el-table-column label="交强险" prop="jqPremium" width="130" align="right"></el-table-column>
+            <el-table-column label="商业险" prop="syPremium" width="130" align="right"></el-table-column>
+            <el-table-column label="驾意险" prop="jyPremium" width="130" align="right"></el-table-column>
+            <el-table-column label="操作" align="left"  fixed="right"  class-name="operation-column">
               <template #default="scope">
+                <el-button link type="primary" @click="toDetail(scope.row.orderNo)">详情</el-button>
+                <el-button link type="primary" @click="toDetail(scope.row.orderNo)">详情</el-button>
                 <el-button link type="primary" @click="toDetail(scope.row.orderNo)">详情</el-button>
                 <el-popover v-if="scope.row.orderStatus === '5'" :width="200" placement="bottom" trigger="click">
                   <template #reference>
@@ -1544,7 +1565,7 @@ const initDetail = () => {
       insurancePolicyForm.value.registeredCapital1 = obj?.ownersInfo?.registeredCapital
       insurancePolicyForm.value.email1 = obj?.ownersInfo?.email
       insurancePolicyForm.value.taxpayerName = obj?.vehicleAndVesselTaxVo?.taxpayerName || obj?.ownersInfo?.name
-      insurancePolicyForm.value.taxpayerIdentifier = obj?.vehicleAndVesselTaxVo?.taxpayerIdentifier || (obj?.ownersInfo?.identifyType? ('0' + obj.ownersInfo.identifyType) : '')
+      insurancePolicyForm.value.taxpayerIdentifier = obj?.vehicleAndVesselTaxVo?.taxpayerIdentifier || (obj?.ownersInfo?.identifyType ? ('0' + obj.ownersInfo.identifyType) : '')
       insurancePolicyForm.value.identifyNumber = obj?.vehicleAndVesselTaxVo?.identifyNumber || obj?.ownersInfo?.identifyNumber
       // 设置投保人信息
       insurancePolicyForm.value.name2 = obj?.policyHolderInfo?.name
@@ -2945,7 +2966,7 @@ const handleUnderwriting = (scope: any) => {
       })
 
     } else {
-      scope.row.loading=false
+      scope.row.loading = false
       ElMessage({
         message: res.msg,
         type: 'warning'
@@ -2972,7 +2993,7 @@ const historyhandleUnderwriting = (ordersNo: String, scope: any) => {
         UnderwritingRefs.value.initEdit(data)
       })
     } else {
-      scope.row.loading=false
+      scope.row.loading = false
       ElMessage({
         message: res.msg,
         type: 'warning'
@@ -3723,7 +3744,17 @@ onMounted(() => {
 })
 
 </script>
-
+<style>
+.error-tooltip .el-popper__arrow::before {
+  border-width: 5px !important;
+  border-color: rgba(0,0,0,0.65) !important;
+  background-color: transparent !important;
+}
+/* 表格列间距样式 */
+.operation-column {
+    padding-left: 40px !important;
+  }
+</style>
 <style scoped lang="scss">
 @use "@/assets/styles/common/style";
 
@@ -3827,25 +3858,42 @@ onMounted(() => {
     }
   }
 
-  .success {
-    color: #1DAEFF;
-    border: 1px solid #1DAEFF;
-    background: #E7F7FF;
-    padding: 2px 4px;
-    border-radius: 2px;
-    font-size: 12px;
+  .quote_success {
+    .dot {
+      width: 6px;
+      height: 6px;
+      background: #10AC42;
+      border-radius: 50%;
+      margin-right: 7px;
+    }
+
+    .text {
+      color: #10AC42;
+      font-size: 14px;
+    }
   }
 
-  .fail {
-    color: #FF4545;
-    border: 1px solid #FF4545;
-    background: #FFF4F4;
-    padding: 2px 4px;
-    border-radius: 2px;
-    font-size: 12px;
-    margin-right: 10px;
+  .quote_error {
+    .dot {
+      width: 6px;
+      height: 6px;
+      background: #FF4545;
+      border-radius: 50%;
+      margin-right: 7px;
+    }
+
+    .text {
+      color: #FF4545;
+      font-size: 14px;
+      margin-right: 10px;
+    }
+
+    .box-item {
+      width: 200px;
+    }
   }
 
+
   .company {
     display: flex;
     align-items: center;
@@ -4034,6 +4082,10 @@ onMounted(() => {
     justify-content: space-between;
   }
 
+  :deep(.el-popper) {
+    background: #fff;
+  }
+
   :deep(.el-form .el-form-item) {
     margin-bottom: 10px;
   }