소스 검색

增值服务自方案拆分

祁鹏飞 1 개월 전
부모
커밋
6c884d5d3b
1개의 변경된 파일42개의 추가작업 그리고 17개의 파일을 삭제
  1. 42 17
      src/views/insurancePolicy/index.vue

+ 42 - 17
src/views/insurancePolicy/index.vue

@@ -948,7 +948,7 @@
                     <el-row :gutter="20">
                       <el-col :span="12">
                         <div class="quoteTitle">方案明细</div>
-                        <el-table :data="scope.row.projectList?.[scope.row.productIndex]?.kinds">
+                        <el-table :data="filterKind(scope.row, 'quote')">
                           <el-table-column width="50" align="center"
                             v-if="scope.row.projectList?.[scope.row.productIndex]?.schemeType != '1'">
                             <template #header>
@@ -982,44 +982,46 @@
                             </template>
                           </el-table-column>
                         </el-table>
-                        <div class="quoteTitle"
-                          v-if="scope.row.projectList?.[scope.row.productIndex]?.rescue && scope.row.projectList?.[scope.row.productIndex]?.detection && scope.row.projectList?.[scope.row.productIndex]?.driver && scope.row.projectList?.[scope.row.productIndex]?.inspect">
+                        <div class="quoteTitle" v-if="filterKind(scope.row, 'noquote')">
                           增值服务</div>
-                        <el-row :gutter="20"
-                          v-if="scope.row.projectList?.[scope.row.productIndex]?.rescue && scope.row.projectList?.[scope.row.productIndex]?.detection && scope.row.projectList?.[scope.row.productIndex]?.driver && scope.row.projectList?.[scope.row.productIndex]?.inspect">
+                        <el-row :gutter="20" v-if="filterKind(scope.row, 'noquote')">
                           <el-col :span="6" class="quoteFlex">
                             救援
-                            <el-select v-model="scope.row.projectList[scope.row.productIndex].rescue"
-                              :disabled="scope.row.projectList?.[scope.row.productIndex]?.schemeType == '1'"
+                            <el-select v-model="filterKind(scope.row, 'TY1').amount"
+                              :disabled="scope.row.projectList?.[scope.row.productIndex]?.schemeType == '1' || !filterKind(scope.row, 'TY1')"
                               size="small" style="width: 80px; margin: 0 10px">
-                              <el-option label="1" value="1"></el-option>
+                              <el-option v-for="item in filterKind(scope.row, 'TY1').options" :label="item.label"
+                                :value="item.value"></el-option>
                             </el-select>
                           </el-col>
                           <el-col :span="6" class="quoteFlex">
                             检测
-                            <el-select v-model="scope.row.projectList[scope.row.productIndex].detection"
-                              :disabled="scope.row.projectList?.[scope.row.productIndex]?.schemeType == '1'"
+                            <el-select v-model="filterKind(scope.row, 'TY2').amount"
+                              :disabled="scope.row.projectList?.[scope.row.productIndex]?.schemeType == '1' || !filterKind(scope.row, 'TY2')"
                               size="small" style="width: 80px; margin: 0 10px">
-                              <el-option label="1" value="1"></el-option>
+                              <el-option v-for="item in filterKind(scope.row, 'TY2').options" :label="item.label"
+                                :value="item.value"></el-option>
                             </el-select>
                           </el-col>
                           <el-col :span="6" class="quoteFlex">
                             代驾
-                            <el-select v-model="scope.row.projectList[scope.row.productIndex].driver"
-                              :disabled="scope.row.projectList?.[scope.row.productIndex]?.schemeType == '1'"
+                            <el-select v-model="filterKind(scope.row, 'TY3').amount"
+                              :disabled="scope.row.projectList?.[scope.row.productIndex]?.schemeType == '1' || !filterKind(scope.row, 'TY3')"
                               size="small" style="width: 80px; margin: 0 10px">
-                              <el-option label="1" value="1"></el-option>
+                              <el-option v-for="item in filterKind(scope.row, 'TY3').options" :label="item.label"
+                                :value="item.value"></el-option>
                             </el-select>
                           </el-col>
                           <el-col :span="6" class="quoteFlex">
                             送检
-                            <el-select v-model="scope.row.projectList[scope.row.productIndex].inspect"
-                              :disabled="scope.row.projectList?.[scope.row.productIndex]?.schemeType == '1'"
+                            <el-select v-model="filterKind(scope.row, 'TY4').amount"
+                              :disabled="scope.row.projectList?.[scope.row.productIndex]?.schemeType == '1' || !filterKind(scope.row, 'TY4')"
                               size="small" style="width: 80px; margin: 0 10px">
-                              <el-option label="1" value="1"></el-option>
+                              <el-option v-for="item in filterKind(scope.row, 'TY4').options" :label="item.label"
+                                :value="item.value"></el-option>
                             </el-select>
                           </el-col>
@@ -3949,6 +3951,29 @@ const ruleFilterCompany = (item: any, obj: any) => {
   })
 }
 
+const filterKind = (row, key) => {
+  const kinds = row.projectList?.[row.productIndex]?.kinds ?? []
+  if (key === 'quote') {
+    return kinds.filter(v => !['TY1', 'TY2', 'TY3', 'TY4'].includes(v.kindCode))
+  }
+  if (key === 'noquote') {
+    return kinds.find(v => ['TY1', 'TY2', 'TY3', 'TY4'].includes(v.kindCode))
+  }
+  if (key === 'TY1') {
+    return kinds.find(v => ['TY1'].includes(v.kindCode))
+  }
+  if (key === 'TY2') {
+    return kinds.find(v => ['TY2'].includes(v.kindCode))
+  }
+  if (key === 'TY3') {
+    return kinds.find(v => ['TY3'].includes(v.kindCode))
+  }
+  if (key === 'TY4') {
+    return kinds.find(v => ['TY4'].includes(v.kindCode))
+  }
+  return []
+}
+
 const quotationRef = ref(null)
 const quotationObj = ref({})
 const handleQuotationView = (obj) => {