祁鹏飞 5 bulan lalu
induk
melakukan
f77e0c1003

+ 7 - 6
src/views/additionalOrder/additional/index.vue

@@ -1200,7 +1200,7 @@
                               <el-table-column label="保额">
                                   <template #default="scope">
                                       <el-select v-model="scope.row.amount" style="width: 150px">
-                                          <el-option v-for="(item, index) in scope.row.options" :label="item.label" :value="item.id"></el-option>
+                                          <el-option v-for="(item, index) in scope.row.options" :label="item.label" :value="item.value"></el-option>
                                       </el-select>
                                   </template>
                               </el-table-column>
@@ -1577,14 +1577,14 @@
                   </template>
                   <div style="width: 100%">
                       <el-form-item class="white-m-p24" label="交强保单">
-                          <el-upload v-if="!jqPolicy" :auto-upload="false" :show-file-list="false" accept=".png, .jpg, .jpeg, .pdf, .doc, .docx" @change="uploadImage($event, 4)">
+                          <el-upload v-if="!jqPolicy" :auto-upload="false" :show-file-list="false" accept=".pdf" @change="uploadImage($event, 4)">
                               <el-button link type="primary" icon="Upload">上传</el-button>
                           </el-upload>
                           <div class="fileInfo" v-else>
                               <img style="width: 40px; height: 40px" :src="jqPolicyName.includes('.png') || jqPolicyName.includes('.jpg') || jqPolicyName.includes('.jpeg')?image:jqPolicyName.includes('.pdf')?pdf:jqPolicyName.includes('.doc') || jqPolicyName.includes('.docx')?word:''" />
                               <div class="fileName">{{ jqPolicyName }}</div>
                               <div class="fileBtn">
-                                  <el-upload :auto-upload="false" :show-file-list="false" accept=".png, .jpg, .jpeg, .pdf, .doc, .docx" @change="uploadImage($event, 4)" style="display: flex; align-items: center">
+                                  <el-upload :auto-upload="false" :show-file-list="false" accept=".pdf" @change="uploadImage($event, 4)" style="display: flex; align-items: center">
                                       <el-icon class="btn-icon"><Upload /></el-icon>
                                   </el-upload>
                                   <el-icon class="btn-icon" @click="imageView(4)"><View /></el-icon>
@@ -1594,14 +1594,14 @@
                           </div>
                       </el-form-item>
                       <el-form-item class="white-m-p24" label="商业保单">
-                          <el-upload v-if="!syPolicy" :auto-upload="false" :show-file-list="false" accept=".png, .jpg, .jpeg, .pdf, .doc, .docx" @change="uploadImage($event, 5)">
+                          <el-upload v-if="!syPolicy" :auto-upload="false" :show-file-list="false" accept=".pdf" @change="uploadImage($event, 5)">
                               <el-button link type="primary" icon="Upload">上传</el-button>
                           </el-upload>
                           <div class="fileInfo" v-else>
                               <img style="width: 40px; height: 40px" :src="syPolicyName.includes('.png') || syPolicyName.includes('.jpg') || syPolicyName.includes('.jpeg')?image:syPolicyName.includes('.pdf')?pdf:syPolicyName.includes('.doc') || syPolicyName.includes('.docx')?word:''" />
                               <div class="fileName">{{ syPolicyName }}</div>
                               <div class="fileBtn">
-                                  <el-upload :auto-upload="false"  :show-file-list="false" accept=".png, .jpg, .jpeg, .pdf, .doc, .docx" @change="uploadImage($event, 5)" style="display: flex; align-items: center">
+                                  <el-upload :auto-upload="false"  :show-file-list="false" accept=".pdf" @change="uploadImage($event, 5)" style="display: flex; align-items: center">
                                       <el-icon class="btn-icon"><Upload /></el-icon>
                                   </el-upload>
                                   <el-icon class="btn-icon" @click="imageView(5)"><View /></el-icon>
