Răsfoiți Sursa

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

lihongxiao 2 ani în urmă
părinte
comite
ea22153bfe
45 a modificat fișierele cu 2412 adăugiri și 1102 ștergeri
  1. 4 4
      src/components/Form/retrievalForm.vue
  2. 7 3
      src/components/customerService/modalDialog.vue
  3. 8 0
      src/http/moudules/insCompany.js
  4. 21 4
      src/http/moudules/task.js
  5. 21 22
      src/utils/websocket.js
  6. 47 22
      src/views/AgreementManage/CarInsurance/AgreementEntry.vue
  7. 110 81
      src/views/AgreementManage/InsuranceCompany/CargoTruck/BusinessOperation/Fuel/OptionalsolutionConfig.vue
  8. 110 81
      src/views/AgreementManage/InsuranceCompany/CargoTruck/BusinessOperation/NewEnergy/OptionalsolutionConfig.vue
  9. 110 81
      src/views/AgreementManage/InsuranceCompany/CargoTruck/NonBusiness/Fuel/OptionalsolutionConfig.vue
  10. 110 81
      src/views/AgreementManage/InsuranceCompany/CargoTruck/NonBusiness/NewEnergy/OptionalsolutionConfig.vue
  11. 110 81
      src/views/AgreementManage/InsuranceCompany/PassengerBus/BusinessOperation/Fuel/OptionalsolutionConfig.vue
  12. 110 81
      src/views/AgreementManage/InsuranceCompany/PassengerBus/BusinessOperation/NewEnergy/OptionalsolutionConfig.vue
  13. 110 81
      src/views/AgreementManage/InsuranceCompany/PassengerBus/NonBusiness/Fuel/OptionalsolutionConfig.vue
  14. 110 81
      src/views/AgreementManage/InsuranceCompany/PassengerBus/NonBusiness/NewEnergy/OptionalsolutionConfig.vue
  15. 3 4
      src/views/Core/components/detailsDialog.vue
  16. 13 10
      src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/DocumentaryFeesDetail.vue
  17. 41 1
      src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/HandlingFees.vue
  18. 478 283
      src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/DocumentaryFeesDetail.vue
  19. 42 1
      src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/HandlingFees.vue
  20. 73 33
      src/views/FinancialManagement/CarInsurance/PlatformSettlement/NonVehicleBalance.vue
  21. 641 0
      src/views/FinancialManagement/CarInsurance/PlatformSettlement/NonVehicleBalancestatus.vue
  22. 1 1
      src/views/FinancialManagement/ExpenseManagement/ViewExpenseReport.vue
  23. 1 1
      src/views/PeopleManage/Sales/SalesExamine.vue
  24. 1 1
      src/views/Task/AgentPoolChannel/AgentPoolChannel.vue
  25. 3 2
      src/views/Task/AgentPoolChannel/AgentPoolChannel1.vue
  26. 3 2
      src/views/Task/AgentPoolChannel/AgentPoolChannel2.vue
  27. 2 1
      src/views/Task/AgentPoolChannel/AgentPoolChannel3.vue
  28. 3 2
      src/views/Task/AgentPoolChannel/AgentPoolChannel4.vue
  29. 1 1
      src/views/Task/CompanyPoolChannel/CompanyPoolChannel.vue
  30. 3 2
      src/views/Task/CompanyPoolChannel/CompanyPoolChannel1.vue
  31. 3 1
      src/views/Task/CompanyPoolChannel/CompanyPoolChannel2.vue
  32. 2 1
      src/views/Task/CompanyPoolChannel/CompanyPoolChannel3.vue
  33. 3 2
      src/views/Task/CompanyPoolChannel/CompanyPoolChannel4.vue
  34. 3 2
      src/views/Task/ElectricSales/AgentPoolChannel.vue
  35. 3 2
      src/views/Task/ElectricSales/AgentPoolChannel1.vue
  36. 3 2
      src/views/Task/ElectricSales/AgentPoolChannel2.vue
  37. 2 1
      src/views/Task/ElectricSales/AgentPoolChannel3.vue
  38. 3 2
      src/views/Task/ElectricSales/AgentPoolChannel4.vue
  39. 1 1
      src/views/Task/TaskPoolChannel/TaskPoolChannel.vue
  40. 3 2
      src/views/Task/TaskPoolChannel/TaskPoolChannel1.vue
  41. 3 2
      src/views/Task/TaskPoolChannel/TaskPoolChannel2.vue
  42. 2 1
      src/views/Task/TaskPoolChannel/TaskPoolChannel3.vue
  43. 3 2
      src/views/Task/TaskPoolChannel/TaskPoolChannel4.vue
  44. 42 31
      src/views/Task/daikeComponents/KtOrder.vue
  45. 39 2
      src/views/Task/mixin.js

+ 4 - 4
src/components/Form/retrievalForm.vue