@@ -3379,10 +3379,11 @@ let insuranceShow = ref(false)
 const handleInsurance = () => {
   insuranceShow.value = true
   nextTick(() => {
-    InsuranceSelectRef.value.initEditData()
+    InsuranceSelectRef.value.initEditData(insuranceData.value, additionalForm.value.productId)
   })
 }
 const handleInsuranceSelect = (data) => {
+  console.log("🚀 ~ handleInsuranceSelect ~ data:", data)
   insuranceShow.value = false
   let list = [...data.list]
   if(list && list.length > 0) {

+ 104 - 88
src/views/additionalOrder/additional/modules/insuranceSelect.vue

@@ -2,19 +2,34 @@
   <div class="insuranceSelect">
     <div class="insuranceList">
       <div class="insuranceLeft">
-        <div class="insuranceItem" v-for="(item, index) in insuranceTypeList" @click="handleType(item, index)">
-          <span class="checkIcon" :class="{ 'active': item.checked }">
+        <div
+          class="insuranceItem"
+          v-for="(item, index) in insuranceTypeList"
+          @click="handleType(item, index)"
+        >
+          <span class="checkIcon" :class="{ active: item.checked }">
             <el-icon><Select /></el-icon>
           </span>
           <span>{{ item.kindName }}</span>
         </div>
       </div>
-      <el-divider direction="vertical" style="height: 100%;"></el-divider>
-      <div class="insuranceRight" v-show="choiceItem.id === item.id" v-for="(item, index) in insuranceTypeList">
-        <p class="account" :class="{'active': sub.checked}" v-for="sub in item.options" @click="handleSubType(item, sub, index)">{{ sub.label }}</p>
+      <el-divider direction="vertical" style="height: 100%"></el-divider>
+      <div
+        class="insuranceRight"
+        v-show="choiceItem.id === item.id"
+        v-for="(item, index) in insuranceTypeList"
+      >
+        <p
+          class="account"
+          :class="{ active: sub.checked }"
+          v-for="sub in item.options"
+          @click="handleSubType(item, sub, index)"
+        >
+          {{ sub.label }}
+        </p>
       </div>
     </div>
-    <div class="footer" >
+    <div class="footer">
       <el-button plain @click="handleCancel">取消</el-button>
       <el-button type="primary" @click="handleConfirm">确定</el-button>
     </div>
@@ -22,25 +37,25 @@
 </template>
 
 <script setup lang="ts">
-import api from '@/api'
+import api from "@/api";
 import { ElMessage } from "element-plus";
 
 // emits
-const emits = defineEmits(['close'])
+const emits = defineEmits(["close"]);
 
 // 方案类型
-let insuranceType = ref(null)
+let insuranceType = ref(null);
 
 // 当前选择的险种
-let choiceItem = ref({})
+let choiceItem = ref({});
 // 初始化险种数据
-let insuranceTypeList = ref([])
-let typeList = ref([])
+let insuranceTypeList = ref([]);
+let typeList = ref([]);
 const handleType = (item, index) => {
-  choiceItem.value = item
-}
+  choiceItem.value = item;
+};
 // 投保金额选择
-const handleSubType =( item, sub, index) => {
+const handleSubType = (item, sub, index) => {
   // if(insuranceType.value === 1) {
   //   item.options.forEach(a => {
   //     a.checked = false
@@ -52,113 +67,114 @@ const handleSubType =( item, sub, index) => {
   //   let bool = item.options.some(a => a.checked)
   //   item.checked = bool
   // }
-  item.options.forEach(a => {
-    a.checked = false
-  })
-  sub.checked = true
-  item.checked = true
-}
+  item.options.forEach((a) => {
+    a.checked = false;
+  });
+  sub.checked = true;
+  item.checked = true;
+};
 
 // 取消
 const handleCancel = () => {
-  let list = [...insuranceTypeList.value]
-  let checkedList = list.filter(a => a.checked)
-  emits('close', {
-    list: checkedList
-  })
-}
+  let list = [...insuranceTypeList.value];
+  let checkedList = list.filter((a) => a.checked);
+  emits("close", {
+    list: checkedList,
+  });
+};
 // 保存
 const handleConfirm = () => {
-  let list = [...insuranceTypeList.value]
-  let checkedList = list.filter(a => a.checked)
-  emits('close', {
-    list: checkedList
-  })
-}
+  let list = [...insuranceTypeList.value];
+  let checkedList = list.filter((a) => a.checked);
+  emits("close", {
+    list: checkedList,
+  });
+};
 
 // 修改数据
 const initEditData = (data, type) => {
-  console.log('险种已选的数据', data)
-  insuranceType.value = type
+  console.log("险种已选的数据", data);
+  insuranceType.value = type;
   api.projectApi.getBusinessInsurance().then((res: any) => {
-    if(res.code == 200) {
-      if(res.data&&res.data.length>0) {
-        choiceItem.value = res.data[0]
-        res.data.forEach(item => {
-          item.checked = false
-          item.options.forEach(sub => {
-            sub.checked = false
-          })
-        })
-        typeList.value = JSON.parse(JSON.stringify(res.data))
-        if(data && data.length > 0) {
-          data.forEach(item => {
-              typeList.value.forEach(sub => {
-              if(item.id === sub.id) {
-                sub.checked = true
-                if(item.unitAmount) {
-                  sub.options.forEach(min => {
-                    if(min.value === item.unitAmount) {
-                      min.checked = true
+    if (res.code == 200) {
+      if (res.data && res.data.length > 0) {
+        choiceItem.value = res.data[0];
+        res.data.forEach((item) => {
+          item.checked = false;
+          item.options.forEach((sub) => {
+            sub.checked = false;
+          });
+        });
+        typeList.value = JSON.parse(JSON.stringify(res.data));
+        if (data && data.length > 0) {
+          data.forEach((item) => {
+            typeList.value.forEach((sub) => {
+              if (item.id === sub.id) {
+                sub.checked = true;
+                if (item.unitAmount) {
+                  sub.options.forEach((min) => {
+                    if (min.value === item.unitAmount) {
+                      min.checked = true;
                     }
-                  })
+                  });
                 } else {
-                  sub.options.forEach(min => {
-                    item.options.forEach(max => {
-                      if(min.id === max.id) {
-                        min.checked = true
+                  sub.options.forEach((min) => {
+                    item.options.forEach((max) => {
+                      if (max.id === min.id && max.checked) {
+                        min.checked = true;
                       }
-                    })
-                  })
+                    });
+                  });
                 }
               }
-            })
-          })
-          insuranceTypeList.value = typeList.value
-          console.log('回显的数据111', insuranceTypeList.value)
+            });
+          });
+          insuranceTypeList.value = typeList.value;
+          console.log("回显的数据111", insuranceTypeList.value);
         } else {
-          insuranceTypeList.value = res.data
-          console.log('回显的数据222', insuranceType.value)
+          insuranceTypeList.value = res.data;
+          console.log("回显的数据222", insuranceType.value);
         }
       }
     } else {
       ElMessage({
         message: res.msg,
-        type: 'warning'
-      })
+        type: "warning",
+      });
     }
-  })
-}
+  });
+};
 
 defineExpose({
-  initEditData
-})
+  initEditData,
+});
 </script>
 
 <style scoped lang="scss">