@@ -135,11 +135,11 @@ export default {
   },
   created() {
     this.fields.forEach((field) => {
-      if(this.dateType!="3"){
+      if(this.dateType=="1"){
         if (field.label === "报价时间" && !this.formData[field.list]) {
           this.$set(this.formData, field.list, [
-          '',
-            '',
+            this.currentDate,
+            this.currentDate,
           ]);
           this.$set(this.formData, field.name[0], '');
           this.$set(this.formData, field.name[1], '');
@@ -152,7 +152,7 @@ export default {
           this.$set(this.formData, field.name[0], '');
           this.$set(this.formData, field.name[1], '');
         }
-      }else{
+      }else if(this.dateType=="3"){
         if (field.label === "报价时间" && !this.formData[field.list]) {
           this.$set(this.formData, field.list, [
             '',

+ 7 - 3
src/components/customerService/modalDialog.vue

@@ -8,12 +8,12 @@
             <div class="flex f-c j-c" v-for="(item, index) in msgList" :key="index">
               <div class="flex f-c " v-if="!item.my">
                 <div class="flex j-c a-c">
-                  <span class="initTime flex j-c a-c">{{ item.initTime }}</span>
+                  <span class="initTime flex j-c a-c"> {{ item.initTime }}</span>
                 </div>
                 <div style="max-width: 350px;" class="flex">
                   <div class="conversationText flex j-s a-c">
                     <img v-if="index == 0" src="../../assets/customerService/customerService1.png" alt="">
-                    <span :style="{ marginLeft: index === 0 ? '60px' : '10px' }">{{ item.msg }}</span>
+                    <span :style="{ marginLeft: index === 0 ? '60px' : '10px' }">{{ item.msg }} </span>
                   </div>
                 </div>
               </div>
@@ -144,7 +144,7 @@ export default {
           messageObj.msg += text.charAt(index);
           index++;
           setTimeout(addCharacter, speed);
-        }else{
+        } else {
           this.msgGo();
         }
       };
@@ -218,7 +218,9 @@ export default {
       margin-bottom: 18px;
       position: relative;
       padding: 8px;
+      white-space: pre-wrap;
 
+      /* 保留换行符和空格 */
       span {
 
         font-size: 14px;
@@ -241,7 +243,9 @@ export default {
       border-radius: 4px;
       padding: 8px;
       margin-bottom: 18px;
+      white-space: pre-wrap;
 
+      /* 保留换行符和空格 */
       span {
         color: #FFFFFF;
         font-size: 14px;

+ 8 - 0
src/http/moudules/insCompany.js

@@ -50,6 +50,14 @@ export const findPage = (data) => {
     data
   })
 }
+//复制协议
+export const agreementCopy = (data) => {
+  return axios({
+    url: 'plt/agreement/agreementCopy',
+    method: 'post',
+    data
+  })
+}
 // 保存保险公司
 export const addCompany = (data) => {
   return axios({

+ 21 - 4
src/http/moudules/task.js

@@ -98,7 +98,7 @@ export const savePolicy = (data) => {
 //待核保/核保退回原因查看接口
 export const viewReason = (subNoOrder) => {
   return axios({
-    url: '/insurance/underwriting/cause/'+subNoOrder,
+    url: '/insurance/underwriting/cause/' + subNoOrder,
     method: 'get',
   })
 }
@@ -1068,9 +1068,9 @@ export const findPtlAgreementList = () => {
   })
 }
 // 后线人员协议配置-编辑回显协议列表
-export const findPtlAgreementListNew = () => {
+export const findPtlAgreementListNew = (data) => {
   return axios({
-    url: "/sysUserLinkPtlAgreement/findPtlAgreementListNew",
+    url: "/sysUserLinkPtlAgreement/findPtlAgreementListNew?type=" + data.type,
     method: "get",
   })
 }
@@ -1816,4 +1816,21 @@ export const orderDelete = (id) => {
     url: "/api/externalOrder/orderDelete?id=" + id,
     method: "get",
   })
-}
+}
+//平台结算情况列表
+export const PTAmountList = (data) => {
+  return axios({
+    url: "/fnc/plyFee/totalPTAmount",
+    method: "post",
+    data
+  })
+}
+//平台结算情况详情列表
+export const findListByDockingPerson = (data) => {
+  return axios({
+    url: "/fnc/plyFee/findListByDockingPerson",
+    method: "post",
+    data
+  })
+}
+

+ 21 - 22
src/utils/websocket.js

@@ -5,38 +5,38 @@ let messageCallback = null
 let errorCallback = null
 let wsUrl = process.env.SOCKET_Url
 let tryTime = 0
- 
+
 // 接收ws后端返回的数据
-function websocketonmessage (e) { 
+function websocketonmessage (e) {
   messageCallback(JSON.parse(e.data))
 }
- 
+
 /**
  * 发起websocket连接
  * @param {Object} agentData 需要向后台传递的参数数据
  */
 function websocketSend (agentData) {
-  // 加延迟是为了尽量让ws连接状态变为OPEN   
-  setTimeout(() => { 
+  // 加延迟是为了尽量让ws连接状态变为OPEN
+  setTimeout(() => {
     // 添加状态判断,当为OPEN时,发送消息
-    if (websock.readyState === websock.OPEN) { // websock.OPEN = 1 
+    if (websock.readyState === websock.OPEN) { // websock.OPEN = 1
       // 发给后端的数据需要字符串化
       websock.send(JSON.stringify(agentData))
     }
-    if (websock.readyState === websock.CLOSED) { // websock.CLOSED = 3 
+    if (websock.readyState === websock.CLOSED) { // websock.CLOSED = 3
       console.log('websock.readyState=3')
-      Message.error('ws连接异常,请稍候重试')
+      // Message.error('ws连接异常,请稍候重试')
       errorCallback()
     }
   }, 500)
 }
- 
+
 // 关闭ws连接
-function websocketclose (e) {  
+function websocketclose (e) {
   // e.code === 1000  表示正常关闭。 无论为何目的而创建, 该链接都已成功完成任务。
   // e.code !== 1000  表示非正常关闭。
   if (e && e.code !== 1000) {
-    Message.error('ws连接异常,请稍候重试')
+    // Message.error('ws连接异常,请稍候重试')
     errorCallback()
     // // 如果需要设置异常重连则可替换为下面的代码,自行进行测试
     // if (tryTime < 10) {
@@ -55,35 +55,35 @@ function websocketclose (e) {
 function websocketOpen (e) {
   // console.log('ws连接成功')
 }
- 
+
 // 初始化weosocket
-function initWebSocket () { 
+function initWebSocket () {
   if (typeof (WebSocket) === 'undefined') {
     Message.error('您的浏览器不支持WebSocket,无法获取数据')
     return false
   }
-  
+
   // const token = Cookies.get('token')
   // // ws请求完整地址
   // const requstWsUrl = wsUrl + '?' + token
   // websock = new WebSocket(requstWsUrl)
   websock = new WebSocket(wsUrl)
- 
+
   websock.onmessage = function (e) {
     websocketonmessage(e)
-  } 
+  }
   websock.onopen = function () {
     websocketOpen()
   }
   websock.onerror = function () {
-    Message.error('ws连接异常,请稍候重试')
+    // Message.error('ws连接异常,请稍候重试')
     errorCallback()
   }
   websock.onclose = function (e) {
     websocketclose(e)
-  } 
+  }
 }
- 
+
 /**
  * 发起websocket请求函数
  * @param {string} url ws连接地址
@@ -91,7 +91,7 @@ function initWebSocket () {
  * @param {function} successCallback 接收到ws数据,对数据进行处理的回调函数
  * @param {function} errCallback ws连接错误的回调函数
  */
-export function sendWebsocket (url, agentData, successCallback, errCallback) { 
+export function sendWebsocket (url, agentData, successCallback, errCallback) {
 
   wsUrl+=url
   initWebSocket()
@@ -99,7 +99,7 @@ export function sendWebsocket (url, agentData, successCallback, errCallback) {
   errorCallback = errCallback
   websocketSend(agentData)
 }
- 
+
 /**
  * 关闭websocket函数
  */
@@ -109,4 +109,3 @@ export function closeWebsocket () {
     websock.onclose() // 关闭websocket
   }
 }
- 

+ 47 - 22
src/views/AgreementManage/CarInsurance/AgreementEntry.vue

@@ -36,6 +36,8 @@
               </el-select>
             </el-form-item>
           </el-col>
+        </el-row>
+        <el-row>
           <el-col :span="6">
             <el-form-item label="是否外部订单">
               <el-select :size="overSize" v-model="queryForm.isExternal" placeholder="请选择" clearable style="width: 100%">
@@ -55,7 +57,8 @@
           </el-col>
           <el-col :span="6">
             <el-form-item label="审核方式">
-              <el-select :size="overSize" v-model="queryForm.auditType" placeholder="请选择审核方式" style="width: 100%">
+              <el-select :size="overSize" v-model="queryForm.auditType" clearable placeholder="请选择审核方式"
+                style="width: 100%">
                 <el-option label="人工审核" :value="1"></el-option>
                 <el-option label="自动审核" :value="2"></el-option>
               </el-select>
@@ -69,6 +72,8 @@
               </el-date-picker>
             </el-form-item>
           </el-col>
+        </el-row>
+        <el-row>
           <el-col :span="6">
             <el-form-item label="录入人">
               <el-input :size="overSize" clearable v-model.trim="queryForm.creator" placeholder="请输入录入人"></el-input>
@@ -155,6 +160,13 @@
                 scope.row.auditType == '1' ? "人工审核" : "自动审核" }}</span>
           </template>
         </el-table-column>
+        <el-table-column prop="isValid" label="是否有效" align="center" width="100">
+          <template slot-scope="scope">
+            <span
+              :style="{ background: scope.row.isValid == '1' ? 'linear-gradient( 180deg, #66CDBB 0%, #33A08D 100%)' : '#A6A6A6', borderRadius: '4px', padding: '4px 10px', color: '#fff' }">{{
+                scope.row.isValid == '1' ? "有效" : "无效" }}</span>
+          </template>
+        </el-table-column>
         <!-- <el-table-column prop="auditStatus" label="状态" align="center">
           <template slot-scope="scope">
             <span :style="'color:' + agreestatusStyle(scope.row.auditStatus)">
@@ -173,10 +185,13 @@
         <el-table-column prop="modifiedName" label="修改人" align="center" width="130"></el-table-column>
         <el-table-column label="操作" align="center" width="200" fixed="right">
           <template slot-scope="scope">
+            <kt-button label="复制协议" :size="overSize" type="text" perms="agreement:input:update"
+              @click="agreementCopy(scope.$index, scope.row)" style="color: #2D4D89 !important " />
             <kt-button label="编辑" :size="overSize" type="text" perms="agreement:input:update"
               @click="uplatequery(scope.$index, scope.row)" style="color: #2D4D89 !important " />
             <kt-button label="删除" :size="overSize" type="text" perms="agreement:input:delete"
               @click="deletequery(scope.$index, scope.row)" style="color: #D42426 !important " />
+
             <!-- <el-button type="text" size="mini">
               <el-dropdown trigger="click">
                 <span class="el-dropdown-link" style="font-size: 12px">
@@ -396,16 +411,6 @@
                   </el-form-item>
                 </el-col>
 
-                <el-col :span="12">
-                  <el-form-item label="险种组合类">
-                    <el-select v-model="productFilterList" multiple placeholder="选择险种" style="width: 100%"
-                      @change="productFilterListChange">
-                      <el-option v-for="item in productsTypeoptions" :key="item.dictValue" :label="item.dictTag"
-                        :value="item.dictValue"></el-option>
-                    </el-select>
-                  </el-form-item>
-                </el-col>
-
                 <el-col :span="12">
                   <el-form-item label="序号" prop="serialNumber">
                     <el-input-number :min="0" v-model="agreement.serialNumber"></el-input-number>
@@ -1118,16 +1123,6 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-              <el-col :span="12">
-                <el-form-item label="险种组合类">
-                  <el-select v-model="productFilterList" multiple placeholder="选择险种" style="width: 100%"
-                    @change="productFilterListChange">
-                    <el-option v-for="item in productsTypeoptions" :key="item.dictValue" :label="item.dictTag"
-                      :value="item.dictValue"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-
               <el-col :span="12">
                 <el-form-item label="序号" prop="serialNumber">
                   <el-input-number :min="0" v-model="agreementsHistoryInfo.agreement.serialNumber"></el-input-number>
@@ -2296,7 +2291,6 @@ export default {
       approvalStatusoptions: [], //审批状态
       productsTypeoptions: [], //车险产品字典
       productsTypeRuleoptions: [], //车险产品字典(不含费用的兜底配置)
-      InsInsuranceKindoptions: [],//险种组合类
       natureOfVehicleUseoptions: [],//车辆使用性质
 
       //操作符字典
@@ -3352,6 +3346,37 @@ export default {
         this.dept.push(ele);
       });
     },
+    //协议复制
+    agreementCopy(index, row) {
+      this.$confirm("复制该条协议, 是否继续?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          this.$api.insCompany.agreementCopy({ id: row.id }).then((res) => {
+            if (res.code == '200') {
+              this.$message({
+                type: 'success',
+                message: res.msg,
+              });
+              this.findPage();
+            } else {
+              this.$message({
+                type: 'error',
+                message: res.msg,
+              });
+            }
+          });
+        })
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "已取消",
+          });
+        });
+
+    },
     //编辑事件
     uplatequery(index, row) {
       //每次修改时,先把变量清空,解决累加存储问题

+ 110 - 81
src/views/AgreementManage/InsuranceCompany/CargoTruck/BusinessOperation/Fuel/OptionalsolutionConfig.vue

@@ -97,46 +97,67 @@
           <div>
             <div class="flex j-s a-c">
               <h4>驾意险方案配置</h4>
+              <el-button type="primary" size="small" @click="drvingadd">新增</el-button>
             </div>
-            <div class="flex j-start ">
-              <div class="Risk" style="margin-right: 30px;">
-                <section class="flex j-s a-c ">
-                  <div class=" flex a-c">
-                    <el-checkbox v-model="DriveSelectAll" style="margin-right: 20px;"
-                      @input="DriveSelectAllInput"></el-checkbox>
-                    <span class="flex j-start">全部意外险</span>
-                  </div>
-                  <span class="flex j-end">操作</span>
-                </section>
-                <div style="max-height: 400px;overflow-y: auto;">
-                  <main class="flex j-s a-c" v-for="(filteredInsureitem, filteredInsureindex) in drvingIntentionsList"
-                    :key="filteredInsureindex">
-                    <div>
-                      <el-checkbox v-model="filteredInsureitem.switch" style="margin-right: 20px;"></el-checkbox>
-                      <span>{{ filteredInsureitem.projectName }}</span>
+            <div class="flex f-c " style="margin-bottom: 20px;"
+              v-for="(drvingListitem, drvingListindex) in CustomPlanData.drvingList" :key="drvingListindex">
+              <div class="flex a-c">
+                <span>座位数:</span>
+                <el-input-number size="small" style="width:150px; margin-bottom: 10px;" v-model="drvingListitem.seatNum"
+                  :min="1"></el-input-number>
+              </div>
+              <div class="flex j-start ">
+                <div class="Risk" style="margin-right: 30px;">
+                  <section class="flex j-s a-c ">
+                    <div class=" flex a-c">
+                      <span class="flex j-start">全部意外险</span>
                     </div>
-                    <span style="color: #2D4D89;cursor: pointer;" @click="Drivedetails(filteredInsureitem)">详情</span>
-                  </main>
+                    <span class="flex j-end">操作</span>
+                  </section>
+                  <div style="max-height: 400px;overflow-y: auto;">
+                    <main class="flex j-s a-c"
+                      v-for="(undrvingListitem, undrvingListindex) in drvingListitem.undrvingList"
+                      :key="undrvingListindex">
+                      <div class="flex f-c ">
+                        <div style="width: 100%;">
+                          <el-checkbox v-model="undrvingListitem.switch" style="margin-right: 20px;"></el-checkbox>
+                          <span>{{ undrvingListitem.projectName }}</span>
+                          <span style="color: #2D4D89;cursor: pointer;text-align: right;"
+                            @click="Drivedetails(undrvingListitem)">详情</span>
+                        </div>
+                        <template v-if="undrvingListitem.switch">
+                          <div v-for="(Insurancesitem, Insurancesindex) in undrvingListitem.insDrivingIntentionInsurances"
+                            class="p-1 flex a-c j-start" :key="Insurancesindex" style="width: 100%;margin-left: 40px;">
+                            <el-checkbox v-model="Insurancesitem.switch"
+                              @change="event => drvingcheckboxChange(event, drvingListindex, Insurancesitem)"
+                              style="margin-right: 20px;"></el-checkbox>
+                            <div>{{ Insurancesitem.projectName }}</div>
+                          </div>
+                        </template>
+                      </div>
+                    </main>
+                  </div>
                 </div>
-
-              </div>
-              <div class="Risk">
-                <section class="flex j-s a-c ">
-                  <div class=" flex a-c">
-                    <span class="flex j-start">已选意外险</span>
+                <div class="Risk">
+                  <section class="flex j-s a-c ">
+                    <div class=" flex a-c">
+                      <span class="flex j-start">已选意外险</span>
+                    </div>
+                    <span class="flex j-end">操作</span>
+                  </section>
+                  <div style="max-height: 400px;overflow-y: auto;">
+                    <main class="flex j-s a-c" v-for="(isOptionstitem, isOptionsindex) in drvingListitem.isOptions"
+                      :key="isOptionsindex">
+                      <div class="flex f-c " style="width: 100%;">
+                        <h5>{{ isOptionstitem.title }}</h5>
+                        <div class="flex a-c j-c">
+                          <span style="width: 50px;">别名: </span>
+                          <el-input v-model="isOptionstitem.projectName" size="small" clearable
+                            placeholder="请输入别名"></el-input>
+                        </div>
+                      </div>
+                    </main>
                   </div>
-                  <span class="flex j-end">操作</span>
-                </section>
-                <div style="max-height: 400px;overflow-y: auto;">
-                  <main class="flex j-s a-c"
-                    v-for="(drvingIntentionsListitem, fdrvingIntentionsListindex) in drvingIntentionsfilter"
-                    :key="fdrvingIntentionsListindex">
-                    <span>{{ drvingIntentionsListitem.projectName }}</span>
-                    <span class="flex j-end">
-                      <i class="el-icon-delete" style="font-size: 20px;"
-                        @click="InsureDel(drvingIntentionsListitem.id)"></i>
-                    </span>
-                  </main>
                 </div>
               </div>
             </div>
@@ -178,7 +199,6 @@ export default {
   },
   data() {
     return {
-      DriveSelectAll: false,
       customsolutionVisible: false,
       insDrivingIntentionInsuranceSondialogVisible: false,
       overSize: "small",
@@ -189,7 +209,11 @@ export default {
         schemeName: "自选方案",
         description: "",
         kinds: [],
-        drvingIntentions: [],
+        drvingList: [{
+          seatNum: 1,
+          undrvingList: [],
+          isOptions: []
+        }],
       },
       productsTypeoptions: [],
       companyId: "",
@@ -217,23 +241,36 @@ export default {
     this.getDicType("productsType"); //车险产品
     this.Insurance();
     this.drvingget();
-
   },
   // 方法函数
   methods: {
-    customsolutioncloseDialog() {
-      for (const key in this.CustomPlanData) {
-        if (key !== "companyId" && key !== 'kinds' && key !== 'schemeName') {
-          this.CustomPlanData[key] = "";
-        }
+    drvingcheckboxChange(e, drvingListindex, Insurancesitem) {
+      if (e) {
+        this.CustomPlanData.drvingList[drvingListindex].isOptions.push({
+          title: Insurancesitem.projectName,
+          id: Insurancesitem.id,//id
+          projectName: Insurancesitem.projectName,
+        })
+      } else {
+        let list = this.CustomPlanData.drvingList[drvingListindex].isOptions.filter(val => val.id !== Insurancesitem.id)
+        this.CustomPlanData.drvingList[drvingListindex].isOptions = list;
       }
-      this.CustomPlanData.kinds = JSON.parse(localStorage.getItem("InsuranceList"));
-      this.drvingIntentionsList = JSON.parse(localStorage.getItem("drvingIntentionsList"));
+    },
+    drvingadd() {
+      let list = JSON.parse(JSON.stringify(this.drvingIntentionsList));
+      this.CustomPlanData.drvingList.push({
+        seatNum: 1,
+        undrvingList: list,
+        isOptions: []
+      })
+    },
+    customsolutioncloseDialog() {
+      this.CustomPlanData = JSON.parse(localStorage.getItem("CustomPlanData"));
     },
     customsolutionUpdate({ row, column }) {
       this.customsolutionType = 'edit';
       this.customsolutionTitle = '自选方案修改';
-      this.$api.insCompany.optionalSchemeInfo(row.companyId, row.productId,'01',"A1","0").then((res) => {
+      this.$api.insCompany.optionalSchemeInfo(row.companyId, row.productId, "01", 'A1', '0').then((res) => {
         if (res.code == '200') {
           res.data.kinds.map(val => {
             if (val.amount.length > 0) {
@@ -253,13 +290,22 @@ export default {
             }
             return val;
           })
-          res.data.drvingIntentions.map(val => {
-            this.drvingIntentionsList.map(insureitem => {
-              if (val == insureitem.id) {
-                insureitem.switch = true;
-              }
-              return insureitem
-            });
+          res.data.drvingList.map(val => {
+            const list = val.isOptions.map(item => { return item.id });
+            val.undrvingList.map(undrvingList => {
+              undrvingList.switch = false;
+              undrvingList.insDrivingIntentionInsurances.map(Insurances => {
+                if (list.includes(Insurances.id)) {
+                  undrvingList.switch = true;
+                  Insurances.switch = true
+                } else {
+                  Insurances.switch = false;
+                }
+                return Insurances;
+              })
+              return undrvingList;
+            })
+            return val;
           })
           this.CustomPlanData = res.data;
           this.customsolutionVisible = true;
@@ -287,7 +333,7 @@ export default {
       });
     },
     customsolutionFindPage() {
-      this.$api.insCompany.optionalShcemeList({ companyId: this.companyId,carnature:"01", energyType:"0",vehicleType:"A1"}).then((res) => {
+      this.$api.insCompany.optionalShcemeList({ companyId: this.companyId, carnature: "01", vehicleType: "A1", energyType: "0" }).then((res) => {
         if (res.code == '200') {
           let pageList = {
             content: res.data,
@@ -302,15 +348,8 @@ export default {
       });
     },
     customsolutionSubmit() {
-      let list = [];
-      this.drvingIntentionsList.map(insureitem => {
-        if (insureitem.switch) {
-          list.push(insureitem.id)
-        }
-      });
-      this.CustomPlanData.drvingIntentions = list;
       if (this.customsolutionType == 'add') {
-        this.$api.insCompany.addOptionalScheme({...this.CustomPlanData,carnature:"01",vehicleType:"A1",energyType:"0"}).then((res) => {
+        this.$api.insCompany.addOptionalScheme({ ...this.CustomPlanData, carnature: "01", vehicleType: "A1", energyType: "0" }).then((res) => {
           if (res.code == '200') {
             this.$message({
               type: 'success',
@@ -326,7 +365,7 @@ export default {
           }
         });
       } else {
-        this.$api.insCompany.updateOptionalScheme({...this.CustomPlanData,carnature:"01",vehicleType:"A1",energyType:"0"}).then((res) => {
+        this.$api.insCompany.updateOptionalScheme({ ...this.CustomPlanData, carnature: "01", vehicleType: "A1", energyType: "0" }).then((res) => {
           if (res.code == '200') {
             this.$message({
               type: 'success',
@@ -344,19 +383,7 @@ export default {
       }
 
     },
-    DriveSelectAllInput(e) {
-      if (e) {
-        this.drvingIntentionsList.map(val => {
-          val.switch = true;
-          return val;
-        })
-      } else {
-        this.drvingIntentionsList.map(val => {
-          val.switch = false;
-          return val;
-        })
-      }
-    },
+
     InsureDel(id) {
       this.drvingIntentionsList.map(val => {
         if (val.id == id) {
@@ -372,11 +399,16 @@ export default {
         if (res.code == '200') {
           res.data.map(val => {
             val.switch = false;
+            val.insDrivingIntentionInsurances.map(val2 => {
+              val2.switch = false;
+              return val2;
+            })
             return val;
           })
           this.drvingIntentionsList = res.data;
           localStorage.setItem("drvingIntentionsList", JSON.stringify(this.drvingIntentionsList));
-
+          this.CustomPlanData.drvingList[0].undrvingList = JSON.parse(localStorage.getItem("drvingIntentionsList"));
+          localStorage.setItem("CustomPlanData", JSON.stringify(this.CustomPlanData));
         } else {
           this.$message({
             type: 'error',
@@ -442,9 +474,6 @@ export default {
     filteredInsureList() {
       return this.CustomPlanData.kinds.filter(insureitem => insureitem.switch);
     },
-    drvingIntentionsfilter() {
-      return this.drvingIntentionsList.filter(insureitem => insureitem.switch);
-    },
   }
 }
 </script>

+ 110 - 81
src/views/AgreementManage/InsuranceCompany/CargoTruck/BusinessOperation/NewEnergy/OptionalsolutionConfig.vue

@@ -97,46 +97,67 @@
           <div>
             <div class="flex j-s a-c">
               <h4>驾意险方案配置</h4>
+              <el-button type="primary" size="small" @click="drvingadd">新增</el-button>
             </div>
-            <div class="flex j-start ">
-              <div class="Risk" style="margin-right: 30px;">
-                <section class="flex j-s a-c ">
-                  <div class=" flex a-c">
-                    <el-checkbox v-model="DriveSelectAll" style="margin-right: 20px;"
-                      @input="DriveSelectAllInput"></el-checkbox>
-                    <span class="flex j-start">全部意外险</span>
-                  </div>
-                  <span class="flex j-end">操作</span>
-                </section>
-                <div style="max-height: 400px;overflow-y: auto;">
-                  <main class="flex j-s a-c" v-for="(filteredInsureitem, filteredInsureindex) in drvingIntentionsList"
-                    :key="filteredInsureindex">
-                    <div>
-                      <el-checkbox v-model="filteredInsureitem.switch" style="margin-right: 20px;"></el-checkbox>
-                      <span>{{ filteredInsureitem.projectName }}</span>
+            <div class="flex f-c " style="margin-bottom: 20px;"
+              v-for="(drvingListitem, drvingListindex) in CustomPlanData.drvingList" :key="drvingListindex">
+              <div class="flex a-c">
+                <span>座位数:</span>
+                <el-input-number size="small" style="width:150px; margin-bottom: 10px;" v-model="drvingListitem.seatNum"
+                  :min="1"></el-input-number>
+              </div>
+              <div class="flex j-start ">
+                <div class="Risk" style="margin-right: 30px;">
+                  <section class="flex j-s a-c ">
+                    <div class=" flex a-c">
+                      <span class="flex j-start">全部意外险</span>
                     </div>
-                    <span style="color: #2D4D89;cursor: pointer;" @click="Drivedetails(filteredInsureitem)">详情</span>
-                  </main>
+                    <span class="flex j-end">操作</span>
+                  </section>
+                  <div style="max-height: 400px;overflow-y: auto;">
+                    <main class="flex j-s a-c"
+                      v-for="(undrvingListitem, undrvingListindex) in drvingListitem.undrvingList"
+                      :key="undrvingListindex">
+                      <div class="flex f-c ">
+                        <div style="width: 100%;">
+                          <el-checkbox v-model="undrvingListitem.switch" style="margin-right: 20px;"></el-checkbox>
+                          <span>{{ undrvingListitem.projectName }}</span>
+                          <span style="color: #2D4D89;cursor: pointer;text-align: right;"
+                            @click="Drivedetails(undrvingListitem)">详情</span>
+                        </div>
+                        <template v-if="undrvingListitem.switch">
+                          <div v-for="(Insurancesitem, Insurancesindex) in undrvingListitem.insDrivingIntentionInsurances"
+                            class="p-1 flex a-c j-start" :key="Insurancesindex" style="width: 100%;margin-left: 40px;">
+                            <el-checkbox v-model="Insurancesitem.switch"
+                              @change="event => drvingcheckboxChange(event, drvingListindex, Insurancesitem)"
+                              style="margin-right: 20px;"></el-checkbox>
+                            <div>{{ Insurancesitem.projectName }}</div>
+                          </div>
+                        </template>
+                      </div>
+                    </main>
+                  </div>
                 </div>
-
-              </div>
-              <div class="Risk">
-                <section class="flex j-s a-c ">
-                  <div class=" flex a-c">
-                    <span class="flex j-start">已选意外险</span>
+                <div class="Risk">
+                  <section class="flex j-s a-c ">
+                    <div class=" flex a-c">
+                      <span class="flex j-start">已选意外险</span>
+                    </div>
+                    <span class="flex j-end">操作</span>
+                  </section>
+                  <div style="max-height: 400px;overflow-y: auto;">
+                    <main class="flex j-s a-c" v-for="(isOptionstitem, isOptionsindex) in drvingListitem.isOptions"
+                      :key="isOptionsindex">
+                      <div class="flex f-c " style="width: 100%;">
+                        <h5>{{ isOptionstitem.title }}</h5>
+                        <div class="flex a-c j-c">
+                          <span style="width: 50px;">别名: </span>
+                          <el-input v-model="isOptionstitem.projectName" size="small" clearable
+                            placeholder="请输入别名"></el-input>
+                        </div>
+                      </div>
+                    </main>
                   </div>
-                  <span class="flex j-end">操作</span>
-                </section>
-                <div style="max-height: 400px;overflow-y: auto;">
-                  <main class="flex j-s a-c"
-                    v-for="(drvingIntentionsListitem, fdrvingIntentionsListindex) in drvingIntentionsfilter"
-                    :key="fdrvingIntentionsListindex">
-                    <span>{{ drvingIntentionsListitem.projectName }}</span>
-                    <span class="flex j-end">
-                      <i class="el-icon-delete" style="font-size: 20px;"
-                        @click="InsureDel(drvingIntentionsListitem.id)"></i>
-                    </span>
-                  </main>
                 </div>
               </div>
             </div>
@@ -178,7 +199,6 @@ export default {
   },
   data() {
     return {
-      DriveSelectAll: false,
       customsolutionVisible: false,
       insDrivingIntentionInsuranceSondialogVisible: false,
       overSize: "small",
@@ -189,7 +209,11 @@ export default {
         schemeName: "自选方案",
         description: "",
         kinds: [],
-        drvingIntentions: [],
+        drvingList: [{
+          seatNum: 1,
+          undrvingList: [],
+          isOptions: []
+        }],
       },
       productsTypeoptions: [],
       companyId: "",
@@ -217,23 +241,36 @@ export default {
     this.getDicType("productsType"); //车险产品
     this.Insurance();
     this.drvingget();
-
   },
   // 方法函数
   methods: {
-    customsolutioncloseDialog() {
-      for (const key in this.CustomPlanData) {
-        if (key !== "companyId" && key !== 'kinds' && key !== 'schemeName') {
-          this.CustomPlanData[key] = "";
-        }
+    drvingcheckboxChange(e, drvingListindex, Insurancesitem) {
+      if (e) {
+        this.CustomPlanData.drvingList[drvingListindex].isOptions.push({
+          title: Insurancesitem.projectName,
+          id: Insurancesitem.id,//id
+          projectName: Insurancesitem.projectName,
+        })
+      } else {
+        let list = this.CustomPlanData.drvingList[drvingListindex].isOptions.filter(val => val.id !== Insurancesitem.id)
+        this.CustomPlanData.drvingList[drvingListindex].isOptions = list;
       }
-      this.CustomPlanData.kinds = JSON.parse(localStorage.getItem("InsuranceList"));
-      this.drvingIntentionsList = JSON.parse(localStorage.getItem("drvingIntentionsList"));
+    },
+    drvingadd() {
+      let list = JSON.parse(JSON.stringify(this.drvingIntentionsList));
+      this.CustomPlanData.drvingList.push({
+        seatNum: 1,
+        undrvingList: list,
+        isOptions: []
+      })
+    },
+    customsolutioncloseDialog() {
+      this.CustomPlanData = JSON.parse(localStorage.getItem("CustomPlanData"));
     },
     customsolutionUpdate({ row, column }) {
       this.customsolutionType = 'edit';
       this.customsolutionTitle = '自选方案修改';
-      this.$api.insCompany.optionalSchemeInfo(row.companyId, row.productId,'01','A1','1').then((res) => {
+      this.$api.insCompany.optionalSchemeInfo(row.companyId, row.productId, "01", 'A1', '1').then((res) => {
         if (res.code == '200') {
           res.data.kinds.map(val => {
             if (val.amount.length > 0) {
@@ -253,13 +290,22 @@ export default {
             }
             return val;
           })
-          res.data.drvingIntentions.map(val => {
-            this.drvingIntentionsList.map(insureitem => {
-              if (val == insureitem.id) {
-                insureitem.switch = true;
-              }
-              return insureitem
-            });
+          res.data.drvingList.map(val => {
+            const list = val.isOptions.map(item => { return item.id });
+            val.undrvingList.map(undrvingList => {
+              undrvingList.switch = false;
+              undrvingList.insDrivingIntentionInsurances.map(Insurances => {
+                if (list.includes(Insurances.id)) {
+                  undrvingList.switch = true;
+                  Insurances.switch = true
+                } else {
+                  Insurances.switch = false;
+                }
+                return Insurances;
+              })
+              return undrvingList;
+            })
+            return val;
           })
           this.CustomPlanData = res.data;
           this.customsolutionVisible = true;
@@ -287,7 +333,7 @@ export default {
       });
     },
     customsolutionFindPage() {
-      this.$api.insCompany.optionalShcemeList({ companyId: this.companyId,carnature:"01",vehicleType:"A1",energyType:"1" }).then((res) => {
+      this.$api.insCompany.optionalShcemeList({ companyId: this.companyId, carnature: "01", vehicleType: "A1", energyType: "1" }).then((res) => {
         if (res.code == '200') {
           let pageList = {
             content: res.data,
@@ -302,15 +348,8 @@ export default {
       });
     },
     customsolutionSubmit() {
-      let list = [];
-      this.drvingIntentionsList.map(insureitem => {
-        if (insureitem.switch) {
-          list.push(insureitem.id)
-        }
-      });
-      this.CustomPlanData.drvingIntentions = list;
       if (this.customsolutionType == 'add') {
-        this.$api.insCompany.addOptionalScheme({...this.CustomPlanData,carnature:"01",vehicleType:"A1",energyType:"1"}).then((res) => {
+        this.$api.insCompany.addOptionalScheme({ ...this.CustomPlanData, carnature: "01", vehicleType: "A1", energyType: "1" }).then((res) => {
           if (res.code == '200') {
             this.$message({
               type: 'success',
@@ -326,7 +365,7 @@ export default {
           }
         });
       } else {
-        this.$api.insCompany.updateOptionalScheme({...this.CustomPlanData,carnature:"01",vehicleType:"A1",energyType:"1"}).then((res) => {
+        this.$api.insCompany.updateOptionalScheme({ ...this.CustomPlanData, carnature: "01", vehicleType: "A1", energyType: "1" }).then((res) => {
           if (res.code == '200') {
             this.$message({
               type: 'success',
@@ -344,19 +383,7 @@ export default {
       }
 
     },
-    DriveSelectAllInput(e) {
-      if (e) {
-        this.drvingIntentionsList.map(val => {
-          val.switch = true;
-          return val;
-        })
-      } else {
-        this.drvingIntentionsList.map(val => {
-          val.switch = false;
-          return val;
-        })
-      }
-    },
+
     InsureDel(id) {
       this.drvingIntentionsList.map(val => {
         if (val.id == id) {
@@ -372,11 +399,16 @@ export default {
         if (res.code == '200') {
           res.data.map(val => {
             val.switch = false;
+            val.insDrivingIntentionInsurances.map(val2 => {
+              val2.switch = false;
+              return val2;
+            })
             return val;
           })
           this.drvingIntentionsList = res.data;
           localStorage.setItem("drvingIntentionsList", JSON.stringify(this.drvingIntentionsList));
-
+          this.CustomPlanData.drvingList[0].undrvingList = JSON.parse(localStorage.getItem("drvingIntentionsList"));
+          localStorage.setItem("CustomPlanData", JSON.stringify(this.CustomPlanData));
         } else {
           this.$message({
             type: 'error',
@@ -442,9 +474,6 @@ export default {
     filteredInsureList() {
       return this.CustomPlanData.kinds.filter(insureitem => insureitem.switch);
     },
-    drvingIntentionsfilter() {
-      return this.drvingIntentionsList.filter(insureitem => insureitem.switch);
-    },
   }
 }
 </script>

+ 110 - 81
src/views/AgreementManage/InsuranceCompany/CargoTruck/NonBusiness/Fuel/OptionalsolutionConfig.vue

@@ -97,46 +97,67 @@
           <div>
             <div class="flex j-s a-c">
               <h4>驾意险方案配置</h4>
+              <el-button type="primary" size="small" @click="drvingadd">新增</el-button>
             </div>
-            <div class="flex j-start ">
-              <div class="Risk" style="margin-right: 30px;">
-                <section class="flex j-s a-c ">
-                  <div class=" flex a-c">
-                    <el-checkbox v-model="DriveSelectAll" style="margin-right: 20px;"
-                      @input="DriveSelectAllInput"></el-checkbox>
-                    <span class="flex j-start">全部意外险</span>
-                  </div>
-                  <span class="flex j-end">操作</span>
-                </section>
-                <div style="max-height: 400px;overflow-y: auto;">
-                  <main class="flex j-s a-c" v-for="(filteredInsureitem, filteredInsureindex) in drvingIntentionsList"
-                    :key="filteredInsureindex">
-                    <div>
-                      <el-checkbox v-model="filteredInsureitem.switch" style="margin-right: 20px;"></el-checkbox>
-                      <span>{{ filteredInsureitem.projectName }}</span>
+            <div class="flex f-c " style="margin-bottom: 20px;"
+              v-for="(drvingListitem, drvingListindex) in CustomPlanData.drvingList" :key="drvingListindex">
+              <div class="flex a-c">
+                <span>座位数:</span>
+                <el-input-number size="small" style="width:150px; margin-bottom: 10px;" v-model="drvingListitem.seatNum"
+                  :min="1"></el-input-number>
+              </div>
+              <div class="flex j-start ">
+                <div class="Risk" style="margin-right: 30px;">
+                  <section class="flex j-s a-c ">
+                    <div class=" flex a-c">
+                      <span class="flex j-start">全部意外险</span>
                     </div>
-                    <span style="color: #2D4D89;cursor: pointer;" @click="Drivedetails(filteredInsureitem)">详情</span>
-                  </main>
+                    <span class="flex j-end">操作</span>
+                  </section>
+                  <div style="max-height: 400px;overflow-y: auto;">
+                    <main class="flex j-s a-c"
+                      v-for="(undrvingListitem, undrvingListindex) in drvingListitem.undrvingList"
+                      :key="undrvingListindex">
+                      <div class="flex f-c ">
+                        <div style="width: 100%;">
+                          <el-checkbox v-model="undrvingListitem.switch" style="margin-right: 20px;"></el-checkbox>
+                          <span>{{ undrvingListitem.projectName }}</span>
+                          <span style="color: #2D4D89;cursor: pointer;text-align: right;"
+                            @click="Drivedetails(undrvingListitem)">详情</span>
+                        </div>
+                        <template v-if="undrvingListitem.switch">
+                          <div v-for="(Insurancesitem, Insurancesindex) in undrvingListitem.insDrivingIntentionInsurances"
+                            class="p-1 flex a-c j-start" :key="Insurancesindex" style="width: 100%;margin-left: 40px;">
+                            <el-checkbox v-model="Insurancesitem.switch"
+                              @change="event => drvingcheckboxChange(event, drvingListindex, Insurancesitem)"
+                              style="margin-right: 20px;"></el-checkbox>
+                            <div>{{ Insurancesitem.projectName }}</div>
+                          </div>
+                        </template>
+                      </div>
+                    </main>
+                  </div>
                 </div>
-
-              </div>
-              <div class="Risk">
-                <section class="flex j-s a-c ">
-                  <div class=" flex a-c">
-                    <span class="flex j-start">已选意外险</span>
+                <div class="Risk">
+                  <section class="flex j-s a-c ">
+                    <div class=" flex a-c">
+                      <span class="flex j-start">已选意外险</span>
+                    </div>
+                    <span class="flex j-end">操作</span>
+                  </section>
+                  <div style="max-height: 400px;overflow-y: auto;">
+                    <main class="flex j-s a-c" v-for="(isOptionstitem, isOptionsindex) in drvingListitem.isOptions"
+                      :key="isOptionsindex">
+                      <div class="flex f-c " style="width: 100%;">
+                        <h5>{{ isOptionstitem.title }}</h5>
+                        <div class="flex a-c j-c">
+                          <span style="width: 50px;">别名: </span>
+                          <el-input v-model="isOptionstitem.projectName" size="small" clearable
+                            placeholder="请输入别名"></el-input>
+                        </div>
+                      </div>
+                    </main>
                   </div>
-                  <span class="flex j-end">操作</span>
-                </section>
-                <div style="max-height: 400px;overflow-y: auto;">
-                  <main class="flex j-s a-c"
-                    v-for="(drvingIntentionsListitem, fdrvingIntentionsListindex) in drvingIntentionsfilter"
-                    :key="fdrvingIntentionsListindex">
-                    <span>{{ drvingIntentionsListitem.projectName }}</span>
-                    <span class="flex j-end">
-                      <i class="el-icon-delete" style="font-size: 20px;"
-                        @click="InsureDel(drvingIntentionsListitem.id)"></i>
-                    </span>
-                  </main>
                 </div>
               </div>
             </div>
@@ -178,7 +199,6 @@ export default {
   },
   data() {
     return {
-      DriveSelectAll: false,
       customsolutionVisible: false,
       insDrivingIntentionInsuranceSondialogVisible: false,
       overSize: "small",
@@ -189,7 +209,11 @@ export default {
         schemeName: "自选方案",
         description: "",
         kinds: [],
-        drvingIntentions: [],
+        drvingList: [{
+          seatNum: 1,
+          undrvingList: [],
+          isOptions: []
+        }],
       },
       productsTypeoptions: [],
       companyId: "",
@@ -217,23 +241,36 @@ export default {
     this.getDicType("productsType"); //车险产品
     this.Insurance();
     this.drvingget();
-
   },
   // 方法函数
   methods: {
-    customsolutioncloseDialog() {
-      for (const key in this.CustomPlanData) {
-        if (key !== "companyId" && key !== 'kinds' && key !== 'schemeName') {
-          this.CustomPlanData[key] = "";
-        }
+    drvingcheckboxChange(e, drvingListindex, Insurancesitem) {
+      if (e) {
+        this.CustomPlanData.drvingList[drvingListindex].isOptions.push({
+          title: Insurancesitem.projectName,
+          id: Insurancesitem.id,//id
+          projectName: Insurancesitem.projectName,
+        })
+      } else {
+        let list = this.CustomPlanData.drvingList[drvingListindex].isOptions.filter(val => val.id !== Insurancesitem.id)
+        this.CustomPlanData.drvingList[drvingListindex].isOptions = list;
       }
-      this.CustomPlanData.kinds = JSON.parse(localStorage.getItem("InsuranceList"));
-      this.drvingIntentionsList = JSON.parse(localStorage.getItem("drvingIntentionsList"));
+    },
+    drvingadd() {
+      let list = JSON.parse(JSON.stringify(this.drvingIntentionsList));
+      this.CustomPlanData.drvingList.push({
+        seatNum: 1,
+        undrvingList: list,
+        isOptions: []
+      })
+    },
+    customsolutioncloseDialog() {
+      this.CustomPlanData = JSON.parse(localStorage.getItem("CustomPlanData"));
     },
     customsolutionUpdate({ row, column }) {
       this.customsolutionType = 'edit';
       this.customsolutionTitle = '自选方案修改';
-      this.$api.insCompany.optionalSchemeInfo(row.companyId, row.productId,"02","A1","0").then((res) => {
+      this.$api.insCompany.optionalSchemeInfo(row.companyId, row.productId, "02", 'A1', '0').then((res) => {
         if (res.code == '200') {
           res.data.kinds.map(val => {
             if (val.amount.length > 0) {
@@ -253,13 +290,22 @@ export default {
             }
             return val;
           })
-          res.data.drvingIntentions.map(val => {
-            this.drvingIntentionsList.map(insureitem => {
-              if (val == insureitem.id) {
-                insureitem.switch = true;
-              }
-              return insureitem
-            });
+          res.data.drvingList.map(val => {
+            const list = val.isOptions.map(item => { return item.id });
+            val.undrvingList.map(undrvingList => {
+              undrvingList.switch = false;
+              undrvingList.insDrivingIntentionInsurances.map(Insurances => {
+                if (list.includes(Insurances.id)) {
+                  undrvingList.switch = true;
+                  Insurances.switch = true
+                } else {
+                  Insurances.switch = false;
+                }
+                return Insurances;
+              })
+              return undrvingList;
+            })
+            return val;
           })
           this.CustomPlanData = res.data;
           this.customsolutionVisible = true;
@@ -287,7 +333,7 @@ export default {
       });
     },
     customsolutionFindPage() {
-      this.$api.insCompany.optionalShcemeList({ companyId: this.companyId,carnature:"02", energyType:"0",vehicleType:"A1"}).then((res) => {
+      this.$api.insCompany.optionalShcemeList({ companyId: this.companyId, carnature: "02", vehicleType: "A1", energyType: "0" }).then((res) => {
         if (res.code == '200') {
           let pageList = {
             content: res.data,
@@ -302,15 +348,8 @@ export default {
       });
     },
     customsolutionSubmit() {
-      let list = [];
-      this.drvingIntentionsList.map(insureitem => {
-        if (insureitem.switch) {
-          list.push(insureitem.id)
-        }
-      });
-      this.CustomPlanData.drvingIntentions = list;
       if (this.customsolutionType == 'add') {
-        this.$api.insCompany.addOptionalScheme({...this.CustomPlanData,carnature:"02",vehicleType:"A1",energyType:"0"}).then((res) => {
+        this.$api.insCompany.addOptionalScheme({ ...this.CustomPlanData, carnature: "02", vehicleType: "A1", energyType: "0" }).then((res) => {
           if (res.code == '200') {
             this.$message({
               type: 'success',
@@ -326,7 +365,7 @@ export default {
           }
         });
       } else {
-        this.$api.insCompany.updateOptionalScheme({...this.CustomPlanData,carnature:"02",vehicleType:"A1",energyType:"0"}).then((res) => {
+        this.$api.insCompany.updateOptionalScheme({ ...this.CustomPlanData, carnature: "02", vehicleType: "A1", energyType: "0" }).then((res) => {
           if (res.code == '200') {
             this.$message({
               type: 'success',
@@ -344,19 +383,7 @@ export default {
       }
 
     },
-    DriveSelectAllInput(e) {
-      if (e) {
-        this.drvingIntentionsList.map(val => {
-          val.switch = true;
-          return val;
-        })
-      } else {
-        this.drvingIntentionsList.map(val => {
-          val.switch = false;
-          return val;
-        })
-      }
-    },
+
     InsureDel(id) {
       this.drvingIntentionsList.map(val => {
         if (val.id == id) {
@@ -372,11 +399,16 @@ export default {
         if (res.code == '200') {
           res.data.map(val => {
             val.switch = false;
+            val.insDrivingIntentionInsurances.map(val2 => {
+              val2.switch = false;
+              return val2;
+            })
             return val;
           })
           this.drvingIntentionsList = res.data;
           localStorage.setItem("drvingIntentionsList", JSON.stringify(this.drvingIntentionsList));
-
+          this.CustomPlanData.drvingList[0].undrvingList = JSON.parse(localStorage.getItem("drvingIntentionsList"));
+          localStorage.setItem("CustomPlanData", JSON.stringify(this.CustomPlanData));
         } else {
           this.$message({
             type: 'error',
@@ -442,9 +474,6 @@ export default {
     filteredInsureList() {
       return this.CustomPlanData.kinds.filter(insureitem => insureitem.switch);
     },
-    drvingIntentionsfilter() {
-      return this.drvingIntentionsList.filter(insureitem => insureitem.switch);
-    },
   }
 }
 </script>

+ 110 - 81
src/views/AgreementManage/InsuranceCompany/CargoTruck/NonBusiness/NewEnergy/OptionalsolutionConfig.vue

@@ -97,46 +97,67 @@
           <div>
             <div class="flex j-s a-c">
               <h4>驾意险方案配置</h4>
+              <el-button type="primary" size="small" @click="drvingadd">新增</el-button>
             </div>
-            <div class="flex j-start ">
-              <div class="Risk" style="margin-right: 30px;">
-                <section class="flex j-s a-c ">
-                  <div class=" flex a-c">
-                    <el-checkbox v-model="DriveSelectAll" style="margin-right: 20px;"
-                      @input="DriveSelectAllInput"></el-checkbox>
-                    <span class="flex j-start">全部意外险</span>
-                  </div>
-                  <span class="flex j-end">操作</span>
-                </section>
-                <div style="max-height: 400px;overflow-y: auto;">
-                  <main class="flex j-s a-c" v-for="(filteredInsureitem, filteredInsureindex) in drvingIntentionsList"
-                    :key="filteredInsureindex">
-                    <div>
-                      <el-checkbox v-model="filteredInsureitem.switch" style="margin-right: 20px;"></el-checkbox>
-                      <span>{{ filteredInsureitem.projectName }}</span>
+            <div class="flex f-c " style="margin-bottom: 20px;"
+              v-for="(drvingListitem, drvingListindex) in CustomPlanData.drvingList" :key="drvingListindex">
+              <div class="flex a-c">
+                <span>座位数:</span>
+                <el-input-number size="small" style="width:150px; margin-bottom: 10px;" v-model="drvingListitem.seatNum"
+                  :min="1"></el-input-number>
+              </div>
+              <div class="flex j-start ">
+                <div class="Risk" style="margin-right: 30px;">
+                  <section class="flex j-s a-c ">
+                    <div class=" flex a-c">
+                      <span class="flex j-start">全部意外险</span>
                     </div>
-                    <span style="color: #2D4D89;cursor: pointer;" @click="Drivedetails(filteredInsureitem)">详情</span>
-                  </main>
+                    <span class="flex j-end">操作</span>
+                  </section>
+                  <div style="max-height: 400px;overflow-y: auto;">
+                    <main class="flex j-s a-c"
+                      v-for="(undrvingListitem, undrvingListindex) in drvingListitem.undrvingList"
+                      :key="undrvingListindex">
+                      <div class="flex f-c ">
+                        <div style="width: 100%;">
+                          <el-checkbox v-model="undrvingListitem.switch" style="margin-right: 20px;"></el-checkbox>
+                          <span>{{ undrvingListitem.projectName }}</span>
+                          <span style="color: #2D4D89;cursor: pointer;text-align: right;"
+                            @click="Drivedetails(undrvingListitem)">详情</span>
+                        </div>
+                        <template v-if="undrvingListitem.switch">
+                          <div v-for="(Insurancesitem, Insurancesindex) in undrvingListitem.insDrivingIntentionInsurances"
+                            class="p-1 flex a-c j-start" :key="Insurancesindex" style="width: 100%;margin-left: 40px;">
+                            <el-checkbox v-model="Insurancesitem.switch"
+                              @change="event => drvingcheckboxChange(event, drvingListindex, Insurancesitem)"
+                              style="margin-right: 20px;"></el-checkbox>
+                            <div>{{ Insurancesitem.projectName }}</div>
+                          </div>
+                        </template>
+                      </div>
+                    </main>
+                  </div>
                 </div>
-
-              </div>
-              <div class="Risk">
-                <section class="flex j-s a-c ">
-                  <div class=" flex a-c">
-                    <span class="flex j-start">已选意外险</span>
+                <div class="Risk">
+                  <section class="flex j-s a-c ">
+                    <div class=" flex a-c">
+                      <span class="flex j-start">已选意外险</span>
+                    </div>
+                    <span class="flex j-end">操作</span>
+                  </section>
+                  <div style="max-height: 400px;overflow-y: auto;">
+                    <main class="flex j-s a-c" v-for="(isOptionstitem, isOptionsindex) in drvingListitem.isOptions"
+                      :key="isOptionsindex">
+                      <div class="flex f-c " style="width: 100%;">
+                        <h5>{{ isOptionstitem.title }}</h5>
+                        <div class="flex a-c j-c">
+                          <span style="width: 50px;">别名: </span>
+                          <el-input v-model="isOptionstitem.projectName" size="small" clearable
+                            placeholder="请输入别名"></el-input>
+                        </div>
+                      </div>
+                    </main>
                   </div>
-                  <span class="flex j-end">操作</span>
-                </section>
-                <div style="max-height: 400px;overflow-y: auto;">
-                  <main class="flex j-s a-c"
-                    v-for="(drvingIntentionsListitem, fdrvingIntentionsListindex) in drvingIntentionsfilter"
-                    :key="fdrvingIntentionsListindex">
-                    <span>{{ drvingIntentionsListitem.projectName }}</span>
-                    <span class="flex j-end">
-                      <i class="el-icon-delete" style="font-size: 20px;"
-                        @click="InsureDel(drvingIntentionsListitem.id)"></i>
-                    </span>
-                  </main>
                 </div>
               </div>
             </div>
@@ -178,7 +199,6 @@ export default {
   },
   data() {
     return {
-      DriveSelectAll: false,
       customsolutionVisible: false,
       insDrivingIntentionInsuranceSondialogVisible: false,
       overSize: "small",
@@ -189,7 +209,11 @@ export default {
         schemeName: "自选方案",
         description: "",
         kinds: [],
-        drvingIntentions: [],
+        drvingList: [{
+          seatNum: 1,
+          undrvingList: [],
+          isOptions: []
+        }],
       },
       productsTypeoptions: [],
       companyId: "",
@@ -217,23 +241,36 @@ export default {
     this.getDicType("productsType"); //车险产品
     this.Insurance();
     this.drvingget();
-
   },
   // 方法函数
   methods: {
-    customsolutioncloseDialog() {
-      for (const key in this.CustomPlanData) {
-        if (key !== "companyId" && key !== 'kinds' && key !== 'schemeName') {
-          this.CustomPlanData[key] = "";
-        }
+    drvingcheckboxChange(e, drvingListindex, Insurancesitem) {
+      if (e) {
+        this.CustomPlanData.drvingList[drvingListindex].isOptions.push({
+          title: Insurancesitem.projectName,
+          id: Insurancesitem.id,//id
+          projectName: Insurancesitem.projectName,
+        })
+      } else {
+        let list = this.CustomPlanData.drvingList[drvingListindex].isOptions.filter(val => val.id !== Insurancesitem.id)
+        this.CustomPlanData.drvingList[drvingListindex].isOptions = list;
       }
-      this.CustomPlanData.kinds = JSON.parse(localStorage.getItem("InsuranceList"));
-      this.drvingIntentionsList = JSON.parse(localStorage.getItem("drvingIntentionsList"));
+    },
+    drvingadd() {
+      let list = JSON.parse(JSON.stringify(this.drvingIntentionsList));
+      this.CustomPlanData.drvingList.push({
+        seatNum: 1,
+        undrvingList: list,
+        isOptions: []
+      })
+    },
+    customsolutioncloseDialog() {
+      this.CustomPlanData = JSON.parse(localStorage.getItem("CustomPlanData"));
     },
     customsolutionUpdate({ row, column }) {
       this.customsolutionType = 'edit';
       this.customsolutionTitle = '自选方案修改';
-      this.$api.insCompany.optionalSchemeInfo(row.companyId, row.productId,"02",'A1','1').then((res) => {
+      this.$api.insCompany.optionalSchemeInfo(row.companyId, row.productId, "02", 'A1', '1').then((res) => {
         if (res.code == '200') {
           res.data.kinds.map(val => {
             if (val.amount.length > 0) {
@@ -253,13 +290,22 @@ export default {
             }
             return val;
           })
-          res.data.drvingIntentions.map(val => {
-            this.drvingIntentionsList.map(insureitem => {
-              if (val == insureitem.id) {
-                insureitem.switch = true;
-              }
-              return insureitem
-            });
+          res.data.drvingList.map(val => {
+            const list = val.isOptions.map(item => { return item.id });
+            val.undrvingList.map(undrvingList => {
+              undrvingList.switch = false;
+              undrvingList.insDrivingIntentionInsurances.map(Insurances => {
+                if (list.includes(Insurances.id)) {
+                  undrvingList.switch = true;
+                  Insurances.switch = true
+                } else {
+                  Insurances.switch = false;
+                }
+                return Insurances;
+              })
+              return undrvingList;
+            })
+            return val;
           })
           this.CustomPlanData = res.data;
           this.customsolutionVisible = true;
@@ -287,7 +333,7 @@ export default {
       });
     },
     customsolutionFindPage() {
-      this.$api.insCompany.optionalShcemeList({ companyId: this.companyId,carnature:"02",vehicleType:"A1",energyType:"1" }).then((res) => {
+      this.$api.insCompany.optionalShcemeList({ companyId: this.companyId, carnature: "02", vehicleType: "A1", energyType: "1" }).then((res) => {
         if (res.code == '200') {
           let pageList = {
             content: res.data,
@@ -302,15 +348,8 @@ export default {
       });
     },
     customsolutionSubmit() {
-      let list = [];
-      this.drvingIntentionsList.map(insureitem => {
-        if (insureitem.switch) {
-          list.push(insureitem.id)
-        }
-      });
-      this.CustomPlanData.drvingIntentions = list;
       if (this.customsolutionType == 'add') {
-        this.$api.insCompany.addOptionalScheme({...this.CustomPlanData,carnature:"02",vehicleType:"A1",energyType:"1"}).then((res) => {
+        this.$api.insCompany.addOptionalScheme({ ...this.CustomPlanData, carnature: "02", vehicleType: "A1", energyType: "1" }).then((res) => {
           if (res.code == '200') {
             this.$message({
               type: 'success',
@@ -326,7 +365,7 @@ export default {
           }
         });
       } else {
-        this.$api.insCompany.updateOptionalScheme({...this.CustomPlanData,carnature:"02",vehicleType:"A1",energyType:"1"}).then((res) => {
+        this.$api.insCompany.updateOptionalScheme({ ...this.CustomPlanData, carnature: "02", vehicleType: "A1", energyType: "1" }).then((res) => {
           if (res.code == '200') {
             this.$message({
               type: 'success',
@@ -344,19 +383,7 @@ export default {
       }
 
     },
-    DriveSelectAllInput(e) {
-      if (e) {
-        this.drvingIntentionsList.map(val => {
-          val.switch = true;
-          return val;
-        })
-      } else {
-        this.drvingIntentionsList.map(val => {
-          val.switch = false;
-          return val;
-        })
-      }
-    },
+
     InsureDel(id) {
       this.drvingIntentionsList.map(val => {
         if (val.id == id) {
@@ -372,11 +399,16 @@ export default {
         if (res.code == '200') {
           res.data.map(val => {
             val.switch = false;
+            val.insDrivingIntentionInsurances.map(val2 => {
+              val2.switch = false;
+              return val2;
+            })
             return val;
           })
           this.drvingIntentionsList = res.data;
           localStorage.setItem("drvingIntentionsList", JSON.stringify(this.drvingIntentionsList));
-
+          this.CustomPlanData.drvingList[0].undrvingList = JSON.parse(localStorage.getItem("drvingIntentionsList"));
+          localStorage.setItem("CustomPlanData", JSON.stringify(this.CustomPlanData));
         } else {
           this.$message({
             type: 'error',
@@ -442,9 +474,6 @@ export default {
     filteredInsureList() {
       return this.CustomPlanData.kinds.filter(insureitem => insureitem.switch);
     },
-    drvingIntentionsfilter() {
-      return this.drvingIntentionsList.filter(insureitem => insureitem.switch);
-    },
   }
 }
 </script>

+ 110 - 81
src/views/AgreementManage/InsuranceCompany/PassengerBus/BusinessOperation/Fuel/OptionalsolutionConfig.vue

@@ -97,46 +97,67 @@
           <div>
             <div class="flex j-s a-c">
               <h4>驾意险方案配置</h4>
+              <el-button type="primary" size="small" @click="drvingadd">新增</el-button>
             </div>
-            <div class="flex j-start ">
-              <div class="Risk" style="margin-right: 30px;">
-                <section class="flex j-s a-c ">
-                  <div class=" flex a-c">
-                    <el-checkbox v-model="DriveSelectAll" style="margin-right: 20px;"
-                      @input="DriveSelectAllInput"></el-checkbox>
-                    <span class="flex j-start">全部意外险</span>
-                  </div>
-                  <span class="flex j-end">操作</span>
-                </section>
-                <div style="max-height: 400px;overflow-y: auto;">
-                  <main class="flex j-s a-c" v-for="(filteredInsureitem, filteredInsureindex) in drvingIntentionsList"
-                    :key="filteredInsureindex">
-                    <div>
-                      <el-checkbox v-model="filteredInsureitem.switch" style="margin-right: 20px;"></el-checkbox>
-                      <span>{{ filteredInsureitem.projectName }}</span>
+            <div class="flex f-c " style="margin-bottom: 20px;"
+              v-for="(drvingListitem, drvingListindex) in CustomPlanData.drvingList" :key="drvingListindex">
+              <div class="flex a-c">
+                <span>座位数:</span>
+                <el-input-number size="small" style="width:150px; margin-bottom: 10px;" v-model="drvingListitem.seatNum"
+                  :min="1"></el-input-number>
+              </div>
+              <div class="flex j-start ">
+                <div class="Risk" style="margin-right: 30px;">
+                  <section class="flex j-s a-c ">
+                    <div class=" flex a-c">
+                      <span class="flex j-start">全部意外险</span>
                     </div>
-                    <span style="color: #2D4D89;cursor: pointer;" @click="Drivedetails(filteredInsureitem)">详情</span>
-                  </main>
+                    <span class="flex j-end">操作</span>
+                  </section>
+                  <div style="max-height: 400px;overflow-y: auto;">
+                    <main class="flex j-s a-c"
+                      v-for="(undrvingListitem, undrvingListindex) in drvingListitem.undrvingList"
+                      :key="undrvingListindex">
+                      <div class="flex f-c ">
+                        <div style="width: 100%;">
+                          <el-checkbox v-model="undrvingListitem.switch" style="margin-right: 20px;"></el-checkbox>
+                          <span>{{ undrvingListitem.projectName }}</span>
+                          <span style="color: #2D4D89;cursor: pointer;text-align: right;"
+                            @click="Drivedetails(undrvingListitem)">详情</span>
+                        </div>
+                        <template v-if="undrvingListitem.switch">
+                          <div v-for="(Insurancesitem, Insurancesindex) in undrvingListitem.insDrivingIntentionInsurances"
+                            class="p-1 flex a-c j-start" :key="Insurancesindex" style="width: 100%;margin-left: 40px;">
+                            <el-checkbox v-model="Insurancesitem.switch"
+                              @change="event => drvingcheckboxChange(event, drvingListindex, Insurancesitem)"
+                              style="margin-right: 20px;"></el-checkbox>
+                            <div>{{ Insurancesitem.projectName }}</div>
+                          </div>
+                        </template>
+                      </div>
+                    </main>
+                  </div>
                 </div>
-
-              </div>
-              <div class="Risk">
-                <section class="flex j-s a-c ">
-                  <div class=" flex a-c">
-                    <span class="flex j-start">已选意外险</span>
+                <div class="Risk">
+                  <section class="flex j-s a-c ">
+                    <div class=" flex a-c">
+                      <span class="flex j-start">已选意外险</span>
+                    </div>
+                    <span class="flex j-end">操作</span>
+                  </section>
+                  <div style="max-height: 400px;overflow-y: auto;">
+                    <main class="flex j-s a-c" v-for="(isOptionstitem, isOptionsindex) in drvingListitem.isOptions"
+                      :key="isOptionsindex">
+                      <div class="flex f-c " style="width: 100%;">
+                        <h5>{{ isOptionstitem.title }}</h5>
+                        <div class="flex a-c j-c">
+                          <span style="width: 50px;">别名: </span>
+                          <el-input v-model="isOptionstitem.projectName" size="small" clearable
+                            placeholder="请输入别名"></el-input>
+                        </div>
+                      </div>
+                    </main>
                   </div>
-                  <span class="flex j-end">操作</span>
-                </section>
-                <div style="max-height: 400px;overflow-y: auto;">
-                  <main class="flex j-s a-c"
-                    v-for="(drvingIntentionsListitem, fdrvingIntentionsListindex) in drvingIntentionsfilter"
-                    :key="fdrvingIntentionsListindex">
-                    <span>{{ drvingIntentionsListitem.projectName }}</span>
-                    <span class="flex j-end">
-                      <i class="el-icon-delete" style="font-size: 20px;"
-                        @click="InsureDel(drvingIntentionsListitem.id)"></i>
-                    </span>
-                  </main>
                 </div>
               </div>
             </div>
@@ -178,7 +199,6 @@ export default {
   },
   data() {
     return {
-      DriveSelectAll: false,
       customsolutionVisible: false,
       insDrivingIntentionInsuranceSondialogVisible: false,
       overSize: "small",
@@ -189,7 +209,11 @@ export default {
         schemeName: "自选方案",
         description: "",
         kinds: [],
-        drvingIntentions: [],
+        drvingList: [{
+          seatNum: 1,
+          undrvingList: [],
+          isOptions: []
+        }],
       },
       productsTypeoptions: [],
       companyId: "",
@@ -217,23 +241,36 @@ export default {
     this.getDicType("productsType"); //车险产品
     this.Insurance();
     this.drvingget();
-
   },
   // 方法函数
   methods: {
-    customsolutioncloseDialog() {
-      for (const key in this.CustomPlanData) {
-        if (key !== "companyId" && key !== 'kinds' && key !== 'schemeName') {
-          this.CustomPlanData[key] = "";
-        }
+    drvingcheckboxChange(e, drvingListindex, Insurancesitem) {
+      if (e) {
+        this.CustomPlanData.drvingList[drvingListindex].isOptions.push({
+          title: Insurancesitem.projectName,
+          id: Insurancesitem.id,//id
+          projectName: Insurancesitem.projectName,
+        })
+      } else {
+        let list = this.CustomPlanData.drvingList[drvingListindex].isOptions.filter(val => val.id !== Insurancesitem.id)
+        this.CustomPlanData.drvingList[drvingListindex].isOptions = list;
       }
-      this.CustomPlanData.kinds = JSON.parse(localStorage.getItem("InsuranceList"));
-      this.drvingIntentionsList = JSON.parse(localStorage.getItem("drvingIntentionsList"));
+    },
+    drvingadd() {
+      let list = JSON.parse(JSON.stringify(this.drvingIntentionsList));
+      this.CustomPlanData.drvingList.push({
+        seatNum: 1,
+        undrvingList: list,
+        isOptions: []
+      })
+    },
+    customsolutioncloseDialog() {
+      this.CustomPlanData = JSON.parse(localStorage.getItem("CustomPlanData"));
     },
     customsolutionUpdate({ row, column }) {
       this.customsolutionType = 'edit';
       this.customsolutionTitle = '自选方案修改';
-      this.$api.insCompany.optionalSchemeInfo(row.companyId, row.productId,"01",'A0','0').then((res) => {
+      this.$api.insCompany.optionalSchemeInfo(row.companyId, row.productId, "01", 'A0', '0').then((res) => {
         if (res.code == '200') {
           res.data.kinds.map(val => {
             if (val.amount.length > 0) {
@@ -253,13 +290,22 @@ export default {
             }
             return val;
           })
-          res.data.drvingIntentions.map(val => {
-            this.drvingIntentionsList.map(insureitem => {
-              if (val == insureitem.id) {
-                insureitem.switch = true;
-              }
-              return insureitem
-            });
+          res.data.drvingList.map(val => {
+            const list = val.isOptions.map(item => { return item.id });
+            val.undrvingList.map(undrvingList => {
+              undrvingList.switch = false;
+              undrvingList.insDrivingIntentionInsurances.map(Insurances => {
+                if (list.includes(Insurances.id)) {
+                  undrvingList.switch = true;
+                  Insurances.switch = true
+                } else {
+                  Insurances.switch = false;
+                }
+                return Insurances;
+              })
+              return undrvingList;
+            })
+            return val;
           })
           this.CustomPlanData = res.data;
           this.customsolutionVisible = true;
@@ -287,7 +333,7 @@ export default {
       });
     },
     customsolutionFindPage() {
-      this.$api.insCompany.optionalShcemeList({ companyId: this.companyId,carnature:"01",vehicleType:"A0",energyType:"0" }).then((res) => {
+      this.$api.insCompany.optionalShcemeList({ companyId: this.companyId, carnature: "01", vehicleType: "A0", energyType: "0" }).then((res) => {
         if (res.code == '200') {
           let pageList = {
             content: res.data,
@@ -302,15 +348,8 @@ export default {
       });
     },
     customsolutionSubmit() {
-      let list = [];
-      this.drvingIntentionsList.map(insureitem => {
-        if (insureitem.switch) {
-          list.push(insureitem.id)
-        }
-      });
-      this.CustomPlanData.drvingIntentions = list;
       if (this.customsolutionType == 'add') {
-        this.$api.insCompany.addOptionalScheme({...this.CustomPlanData,carnature:"01",vehicleType:"A0",energyType:"0"}).then((res) => {
+        this.$api.insCompany.addOptionalScheme({ ...this.CustomPlanData, carnature: "01", vehicleType: "A0", energyType: "0" }).then((res) => {
           if (res.code == '200') {
             this.$message({
               type: 'success',
@@ -326,7 +365,7 @@ export default {
           }
         });
       } else {
-        this.$api.insCompany.updateOptionalScheme({...this.CustomPlanData,carnature:"01",vehicleType:"A0",energyType:"0"}).then((res) => {
+        this.$api.insCompany.updateOptionalScheme({ ...this.CustomPlanData, carnature: "01", vehicleType: "A0", energyType: "0" }).then((res) => {
           if (res.code == '200') {
             this.$message({
               type: 'success',
@@ -344,19 +383,7 @@ export default {
       }
 
     },
-    DriveSelectAllInput(e) {
-      if (e) {
-        this.drvingIntentionsList.map(val => {
-          val.switch = true;
-          return val;
-        })
-      } else {
-        this.drvingIntentionsList.map(val => {
-          val.switch = false;
-          return val;
-        })
-      }
-    },
+
     InsureDel(id) {
       this.drvingIntentionsList.map(val => {
         if (val.id == id) {
@@ -372,11 +399,16 @@ export default {
         if (res.code == '200') {
           res.data.map(val => {
             val.switch = false;
+            val.insDrivingIntentionInsurances.map(val2 => {
+              val2.switch = false;
+              return val2;
+            })
             return val;
           })
           this.drvingIntentionsList = res.data;
           localStorage.setItem("drvingIntentionsList", JSON.stringify(this.drvingIntentionsList));
-
+          this.CustomPlanData.drvingList[0].undrvingList = JSON.parse(localStorage.getItem("drvingIntentionsList"));
+          localStorage.setItem("CustomPlanData", JSON.stringify(this.CustomPlanData));
         } else {
           this.$message({
             type: 'error',
@@ -442,9 +474,6 @@ export default {
     filteredInsureList() {
       return this.CustomPlanData.kinds.filter(insureitem => insureitem.switch);
     },
-    drvingIntentionsfilter() {
-      return this.drvingIntentionsList.filter(insureitem => insureitem.switch);
-    },
   }
 }
 </script>

+ 110 - 81
src/views/AgreementManage/InsuranceCompany/PassengerBus/BusinessOperation/NewEnergy/OptionalsolutionConfig.vue

@@ -97,46 +97,67 @@
           <div>
             <div class="flex j-s a-c">
               <h4>驾意险方案配置</h4>
+              <el-button type="primary" size="small" @click="drvingadd">新增</el-button>
             </div>
-            <div class="flex j-start ">
-              <div class="Risk" style="margin-right: 30px;">
-                <section class="flex j-s a-c ">
-                  <div class=" flex a-c">
-                    <el-checkbox v-model="DriveSelectAll" style="margin-right: 20px;"
-                      @input="DriveSelectAllInput"></el-checkbox>
-                    <span class="flex j-start">全部意外险</span>
-                  </div>
-                  <span class="flex j-end">操作</span>
-                </section>
-                <div style="max-height: 400px;overflow-y: auto;">
-                  <main class="flex j-s a-c" v-for="(filteredInsureitem, filteredInsureindex) in drvingIntentionsList"
-                    :key="filteredInsureindex">
-                    <div>
-                      <el-checkbox v-model="filteredInsureitem.switch" style="margin-right: 20px;"></el-checkbox>
-                      <span>{{ filteredInsureitem.projectName }}</span>
+            <div class="flex f-c " style="margin-bottom: 20px;"
+              v-for="(drvingListitem, drvingListindex) in CustomPlanData.drvingList" :key="drvingListindex">
+              <div class="flex a-c">
+                <span>座位数:</span>
+                <el-input-number size="small" style="width:150px; margin-bottom: 10px;" v-model="drvingListitem.seatNum"
+                  :min="1"></el-input-number>
+              </div>
+              <div class="flex j-start ">
+                <div class="Risk" style="margin-right: 30px;">
+                  <section class="flex j-s a-c ">
+                    <div class=" flex a-c">
+                      <span class="flex j-start">全部意外险</span>
                     </div>
-                    <span style="color: #2D4D89;cursor: pointer;" @click="Drivedetails(filteredInsureitem)">详情</span>
-                  </main>
+                    <span class="flex j-end">操作</span>
+                  </section>
+                  <div style="max-height: 400px;overflow-y: auto;">
+                    <main class="flex j-s a-c"
+                      v-for="(undrvingListitem, undrvingListindex) in drvingListitem.undrvingList"
+                      :key="undrvingListindex">
+                      <div class="flex f-c ">
+                        <div style="width: 100%;">
+                          <el-checkbox v-model="undrvingListitem.switch" style="margin-right: 20px;"></el-checkbox>
+                          <span>{{ undrvingListitem.projectName }}</span>
+                          <span style="color: #2D4D89;cursor: pointer;text-align: right;"
+                            @click="Drivedetails(undrvingListitem)">详情</span>
+                        </div>
+                        <template v-if="undrvingListitem.switch">
+                          <div v-for="(Insurancesitem, Insurancesindex) in undrvingListitem.insDrivingIntentionInsurances"
+                            class="p-1 flex a-c j-start" :key="Insurancesindex" style="width: 100%;margin-left: 40px;">
+                            <el-checkbox v-model="Insurancesitem.switch"
+                              @change="event => drvingcheckboxChange(event, drvingListindex, Insurancesitem)"
+                              style="margin-right: 20px;"></el-checkbox>
+                            <div>{{ Insurancesitem.projectName }}</div>
+                          </div>
+                        </template>
+                      </div>
+                    </main>
+                  </div>
                 </div>
-
-              </div>
-              <div class="Risk">
-                <section class="flex j-s a-c ">
-                  <div class=" flex a-c">
-                    <span class="flex j-start">已选意外险</span>
+                <div class="Risk">
+                  <section class="flex j-s a-c ">
+                    <div class=" flex a-c">
+                      <span class="flex j-start">已选意外险</span>
+                    </div>
+                    <span class="flex j-end">操作</span>
+                  </section>
+                  <div style="max-height: 400px;overflow-y: auto;">
+                    <main class="flex j-s a-c" v-for="(isOptionstitem, isOptionsindex) in drvingListitem.isOptions"
+                      :key="isOptionsindex">
+                      <div class="flex f-c " style="width: 100%;">
+                        <h5>{{ isOptionstitem.title }}</h5>
+                        <div class="flex a-c j-c">
+                          <span style="width: 50px;">别名: </span>
+                          <el-input v-model="isOptionstitem.projectName" size="small" clearable
+                            placeholder="请输入别名"></el-input>
+                        </div>
+                      </div>
+                    </main>
                   </div>
-                  <span class="flex j-end">操作</span>
-                </section>
-                <div style="max-height: 400px;overflow-y: auto;">
-                  <main class="flex j-s a-c"
-                    v-for="(drvingIntentionsListitem, fdrvingIntentionsListindex) in drvingIntentionsfilter"
-                    :key="fdrvingIntentionsListindex">
-                    <span>{{ drvingIntentionsListitem.projectName }}</span>
-                    <span class="flex j-end">
-                      <i class="el-icon-delete" style="font-size: 20px;"
-                        @click="InsureDel(drvingIntentionsListitem.id)"></i>
-                    </span>
-                  </main>
                 </div>
               </div>
             </div>
@@ -178,7 +199,6 @@ export default {
   },
   data() {
     return {
-      DriveSelectAll: false,
       customsolutionVisible: false,
       insDrivingIntentionInsuranceSondialogVisible: false,
       overSize: "small",
@@ -189,7 +209,11 @@ export default {
         schemeName: "自选方案",
         description: "",
         kinds: [],
-        drvingIntentions: [],
+        drvingList: [{
+          seatNum: 1,
+          undrvingList: [],
+          isOptions: []
+        }],
       },
       productsTypeoptions: [],
       companyId: "",
@@ -217,23 +241,36 @@ export default {
     this.getDicType("productsType"); //车险产品
     this.Insurance();
     this.drvingget();
-
   },
   // 方法函数
   methods: {
-    customsolutioncloseDialog() {
-      for (const key in this.CustomPlanData) {
-        if (key !== "companyId" && key !== 'kinds' && key !== 'schemeName') {
-          this.CustomPlanData[key] = "";
-        }
+    drvingcheckboxChange(e, drvingListindex, Insurancesitem) {
+      if (e) {
+        this.CustomPlanData.drvingList[drvingListindex].isOptions.push({
+          title: Insurancesitem.projectName,
+          id: Insurancesitem.id,//id
+          projectName: Insurancesitem.projectName,
+        })
+      } else {
+        let list = this.CustomPlanData.drvingList[drvingListindex].isOptions.filter(val => val.id !== Insurancesitem.id)
+        this.CustomPlanData.drvingList[drvingListindex].isOptions = list;
       }
-      this.CustomPlanData.kinds = JSON.parse(localStorage.getItem("InsuranceList"));
-      this.drvingIntentionsList = JSON.parse(localStorage.getItem("drvingIntentionsList"));
+    },
+    drvingadd() {
+      let list = JSON.parse(JSON.stringify(this.drvingIntentionsList));
+      this.CustomPlanData.drvingList.push({
+        seatNum: 1,
+        undrvingList: list,
+        isOptions: []
+      })
+    },
+    customsolutioncloseDialog() {
+      this.CustomPlanData = JSON.parse(localStorage.getItem("CustomPlanData"));
     },
     customsolutionUpdate({ row, column }) {
       this.customsolutionType = 'edit';
       this.customsolutionTitle = '自选方案修改';
-      this.$api.insCompany.optionalSchemeInfo(row.companyId, row.productId,"01","A0","1" ).then((res) => {
+      this.$api.insCompany.optionalSchemeInfo(row.companyId, row.productId, "01", 'A0', '1').then((res) => {
         if (res.code == '200') {
           res.data.kinds.map(val => {
             if (val.amount.length > 0) {
@@ -253,13 +290,22 @@ export default {
             }
             return val;
           })
-          res.data.drvingIntentions.map(val => {
-            this.drvingIntentionsList.map(insureitem => {
-              if (val == insureitem.id) {
-                insureitem.switch = true;
-              }
-              return insureitem
-            });
+          res.data.drvingList.map(val => {
+            const list = val.isOptions.map(item => { return item.id });
+            val.undrvingList.map(undrvingList => {
+              undrvingList.switch = false;
+              undrvingList.insDrivingIntentionInsurances.map(Insurances => {
+                if (list.includes(Insurances.id)) {
+                  undrvingList.switch = true;
+                  Insurances.switch = true
+                } else {
+                  Insurances.switch = false;
+                }
+                return Insurances;
+              })
+              return undrvingList;
+            })
+            return val;
           })
           this.CustomPlanData = res.data;
           this.customsolutionVisible = true;
@@ -287,7 +333,7 @@ export default {
       });
     },
     customsolutionFindPage() {
-      this.$api.insCompany.optionalShcemeList({ companyId: this.companyId,carnature:"01",vehicleType:"A0",energyType:"1" }).then((res) => {
+      this.$api.insCompany.optionalShcemeList({ companyId: this.companyId, carnature: "01", vehicleType: "A0", energyType: "1" }).then((res) => {
         if (res.code == '200') {
           let pageList = {
             content: res.data,
@@ -302,15 +348,8 @@ export default {
       });
     },
     customsolutionSubmit() {
-      let list = [];
-      this.drvingIntentionsList.map(insureitem => {
-        if (insureitem.switch) {
-          list.push(insureitem.id)
-        }
-      });
-      this.CustomPlanData.drvingIntentions = list;
       if (this.customsolutionType == 'add') {
-        this.$api.insCompany.addOptionalScheme({...this.CustomPlanData,carnature:"01",vehicleType:"A0",energyType:"1"}).then((res) => {
+        this.$api.insCompany.addOptionalScheme({ ...this.CustomPlanData, carnature: "01", vehicleType: "A0", energyType: "1" }).then((res) => {
           if (res.code == '200') {
             this.$message({
               type: 'success',
@@ -326,7 +365,7 @@ export default {
           }
         });
       } else {
-        this.$api.insCompany.updateOptionalScheme({...this.CustomPlanData,carnature:"01",vehicleType:"A0",energyType:"1"}).then((res) => {
+        this.$api.insCompany.updateOptionalScheme({ ...this.CustomPlanData, carnature: "01", vehicleType: "A0", energyType: "1" }).then((res) => {
           if (res.code == '200') {
             this.$message({
               type: 'success',
@@ -344,19 +383,7 @@ export default {
       }
 
     },
-    DriveSelectAllInput(e) {
-      if (e) {
-        this.drvingIntentionsList.map(val => {
-          val.switch = true;
-          return val;
-        })
-      } else {
-        this.drvingIntentionsList.map(val => {
-          val.switch = false;
-          return val;
-        })
-      }
-    },
+
     InsureDel(id) {
       this.drvingIntentionsList.map(val => {
         if (val.id == id) {
@@ -372,11 +399,16 @@ export default {
         if (res.code == '200') {
           res.data.map(val => {
             val.switch = false;
+            val.insDrivingIntentionInsurances.map(val2 => {
+              val2.switch = false;
+              return val2;
+            })
             return val;
           })
           this.drvingIntentionsList = res.data;
           localStorage.setItem("drvingIntentionsList", JSON.stringify(this.drvingIntentionsList));
-
+          this.CustomPlanData.drvingList[0].undrvingList = JSON.parse(localStorage.getItem("drvingIntentionsList"));
+          localStorage.setItem("CustomPlanData", JSON.stringify(this.CustomPlanData));
         } else {
           this.$message({
             type: 'error',
@@ -442,9 +474,6 @@ export default {
     filteredInsureList() {
       return this.CustomPlanData.kinds.filter(insureitem => insureitem.switch);
     },
-    drvingIntentionsfilter() {
-      return this.drvingIntentionsList.filter(insureitem => insureitem.switch);
-    },
   }
 }
 </script>

+ 110 - 81
src/views/AgreementManage/InsuranceCompany/PassengerBus/NonBusiness/Fuel/OptionalsolutionConfig.vue

@@ -97,46 +97,67 @@
           <div>
             <div class="flex j-s a-c">
               <h4>驾意险方案配置</h4>
+              <el-button type="primary" size="small" @click="drvingadd">新增</el-button>
             </div>
-            <div class="flex j-start ">
-              <div class="Risk" style="margin-right: 30px;">
-                <section class="flex j-s a-c ">
-                  <div class=" flex a-c">
-                    <el-checkbox v-model="DriveSelectAll" style="margin-right: 20px;"
-                      @input="DriveSelectAllInput"></el-checkbox>
-                    <span class="flex j-start">全部意外险</span>
-                  </div>
-                  <span class="flex j-end">操作</span>
-                </section>
-                <div style="max-height: 400px;overflow-y: auto;">
-                  <main class="flex j-s a-c" v-for="(filteredInsureitem, filteredInsureindex) in drvingIntentionsList"
-                    :key="filteredInsureindex">
-                    <div>
-                      <el-checkbox v-model="filteredInsureitem.switch" style="margin-right: 20px;"></el-checkbox>
-                      <span>{{ filteredInsureitem.projectName }}</span>
+            <div class="flex f-c " style="margin-bottom: 20px;"
+              v-for="(drvingListitem, drvingListindex) in CustomPlanData.drvingList" :key="drvingListindex">
+              <div class="flex a-c">
+                <span>座位数:</span>
+                <el-input-number size="small" style="width:150px; margin-bottom: 10px;" v-model="drvingListitem.seatNum"
+                  :min="1"></el-input-number>
+              </div>
+              <div class="flex j-start ">
+                <div class="Risk" style="margin-right: 30px;">
+                  <section class="flex j-s a-c ">
+                    <div class=" flex a-c">
+                      <span class="flex j-start">全部意外险</span>
                     </div>
-                    <span style="color: #2D4D89;cursor: pointer;" @click="Drivedetails(filteredInsureitem)">详情</span>
-                  </main>
+                    <span class="flex j-end">操作</span>
+                  </section>
+                  <div style="max-height: 400px;overflow-y: auto;">
+                    <main class="flex j-s a-c"
+                      v-for="(undrvingListitem, undrvingListindex) in drvingListitem.undrvingList"
+                      :key="undrvingListindex">
+                      <div class="flex f-c ">
+                        <div style="width: 100%;">
+                          <el-checkbox v-model="undrvingListitem.switch" style="margin-right: 20px;"></el-checkbox>
+                          <span>{{ undrvingListitem.projectName }}</span>
+                          <span style="color: #2D4D89;cursor: pointer;text-align: right;"
+                            @click="Drivedetails(undrvingListitem)">详情</span>
+                        </div>
+                        <template v-if="undrvingListitem.switch">
+                          <div v-for="(Insurancesitem, Insurancesindex) in undrvingListitem.insDrivingIntentionInsurances"
+                            class="p-1 flex a-c j-start" :key="Insurancesindex" style="width: 100%;margin-left: 40px;">
+                            <el-checkbox v-model="Insurancesitem.switch"
+                              @change="event => drvingcheckboxChange(event, drvingListindex, Insurancesitem)"
+                              style="margin-right: 20px;"></el-checkbox>
+                            <div>{{ Insurancesitem.projectName }}</div>
+                          </div>
+                        </template>
+                      </div>
+                    </main>
+                  </div>
                 </div>
-
-              </div>
-              <div class="Risk">
-                <section class="flex j-s a-c ">
-                  <div class=" flex a-c">
-                    <span class="flex j-start">已选意外险</span>
+                <div class="Risk">
+                  <section class="flex j-s a-c ">
+                    <div class=" flex a-c">
+                      <span class="flex j-start">已选意外险</span>
+                    </div>
+                    <span class="flex j-end">操作</span>
+                  </section>
+                  <div style="max-height: 400px;overflow-y: auto;">
+                    <main class="flex j-s a-c" v-for="(isOptionstitem, isOptionsindex) in drvingListitem.isOptions"
+                      :key="isOptionsindex">
+                      <div class="flex f-c " style="width: 100%;">
+                        <h5>{{ isOptionstitem.title }}</h5>
+                        <div class="flex a-c j-c">
+                          <span style="width: 50px;">别名: </span>
+                          <el-input v-model="isOptionstitem.projectName" size="small" clearable
+                            placeholder="请输入别名"></el-input>
+                        </div>
+                      </div>
+                    </main>
                   </div>
-                  <span class="flex j-end">操作</span>
-                </section>
-                <div style="max-height: 400px;overflow-y: auto;">
-                  <main class="flex j-s a-c"
-                    v-for="(drvingIntentionsListitem, fdrvingIntentionsListindex) in drvingIntentionsfilter"
-                    :key="fdrvingIntentionsListindex">
-                    <span>{{ drvingIntentionsListitem.projectName }}</span>
-                    <span class="flex j-end">
-                      <i class="el-icon-delete" style="font-size: 20px;"
-                        @click="InsureDel(drvingIntentionsListitem.id)"></i>
-                    </span>
-                  </main>
                 </div>
               </div>
             </div>
@@ -178,7 +199,6 @@ export default {
   },
   data() {
     return {
-      DriveSelectAll: false,
       customsolutionVisible: false,
       insDrivingIntentionInsuranceSondialogVisible: false,
       overSize: "small",
@@ -189,7 +209,11 @@ export default {
         schemeName: "自选方案",
         description: "",
         kinds: [],
-        drvingIntentions: [],
+        drvingList: [{
+          seatNum: 1,
+          undrvingList: [],
+          isOptions: []
+        }],
       },
       productsTypeoptions: [],
       companyId: "",
@@ -217,23 +241,36 @@ export default {
     this.getDicType("productsType"); //车险产品
     this.Insurance();
     this.drvingget();
-
   },
   // 方法函数
   methods: {
-    customsolutioncloseDialog() {
-      for (const key in this.CustomPlanData) {
-        if (key !== "companyId" && key !== 'kinds' && key !== 'schemeName') {
-          this.CustomPlanData[key] = "";
-        }
+    drvingcheckboxChange(e, drvingListindex, Insurancesitem) {
+      if (e) {
+        this.CustomPlanData.drvingList[drvingListindex].isOptions.push({
+          title: Insurancesitem.projectName,
+          id: Insurancesitem.id,//id
+          projectName: Insurancesitem.projectName,
+        })
+      } else {
+        let list = this.CustomPlanData.drvingList[drvingListindex].isOptions.filter(val => val.id !== Insurancesitem.id)
+        this.CustomPlanData.drvingList[drvingListindex].isOptions = list;
       }
-      this.CustomPlanData.kinds = JSON.parse(localStorage.getItem("InsuranceList"));
-      this.drvingIntentionsList = JSON.parse(localStorage.getItem("drvingIntentionsList"));
+    },
+    drvingadd() {
+      let list = JSON.parse(JSON.stringify(this.drvingIntentionsList));
+      this.CustomPlanData.drvingList.push({
+        seatNum: 1,
+        undrvingList: list,
+        isOptions: []
+      })
+    },
+    customsolutioncloseDialog() {
+      this.CustomPlanData = JSON.parse(localStorage.getItem("CustomPlanData"));
     },
     customsolutionUpdate({ row, column }) {
       this.customsolutionType = 'edit';
       this.customsolutionTitle = '自选方案修改';
-      this.$api.insCompany.optionalSchemeInfo(row.companyId, row.productId,"02",'A0','0').then((res) => {
+      this.$api.insCompany.optionalSchemeInfo(row.companyId, row.productId, "02", 'A0', '0').then((res) => {
         if (res.code == '200') {
           res.data.kinds.map(val => {
             if (val.amount.length > 0) {
@@ -253,13 +290,22 @@ export default {
             }
             return val;
           })
-          res.data.drvingIntentions.map(val => {
-            this.drvingIntentionsList.map(insureitem => {
-              if (val == insureitem.id) {
-                insureitem.switch = true;
-              }
-              return insureitem
-            });
+          res.data.drvingList.map(val => {
+            const list = val.isOptions.map(item => { return item.id });
+            val.undrvingList.map(undrvingList => {
+              undrvingList.switch = false;
+              undrvingList.insDrivingIntentionInsurances.map(Insurances => {
+                if (list.includes(Insurances.id)) {
+                  undrvingList.switch = true;
+                  Insurances.switch = true
+                } else {
+                  Insurances.switch = false;
+                }
+                return Insurances;
+              })
+              return undrvingList;
+            })
+            return val;
           })
           this.CustomPlanData = res.data;
           this.customsolutionVisible = true;
@@ -287,7 +333,7 @@ export default {
       });
     },
     customsolutionFindPage() {
-      this.$api.insCompany.optionalShcemeList({ companyId: this.companyId,carnature:"02",vehicleType:"A0",energyType:"0" }).then((res) => {
+      this.$api.insCompany.optionalShcemeList({ companyId: this.companyId, carnature: "02", vehicleType: "A0", energyType: "0" }).then((res) => {
         if (res.code == '200') {
           let pageList = {
             content: res.data,
@@ -302,15 +348,8 @@ export default {
       });
     },
     customsolutionSubmit() {
-      let list = [];
-      this.drvingIntentionsList.map(insureitem => {
-        if (insureitem.switch) {
-          list.push(insureitem.id)
-        }
-      });
-      this.CustomPlanData.drvingIntentions = list;
       if (this.customsolutionType == 'add') {
-        this.$api.insCompany.addOptionalScheme({...this.CustomPlanData,carnature:"02",vehicleType:"A0",energyType:"0"}).then((res) => {
+        this.$api.insCompany.addOptionalScheme({ ...this.CustomPlanData, carnature: "02", vehicleType: "A0", energyType: "0" }).then((res) => {
           if (res.code == '200') {
             this.$message({
               type: 'success',
@@ -326,7 +365,7 @@ export default {
           }
         });
       } else {
-        this.$api.insCompany.updateOptionalScheme({...this.CustomPlanData,carnature:"02",vehicleType:"A0",energyType:"0"}).then((res) => {
+        this.$api.insCompany.updateOptionalScheme({ ...this.CustomPlanData, carnature: "02", vehicleType: "A0", energyType: "0" }).then((res) => {
           if (res.code == '200') {
             this.$message({
               type: 'success',
@@ -344,19 +383,7 @@ export default {
       }
 
     },
-    DriveSelectAllInput(e) {
-      if (e) {
-        this.drvingIntentionsList.map(val => {
-          val.switch = true;
-          return val;
-        })
-      } else {
-        this.drvingIntentionsList.map(val => {
-          val.switch = false;
-          return val;
-        })
-      }
-    },
+
     InsureDel(id) {
       this.drvingIntentionsList.map(val => {
         if (val.id == id) {
@@ -372,11 +399,16 @@ export default {
         if (res.code == '200') {
           res.data.map(val => {
             val.switch = false;
+            val.insDrivingIntentionInsurances.map(val2 => {
+              val2.switch = false;
+              return val2;
+            })
             return val;
           })
           this.drvingIntentionsList = res.data;
           localStorage.setItem("drvingIntentionsList", JSON.stringify(this.drvingIntentionsList));
-
+          this.CustomPlanData.drvingList[0].undrvingList = JSON.parse(localStorage.getItem("drvingIntentionsList"));
+          localStorage.setItem("CustomPlanData", JSON.stringify(this.CustomPlanData));
         } else {
           this.$message({
             type: 'error',
@@ -442,9 +474,6 @@ export default {
     filteredInsureList() {
       return this.CustomPlanData.kinds.filter(insureitem => insureitem.switch);
     },
-    drvingIntentionsfilter() {
-      return this.drvingIntentionsList.filter(insureitem => insureitem.switch);
-    },
   }
 }
 </script>

+ 110 - 81
src/views/AgreementManage/InsuranceCompany/PassengerBus/NonBusiness/NewEnergy/OptionalsolutionConfig.vue

@@ -97,46 +97,67 @@
           <div>
             <div class="flex j-s a-c">
               <h4>驾意险方案配置</h4>
+              <el-button type="primary" size="small" @click="drvingadd">新增</el-button>
             </div>
-            <div class="flex j-start ">
-              <div class="Risk" style="margin-right: 30px;">
-                <section class="flex j-s a-c ">
-                  <div class=" flex a-c">
-                    <el-checkbox v-model="DriveSelectAll" style="margin-right: 20px;"
-                      @input="DriveSelectAllInput"></el-checkbox>
-                    <span class="flex j-start">全部意外险</span>
-                  </div>
-                  <span class="flex j-end">操作</span>
-                </section>
-                <div style="max-height: 400px;overflow-y: auto;">
-                  <main class="flex j-s a-c" v-for="(filteredInsureitem, filteredInsureindex) in drvingIntentionsList"
-                    :key="filteredInsureindex">
-                    <div>
-                      <el-checkbox v-model="filteredInsureitem.switch" style="margin-right: 20px;"></el-checkbox>
-                      <span>{{ filteredInsureitem.projectName }}</span>
+            <div class="flex f-c " style="margin-bottom: 20px;"
+              v-for="(drvingListitem, drvingListindex) in CustomPlanData.drvingList" :key="drvingListindex">
+              <div class="flex a-c">
+                <span>座位数:</span>
+                <el-input-number size="small" style="width:150px; margin-bottom: 10px;" v-model="drvingListitem.seatNum"
+                  :min="1"></el-input-number>
+              </div>
+              <div class="flex j-start ">
+                <div class="Risk" style="margin-right: 30px;">
+                  <section class="flex j-s a-c ">
+                    <div class=" flex a-c">
+                      <span class="flex j-start">全部意外险</span>
                     </div>
-                    <span style="color: #2D4D89;cursor: pointer;" @click="Drivedetails(filteredInsureitem)">详情</span>
-                  </main>
+                    <span class="flex j-end">操作</span>
+                  </section>
+                  <div style="max-height: 400px;overflow-y: auto;">
+                    <main class="flex j-s a-c"
+                      v-for="(undrvingListitem, undrvingListindex) in drvingListitem.undrvingList"
+                      :key="undrvingListindex">
+                      <div class="flex f-c ">
+                        <div style="width: 100%;">
+                          <el-checkbox v-model="undrvingListitem.switch" style="margin-right: 20px;"></el-checkbox>
+                          <span>{{ undrvingListitem.projectName }}</span>
+                          <span style="color: #2D4D89;cursor: pointer;text-align: right;"
+                            @click="Drivedetails(undrvingListitem)">详情</span>
+                        </div>
+                        <template v-if="undrvingListitem.switch">
+                          <div v-for="(Insurancesitem, Insurancesindex) in undrvingListitem.insDrivingIntentionInsurances"
+                            class="p-1 flex a-c j-start" :key="Insurancesindex" style="width: 100%;margin-left: 40px;">
+                            <el-checkbox v-model="Insurancesitem.switch"
+                              @change="event => drvingcheckboxChange(event, drvingListindex, Insurancesitem)"
+                              style="margin-right: 20px;"></el-checkbox>
+                            <div>{{ Insurancesitem.projectName }}</div>
+                          </div>
+                        </template>
+                      </div>
+                    </main>
+                  </div>
                 </div>
-
-              </div>
-              <div class="Risk">
-                <section class="flex j-s a-c ">
-                  <div class=" flex a-c">
-                    <span class="flex j-start">已选意外险</span>
+                <div class="Risk">
+                  <section class="flex j-s a-c ">
+                    <div class=" flex a-c">
+                      <span class="flex j-start">已选意外险</span>
+                    </div>
+                    <span class="flex j-end">操作</span>
+                  </section>
+                  <div style="max-height: 400px;overflow-y: auto;">
+                    <main class="flex j-s a-c" v-for="(isOptionstitem, isOptionsindex) in drvingListitem.isOptions"
+                      :key="isOptionsindex">
+                      <div class="flex f-c " style="width: 100%;">
+                        <h5>{{ isOptionstitem.title }}</h5>
+                        <div class="flex a-c j-c">
+                          <span style="width: 50px;">别名: </span>
+                          <el-input v-model="isOptionstitem.projectName" size="small" clearable
+                            placeholder="请输入别名"></el-input>
+                        </div>
+                      </div>
+                    </main>
                   </div>
-                  <span class="flex j-end">操作</span>
-                </section>
-                <div style="max-height: 400px;overflow-y: auto;">
-                  <main class="flex j-s a-c"
-                    v-for="(drvingIntentionsListitem, fdrvingIntentionsListindex) in drvingIntentionsfilter"
-                    :key="fdrvingIntentionsListindex">
-                    <span>{{ drvingIntentionsListitem.projectName }}</span>
-                    <span class="flex j-end">
-                      <i class="el-icon-delete" style="font-size: 20px;"
-                        @click="InsureDel(drvingIntentionsListitem.id)"></i>
-                    </span>
-                  </main>
                 </div>
               </div>
             </div>
@@ -178,7 +199,6 @@ export default {
   },
   data() {
     return {
-      DriveSelectAll: false,
       customsolutionVisible: false,
       insDrivingIntentionInsuranceSondialogVisible: false,
       overSize: "small",
@@ -189,7 +209,11 @@ export default {
         schemeName: "自选方案",
         description: "",
         kinds: [],
-        drvingIntentions: [],
+        drvingList: [{
+          seatNum: 1,
+          undrvingList: [],
+          isOptions: []
+        }],
       },
       productsTypeoptions: [],
       companyId: "",
@@ -217,23 +241,36 @@ export default {
     this.getDicType("productsType"); //车险产品
     this.Insurance();
     this.drvingget();
-
   },
   // 方法函数
   methods: {
-    customsolutioncloseDialog() {
-      for (const key in this.CustomPlanData) {
-        if (key !== "companyId" && key !== 'kinds' && key !== 'schemeName') {
-          this.CustomPlanData[key] = "";
-        }
+    drvingcheckboxChange(e, drvingListindex, Insurancesitem) {
+      if (e) {
+        this.CustomPlanData.drvingList[drvingListindex].isOptions.push({
+          title: Insurancesitem.projectName,
+          id: Insurancesitem.id,//id
+          projectName: Insurancesitem.projectName,
+        })
+      } else {
+        let list = this.CustomPlanData.drvingList[drvingListindex].isOptions.filter(val => val.id !== Insurancesitem.id)
+        this.CustomPlanData.drvingList[drvingListindex].isOptions = list;
       }
-      this.CustomPlanData.kinds = JSON.parse(localStorage.getItem("InsuranceList"));
-      this.drvingIntentionsList = JSON.parse(localStorage.getItem("drvingIntentionsList"));
+    },
+    drvingadd() {
+      let list = JSON.parse(JSON.stringify(this.drvingIntentionsList));
+      this.CustomPlanData.drvingList.push({
+        seatNum: 1,
+        undrvingList: list,
+        isOptions: []
+      })
+    },
+    customsolutioncloseDialog() {
+      this.CustomPlanData = JSON.parse(localStorage.getItem("CustomPlanData"));
     },
     customsolutionUpdate({ row, column }) {
       this.customsolutionType = 'edit';
       this.customsolutionTitle = '自选方案修改';
-      this.$api.insCompany.optionalSchemeInfo(row.companyId, row.productId,"02","A0","1" ).then((res) => {
+      this.$api.insCompany.optionalSchemeInfo(row.companyId, row.productId, "02", 'A0', '1').then((res) => {
         if (res.code == '200') {
           res.data.kinds.map(val => {
             if (val.amount.length > 0) {
@@ -253,13 +290,22 @@ export default {
             }
             return val;
           })
-          res.data.drvingIntentions.map(val => {
-            this.drvingIntentionsList.map(insureitem => {
-              if (val == insureitem.id) {
-                insureitem.switch = true;
-              }
-              return insureitem
-            });
+          res.data.drvingList.map(val => {
+            const list = val.isOptions.map(item => { return item.id });
+            val.undrvingList.map(undrvingList => {
+              undrvingList.switch = false;
+              undrvingList.insDrivingIntentionInsurances.map(Insurances => {
+                if (list.includes(Insurances.id)) {
+                  undrvingList.switch = true;
+                  Insurances.switch = true
+                } else {
+                  Insurances.switch = false;
+                }
+                return Insurances;
+              })
+              return undrvingList;
+            })
+            return val;
           })
           this.CustomPlanData = res.data;
           this.customsolutionVisible = true;
@@ -287,7 +333,7 @@ export default {
       });
     },
     customsolutionFindPage() {
-      this.$api.insCompany.optionalShcemeList({ companyId: this.companyId,carnature:"02",vehicleType:"A0",energyType:"1" }).then((res) => {
+      this.$api.insCompany.optionalShcemeList({ companyId: this.companyId, carnature: "02", vehicleType: "A0", energyType: "1" }).then((res) => {
         if (res.code == '200') {
           let pageList = {
             content: res.data,
@@ -302,15 +348,8 @@ export default {
       });
     },
     customsolutionSubmit() {
-      let list = [];
-      this.drvingIntentionsList.map(insureitem => {
-        if (insureitem.switch) {
-          list.push(insureitem.id)
-        }
-      });
-      this.CustomPlanData.drvingIntentions = list;
       if (this.customsolutionType == 'add') {
-        this.$api.insCompany.addOptionalScheme({...this.CustomPlanData,carnature:"02",vehicleType:"A0",energyType:"1"}).then((res) => {
+        this.$api.insCompany.addOptionalScheme({ ...this.CustomPlanData, carnature: "02", vehicleType: "A0", energyType: "1" }).then((res) => {
           if (res.code == '200') {
             this.$message({
               type: 'success',
@@ -326,7 +365,7 @@ export default {
           }
         });
       } else {
-        this.$api.insCompany.updateOptionalScheme({...this.CustomPlanData,carnature:"02",vehicleType:"A0",energyType:"1"}).then((res) => {
+        this.$api.insCompany.updateOptionalScheme({ ...this.CustomPlanData, carnature: "02", vehicleType: "A0", energyType: "1" }).then((res) => {
           if (res.code == '200') {
             this.$message({
               type: 'success',
@@ -344,19 +383,7 @@ export default {
       }
 
     },
-    DriveSelectAllInput(e) {
-      if (e) {
-        this.drvingIntentionsList.map(val => {
-          val.switch = true;
-          return val;
-        })
-      } else {
-        this.drvingIntentionsList.map(val => {
-          val.switch = false;
-          return val;
-        })
-      }
-    },
+
     InsureDel(id) {
       this.drvingIntentionsList.map(val => {
         if (val.id == id) {
@@ -372,11 +399,16 @@ export default {
         if (res.code == '200') {
           res.data.map(val => {
             val.switch = false;
+            val.insDrivingIntentionInsurances.map(val2 => {
+              val2.switch = false;
+              return val2;
+            })
             return val;
           })
           this.drvingIntentionsList = res.data;
           localStorage.setItem("drvingIntentionsList", JSON.stringify(this.drvingIntentionsList));
-
+          this.CustomPlanData.drvingList[0].undrvingList = JSON.parse(localStorage.getItem("drvingIntentionsList"));
+          localStorage.setItem("CustomPlanData", JSON.stringify(this.CustomPlanData));
         } else {
           this.$message({
             type: 'error',
@@ -442,9 +474,6 @@ export default {
     filteredInsureList() {
       return this.CustomPlanData.kinds.filter(insureitem => insureitem.switch);
     },
-    drvingIntentionsfilter() {
-      return this.drvingIntentionsList.filter(insureitem => insureitem.switch);
-    },
   }
 }
 </script>

+ 3 - 4
src/views/Core/components/detailsDialog.vue

@@ -526,7 +526,7 @@
                   <span v-else>-</span>
                 </template>
               </el-table-column>
-                
+
                 <el-table-column prop="profitMarginPremiums" label="利润差值">
                   <template slot-scope="scope">
                     <span>¥{{ scope.row.profitMarginPremiums }}</span>
@@ -715,7 +715,7 @@
               </el-form-item>
             </el-col>
           </el-row>
-          <el-row>
+          <el-row v-if="['单交', '交三', '交商'].includes(orderInfo.agreementProductCostsSave.productName)">
             <h4 style="color: tomato">交强险费用</h4>
             <el-col :span="5" :offset="1">
               <el-form-item label="费用比例" prop="jqCarCostsProportion">
@@ -774,9 +774,8 @@
               </el-form-item>
             </el-col>
           </el-row>
-          <el-row>
+          <el-row v-if="['单商', '单三', '交商', '交三'].includes(orderInfo.agreementProductCostsSave.productName)">
             <h4 style="color: tomato">商业险费用</h4>
-
             <el-col :span="5" :offset="1">
               <el-form-item label="费用比例" prop="syCarCostsProportion">
                 <el-input v-model="orderInfo.agreementProductCostsSave.syCarCostsProportion"

+ 13 - 10
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/DocumentaryFeesDetail.vue

@@ -329,7 +329,9 @@
         <el-table-column prop="syOtherCostsPremium" label="商业跟单金额">
         </el-table-column>
       </el-table>
-      <footer style="margin-top: 15px;display: flex;justify-content: flex-end;">
+      <footer
+        style="margin-top: 15px; display: flex; justify-content: flex-end"
+      >
         <el-button type="primary" @click="confrimBatch">确认</el-button>
       </footer>
     </el-dialog>
@@ -986,7 +988,7 @@ export default {
         });
     },
     agrmentlist() {
-      this.$api.task.findPtlAgreementListNew().then((res) => {
+      this.$api.task.findPtlAgreementListNew({ type: "2" }).then((res) => {
         this.agreementTypeoptions = res.data;
       });
     },
@@ -1158,15 +1160,16 @@ export default {
       this.tableDataRadio = {};
       this.fileListRadio = [];
     },
-    confrimBatch(){
-      this.$api.task.batchOperation({resultList:this.tableDataRadio.resultList}).then((res) => {
-        if (res.code == 200) {
-          this.$message.success('操作成功')
+    confrimBatch() {
+      this.$api.task
+        .batchOperation({ resultList: this.tableDataRadio.resultList })
+        .then((res) => {
+          if (res.code == 200) {
+            this.$message.success("操作成功");
 
-          this.dialogVisibleradio = false;
-          
-        } 
-      });
+            this.dialogVisibleradio = false;
+          }
+        });
     },
     drivinguploadRadio(file, fileList) {
       this.fileListRadio = [];

+ 41 - 1
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/HandlingFees.vue

@@ -152,6 +152,23 @@
               </el-select>
             </el-form-item>
           </el-col>
+          <el-col :span="8">
+            <el-form-item label="增加类型" prop="addType">
+              <el-select
+                size="small"
+                clearable
+                v-model="formDataList.addType"
+                filterable
+              >
+                <el-option
+                  v-for="(s, i) in addTypeList"
+                  :key="i"
+                  :label="s.label"
+                  :value="s.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <span slot="footer" class="dialog-footer">
@@ -397,6 +414,23 @@
               </el-date-picker>
             </el-form-item>
           </el-col>
+          <el-col :span="8">
+            <el-form-item label="增加类型" prop="addType">
+              <el-select
+                size="small"
+                clearable
+                v-model="formDataAdd.addType"
+                filterable
+              >
+                <el-option
+                  v-for="(s, i) in addTypeList"
+                  :key="i"
+                  :label="s.label"
+                  :value="s.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <span slot="footer" class="dialog-footer">
@@ -977,12 +1011,18 @@ export default {
         ],
       },
       dockingPersonOption: [],
+      addTypeList: [],
     };
   },
   created() {
     this.$api.dept.findDeptTree("9", "").then((res) => {
       this.treedata = res.data;
     });
+    this.$api.dict.findByLableName("add_type").then((res) => {
+      if (res.code === 200) {
+        this.addTypeList = res.data;
+      }
+    });
     this.findPage();
     this.getDicType("productsType"); //险种类型
     this.getDicType("agreementType"); //险种类型
@@ -1021,7 +1061,7 @@ export default {
   },
   methods: {
     agrmentlist() {
-      this.$api.task.findPtlAgreementListNew().then((res) => {
+      this.$api.task.findPtlAgreementListNew({ type: "2" }).then((res) => {
         this.agreementTypeoptions = res.data;
       });
     },

Fișier diff suprimat deoarece este prea mare
+ 478 - 283
src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/DocumentaryFeesDetail.vue


+ 42 - 1
src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/HandlingFees.vue

@@ -322,6 +322,23 @@
               </el-date-picker>
             </el-form-item>
           </el-col>
+          <el-col :span="8">
+            <el-form-item label="增加类型" prop="addType">
+              <el-select
+                size="small"
+                clearable
+                v-model="formDataAdd.addType"
+                filterable
+              >
+                <el-option
+                  v-for="(s, i) in addTypeList"
+                  :key="i"
+                  :label="s.label"
+                  :value="s.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <span slot="footer" class="dialog-footer">
@@ -396,6 +413,23 @@
               </el-select>
             </el-form-item>
           </el-col>
+          <el-col :span="8">
+            <el-form-item label="增加类型" prop="addType">
+              <el-select
+                size="small"
+                clearable
+                v-model="formDataEdit.addType"
+                filterable
+              >
+                <el-option
+                  v-for="(s, i) in addTypeList"
+                  :key="i"
+                  :label="s.label"
+                  :value="s.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <span slot="footer" class="dialog-footer">
@@ -892,12 +926,18 @@ export default {
       dialogVisibleprogress: false,
       dialogVisibleEdit: false,
       formDataEdit: {},
+      addTypeList: [],
     };
   },
   created() {
     this.$api.dept.findDeptTree("9", "").then((res) => {
       this.treedata = res.data;
     });
+    this.$api.dict.findByLableName("add_type").then((res) => {
+      if (res.code === 200) {
+        this.addTypeList = res.data;
+      }
+    });
     this.getDicType("productsType"); //险种类型
     this.getDicType("agreementType"); //险种类型
     this.areaqueryList(1, 99, "provinceId");
@@ -933,6 +973,7 @@ export default {
         noSuperviseCostsPremiums: row.noSuperviseCostsPremiums,
         id: row.id,
         agreementId: row.agreementId,
+        addType: row.addType,
       };
       this.dialogVisibleEdit = true;
     },
@@ -976,7 +1017,7 @@ export default {
         });
     },
     agrmentlist() {
-      this.$api.task.findPtlAgreementListNew().then((res) => {
+      this.$api.task.findPtlAgreementListNew({ type: "2" }).then((res) => {
         this.agreementTypeoptions = res.data;
       });
     },

+ 73 - 33
src/views/FinancialManagement/CarInsurance/PlatformSettlement/NonVehicleBalance.vue

@@ -176,6 +176,22 @@
               </el-select>
             </el-form-item>
           </el-col>
+          <el-col :span="8">
+            <el-form-item label="保司机构">
+              <el-cascader
+                ref="partnerCompaniesCascader"
+                @change="partnerCompaniesFun"
+                v-model="formDataList.partnerCompaniesId"
+                size="small"
+                :show-all-levels="false"
+                ize="small"
+                :options="ztreeNodes"
+                :props="optionProps"
+                clearable
+                filterable
+              ></el-cascader>
+            </el-form-item>
+          </el-col>
           <el-col :span="8">
             <el-form-item label="保险公司" prop="companyId">
               <el-select
@@ -193,22 +209,6 @@
               </el-select>
             </el-form-item>
           </el-col>
-          <el-col :span="8">
-            <el-form-item label="保司机构">
-              <el-cascader
-                ref="partnerCompaniesCascader"
-                @change="partnerCompaniesFun"
-                v-model="formDataList.partnerCompaniesId"
-                size="small"
-                :show-all-levels="false"
-                ize="small"
-                :options="ztreeNodes"
-                :props="optionProps"
-                clearable
-                filterable
-              ></el-cascader>
-            </el-form-item>
-          </el-col>
 
           <el-col :span="8">
             <el-form-item label="协议选择">
@@ -403,6 +403,23 @@
               ></el-input>
             </el-form-item>
           </el-col>
+          <el-col :span="8">
+            <el-form-item label="增加类型" prop="addType">
+              <el-select
+                size="small"
+                clearable
+                v-model="formDataList.addType"
+                filterable
+              >
+                <el-option
+                  v-for="(s, i) in addTypeList"
+                  :key="i"
+                  :label="s.label"
+                  :value="s.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <span slot="footer" class="dialog-footer">
@@ -563,6 +580,22 @@
               </el-select>
             </el-form-item>
           </el-col>
+          <el-col :span="8">
+            <el-form-item label="保司机构">
+              <el-cascader
+                ref="partnerCompaniesCascader"
+                @change="partnerCompaniesFun"
+                v-model="formDataListAdd.partnerCompaniesId"
+                size="small"
+                :show-all-levels="false"
+                ize="small"
+                :options="ztreeNodes"
+                :props="optionProps"
+                clearable
+                filterable
+              ></el-cascader>
+            </el-form-item>
+          </el-col>
           <el-col :span="8">
             <el-form-item label="保险公司" prop="companyId">
               <el-select
@@ -580,22 +613,6 @@
               </el-select>
             </el-form-item>
           </el-col>
-          <el-col :span="8">
-            <el-form-item label="保司机构">
-              <el-cascader
-                ref="partnerCompaniesCascader"
-                @change="partnerCompaniesFun"
-                v-model="formDataListAdd.partnerCompaniesId"
-                size="small"
-                :show-all-levels="false"
-                ize="small"
-                :options="ztreeNodes"
-                :props="optionProps"
-                clearable
-                filterable
-              ></el-cascader>
-            </el-form-item>
-          </el-col>
 
           <el-col :span="8">
             <el-form-item label="协议选择">
@@ -790,6 +807,23 @@
               ></el-input>
             </el-form-item>
           </el-col>
+          <el-col :span="8">
+            <el-form-item label="增加类型" prop="addType">
+              <el-select
+                size="small"
+                clearable
+                v-model="formDataListAdd.addType"
+                filterable
+              >
+                <el-option
+                  v-for="(s, i) in addTypeList"
+                  :key="i"
+                  :label="s.label"
+                  :value="s.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <span slot="footer" class="dialog-footer">
@@ -1404,6 +1438,7 @@ export default {
           { required: true, message: "请输入手续费金额", trigger: "blur" },
         ],
       },
+      addTypeList: [],
     };
   },
 
@@ -1416,6 +1451,11 @@ export default {
         this.$message.error(res.msg);
       }
     });
+    this.$api.dict.findByLableName("add_type").then((res) => {
+      if (res.code === 200) {
+        this.addTypeList = res.data;
+      }
+    });
     this.$api.insCompany.dicType("productsType").then((res) => {
       if (res.code == 200) {
         this.formList.forEach((filed) => {
@@ -1552,7 +1592,7 @@ export default {
     },
 
     agrmentlist() {
-      this.$api.task.findPtlAgreementListNew().then((res) => {
+      this.$api.task.findPtlAgreementListNew({ type: "1" }).then((res) => {
         this.agreementTypeoptions = res.data;
       });
     },

+ 641 - 0
src/views/FinancialManagement/CarInsurance/PlatformSettlement/NonVehicleBalancestatus.vue

@@ -0,0 +1,641 @@
+<template>
+  <!--布局容器-->
+  <div class="InvoicedAndSettled" style="width: 99%; margin-top: 0px">
+    <templateTable
+      :formList="formList"
+      :tableConfig="tableConfig"
+      :data="tableData"
+      @findPage="findPage"
+      @handleSearchList="handleSearchList"
+      :pagination="pageData"
+      @handleResetForm="handleResetForm"
+    >
+      <template slot="data">
+        <el-date-picker
+          v-model="dateTime"
+          type="daterange"
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          value-format="yyyy-MM-dd"
+        >
+        </el-date-picker>
+      </template>
+      <template slot="dockingPerson">
+        <el-select
+          v-model="formData.dockingPerson"
+          filterable
+          clearable
+          placeholder="请选择"
+          size="small"
+        >
+          <el-option
+            v-for="item in dockingPersonOption"
+            :key="item.docking_person"
+            :label="item.docking_person"
+            :value="item.docking_person"
+          >
+          </el-option>
+        </el-select>
+      </template>
+    </templateTable>
+    <el-dialog
+      title="记录"
+      :visible.sync="dialogVisiblerecord"
+      width="40%"
+      :before-close="handleCloserecord"
+    >
+      <templateTable
+        ref="templateTable1"
+        :pagination="pageDatarecord"
+        @getList="getListrecord"
+        :tableConfig="tableConfigDetailrecord"
+        :data="formTableDatarecord"
+        @findPage="findPageDetailrecord"
+      >
+        <template slot="imageUrl" slot-scope="scope" v-if="scope.row.imageUrl">
+          <div style="border: 2px solid #f2f2f2; box-sizing: border-box">
+            <el-image
+              style="width: 100px; height: 30px"
+              :src="`${process + scope.row.imageUrl}`"
+              :preview-src-list="[`${process + scope.row.imageUrl}`]"
+            ></el-image>
+          </div>
+          <!-- <img
+            
+            :src="`${process + scope.row.imageUrl}`"
+            :preview-src-list="[tixianDetails.bankReceipt]"
+            class="imageclass"
+          /> -->
+        </template>
+      </templateTable>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisiblerecord = false"
+          >取消</el-button
+        >
+      </span>
+    </el-dialog>
+    <el-dialog
+      title="明细"
+      :visible.sync="dialogVisibleDetail"
+      width="60%"
+      :before-close="handleCloseDetail"
+    >
+      <div class="table-overflow">
+        <templateTable
+          ref="templateTable2"
+          :pagination="pageDataDetail"
+          @getList="getListDetail"
+          :tableConfig="tableConfigDetailDetail"
+          :data="formTableDatarecord"
+          @findPage="findPageDetailDetail"
+        >
+        </templateTable>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisibleDetail = false"
+          >取消</el-button
+        >
+      </span>
+    </el-dialog>
+    <el-dialog
+      title="明细"
+      :visible.sync="dialogVisibleRecordDetail"
+      width="50%"
+      :before-close="handleCloseRecordDetail"
+    >
+      <templateTable
+        ref="templateTable2"
+        :pagination="pageDataRecordDetail"
+        @getList="getListRecordDetail"
+        :tableConfig="tableConfigDetailDetail"
+        :data="formTableDatarecordDetail"
+        @findPage="findPageRecordDetail"
+      >
+      </templateTable>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisibleRecordDetail = false"
+          >取消</el-button
+        >
+      </span>
+    </el-dialog>
+
+    <el-dialog
+      title="详情"
+      :visible.sync="messageVisible"
+      width="60%"
+      :before-close="handleCloseMessage"
+    >
+      <div class="table-overflow">
+        <templateTable
+          ref="templateTable2"
+          :pagination="pageDataDetail"
+          @getList="getListDetail"
+          :tableConfig="messageTableConfig"
+          :data="messageList"
+          @findPage="findPageDetailDetail"
+        >
+        </templateTable>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="messageVisible = false">取消</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import templateTable from "@/components/TemplateTable/index.vue";
+import { mapState } from "vuex";
+import yearMonthYay from "./yearMonthYay.vue";
+
+export default {
+  name: "baosi",
+  components: { KtCommonTable, templateTable, yearMonthYay },
+  created() {},
+  computed: {
+    ...mapState({
+      perms: (state) => state.user.perms,
+    }),
+  },
+  data() {
+    return {
+      dateTime: [],
+      process: process.env.BASE_URL,
+      tableConfigDetailDetail: {
+        columns: [
+          {
+            prop: "licenseno",
+            label: "车牌",
+            type: "text",
+          },
+          {
+            prop: "policyno",
+            label: "交强保单号",
+            type: "text",
+          },
+          {
+            prop: "syPolicyno",
+            label: "商业保单号",
+            type: "text",
+          },
+          {
+            prop: "noPolicyno",
+            label: "非车保单号",
+            type: "text",
+          },
+          {
+            prop: "insuredName",
+            label: "被保人",
+            type: "text",
+          },
+          {
+            prop: "jqPremium",
+            label: "交强保费",
+            type: "text",
+          },
+          {
+            prop: "syPremium",
+            label: "商业保费",
+            type: "text",
+          },
+          {
+            prop: "noPremium",
+            label: "非车保费",
+            type: "text",
+          },
+          {
+            prop: "jqReceivableProportion",
+            label: "交强应收比例",
+            type: "text",
+          },
+          {
+            prop: "syReceivableProportion",
+            label: "商业应收比例",
+            type: "text",
+          },
+          {
+            prop: "noReceivableProportion",
+            label: "非车应收比例",
+            type: "text",
+          },
+          {
+            prop: "allFeeValue",
+            label: "应收金额",
+            type: "text",
+          },
+        ],
+        loading: true,
+        isPaginationShow: true,
+      },
+      pageDataDetail: {
+        pageNum: 1,
+        pageSize: 20,
+        totalSize: 0,
+      },
+      dialogVisibleDetail: false,
+      dialogVisiblerecord: false,
+      formTableDatarecord: [],
+      tableConfigDetailrecord: {
+        columns: [
+          {
+            prop: "settlementTime",
+            label: "进账日期",
+            type: "text",
+          },
+          {
+            prop: "settlementAmount",
+            label: "进帐金额",
+            type: "text",
+          },
+          {
+            name: "imageUrl",
+            label: "凭证",
+            type: "slot",
+          },
+        ],
+        loading: true,
+        isPaginationShow: true,
+        optBtns: [
+          {
+            type: "primary",
+            label: "明细",
+            click: (row, index) => {
+              return this.haldRecordDetail(row);
+            },
+          },
+        ],
+      },
+      pageDatarecord: {
+        pageNum: 1,
+        pageSize: 20,
+        totalSize: 0,
+      },
+      searchData: {},
+      formList: [
+        {
+          label: "对接人",
+          name: "dockingPerson",
+          type: "slot",
+        },
+        {
+          label: "时间筛选",
+          name: "data",
+          type: "slot",
+        },
+      ],
+      tableConfig: {
+        columns: [
+          // {
+          //   prop: "companyName",
+          //   label: "保险公司名称",
+          //   type: "text",
+          // },
+          // {
+          //   prop: "partnerCompaniesName",
+          //   label: "合作公司名称",
+          //   type: "text",
+          // },
+          {
+            prop: "dockingPerson",
+            label: "对接人",
+            type: "text",
+          },
+          {
+            prop: "sumAmount",
+            label: "应收金额",
+            type: "text",
+          },
+          {
+            prop: "ysAmount",
+            label: "已收金额",
+            type: "text",
+          },
+          {
+            prop: "wsAmount",
+            label: "未收金额",
+            type: "text",
+          },
+        ],
+        loading: true,
+        isPaginationShow: true,
+        showSummary: true,
+        isShowIndex: true,
+        tableHeight: "auto",
+        optBtns: [
+          {
+            type: "primary",
+            label: "记录",
+            click: (row, index) => {
+              return this.haldRecord(row);
+            },
+          },
+          {
+            type: "primary",
+            label: "明细",
+            click: (row, index) => {
+              return this.haldDetail(row);
+            },
+          },
+          {
+            type: "primary",
+            label: "详情",
+            click: (row, index) => {
+              return this.haldMessage(row);
+            },
+          },
+        ],
+      },
+      tableData: [],
+      formData: {},
+      dialogVisible: false,
+      pageData: {
+        pageNum: 1,
+        pageSize: 20,
+        agreementType: 1,
+        handlingFeesStatus: 1,
+      },
+      dockingPersonOption: [],
+      // 记录里的明细
+      dialogVisibleRecordDetail: false,
+      formTableDatarecordDetail: [],
+      pageDataRecordDetail: {
+        pageNum: 1,
+        pageSize: 20,
+        totalSize: 0,
+      },
+      recordDetail: "",
+      messageObj: {},
+      messageVisible: false,
+      messageList: [],
+      messageTableConfig: {
+        columns: [
+          {
+            prop: "companyName",
+            label: "保险公司名称",
+            type: "text",
+          },
+          {
+            prop: "partnerCompaniesName",
+            label: "合作公司名称",
+            type: "text",
+          },
+          {
+            prop: "sumAmount",
+            label: "应收金额",
+            type: "text",
+          },
+          {
+            prop: "ysAmount",
+            label: "已收金额",
+            type: "text",
+          },
+          {
+            prop: "wsAmount",
+            label: "未收金额",
+            type: "text",
+          },
+        ],
+        loading: true,
+        isPaginationShow: true,
+        showSummary: true,
+        isShowIndex: true,
+        tableHeight: "auto",
+      },
+      messagePage: {
+        pageNum: 1,
+        pageSize: 10,
+        total: 0,
+      },
+      Recordtime: "",
+    };
+  },
+  created() {
+    this.findPage();
+    this.$api.task.getDockingPersonList().then((res) => {
+      if (res.code == 200) {
+        this.dockingPersonOption = res.data;
+      } else {
+        this.$message.error(res.msg);
+      }
+    });
+  },
+  methods: {
+    //重置表单查询信息
+    handleResetForm() {
+      this.formData = {};
+      this.pageData.dockingPerson = [];
+      this.$refs.yearMonthYay.clear();
+    },
+    // 记录里的明细
+    haldRecordDetail(row) {
+      // console.log(row);
+      this.findPageRecordDetail(row);
+      this.Recordtime = row.settlementTime;
+      this.dialogVisibleRecordDetail = true;
+    },
+    handleCloseRecordDetail() {
+      this.dialogVisibleRecordDetail = false;
+    },
+    getListRecordDetail(data) {
+      this.findPageRecordDetail(data);
+    },
+    findPageRecordDetail(row) {
+      this.tableConfigDetailDetail.loading = true;
+      this.$api.task
+        .plyFeeQuery({
+          partnerCompaniesId: this.recordDetail,
+          // agreementType: '1',
+          // handlingFeesStatus: '1',
+          settlementDate: row.settlementTime || this.Recordtime,
+          ...this.pageDataRecordDetail,
+        })
+        .then((res) => {
+          console.log(res);
+          if (res.code == 200) {
+            this.formTableDatarecordDetail = res.data.content;
+            this.pageDataRecordDetail = {
+              pageNum: res.data.pageNum,
+              pageSize: res.data.pageSize,
+              totalSize: res.data.totalSize,
+            };
+            this.tableConfigDetailDetail.loading = false;
+          } else {
+            this.tableConfigDetailDetail.loading = false;
+            this.$message.error(res.msg);
+          }
+        });
+    },
+    // 明细
+    findPageDetailDetail(data) {
+      // console.log(data)
+      this.tableConfigDetailDetail.loading = true;
+      this.$api.task
+        .plyFeeQuery({
+          // partnerCompaniesId: data
+          //   ? data.partnerCompaniesId
+          //   : this.messageObj.partnerCompaniesId,
+          agreementType: "1",
+          handlingFeesStatus: "1",
+          ...this.pageDataDetail,
+          dockingPerson: data
+            ? data.dockingPerson
+            : this.messageObj.dockingPerson,
+        })
+        .then((res) => {
+          if (res.code == 200) {
+            this.formTableDatarecord = res.data.content;
+            this.pageDataDetail = {
+              pageNum: res.data.pageNum,
+              pageSize: res.data.pageSize,
+              totalSize: res.data.totalSize,
+            };
+            this.tableConfigDetailDetail.loading = false;
+          } else {
+            this.tableConfigDetail.loading = false;
+            this.$message.error(res.msg);
+          }
+        });
+    },
+    // 明细
+    getListDetail(data) {
+      this.findPageDetailDetail();
+    },
+    // 明细
+    haldDetail(row) {
+      this.messageObj = { ...row };
+      this.findPageDetailDetail(row);
+      this.dialogVisibleDetail = true;
+    },
+    //详情
+    haldMessage(row) {
+      this.messageVisible = true;
+      this.findPageMessage(row);
+    },
+    findPageMessage(data) {
+      this.messageTableConfig.loading = true;
+      this.$api.task
+        .findListByDockingPerson({
+          dockingPerson: data.dockingPerson,
+        })
+        .then((res) => {
+          if (res.code === 200) {
+            this.messageTableConfig.loading = false;
+            this.messageList = res.data;
+          }
+        });
+    },
+    handleCloseMessage() {
+      this.messageVisible = false;
+    },
+
+    handleCloseDetail() {
+      this.dialogVisibleDetail = false;
+    },
+
+    // 记录
+    haldRecord(row) {
+      this.recordDetail = row.partnerCompaniesId;
+      this.findPageDetailrecord(row);
+      this.dialogVisiblerecord = true;
+    },
+    // 记录
+    findPageDetailrecord(data) {
+      this.tableConfigDetailrecord.loading = true;
+      this.$api.task
+        // .settlementFeesQuery({
+        //   partnerCompaniesId: data.partnerCompaniesId,
+        //   agreementType: '1',
+        //   handlingFeesStatus: '0',
+        //   ...this.pageDatarecord
+        // })
+        .plyFeeRecord({
+          // partnerCompaniesId: data.partnerCompaniesId,
+          handlingFeesStatus: "1",
+          dockingPerson: data.dockingPerson,
+        })
+        .then((res) => {
+          if (res.code == 200) {
+            // this.formTableDatarecord = res.data.content;
+            // this.pageDatarecord = {
+            //   pageNum: res.data.pageNum,
+            //   pageSize: res.data.pageSize,
+            //   totalSize: res.data.totalSize,
+            // }
+            this.formTableDatarecord = res.data;
+            this.tableConfigDetailrecord.loading = false;
+          } else {
+            this.tableConfigDetail.loading = false;
+            this.$message.error(res.msg);
+          }
+        });
+    },
+    // 记录
+    getListrecord(data) {
+      this.findPageDetailrecord();
+    },
+    handleCloserecord() {
+      this.dialogVisiblerecord = false;
+    },
+    getYearData(val) {
+      this.formData.year = val;
+    },
+    getMonthData(val) {
+      this.formData.month = val;
+    },
+    getDayData(val) {
+      this.formData.day = val;
+    },
+    // 查询
+    handleSearchList(val) {
+      this.findPage(val);
+    },
+    //列表数据
+    findPage(data) {
+      this.tableConfig.loading = true;
+      this.$api.task
+        .PTAmountList({
+          ...this.pageData,
+          ...data,
+          ...this.formData,
+          beginDate: this.dateTime ? this.dateTime[0] : undefined,
+          endDate: this.dateTime ? this.dateTime[1] : undefined,
+        })
+        .then((res) => {
+          if (res.code == 200) {
+            this.tableData = res.data;
+            // this.pageData.pageNum = res.data.pageNum;
+            // this.pageData.pageSize = res.data.pageSize;
+            // this.pageData.totalSize = res.data.totalSize;
+            this.tableConfig.loading = false;
+          } else {
+            this.tableConfig.loading = false;
+            this.$message.error(res.msg);
+          }
+        });
+    },
+
+    tablePageChange(val) {
+      this.pageData.pageSize = val;
+      this.findPage();
+    },
+    tableCurrentChange(val) {
+      this.pageData.pageNum = val;
+      this.findPage();
+    },
+  },
+};
+</script>
+
+<style scoped>
+.table-overflow /deep/ .el-table {
+  overflow: auto;
+}
+.InvoicedAndSettled >>> .el-table__body-wrapper {
+  overflow-y: auto !important;
+  height: auto !important;
+}
+>>> .dataTable .el-table__header-wrapper .el-table__header .el-checkbox {
+  display: none;
+}
+</style>

+ 1 - 1
src/views/FinancialManagement/ExpenseManagement/ViewExpenseReport.vue

@@ -47,7 +47,7 @@
           <el-input v-model="queryFrom.applyAmount" placeholder="请输入支出金额" class="widths" clearable></el-input>
         </el-form-item>
         <el-form-item label="成本分类" prop="label">
-          <el-select v-model="queryFrom.label" filterable clearable placeholder="收款账户">
+          <el-select v-model="queryFrom.label" filterable clearable placeholder="成本分类">
             <el-option v-for="(item, index) in costTypelist" :key="index" :label="item.label"
               :value="item.label">
             </el-option>

+ 1 - 1
src/views/PeopleManage/Sales/SalesExamine.vue

@@ -652,7 +652,7 @@ export default {
         status: this.pageData.status,
         leaderName: this.queryFrom.leaderId,
         agentFlag: "3",
-        roleId: "21",
+        roleId: "3",
       };
       this.$api.user
         .findUserList({

+ 1 - 1
src/views/Task/AgentPoolChannel/AgentPoolChannel.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse" :dateType="1"
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text" @handleButton3="transmit"

+ 3 - 2
src/views/Task/AgentPoolChannel/AgentPoolChannel1.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse" :dateType="1"
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
@@ -106,6 +106,7 @@ export default {
         { prop: "username", label: "业务员姓名", minWidth: 180 },
         { prop: "leaderName", label: "管理人", minWidth: 160, },
         { prop: "managementSource", label: "业务来源", minWidth: 160, formatter: this.managementSourceFormatter },
+        { prop: "entryStatus", label: "录入来源", minWidth: 160, formatter: this.entryStatusFormatter },
         // { prop: "insCompany", label: "保险公司", minWidth: 120 },
         { prop: "partnerCompaniesName", label: "合作公司", minWidth: 120 },
         // { prop: "agreementName", label: "协议", minWidth: 160 },
@@ -118,7 +119,7 @@ export default {
         { prop: "jypremium", label: "驾意险保费", minWidth: 120 },
         { prop: "userid", label: "业务员工号", minWidth: 180 },
         { label: "原因", minWidth: 180, formatter: this.failureReasonFormatter },
-        { prop: "createtime", label: "录单日期", minWidth: 160 },
+        { prop: "createtime", label: "报价时间", minWidth: 160 },
       ],
     }
   },

+ 3 - 2
src/views/Task/AgentPoolChannel/AgentPoolChannel2.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse" :dateType="1"
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage"
@@ -113,6 +113,7 @@ export default {
         { prop: "username", label: "业务员姓名", minWidth: 180 },
         { prop: "leaderName", label: "管理人", minWidth: 160, },
         { prop: "managementSource", label: "业务来源", minWidth: 160, formatter: this.managementSourceFormatter },
+        { prop: "entryStatus", label: "录入来源", minWidth: 160, formatter: this.entryStatusFormatter },
         // { prop: "insCompany", label: "保险公司", minWidth: 120 },
         { prop: "partnerCompaniesName", label: "合作公司", minWidth: 120 },
         // { prop: "agreementName", label: "协议", minWidth: 160 },
@@ -124,7 +125,7 @@ export default {
         { prop: "jypremium", label: "驾意险保费", minWidth: 120 },
         {prop: "underwritingStatus", label: "核保通过方式", minWidth: 180, formatter: this.underwritingMethodFormatter },
         { prop: "userid", label: "业务员工号", minWidth: 180 },
-        { prop: "createtime", label: "录单日期", minWidth: 160 },
+        { prop: "createtime", label: "报价时间", minWidth: 160 },
       ],
     }
   },

+ 2 - 1
src/views/Task/AgentPoolChannel/AgentPoolChannel3.vue

@@ -87,6 +87,7 @@ export default {
         { prop: "username", label: "业务员姓名", minWidth: 180 },
         { prop: "leaderName", label: "管理人", minWidth: 160, },
         { prop: "managementSource", label: "业务来源", minWidth: 160, formatter: this.managementSourceFormatter },
+        { prop: "entryStatus", label: "录入来源", minWidth: 160, formatter: this.entryStatusFormatter },
         // { prop: "insCompany", label: "保险公司", minWidth: 120 },
         { prop: "partnerCompaniesName", label: "已承保公司", minWidth: 120 },
         { prop: "licenseno", label: "车牌号", minWidth: 160 },
@@ -99,7 +100,7 @@ export default {
         { prop: "insuredname", label: "投保人姓名", minWidth: 120 },
         {prop: "underwritingStatus", label: "核保通过方式", minWidth: 180, formatter: this.underwritingMethodFormatter },
         { prop: "userid", label: "业务员工号", minWidth: 180 },
-        { prop: "createtime", label: "录单日期", minWidth: 160 },
+        { prop: "createtime", label: "报价时间", minWidth: 160 },
       ],
     }
   },

+ 3 - 2
src/views/Task/AgentPoolChannel/AgentPoolChannel4.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse" :dateType="1"
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
@@ -108,6 +108,7 @@ export default {
         { prop: "username", label: "业务员姓名", minWidth: 180 },
         { prop: "leaderName", label: "管理人", minWidth: 160, },
         { prop: "managementSource", label: "业务来源", minWidth: 160, formatter: this.managementSourceFormatter },
+        { prop: "entryStatus", label: "录入来源", minWidth: 160, formatter: this.entryStatusFormatter },
         // { prop: "insCompany", label: "保险公司", minWidth: 120 },
         { prop: "partnerCompaniesName", label: "合作公司", minWidth: 120 },
         // { prop: "agreementName", label: "协议", minWidth: 160 },
@@ -120,7 +121,7 @@ export default {
         { prop: "jypremium", label: "驾意险保费", minWidth: 120 },
         { prop: "userid", label: "业务员工号", minWidth: 180 },
         { label: "原因", minWidth: 180, formatter: this.failureReasonFormatter },
-        { prop: "createtime", label: "录单日期", minWidth: 160 },
+        { prop: "createtime", label: "报价时间", minWidth: 160 },
       ],
     }
   },

+ 1 - 1
src/views/Task/CompanyPoolChannel/CompanyPoolChannel.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse" :dateType="1"
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text" @handleButton3="transmit"

+ 3 - 2
src/views/Task/CompanyPoolChannel/CompanyPoolChannel1.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse" :dateType="1"
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
@@ -107,6 +107,7 @@ export default {
         { prop: "username", label: "业务员姓名", minWidth: 180 },
         { prop: "leaderName", label: "管理人", minWidth: 160, },
         { prop: "managementSource", label: "业务来源", minWidth: 160, formatter: this.managementSourceFormatter },
+        { prop: "entryStatus", label: "录入来源", minWidth: 160, formatter: this.entryStatusFormatter },
         // { prop: "insCompany", label: "保险公司", minWidth: 120 },
         { prop: "partnerCompaniesName", label: "合作公司", minWidth: 120 },
         // { prop: "agreementName", label: "协议", minWidth: 160 },
@@ -119,7 +120,7 @@ export default {
         { prop: "jypremium", label: "驾意险保费", minWidth: 120 },
         { prop: "userid", label: "业务员工号", minWidth: 180 },
         { label: "原因", minWidth: 180, formatter: this.failureReasonFormatter },
-        { prop: "createtime", label: "录单日期", minWidth: 160 },
+        { prop: "createtime", label: "报价时间", minWidth: 160 },
       ],
     }
   },

+ 3 - 1
src/views/Task/CompanyPoolChannel/CompanyPoolChannel2.vue

@@ -5,6 +5,7 @@
       @submit="handleFormSubmit"
       @toggleCollapse="toggleCollapse"
       @areaSelectChange="areaSelectChange"
+      :dateType="1"
     ></retrievalForm>
     <kt-common-table
       :data="pageResult"
@@ -183,6 +184,7 @@ export default {
         { prop: "username", label: "业务员姓名", minWidth: 180 },
         { prop: "leaderName", label: "管理人", minWidth: 160, },
         { prop: "managementSource", label: "业务来源", minWidth: 160, formatter: this.managementSourceFormatter },
+        { prop: "entryStatus", label: "录入来源", minWidth: 160, formatter: this.entryStatusFormatter },
         // { prop: "insCompany", label: "保险公司", minWidth: 120 },
         { prop: "partnerCompaniesName", label: "合作公司", minWidth: 120 },
         // { prop: "agreementName", label: "协议", minWidth: 160 },
@@ -194,7 +196,7 @@ export default {
         { prop: "jypremium", label: "驾意险保费", minWidth: 120 },
         {prop: "underwritingStatus", label: "核保通过方式", minWidth: 180, formatter: this.underwritingMethodFormatter },
         { prop: "userid", label: "业务员工号", minWidth: 180 },
-        { prop: "createtime", label: "录单日期", minWidth: 160 },
+        { prop: "createtime", label: "报价时间", minWidth: 160 },
       ],
     };
   },

+ 2 - 1
src/views/Task/CompanyPoolChannel/CompanyPoolChannel3.vue

@@ -225,6 +225,7 @@ export default {
         { prop: "username", label: "业务员姓名", minWidth: 180 },
         { prop: "leaderName", label: "管理人", minWidth: 160, },
         { prop: "managementSource", label: "业务来源", minWidth: 160, formatter: this.managementSourceFormatter },
+        { prop: "entryStatus", label: "录入来源", minWidth: 160, formatter: this.entryStatusFormatter },
         // { prop: "insCompany", label: "保险公司", minWidth: 120 },
         { prop: "partnerCompaniesName", label: "已承保公司", minWidth: 120 },
         { prop: "licenseno", label: "车牌号", minWidth: 160 },
@@ -237,7 +238,7 @@ export default {
         { prop: "insuredname", label: "投保人姓名", minWidth: 120 },
         {prop: "underwritingStatus", label: "核保通过方式", minWidth: 180, formatter: this.underwritingMethodFormatter },
         { prop: "userid", label: "业务员工号", minWidth: 180 },
-        { prop: "createtime", label: "录单日期", minWidth: 160 },
+        { prop: "createtime", label: "报价时间", minWidth: 160 },
       ],
     }
   },

+ 3 - 2
src/views/Task/CompanyPoolChannel/CompanyPoolChannel4.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse" :dateType="1"
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage"
@@ -112,6 +112,7 @@ export default {
         { prop: "username", label: "业务员姓名", minWidth: 180 },
         { prop: "leaderName", label: "管理人", minWidth: 160, },
         { prop: "managementSource", label: "业务来源", minWidth: 160, formatter: this.managementSourceFormatter },
+        { prop: "entryStatus", label: "录入来源", minWidth: 160, formatter: this.entryStatusFormatter },
         // { prop: "insCompany", label: "保险公司", minWidth: 120 },
         { prop: "partnerCompaniesName", label: "合作公司", minWidth: 120 },
         // { prop: "agreementName", label: "协议", minWidth: 160 },
@@ -124,7 +125,7 @@ export default {
         { prop: "jypremium", label: "驾意险保费", minWidth: 120 },
         { prop: "userid", label: "业务员工号", minWidth: 180 },
         { label: "原因", minWidth: 180, formatter: this.failureReasonFormatter },
-        { prop: "createtime", label: "录单日期", minWidth: 160 },
+        { prop: "createtime", label: "报价时间", minWidth: 160 },
       ],
     }
   },

+ 3 - 2
src/views/Task/ElectricSales/AgentPoolChannel.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse" :dateType="1"
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text" @handleButton3="transmit"
@@ -81,6 +81,7 @@ export default {
         { prop: "product", label: "投保险种", minWidth: 100 },
         { prop: "username", label: "业务员姓名", minWidth: 180 },
         { prop: "managementSource", label: "业务来源", minWidth: 160, formatter: this.managementSourceFormatter },
+        { prop: "entryStatus", label: "录入来源", minWidth: 160, formatter: this.entryStatusFormatter },
         // { prop: "insCompany", label: "保险公司", minWidth: 120 },
         { prop: "partnerCompaniesName", label: "合作公司", minWidth: 120 },
         // { prop: "agreementName", label: "协议", minWidth: 160 },
@@ -92,7 +93,7 @@ export default {
 
         { prop: "jypremium", label: "驾意险保费", minWidth: 120 },
         { prop: "userid", label: "业务员工号", minWidth: 180 },
-        { prop: "createtime", label: "录单日期", minWidth: 160 },
+        { prop: "createtime", label: "报价时间", minWidth: 160 },
       ],
     }
   },

+ 3 - 2
src/views/Task/ElectricSales/AgentPoolChannel1.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse" :dateType="1"
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
@@ -105,6 +105,7 @@ export default {
         { prop: "username", label: "业务员姓名", minWidth: 180 },
         // { prop: "userid", label: "业务员", minWidth: 160, formatter: this.useridFormatter },
         { prop: "managementSource", label: "业务来源", minWidth: 160, formatter: this.managementSourceFormatter },
+        { prop: "entryStatus", label: "录入来源", minWidth: 160, formatter: this.entryStatusFormatter },
         // { prop: "insCompany", label: "保险公司", minWidth: 120 },
         { prop: "partnerCompaniesName", label: "合作公司", minWidth: 120 },
         // { prop: "agreementName", label: "协议", minWidth: 160 },
@@ -117,7 +118,7 @@ export default {
         { prop: "jypremium", label: "驾意险保费", minWidth: 120 },
         { prop: "userid", label: "业务员工号", minWidth: 180 },
         { label: "原因", minWidth: 180, formatter: this.failureReasonFormatter },
-        { prop: "createtime", label: "录单日期", minWidth: 160 },
+        { prop: "createtime", label: "报价时间", minWidth: 160 },
       ],
     }
   },

+ 3 - 2
src/views/Task/ElectricSales/AgentPoolChannel2.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse" :dateType="1"
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage"
@@ -113,6 +113,7 @@ export default {
         { prop: "username", label: "业务员姓名", minWidth: 180 },
         // { prop: "userid", label: "业务员", minWidth: 160, formatter: this.useridFormatter },
         { prop: "managementSource", label: "业务来源", minWidth: 160, formatter: this.managementSourceFormatter },
+        { prop: "entryStatus", label: "录入来源", minWidth: 160, formatter: this.entryStatusFormatter },
         // { prop: "insCompany", label: "保险公司", minWidth: 120 },
         { prop: "partnerCompaniesName", label: "合作公司", minWidth: 120 },
         // { prop: "agreementName", label: "协议", minWidth: 160 },
@@ -124,7 +125,7 @@ export default {
         { prop: "jypremium", label: "驾意险保费", minWidth: 120 },
         {prop: "underwritingStatus", label: "核保通过方式", minWidth: 180, formatter: this.underwritingMethodFormatter },
         { prop: "userid", label: "业务员工号", minWidth: 180 },
-        { prop: "createtime", label: "录单日期", minWidth: 160 },
+        { prop: "createtime", label: "报价时间", minWidth: 160 },
       ],
     }
   },

+ 2 - 1
src/views/Task/ElectricSales/AgentPoolChannel3.vue

@@ -87,6 +87,7 @@ export default {
         { prop: "username", label: "业务员姓名", minWidth: 180 },
         // { prop: "userid", label: "业务员", minWidth: 160, formatter: this.useridFormatter },
         { prop: "managementSource", label: "业务来源", minWidth: 160, formatter: this.managementSourceFormatter },
+        { prop: "entryStatus", label: "录入来源", minWidth: 160, formatter: this.entryStatusFormatter },
         // { prop: "insCompany", label: "保险公司", minWidth: 120 },
         { prop: "partnerCompaniesName", label: "已承保公司", minWidth: 120 },
         { prop: "licenseno", label: "车牌号", minWidth: 160 },
@@ -99,7 +100,7 @@ export default {
         { prop: "insuredname", label: "投保人姓名", minWidth: 120 },
         {prop: "underwritingStatus", label: "核保通过方式", minWidth: 180, formatter: this.underwritingMethodFormatter },
         { prop: "userid", label: "业务员工号", minWidth: 180 },
-        { prop: "createtime", label: "录单日期", minWidth: 160 },
+        { prop: "createtime", label: "报价时间", minWidth: 160 },
       ],
     }
   },

+ 3 - 2
src/views/Task/ElectricSales/AgentPoolChannel4.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse" :dateType="1"
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
@@ -109,6 +109,7 @@ export default {
         { prop: "username", label: "业务员姓名", minWidth: 180 },
         // { prop: "userid", label: "业务员", minWidth: 160, formatter: this.useridFormatter },
         { prop: "managementSource", label: "业务来源", minWidth: 160, formatter: this.managementSourceFormatter },
+        { prop: "entryStatus", label: "录入来源", minWidth: 160, formatter: this.entryStatusFormatter },
         // { prop: "insCompany", label: "保险公司", minWidth: 120 },
         { prop: "partnerCompaniesName", label: "合作公司", minWidth: 120 },
         // { prop: "agreementName", label: "协议", minWidth: 160 },
@@ -121,7 +122,7 @@ export default {
         { prop: "jypremium", label: "驾意险保费", minWidth: 120 },
         { prop: "userid", label: "业务员工号", minWidth: 180 },
         { label: "原因", minWidth: 180, formatter: this.failureReasonFormatter },
-        { prop: "createtime", label: "录单日期", minWidth: 160 },
+        { prop: "createtime", label: "报价时间", minWidth: 160 },
       ],
     }
   },

+ 1 - 1
src/views/Task/TaskPoolChannel/TaskPoolChannel.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse" :dateType="1"
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"

+ 3 - 2
src/views/Task/TaskPoolChannel/TaskPoolChannel1.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse" :dateType="1"
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text" @handleButton3="transmit"
@@ -104,6 +104,7 @@ export default {
         { prop: "username", label: "业务员姓名", minWidth: 180 },
         { prop: "leaderName", label: "管理人", minWidth: 160, },
         { prop: "managementSource", label: "业务来源", minWidth: 160, formatter: this.managementSourceFormatter },
+        { prop: "entryStatus", label: "录入来源", minWidth: 160, formatter: this.entryStatusFormatter },
         // { prop: "insCompany", label: "保险公司", minWidth: 120 },
         { prop: "partnerCompaniesName", label: "合作公司", minWidth: 120 },
         // { prop: "agreementName", label: "协议", minWidth: 160 },
@@ -116,7 +117,7 @@ export default {
         { prop: "jypremium", label: "驾意险保费", minWidth: 120 },
         { prop: "userid", label: "业务员工号", minWidth: 180 },
         { label: "原因", minWidth: 180, formatter: this.failureReasonFormatter },
-        { prop: "createtime", label: "录单日期", minWidth: 160 },
+        { prop: "createtime", label: "报价时间", minWidth: 160 },
       ],
     }
   },

+ 3 - 2
src/views/Task/TaskPoolChannel/TaskPoolChannel2.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse" :dateType="1"
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage"
@@ -113,6 +113,7 @@ export default {
         { prop: "username", label: "业务员姓名", minWidth: 180 },
         { prop: "leaderName", label: "管理人", minWidth: 160, },
         { prop: "managementSource", label: "业务来源", minWidth: 160, formatter: this.managementSourceFormatter },
+        { prop: "entryStatus", label: "录入来源", minWidth: 160, formatter: this.entryStatusFormatter },
         // { prop: "insCompany", label: "保险公司", minWidth: 120 },
         { prop: "partnerCompaniesName", label: "合作公司", minWidth: 120 },
         // { prop: "agreementName", label: "协议", minWidth: 160 },
@@ -125,7 +126,7 @@ export default {
         { prop: "jypremium", label: "驾意险保费", minWidth: 120 },
         {prop: "underwritingStatus", label: "核保通过方式", minWidth: 180, formatter: this.underwritingMethodFormatter },
         { prop: "userid", label: "业务员工号", minWidth: 180 },
-        { prop: "createtime", label: "录单日期", minWidth: 160 },
+        { prop: "createtime", label: "报价时间", minWidth: 160 },
       ],
     }
   },

+ 2 - 1
src/views/Task/TaskPoolChannel/TaskPoolChannel3.vue

@@ -84,6 +84,7 @@ export default {
         { prop: "username", label: "业务员姓名", minWidth: 180 },
         { prop: "leaderName", label: "管理人", minWidth: 160, },
         { prop: "managementSource", label: "业务来源", minWidth: 160, formatter: this.managementSourceFormatter },
+        { prop: "entryStatus", label: "录入来源", minWidth: 160, formatter: this.entryStatusFormatter },
         // { prop: "insCompany", label: "保险公司", minWidth: 120 },
         { prop: "partnerCompaniesName", label: "已承保公司", minWidth: 120 },
         { prop: "licenseno", label: "车牌号", minWidth: 160 },
@@ -96,7 +97,7 @@ export default {
         { prop: "insuredname", label: "投保人姓名", minWidth: 120 },
         {prop: "underwritingStatus", label: "核保通过方式", minWidth: 180, formatter: this.underwritingMethodFormatter },
         { prop: "userid", label: "业务员工号", minWidth: 180 },
-        { prop: "createtime", label: "录单日期", minWidth: 160 },
+        { prop: "createtime", label: "报价时间", minWidth: 160 },
       ],
     }
   },

+ 3 - 2
src/views/Task/TaskPoolChannel/TaskPoolChannel4.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"  :dateType="1"
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
@@ -109,6 +109,7 @@ export default {
         { prop: "username", label: "业务员姓名", minWidth: 180 },
         { prop: "leaderName", label: "管理人", minWidth: 160, },
         { prop: "managementSource", label: "业务来源", minWidth: 160, formatter: this.managementSourceFormatter },
+        { prop: "entryStatus", label: "录入来源", minWidth: 160, formatter: this.entryStatusFormatter },
         // { prop: "insCompany", label: "保险公司", minWidth: 120 },
         { prop: "partnerCompaniesName", label: "合作公司", minWidth: 120 },
         // { prop: "agreementName", label: "协议", minWidth: 160 },
@@ -121,7 +122,7 @@ export default {
         { prop: "jypremium", label: "驾意险保费", minWidth: 120 },
         { prop: "userid", label: "业务员工号", minWidth: 180 },
         { label: "原因", minWidth: 180, formatter: this.failureReasonFormatter },
-        { prop: "createtime", label: "录单日期", minWidth: 160 },
+        { prop: "createtime", label: "报价时间", minWidth: 160 },
       ],
     }
   },

+ 42 - 31
src/views/Task/daikeComponents/KtOrder.vue

@@ -47,18 +47,16 @@
         </el-col>
         <el-col :span="6">
           <el-form-item label="险种">
-            <el-select v-model="pageRequest.productid" clearable filterable placeholder="选择险种" style="width: 100%">
+            <el-select v-model="pageRequest.productid" clearable filterable placeholder="选择险种" class="widths">
               <el-option v-for="item in productsTypeoptions" :key="item.dictValue" :label="item.dictTag"
                 :value="item.dictValue"></el-option>
             </el-select>
           </el-form-item>
         </el-col>
-        <el-col :span="3">
-          <el-button type="primary" size="small" @click="onSubmit">查询</el-button>
-        </el-col>
+
       </el-row>
-      <el-row v-if="isLetterOrder">
-        <el-col :span="21">
+      <el-row>
+        <el-col :span="21" v-if="isLetterOrder">
           <el-form-item label="订单状态">
             <el-radio-group v-model="pageRequest.orderStatus">
               <el-radio label="888">全部</el-radio>
@@ -67,10 +65,13 @@
             </el-radio-group>
           </el-form-item>
         </el-col>
+        <el-col :span="3">
+          <el-button type="primary" size="small" @click="onSubmit">查询</el-button>
+        </el-col>
       </el-row>
     </el-form>
     <el-table size="small" :data="pageResult" border v-loading="orderLoaing" highlight-current-row stripe
-      @expand-change="handleRowChange" ref="expandTable" height="550" :header-cell-style="{
+      @expand-change="handleRowChange" ref="expandTable" :height="tabelHeight" :header-cell-style="{
         background: '#F2F7FC',
         fontWeight: '700',
         color: '#606266',
@@ -148,7 +149,7 @@
                 item.orderstatus == '4') &&
                 ['紫金财险'].includes(item.inscompany)
                 " @click="cancelorder(item)" class="red_color">撤单</el-button>
-              <el-button size="mini" type="text" v-if="item.orderstatus == '2' " @click="carcode(item)"
+              <el-button size="mini" type="text" v-if="item.orderstatus == '2'" @click="carcode(item)"
                 class="red_color">二维码</el-button>
               <!-- <el-button  size="mini"  class="red_color" v-if="item.orderstatus == '2' && item.inscompany == '平安财险'" type="text" @click="signature(item)">生成签章</el-button> -->
               <el-button size="mini" type="text" class="green_color"
@@ -176,7 +177,10 @@
               <el-button v-if="item.orderstatus !== '2'" size="mini" type="text" class="blue_color"
                 @click="orderTrajectory(scope.row, item)">订单轨迹</el-button>
               <el-button size="mini" type="primary" @click="bjdpreview(item.id, scope.row.userid)">报价单</el-button>
-              <el-button v-if="(item.orderstatus == '1' || item.orderstatus == '4' )&& item.inscompany=='平安财险' && item.fileStatus" size="mini" type="text" class="green_color" @click="additionalInformation(item.id,scope.row)">补充资料</el-button>
+              <el-button
+                v-if="(item.orderstatus == '1' || item.orderstatus == '4') && item.inscompany == '平安财险' && item.fileStatus"
+                size="mini" type="text" class="green_color"
+                @click="additionalInformation(item.id, scope.row)">补充资料</el-button>
               <!-- <el-button size="mini" type="text" @click="CloseEdit(scope.$index, scope.row)">编辑</el-button> -->
               <el-button type="text" size="mini" v-if="item.orderstatus == '2'">
                 <el-dropdown trigger="click">
@@ -190,7 +194,7 @@
                         @click="orderTrajectory(scope.row, item)">订单轨迹</el-button>
                     </el-dropdown-item>
                     <el-dropdown-item v-if="item.inscompany !== '平安财险'">
-                      <el-button  type="text" size="mini" style="color: #2d4d89"
+                      <el-button type="text" size="mini" style="color: #2d4d89"
                         @click="revokeCode(item.id)">撤销二维码</el-button>
                     </el-dropdown-item>
                   </el-dropdown-menu>
@@ -201,17 +205,16 @@
         </template>
       </el-table-column>
       <el-table-column prop="orderno" label="订单号" align="center" width="180"></el-table-column>
-      <el-table-column prop="username" label="业务员" align="center" width="180">
+      <el-table-column prop="username" :label="managementSource==1?'会员名称':'业务员'" align="center" width="180">
         <template slot-scope="scope">
           <span>{{ scope.row.username }}</span>
         </template>
       </el-table-column>
-      <el-table-column prop="username" label="业务员工号" align="center" width="180">
+      <el-table-column prop="username" :label="managementSource==1?'会员号':'业务员工号'" align="center" width="180">
         <template slot-scope="scope">
           <span>{{ scope.row.userid }}</span>
         </template>
       </el-table-column>
-
       <el-table-column prop="insCompany" label="承保公司" width="100" align="center">
         <template slot-scope="scope">
           <span>{{ scope.row.insCompany ? scope.row.insCompany : "--" }}</span>
@@ -447,7 +450,7 @@
               <el-button type="text" size="small" style="color: #2d4d89"
                 @click="OrderDetails(quotationhistoryRow, scope.row)">查看详情</el-button>
               <el-button size="small" type="text" @click="bjdpreview(scope.row.id, scope.row.userId)">报价单</el-button>
-              <el-button size="small" v-show="scope.row.orderstatus == '2' " type="text"
+              <el-button size="small" v-show="scope.row.orderstatus == '2'" type="text"
                 @click="carcode(scope.row)">付款码</el-button>
               <!-- <el-button  size="small"  v-if="scope.row.orderstatus == '2' && scope.row.inscompany == '平安财险'" type="text" @click="signature(item)">生成签章</el-button> -->
               <el-button size="mini" type="text" v-if="(scope.row.orderstatus == '1' ||
@@ -455,7 +458,8 @@
                 scope.row.orderstatus == '4') &&
                 ['紫金财险'].includes(scope.row.inscompany)
                 " @click="cancelorder(scope.row)">撤单</el-button>
-              <el-button  type="text" size="mini" style="color: #2d4d89" v-if="scope.row.orderstatus == '2' &&  scope.row.inscompany !== '平安财险'"
+              <el-button type="text" size="mini" style="color: #2d4d89"
+                v-if="scope.row.orderstatus == '2' && scope.row.inscompany !== '平安财险'"
                 @click="revokeCode(scope.row.id)">撤销二维码</el-button>
               <el-button type="text" size="mini" style="color: #2d4d89" v-if="scope.row.orderstatus == '2' &&
                 [
@@ -484,8 +488,8 @@
     </el-dialog>
     <!-- 生成签章 -->
     <el-dialog :visible.sync="signaturedialogVisible" title="生成签章" width="14%">
-      <div >
-        <img :src="resultMessageImg"  alt style="width: 100%" />
+      <div>
+        <img :src="resultMessageImg" alt style="width: 100%" />
         <!-- <div  id="signaturecode" ref="signaturecode"></div> -->
       </div>
     </el-dialog>
@@ -779,7 +783,7 @@ import { debounce } from 'lodash';
 export default {
   data() {
     return {
-      companyId:'',
+      companyId: '',
       orderLoaing: false,
       qrcodeWidth: "180",
       qrcodeHeight: "180",
@@ -865,6 +869,7 @@ export default {
       productsTypeoptions: [],
       InsInsuranceKindoptions: [],
       width: document.documentElement.clientWidth,
+      tabelHeight: document.documentElement.clientHeight - 360,
       insAreaCompanyList: [], //子订单list
       companyList: [], //保险公司
       querystatusLoaing: false,
@@ -880,8 +885,8 @@ export default {
       statusPor: "",
       deptIdPor: "",
       apiType: "",
-      resultMessageImg:'',
-      institutionOptions:[],
+      resultMessageImg: '',
+      institutionOptions: [],
       imageUploaddialogVisible: false,
       tabLiIndex: 0,
       tabLimenu: [
@@ -926,13 +931,15 @@ export default {
       imageList5: [],
       showViewer: false,
       ProViewImg: "",
-
+      managementSource:"",
     };
   },
   components: {
-    quotationDialog, detailsDialog, quotationDialogPro,imageDialog, "el-image-viewer": () =>
-      import("element-ui/packages/image/src/image-viewer")},
+    quotationDialog, detailsDialog, quotationDialogPro, imageDialog, "el-image-viewer": () =>
+      import("element-ui/packages/image/src/image-viewer")
+  },
   created() {
+    this.managementSource = JSON.parse(localStorage.getItem("user_data")).managementSource;
     this.getDicType("natureOfVehicleUse"); //车辆使用性质
     this.getDicType("vehicleType"); //车辆种类
     this.getDicType("trafficManagementVehicleType"); //车辆类型
@@ -972,6 +979,7 @@ export default {
   },
   mounted() {
     window.addEventListener("resize", this.getDimensions);
+
   },
   beforeCreate() {
     _self = this;
@@ -1020,8 +1028,8 @@ export default {
     },
   },
   methods: {
-    additionalInformation(companyId,row){
-        this.companyId=companyId
+    additionalInformation(companyId, row) {
+      this.companyId = companyId
       this.$refs.imageDialog.imageEcho(row.quoteno)
       this.$refs.imageDialog.setBackupVisible(true);
     },
@@ -1364,6 +1372,8 @@ export default {
     },
     getDimensions() {
       this.width = document.documentElement.clientWidth - 350 + "px";
+      this.tabelHeight = document.documentElement.clientHeight - 330 + "px";
+
     },
     //订单修改
     CloseEdit(index, row) {
@@ -1796,9 +1806,9 @@ export default {
     signature(row) {
       this.$api.letter.pingAnsignEleApply({ companyId: row.id }).then((res) => {
         if (res.code == 200 && res.data) {
-          this.resultMessageImg=process.env.BASE_URL+res.data.resultMessage
+          this.resultMessageImg = process.env.BASE_URL + res.data.resultMessage
           this.signaturedialogVisible = true;
-              // 查找并删除旧的二维码DOM元素
+          // 查找并删除旧的二维码DOM元素
           // let element = document.getElementById("signaturecode");
           // while (element.firstChild) {
           //   element.removeChild(element.firstChild);
@@ -2592,14 +2602,14 @@ export default {
                             this.oldfileList.push({
                               fileTitle: "交强电子保单",
                               filename: this.orderInfo.jqpolicyno,
-                              fileurl: process.env.BASE_URL+res.data.jqxPolicyUrl,
+                              fileurl: process.env.BASE_URL + res.data.jqxPolicyUrl,
                             });
                           }
                           if (res.data.jqxFlagUrl) {
                             this.oldfileList.push({
                               fileTitle: "交强电子标志",
                               filename: this.orderInfo.jqpolicyno,
-                              fileurl: process.env.BASE_URL+res.data.jqxFlagUrl,
+                              fileurl: process.env.BASE_URL + res.data.jqxFlagUrl,
                             });
                           }
                           if (res.data.syxPolicyUrl) {
@@ -2617,7 +2627,7 @@ export default {
                               accidentList.push({
                                 fileTitle: "驾意险保单",
                                 filename: "驾意险保单",
-                                fileurl: process.env.BASE_URL+val.jyx_policy_url,
+                                fileurl: process.env.BASE_URL + val.jyx_policy_url,
                               });
                             });
                           }
@@ -3685,4 +3695,5 @@ export default {
 .styleB .el-upload--picture-card {
   // display: none;
   opacity: 0;
-}</style>
+}
+</style>

+ 39 - 2
src/views/Task/mixin.js

@@ -130,6 +130,28 @@ export const mixin = { // 导出混入对象
           type: 'input',
           Retained: true,
         },
+        {
+          name: 'entryStatus',
+          label: '录入来源',
+          type: 'select',
+          Retained: true,
+          optionsIabel: "label",
+          optionsValue: "value",
+          options: [
+            {
+              label: "车险录入",
+              value: "1",
+            },
+            {
+              label: "代客录单",
+              value: "2",
+            },
+            {
+              label: "外部订单",
+              value: "3",
+            },
+          ],
+        },
       ],
       loading: false,
       queryFrom: {},
@@ -140,6 +162,7 @@ export const mixin = { // 导出混入对象
         { prop: "username", label: "业务员姓名", minWidth: 180 },
         { prop: "leaderName", label: "管理人", minWidth: 160, },
         { prop: "managementSource", label: "业务来源", minWidth: 160, formatter: this.managementSourceFormatter },
+        { prop: "entryStatus", label: "录入来源", minWidth: 160, formatter: this.entryStatusFormatter },
         // { prop: "insCompany", label: "保险公司", minWidth: 120 },
         { prop: "partnerCompaniesName", label: "合作公司", minWidth: 120 },
         // { prop: "agreementName", label: "协议", minWidth: 160 },
@@ -151,7 +174,8 @@ export const mixin = { // 导出混入对象
 
         { prop: "jypremium", label: "驾意险保费", minWidth: 120 },
         { prop: "userid", label: "业务员工号", minWidth: 180 },
-        { prop: "createtime", label: "录单日期", minWidth: 160 },
+        { prop: "createtime", label: "报价时间", minWidth: 160 },
+       
       ],
       columns1: [
         { prop: "subOrderId", label: "订单号", minWidth: 180 },
@@ -159,6 +183,7 @@ export const mixin = { // 导出混入对象
         { prop: "username", label: "业务员姓名", minWidth: 180 },
         { prop: "leaderName", label: "管理人", minWidth: 160, },
         { prop: "managementSource", label: "业务来源", minWidth: 160, formatter: this.managementSourceFormatter },
+        { prop: "entryStatus", label: "录入来源", minWidth: 160, formatter: this.entryStatusFormatter },
         // { prop: "insCompany", label: "保险公司", minWidth: 120 },
         { prop: "partnerCompaniesName", label: "已承保公司", minWidth: 120 },
         { prop: "licenseno", label: "车牌号", minWidth: 160 },
@@ -170,7 +195,7 @@ export const mixin = { // 导出混入对象
         // { prop: "isExternal", label: "外部订单", formatter: this.isExternalFormatter},
         { prop: "insuredname", label: "投保人姓名", minWidth: 120 },
         { prop: "userid", label: "业务员工号", minWidth: 180 },
-        { prop: "createtime", label: "录单日期", minWidth: 160 },
+        { prop: "createtime", label: "报价时间", minWidth: 160 }
       ],
       statusoptions: "",
       dialogVisible: false,
@@ -1235,6 +1260,18 @@ export const mixin = { // 导出混入对象
         default:
       }
     },
+    entryStatusFormatter(row, column) {
+      let entryStatus = row.entryStatus;
+      switch (entryStatus) {
+        case 1:
+          return <el-tag>车险录入</el-tag>
+        case 2:
+          return <el-tag type="success">代客录单</el-tag>
+        case 3:
+          return <el-tag type="warning">外部订单</el-tag>
+        default:
+      }
+    },
     //核保原因
     failureReasonFormatter(row,column){
       let id=row.subOrderId;

Unele fișiere nu au fost afișate deoarece prea multe fișiere au fost modificate în acest diff