-.insuranceSelect{
+.insuranceSelect {
   height: 300px;
-  .insuranceList{
+  .insuranceList {
     height: calc(100% - 40px);
     overflow: hidden;
     display: flex;
     justify-content: space-between;
     margin-bottom: 10px;
-    .insuranceLeft, .insuranceRight{
+    .insuranceLeft,
+    .insuranceRight {
       height: 100%;
       overflow-y: auto;
     }
-    .insuranceLeft{
+    .insuranceLeft {
       width: calc(100% - 110px);
-      .insuranceItem{
+      .insuranceItem {
         cursor: pointer;
         display: flex;
         align-items: center;
         margin: 10px 0;
-        span{
+        span {
           margin-left: 10px;
         }
-        .checkIcon{
+        .checkIcon {
           width: 14px;
           height: 14px;
           display: flex;
@@ -169,25 +185,25 @@ defineExpose({
           font-size: 10px;
           color: #fff;
         }
-        .active{
+        .active {
           color: #fff;
-          background: #3994FB;
-          border-color: #3994FB;
+          background: #3994fb;
+          border-color: #3994fb;
         }
       }
     }
-    .insuranceRight{
+    .insuranceRight {
       width: 70px;
-      .account{
+      .account {
         text-align: center;
         cursor: pointer;
       }
-      .active{
-        color: #3994FB;
+      .active {
+        color: #3994fb;
       }
     }
   }
-  .footer{
+  .footer {
     display: flex;
     justify-content: center;
     align-items: center;

+ 30 - 3
src/views/operationManagement/channel.vue

@@ -45,17 +45,17 @@
             </template>
           </el-table-column>
           <el-table-column label="手机号" prop="mobile" width="150"></el-table-column>
-          <el-table-column label="工号" prop="workNumber" width="200"></el-table-column>
+          <el-table-column label="工号" prop="userId" width="200"></el-table-column>
           <el-table-column label="类型" prop="typeAttr" width="100">
             <template #default="scope">
-              {{ scope.row.typeAttr == '1'?'个代':scope.row.typeAttr == '3'?'渠道':scope.row.typeAttr == '2'?'团队':scope.row.typeAttr == '4'?'电销组': '' }}
+              {{ typeAttrMap(scope.row.typeAttr) }}
             </template>
           </el-table-column>
           <el-table-column label="归属" prop="deptName" width="200"></el-table-column>
           <el-table-column label="所属机构" prop="deptName" width="200"></el-table-column>
           <el-table-column label="人员状态" prop="status" width="150">
             <template #default="scope">
-              {{ scope.row.status == '0'?'待认证':scope.row.status == '1'?'已认证':scope.row.status == '2'?'待提交资料':scope.row.status == '3'?'已入职':'' }}
+              {{ statusMap(scope.row.status) || '--' }}
             </template>
           </el-table-column>
           <el-table-column label="账号状态" prop="isEnable" width="150">
@@ -179,6 +179,33 @@ const cascaderProps = {
     children: 'children'
 }
 let options = ref([])
+const typeAttrMap=(value)=>{
+  const map = {
+    "1": '前线人员',
+    "2": '后线人员',
+    "3": '合伙人',
+    "4": '工作是管理员',
+    "5": '团队',
+    "6": '个代',
+    "7": '渠道',
+    "8": '电销',
+  }
+  return map[value]
+}
+const statusMap = (value: any) => {
+  const map = {
+    "0": '未认证',
+    "1": '认证中',
+    "2": '认证失败',
+    "3": '待入职',
+    "4": '入司审核中',
+    "5": '入司审核失败',
+    "6": '已入职',
+    "7": '离职待审核',
+    "8": '离职',
+  }
+  return map[value]
+}
 // 获取机构数据
 const institutionList = () => {
   api.institutionApi.institutionList({ name: '', system: '' }).then(res => {

+ 2 - 2
src/views/operationManagement/operationDetail.vue

@@ -304,8 +304,8 @@ const typeAttrMap=(value)=>{
     "4": '工作是管理员',
     "5": '团队',
     "6": '个代',
-    "7": '电销',
-    "8": '渠道',
+    "7": '渠道',
+    "8": '电销',
   }
   return map[value]
 }

+ 2 - 2
src/views/operationManagement/team.vue

@@ -187,8 +187,8 @@ const typeAttrMap=(value)=>{
     "4": '工作是管理员',
     "5": '团队',
     "6": '个代',
-    "7": '电销',
-    "8": '渠道',
+    "7": '渠道',
+    "8": '电销',
   }
   return map[value]
 }

+ 1 - 1
src/views/quoteConfig/agreement/components/ruleFeeDialogEdit.vue

@@ -181,7 +181,7 @@ let RuleConditionRefs = ref()
 
 const props = defineProps<{
   ruleFeeVisible: boolean,
-  isHideFoot: {type:boolean,default:false},
+  isHideFoot: {type:boolean,default:false},  // 是否隐藏底部审核信息
   agreementInfo: any,//协议信息
   RulesInfo: any,//费用信息
   costitemEditInfo: any,//编辑回显数据