Browse Source

Merge branch 'DK_dev' into dev

@dongkboy 1 year ago
parent
commit
d9de30e456

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

@@ -58,6 +58,13 @@ export const agreementCopy = (data) => {
     data
   })
 }
+export const copyAgreementAllInformation = (data) => {
+  return axios({
+    url: '/plt/new/agreement/copyAgreementAllInformation',
+    method: 'post',
+    data
+  })
+}
 // 保存保险公司
 export const addCompany = (data) => {
   return axios({

+ 285 - 92
src/views/AgreementManage/CarInsurance/AgreementEntry.vue

@@ -140,8 +140,8 @@
         </div>
       </div>
       <el-table :size="overSize" ref="multipleTable" :data="pageResult" height="580" border v-loading="loading"
-        @selection-change="agreementSelectionChange" @select="handleSelectChange" @current-change="agreementCurrentChange" highlight-current-row stripe
-        :header-cell-style="{
+        @selection-change="agreementSelectionChange" @select="handleSelectChange" @current-change="agreementCurrentChange"
+        highlight-current-row stripe :header-cell-style="{
           background: '#F2F7FC',
           fontWeight: '700',
           color: '#606266',
@@ -158,13 +158,13 @@
         <el-table-column prop="dockingPerson" label="对接人" align="center"></el-table-column>
         <el-table-column prop="agreementType" label="协议类型" align="center" width="150"
           :formatter="agreementtypeFormatter"></el-table-column>
-        <el-table-column prop="startDate" label="协议生效日期" align="center"></el-table-column>
+        <el-table-column prop="startDate" label="协议生效日期" align="center" width="150"></el-table-column>
         <el-table-column prop="isExternal" label="外部订单" align="center">
           <template slot-scope="scope">
             <span>{{ scope.row.isExternal == '1' ? '是' : '否' }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="endDate" label="协议失效日期" align="center"></el-table-column>
+        <el-table-column prop="endDate" label="协议失效日期" align="center" width="150"></el-table-column>
         <el-table-column prop="matchType" label="匹配日期类型" align="center" :formatter="matchtypeFormatter"></el-table-column>
         <el-table-column prop="moneyTime" label="结算周期" align="center" :formatter="moneytimeFormatter"></el-table-column>
         <el-table-column prop="validStatus" label="是否启用" align="center">
@@ -195,12 +195,13 @@
             </span>
           </template>
         </el-table-column> -->
-        <el-table-column prop="feeFileName" label="文件名" align="center">
+        <el-table-column prop="feeFileName" label="文件名" align="center" width="150">
           <template slot-scope="scope">
             <el-link @click="downloadFile(scope.row)">{{ scope.row.feeFileName }}</el-link>
           </template>
         </el-table-column>
-        <el-table-column prop="updateTime" label="修改时间" align="center" :formatter="updatetimeFormatter"></el-table-column>
+        <el-table-column prop="updateTime" label="修改时间" align="center" :formatter="updatetimeFormatter"
+          width="150"></el-table-column>
         <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">
@@ -211,14 +212,11 @@
             <kt-button label="删除" :size="overSize" type="text" perms="agreement:input:delete"
               @click="deletequery(scope.$index, scope.row)" style="color: #D42426 !important " />
             <kt-button label="协议轨迹" :size="overSize" type="text" perms="agreement:input:update"
-                       @click="handleTrajectory(scope.$index, scope.row)" style="color: #2D4D89 !important " />
-            <el-upload
-              action="#"
-              :show-file-list="false"
-              :auto-upload="false"
-              :on-change="(file) => handleUpload(file, scope.$index, scope.row)"
-            >
-              <kt-button label="上传费用文件" :size="overSize" type="text" perms="agreement:input:update" style="color: #2D4D89 !important " />
+              @click="handleTrajectory(scope.$index, scope.row)" style="color: #2D4D89 !important " />
+            <el-upload action="#" :show-file-list="false" :auto-upload="false"
+              :on-change="(file) => handleUpload(file, scope.$index, scope.row)">
+              <kt-button label="上传费用文件" :size="overSize" type="text" perms="agreement:input:update"
+                style="color: #2D4D89 !important " />
             </el-upload>
 
             <!-- <el-button type="text" size="mini">
@@ -250,8 +248,8 @@
       <div class="paginationCustom">
         <span class="selected">已选{{ selectedLength }}条 /</span>
         <el-pagination @size-change="handleSizeChange" background @current-change="handleCurrentChange"
-                       :current-page="pageNum" :page-sizes="[20, 50, 100, 200]" :page-size="pageSize"
-                       layout="total, sizes, prev, pager, next, jumper" :total="totalSize" style="float: right;margin-top: 5px; ">
+          :current-page="pageNum" :page-sizes="[20, 50, 100, 200]" :page-size="pageSize"
+          layout="total, sizes, prev, pager, next, jumper" :total="totalSize" style="float: right;margin-top: 5px; ">
         </el-pagination>
       </div>
     </el-main>
@@ -379,7 +377,8 @@
               <el-row>
                 <el-col :span="12">
                   <el-form-item label="选择机构">
-                    <el-select v-model="custodianIdData" placeholder="请选择对接管理人机构" :popper-append-to-body="false" style="width: 100%">
+                    <el-select v-model="custodianIdData" placeholder="请选择对接管理人机构" :popper-append-to-body="false"
+                      style="width: 100%">
                       <el-option :value="custodianIdTree" class="deptOption">
                         <el-tree :data="internalDept" :props="defaultProps" ref="tree1" :highlight-current="true"
                           @node-click="handleNodeClick1" default-expand-all></el-tree>
@@ -389,7 +388,8 @@
                 </el-col>
                 <el-col :span="12">
                   <el-form-item label="对接管理人">
-                    <el-select v-model="agreement.custodianId" filterable clearable placeholder="请选择对接管理人" style="width: 100%">
+                    <el-select v-model="agreement.custodianId" filterable clearable placeholder="请选择对接管理人"
+                      style="width: 100%">
                       <el-option v-for="item in custodianList" :key="item.dictValue" :label="item.name"
                         :value="item.userId"></el-option>
                     </el-select>
@@ -417,8 +417,8 @@
               <el-row>
                 <el-col :span="12">
                   <el-form-item label="协议生效日期" prop="startDate">
-                    <el-date-picker style="width: 100%" v-model="agreement.startDate" type="datetime" placeholder="选择协议生效日期"
-                      format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss">
+                    <el-date-picker style="width: 100%" v-model="agreement.startDate" type="datetime"
+                      placeholder="选择协议生效日期" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss">
                     </el-date-picker>
                   </el-form-item>
                 </el-col>
@@ -990,7 +990,7 @@
       <el-form :inline="true" :model="productcopyItemPageRequest" class="demo-form-inline" size="small"
         label-width="80px">
         <el-form-item label="选择协议">
-          <el-select v-model="productcopyItemPageRequest.agreementId" filterable clearable  placeholder="请选择协议">
+          <el-select v-model="productcopyItemPageRequest.agreementId" filterable clearable placeholder="请选择协议">
             <el-option v-for="(item, index) in pageResult" :key="index" :label="item.agreementAbbreviation"
               :value="item.id"></el-option>
           </el-select>
@@ -1415,25 +1415,115 @@
         <div v-show="!trajectoryTable1.length">暂无轨迹</div>
       </div>
     </el-dialog>
-    <el-drawer
-
-    :visible.sync="drawer"
-    :direction="'rtl'"
-    size="100%"
-    :before-close="handleClose"
-    :destroy-on-close="true">
+    <el-dialog title="协议复制" :visible.sync="copyProtocolVisible" width="90%" top="6vh" :fullscreen="true"  @open="copyProtocolOpen">
+      <el-form :model="copyProtocolform" class="demo-form-inline" :size="overSize" label-width="110px"
+        style="margin: 10px 20px;border-bottom: 1px solid #D7DBE7;">
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label="协议代码">
+              <el-input style="width: 100%;" v-model="copyProtocolform.agreementCode" disabled
+                placeholder="协议代码"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="协议名称">
+              <el-input v-model="copyProtocolform.agreementTitle" disabled clearable placeholder="协议名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="协议简称">
+              <el-input v-model="copyProtocolform.agreementAbbreviation" disabled clearable placeholder="协议简称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="协议生效日期">
+              <el-date-picker style="width: 100%" v-model="copyProtocolform.startDate" type="datetime"
+                placeholder="选择协议生效日期" format="yyyy-MM-dd HH:mm:ss" disabled value-format="yyyy-MM-dd HH:mm:ss">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="协议描述">
+              <el-input v-model="copyProtocolform.agreementName" disabled clearable placeholder="协议描述"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="业务描述">
+              <el-input v-model="copyProtocolform.businessDescription" disabled clearable placeholder="业务描述"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="工号描述">
+              <el-input v-model="copyProtocolform.jobDescription" disabled clearable placeholder="工号描述"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="协议失效日期">
+              <el-date-picker style="width: 100%" v-model="copyProtocolform.endDate" disabled type="datetime"
+                placeholder="选择失效日期" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div class="flex  ">
+        <div class="sidebarShortcut">
+          <ul class="flex j-c a-c f-c">
+            <li :class="{ sidebarstyle: sidebarItem == 'fyfz' }" class="flex a-c " @click="scrollToSection('fyfz')">
+              费用复制
+            </li>
+            <li :class="{ sidebarstyle: sidebarItem == 'cbgzfz' }" class="flex a-c " @click="scrollToSection('cbgzfz')">
+              承保规则复制
+            </li>
+          </ul>
+        </div>
+        <div class="tab-panecent1">
+          <div id="fyfz" class="copyFee">
+            <div style="margin-bottom: 10px;" class="flex ">
+              <span style="font-weight: bold;margin-right: 10px;">费用复制</span>
+              <el-checkbox v-model="copyProtocolInfo.cost.all">{{ copyProtocolInfo.cost.all ? '取消全选' : '全选'
+              }}</el-checkbox>
+            </div>
+            <kt-common-table :tableHeights="260" :SerialShow="false" :operationWidth="250" :showOperation="false"
+              :customToolseletted="false" customToolName="批量复制" permscustomTool="agreement:input:productCost"
+              @customTool="customTool" :showBatchDelete="true" :showBatchSettled="false" :showBatchPrint="false"
+              :data="productcopyItemResult" :columns="productcopyItemColumns" @findPage="productcopyItemFindPage"
+              @selectionChange="costselectionChange">
+            </kt-common-table>
+          </div>
+          <div id="fyfz" class="copyFee">
+            <div style="margin-bottom: 10px;" class="flex ">
+              <span style="font-weight: bold;margin-right: 10px;">承保规则复制</span>
+              <el-checkbox v-model="copyProtocolInfo.underwritingRules.all">{{ copyProtocolInfo.underwritingRules.all
+                ? '取消全选' : '全选' }}</el-checkbox>
+            </div>
+            <kt-common-table :tableHeights="260" :SerialShow="false" :operationWidth="250" :showOperation="false"
+              :showBatchDelete="true" :showBatchSettled="false" :showBatchPrint="false" :data="underwritingRulesResult"
+              :columns="underwritingRulesColumns" @findPage="underwritingRulesFindPage"
+              @selectionChange="underwritingRulesselectionChange">
+            </kt-common-table>
+          </div>
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button :size="overSize" @click="copyProtocolVisible = false">取 消</el-button>
+        <el-button :size="overSize" type="primary" @click="copyProtocolSubmit"
+          style="background: #2D4D89;color: #fff;border-color: #2D4D89;">确 定</el-button>
+      </span>
+    </el-dialog>
+    <el-drawer :visible.sync="drawer" :direction="'rtl'" size="100%" :before-close="handleClose" :destroy-on-close="true">
 
-    <div class="drawer-main">
-      <agreementHistoryRecord :messageInfo="agreementActiveInfo" v-if="operationTypeBtn==1"/>
+      <div class="drawer-main">
+        <agreementHistoryRecord :messageInfo="agreementActiveInfo" v-if="operationTypeBtn == 1" />
 
-      <agreementProductFee :messageInfo="agreementActiveInfo" v-if="operationTypeBtn==2"/>
+        <agreementProductFee :messageInfo="agreementActiveInfo" v-if="operationTypeBtn == 2" />
 
-      <agreementUnderwritingRule :messageInfo="agreementActiveInfo" v-if="operationTypeBtn==3"/>
+        <agreementUnderwritingRule :messageInfo="agreementActiveInfo" v-if="operationTypeBtn == 3" />
 
-      <agreementNonVehicleConfig :messageInfo="agreementActiveInfo" v-if="operationTypeBtn==4"/>
+        <agreementNonVehicleConfig :messageInfo="agreementActiveInfo" v-if="operationTypeBtn == 4" />
 
-    </div>
-  </el-drawer>
+      </div>
+    </el-drawer>
   </div>
 </template>
 <script>
@@ -1449,7 +1539,7 @@ import agreementProductFee from "./AgreementProductFee.vue"
 import agreementHistoryRecord from "./AgreementHistoryRecord.vue"
 import agreementUnderwritingRule from "./AgreementUnderwritingRule.vue"
 import agreementNonVehicleConfig from "./AgreementNonVehicleConfig.vue"
-import {updateFeeFile} from "../../../http/moudules/insCompany";
+import { updateFeeFile } from "../../../http/moudules/insCompany";
 export default {
   components: {
     tree,
@@ -1463,8 +1553,22 @@ export default {
   },
   data() {
     return {
-      operationTypeBtn:0,
-      drawer:false,
+      copyProtocolVisible: false,//协议复制
+      copyProtocolform: {},
+      copyProtocolInfo: {//复制协议json
+        agreementId: "",
+        cost: {
+          all: true,
+          informationId: []
+        },
+        underwritingRules: {
+          all: true,
+          informationId: []
+        }
+      },//协议复制
+      sidebarItem: "fyfz",
+      operationTypeBtn: 0,
+      drawer: false,
       apiTypelist: [
         {
           id: 1,
@@ -1888,6 +1992,7 @@ export default {
         { prop: "costsEndDate", label: "费用止期", minWidth: 160 },
         { prop: "costsDescription", label: "费用描述", minWidth: 220 },
         { prop: "desc", label: "费用因子描述", minWidth: 520 },
+        { prop: "effective", label: "有效状态", minWidth: 100 ,formatter: this.effectiveFormatter},
         { prop: "priorityLevel", label: "方案优先级", minWidth: 120 },
         {
           prop: "jqCarCostsProportion",
@@ -2163,9 +2268,14 @@ export default {
         costStartDate: "",
         costsEndDate: "",
         isEffective: "",
-        costsDescription: "",
+        costsDescription: [],
         pageNum: 1,
-        pageSize: 20,
+        pageSize: 10,
+      },
+      underwritingRulesPageRequest: {
+        agreementId: "",
+        pageNum: 1,
+        pageSize: 10,
       },
       value1: [],
       vehicleCategoryList: [], //费用因子-车辆大类
@@ -2551,8 +2661,8 @@ export default {
     this.findLeftTreeData();
   },
   methods: {
-    downloadFile(row){
-      let url = process.env.BASE_URL  + row.feeFileUrl.substring(1,row.feeFileUrl.length); // 3.创建一个临时的url指向blob对象
+    downloadFile(row) {
+      let url = process.env.BASE_URL + row.feeFileUrl.substring(1, row.feeFileUrl.length); // 3.创建一个临时的url指向blob对象
       let link = document.createElement("a");
       link.target = '_blank'
       link.href = url;
@@ -2567,7 +2677,7 @@ export default {
       formData.append('multipartFile', file.raw)
       formData.append('agreementId', row.id)
       this.$api.insCompany.updateFeeFile(formData).then(res => {
-        if(res.code == 200) {
+        if (res.code == 200) {
           this.$message.success(res.msg)
           this.findPage();
         } else {
@@ -2631,7 +2741,7 @@ export default {
         list.push(element.id)
       });
       this.agreementSelectionList = list;
-      this.selectedLength = val.length>0?val.length:0
+      this.selectedLength = val.length > 0 ? val.length : 0
       // if(val.length>0) {
       //   this.$set(this.hasSelectedList, this.pageNum-1, val)
       //   this.hadSelectedList = [...this.hasSelectedList]
@@ -2653,7 +2763,7 @@ export default {
       // }
     },
     handleSelectChange(rows) {
-      this.selectedLength = rows.length>0?rows.length:0
+      this.selectedLength = rows.length > 0 ? rows.length : 0
       // if(rows.length>0) {
       //   this.$set(this.hasSelectedList, this.pageNum-1, rows)
       //   this.hadSelectedList = [...this.hasSelectedList]
@@ -2962,6 +3072,13 @@ export default {
       this.underwritingRulesHistoryDetailsDialogVisible = true;
 
     },
+    scrollToSection(sectionId) {
+      this.sidebarItem = sectionId;
+      const element = document.getElementById(sectionId);
+      if (element) {
+        element.scrollIntoView({ behavior: 'smooth' });
+      }
+    },
     getFactorTemplate() {
       this.$api.insCompany.productConfigItem(this.insuranceCompanyId).then(res => {
         if (res.code == '200') {
@@ -3038,14 +3155,14 @@ export default {
       //   path: "agreementHistoryRecord",
       //   query: this.agreementActiveInfo,
       // });
-      this.drawer=true
-      this.operationTypeBtn=1
+      this.drawer = true
+      this.operationTypeBtn = 1
 
     },
     //产品费用按钮点击
     productCost1() {
-      this.drawer=true
-      this.operationTypeBtn=2
+      this.drawer = true
+      this.operationTypeBtn = 2
 
       // this.$router.push({
       //   path: "agreementProductFee",
@@ -3058,8 +3175,8 @@ export default {
       //   path: "agreementUnderwritingRule",
       //   query: this.agreementActiveInfo,
       // });
-      this.drawer=true
-      this.operationTypeBtn=3
+      this.drawer = true
+      this.operationTypeBtn = 3
 
 
     },
@@ -3069,9 +3186,14 @@ export default {
       //   path: "agreementNonVehicleConfig",
       //   query: this.agreementActiveInfo,
       // });
-      this.drawer=true
-      this.operationTypeBtn=4
+      this.drawer = true
+      this.operationTypeBtn = 4
+
+    },
+    copyProtocolOpen(){
 
+      this.copyProtocolInfo.cost.all=true;
+      this.copyProtocolInfo.underwritingRules.all=true;
     },
     //非车规则分页查询
     accidentalInsuranceFindPage(data) {
@@ -3153,15 +3275,14 @@ export default {
     },
     underwritingRulesFindPage(data) {
       if (data && data.pageRequest) {
-        this.productpageRequest.pageNum = data.pageRequest.pageNum;
-        this.productpageRequest.pageSize = data.pageRequest.pageSize;
+        this.underwritingRulesPageRequest.pageNum = data.pageRequest.pageNum;
+        this.underwritingRulesPageRequest.pageSize = data.pageRequest.pageSize;
       } else {
-        this.productpageRequest.pageNum = 1;
-        this.productpageRequest.pageSize = 20;
+        this.underwritingRulesPageRequest.pageNum = 1;
+        this.underwritingRulesPageRequest.pageSize = 20;
       }
-      this.productpageRequest["agreementId"] = this.agreementId;
       this.$api.insCompany
-        .getUndwrtRulesQuery(this.productpageRequest)
+        .getUndwrtRulesQuery(this.underwritingRulesPageRequest)
         .then((res) => {
           this.underwritingRulesResult = res;
         });
@@ -3530,7 +3651,7 @@ export default {
       let params = {
         insCompanyId: this.queryForm.partnerCompaniesId,
         apiType: id,
-        agreementId:this.agreementId,
+        agreementId: this.agreementId,
       };
       this.$api.insCompany.getPtlInsAttributionTemplate(params).then((res) => {
         if (res.code == "200") {
@@ -3562,35 +3683,40 @@ export default {
     },
     //协议复制
     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,
-              });
-            }
+      this.copyProtocolVisible = true;
+      this.copyProtocolform = Object.assign({}, row);
+      this.copyProtocolInfo.agreementId = row.id;
+      this.productcopyItemPageRequest.agreementId = row.id;
+      this.underwritingRulesPageRequest.agreementId = row.id;
+      this.productcopyItemFindPage();
+      this.underwritingRulesFindPage();
+
+    },
+    costselectionChange(data) {
+      this.copyProtocolInfo.cost.informationId = data;
+    },
+    underwritingRulesselectionChange(data) {
+      this.copyProtocolInfo.underwritingRules.informationId = data;
+    },
+    copyProtocolSubmit() {
+      this.$api.insCompany.copyAgreementAllInformation(this.copyProtocolInfo).then((res) => {
+        if (res.code == '200') {
+          this.$message({
+            type: 'success',
+            message: res.msg,
           });
-        })
-        .catch(() => {
+          this.copyProtocolVisible = false;
+          this.findPage();
+        } else {
           this.$message({
-            type: "info",
-            message: "已取消",
+            type: 'error',
+            message: res.msg,
           });
-        });
+        }
+      });
 
     },
+    //协议复制
     //编辑事件
     uplatequery(index, row) {
       //每次修改时,先把变量清空,解决累加存储问题
@@ -3752,7 +3878,7 @@ export default {
       //不管新增,还是编辑  关闭窗口后,都清空临时数据 以免编辑后新增默认带出上一次打开协议中信息
       for (let key in this.agreement) {
         if (key != "partnerCompaniesId") {
-        this.agreement[key] = "";
+          this.agreement[key] = "";
 
         }
       }
@@ -3899,7 +4025,7 @@ export default {
       let parmas = {
         pageNum: this.pageNum,
         pageSize: this.pageSize,
-        partnerCompaniesId:this.queryForm.partnerCompaniesId,
+        partnerCompaniesId: this.queryForm.partnerCompaniesId,
         companiesType: this.supplierType,
         startDate: this.queryForm.startDate,
         endDate: this.queryForm.endDate,
@@ -3934,6 +4060,14 @@ export default {
           return '删除'
       }
     },
+    effectiveFormatter(row,column){
+      let effective = row.effective;
+      if(effective){
+        return <el-tag type="success">有效</el-tag>;
+      }else{
+        return <el-tag type="error">无效</el-tag>;
+      }
+    },
     useNatureFormatter(row, column) {
       let natureOfVehicle = row.useNature;
       return CommonUtil.getDataName({
@@ -4052,7 +4186,7 @@ export default {
       }
       this.agreement.partnerCompaniesId = value[value.length - 1];
       this.agreement.insuranceCompanyId = value[0];
-      this.queryForm.partnerCompaniesId=value[value.length - 1];
+      this.queryForm.partnerCompaniesId = value[value.length - 1];
       if (this.supplierType == "1") {
         this.agreement.agreementType = "1";
       } else if (this.supplierType == "0") {
@@ -4208,8 +4342,8 @@ export default {
       this.findPage();
     },
     //关闭抽屉
-    handleClose(){
-      this.drawer=false
+    handleClose() {
+      this.drawer = false
     }
   },
 };
@@ -4326,6 +4460,10 @@ export default {
     background: #2D4D89;
   }
 
+  .el-tabs__active-bar {
+    background-color: transparent;
+  }
+
   .el-tabs--card>.el-tabs__header .el-tabs__nav,
   .el-tabs--card>.el-tabs__header,
   .el-tabs--card>.el-tabs__header .el-tabs__item {
@@ -4430,7 +4568,8 @@ export default {
 
 
 }
-.el-link.el-link--default{
+
+.el-link.el-link--default {
   color: #409eff;
 }
 
@@ -4467,14 +4606,68 @@ export default {
   padding: 4px 20px;
   font-weight: 400;
 }
-.paginationCustom{
+
+.paginationCustom {
   display: flex;
   justify-content: flex-end;
   align-items: center;
-  .selected{
+
+  .selected {
     font-size: 13px;
     margin-top: 5px;
     color: #606266;
   }
+
+
+}
+
+.tab-panecent1 {
+
+  height: 600px;
+  width: 90%;
+  overflow-y: auto;
+}
+
+.sidebarstyle {
+  background: rgba(45, 77, 137, 0.1);
+  border-radius: 4px;
+  font-weight: bold;
+  color: #2D4D89;
+}
+
+.sidebarShortcut {
+  width: 136px;
+  height: auto;
+  background: #fff;
+  padding: 0 6px;
+  border-radius: 4px;
+  box-sizing: border-box;
+  font-size: 14px;
+
+  ul {
+    list-style: none;
+    padding: 0;
+  }
+
+  ul>li {
+    padding: 6px;
+    box-sizing: border-box;
+    width: 100%;
+    margin-top: 2px;
+  }
+
+  li:hover {
+    background: rgba(45, 77, 137, 0.1);
+    border-radius: 4px 4px 4px 4px;
+    color: #2D4D89;
+    cursor: pointer;
+  }
+}
+
+.copyFee {
+  border: 2px solid #D7DBE7;
+  border-radius: 10px;
+  padding: 10px;
+  box-sizing: border-box;
 }
 </style>

+ 309 - 265
src/views/AgreementManage/CarInsurance/ProductCostExamine.vue

@@ -11,9 +11,11 @@
       </el-form-item>
 
       <el-form-item label="协议选择">
-        <el-select size="small" multiple clearable collapse-tags filterable v-model="productpageRequest.agreementIdList" :placeholder="'请输入'">
+        <el-select size="small" multiple clearable collapse-tags filterable v-model="productpageRequest.agreementIdList"
+          :placeholder="'请输入'">
           <el-option v-for="(s, i) in agreementList" :key="i"
-          :label="s.agreementTitle + '-' + (s.businessDescription || ' ') + '-' + (s.jobDescription || '  ')" :value="s.id"></el-option>
+            :label="s.agreementTitle + '-' + (s.businessDescription || ' ') + '-' + (s.jobDescription || '  ')"
+            :value="s.id"></el-option>
         </el-select>
       </el-form-item>
 
@@ -41,13 +43,13 @@
         </el-select>
       </el-form-item>
       <el-form-item label="费用起期">
-        <el-date-picker value-format="yyyy-MM-dd HH:mm:ss" v-model="productpageRequest.costStartDate" size="small" type="datetime" align="left"
-          range-separator="至" placeholder="费用起期">
+        <el-date-picker value-format="yyyy-MM-dd HH:mm:ss" v-model="productpageRequest.costStartDate" size="small"
+          type="datetime" align="left" range-separator="至" placeholder="费用起期">
         </el-date-picker>
       </el-form-item>
       <el-form-item label="费用止期">
-        <el-date-picker value-format="yyyy-MM-dd HH:mm:ss" v-model="productpageRequest.costsEndDate" @change="costsEndDateChange" size="small" type="datetime" align="left"
-          range-separator="至" placeholder="费用止期">
+        <el-date-picker value-format="yyyy-MM-dd HH:mm:ss" v-model="productpageRequest.costsEndDate"
+          @change="costsEndDateChange" size="small" type="datetime" align="left" range-separator="至" placeholder="费用止期">
         </el-date-picker>
       </el-form-item>
 
@@ -59,255 +61,246 @@
       permsButton2="agreement:input:productCost" @handleButton2="viewDetails" :showBatchDelete="true" deleteName="批量审核"
       @handleDelete="handleDelete" :data="costAudit" :columns="costColumns" @findPage="costPage">
     </kt-common-table>
-    <el-dialog title="详情" :visible.sync="productCostAddVehicleFactorVisible" width="80%" top="6vh">
-      <div class="productstitle flex j-s" style="margin-top: 10px">
+    <el-dialog title="详情" :visible.sync="productCostAddVehicleFactorVisible" width="80%" top="3vh" class="custom-class">
+      <!-- <div class="productstitle flex j-s" style="margin-top: 10px">
         <div>
           <span>{{ productCostForm.productName }}费用</span>
         </div>
-      </div>
-      <el-button class="mrgin-1" size="small" type="warning"
-        @click="productCostFactorDialogVisible = true">产品费用因子</el-button>
-      <el-form ref="productCostForm" :model="productCostForm" label-width="130px" size="mini" disabled>
-        <el-row>
-          <el-col :span="20" :offset="2">
-            <el-form-item label="费用描述">
-              <el-input type="textarea" v-model="productCostForm.costsDescription" placeholder="输入费用描述内容"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="10" :offset="2">
-            <el-form-item label="费用起期" prop="costsStartDate">
-              <el-date-picker style="width: 100%" v-model="productCostForm.costsStartDate" type="datetime"
-                placeholder="选择费用开始日期" value-format="yyyy-MM-dd HH:mm:ss">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-          <el-col :span="10">
-            <el-form-item label="费用止期" prop="costsEndDate">
-              <el-date-picker style="width: 100%" v-model="productCostForm.costsEndDate" type="datetime"
-                placeholder="选择费用结束日期" value-format="yyyy-MM-dd HH:mm:ss">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-          <el-col :span="10" :offset="2">
-            <el-form-item label="优先级">
-              <el-input style="width: 100%" v-model="productCostForm.priorityLevel"
-                onkeyup="value=value.replace(/\D/g,'')" placeholder="输入数字"></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row v-if="['单交', '交三', '交商', '兜底配置'].includes(
-          productCostForm.productName
-        )
-          ">
-          <h4 style="color: tomato">交强险费用</h4>
-          <el-col :span="5" :offset="1">
-            <el-form-item label="费用比例" prop="jqCarCostsProportion">
-              <el-input v-model="productCostForm.jqCarCostsProportion" placeholder="请输入费用比例"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="5" :offset="1">
-            <el-form-item label="其他费用比例">
-              <el-input disabled v-model="productCostForm.jqCarOtherCostsProportion" placeholder="请输入其他费用比例"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="5" :offset="1">
-            <el-form-item label="总费用比例" prop="jqCostsProportion">
-              <el-input v-model="productCostForm.jqCostsProportion" placeholder="请输入总费用比例"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="5" :offset="1">
-            <el-form-item label="交强管理比例一级	" prop="jqExportRadioLevel1">
-              <el-input v-model="productCostForm.jqExportRadioLevel1" placeholder="请输入管理费比例"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="5" :offset="1">
-            <el-form-item label="交强管理比例二级	" prop="jqExportRadioLevel2">
-              <el-input v-model="productCostForm.jqExportRadioLevel2" placeholder="请输入管理费比例"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="5" :offset="1">
-            <el-form-item label="交强管理比例三级	" prop="jqExportRadioLevel3">
-              <el-input v-model="productCostForm.jqExportRadioLevel3" placeholder="请输入管理费比例"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="5" :offset="1">
-            <el-form-item label="交强管理比例四级	" prop="jqExportRadioLevel4">
-              <el-input v-model="productCostForm.jqExportRadioLevel4" placeholder="请输入管理费比例"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="5" :offset="1">
-            <el-form-item label="交强管理比例五级	" prop="jqExportRadioLevel5">
-              <el-input v-model="productCostForm.jqExportRadioLevel5" placeholder="请输入管理费比例"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="5" :offset="1">
-            <el-form-item label="交强出口手续比例" prop="jqCostsExportProportion">
-              <el-input v-model="productCostForm.jqCostsExportProportion" placeholder="请输入出口手续费比例"></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row v-if="['单商', '单三', '交商', '交三', '兜底配置'].includes(
-          productCostForm.productName
-        )
-          ">
-          <h4 style="color: tomato">商业险费用</h4>
-
-          <el-col :span="5" :offset="1">
-            <el-form-item label="费用比例" prop="syCarCostsProportion">
-              <el-input v-model="productCostForm.syCarCostsProportion" placeholder="请输入费用比例"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="5" :offset="1">
-            <el-form-item label="其他费用比例">
-              <el-input v-model="productCostForm.syCarOtherCostsProportion" placeholder="请输入其他费用比例" disabled></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="5" :offset="1">
-            <el-form-item label="总费用比例" prop="syCostsProportion">
-              <el-input v-model="productCostForm.syCostsProportion" placeholder="请输入总费用比例"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="5" :offset="1">
-            <el-form-item label="商业手续比例一级	" prop="syExportRadioLevel1">
-              <el-input v-model="productCostForm.syExportRadioLevel1" placeholder="请输入手续费比例"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="5" :offset="1">
-            <el-form-item label="商业手续比例二级	" prop="syExportRadioLevel2">
-              <el-input v-model="productCostForm.syExportRadioLevel2" placeholder="请输入手续费比例"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="5" :offset="1">
-            <el-form-item label="商业手续比例三级	" prop="syExportRadioLevel3">
-              <el-input v-model="productCostForm.syExportRadioLevel3" placeholder="请输入手续费比例"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="5" :offset="1">
-            <el-form-item label="商业手续比例四级	" prop="syExportRadioLevel4">
-              <el-input v-model="productCostForm.syExportRadioLevel4" placeholder="请输入手续费比例"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="5" :offset="1">
-            <el-form-item label="商业手续比例五级	" prop="syExportRadioLevel5">
-              <el-input v-model="productCostForm.syExportRadioLevel5" placeholder="请输入手续费比例"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="5" :offset="1">
-            <el-form-item label="商业出口手续比例" prop="syCostsExportProportion">
-              <el-input v-model="productCostForm.syCostsExportProportion" placeholder="请输入出口手续费比例"></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <h4 style="color: tomato">非车费用</h4>
-          <el-col :span="5" :offset="1">
-            <el-form-item label="费用比例" prop="noCarCostsProportion">
-              <el-input v-model="productCostForm.noCarCostsProportion" placeholder="请输入费用比例"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="5" :offset="1">
-            <el-form-item label="其他费用比例">
-              <el-input v-model="productCostForm.noCarOtherCostsProportion" placeholder="请输入其他费用比例" disabled></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="5" :offset="1">
-            <el-form-item label="总费用比例" prop="noCostsProportion">
-              <el-input v-model="productCostForm.noCostsProportion" placeholder="请输入总费用比例"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="5" :offset="1">
-            <el-form-item label="非车手续比例一级	" prop="noCarExportRadioLevel1">
-              <el-input v-model="productCostForm.noCarExportRadioLevel1" placeholder="请输入手续费比例"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="5" :offset="1">
-            <el-form-item label="非车手续比例二级	" prop="noCarExportRadioLevel2">
-              <el-input v-model="productCostForm.noCarExportRadioLevel2" placeholder="请输入手续费比例"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="5" :offset="1">
-            <el-form-item label="非车手续比例三级	" prop="noCarExportRadioLevel3">
-              <el-input v-model="productCostForm.noCarExportRadioLevel3" placeholder="请输入手续费比例"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="5" :offset="1">
-            <el-form-item label="非车手续比例四级	" prop="noCarExportRadioLevel4">
-              <el-input v-model="productCostForm.noCarExportRadioLevel4" placeholder="请输入手续费比例"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="5" :offset="1">
-            <el-form-item label="非车手续比例五级	" prop="noCarExportRadioLevel5">
-              <el-input v-model="productCostForm.noCarExportRadioLevel5" placeholder="请输入手续费比例"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="5" :offset="1">
-            <el-form-item label="非车出口手续比例" prop="noCostsExportProportion">
-              <el-input v-model="productCostForm.noCostsExportProportion" placeholder="请输入出口手续费比例"></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <div class="flex j-s a-c">
-        <span style="margin-right: 10px; width: 100px">驳回原因</span>
-        <el-input type="textarea" v-model="reject" maxlength="100" show-word-limit></el-input>
-      </div>
+      </div> -->
+      <el-tabs v-model="activeName" type="card">
+        <el-tab-pane :label="productCostForm.productName + '费用'" name="feiyong" class="tab-panestyle">
+          <div class="tab-panecent">
+            <el-form ref="productCostForm" :model="productCostForm" label-width="130px" size="mini" disabled>
+              <el-row>
+                <h4>费用详情</h4>
+                <el-col :span="20" :offset="2">
+                  <el-form-item label="费用描述">
+                    <el-input type="textarea" v-model="productCostForm.costsDescription"
+                      placeholder="输入费用描述内容"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="10" :offset="2">
+                  <el-form-item label="费用起期" prop="costsStartDate">
+                    <el-date-picker style="width: 100%" v-model="productCostForm.costsStartDate" type="datetime"
+                      placeholder="选择费用开始日期" value-format="yyyy-MM-dd HH:mm:ss">
+                    </el-date-picker>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="10">
+                  <el-form-item label="费用止期" prop="costsEndDate">
+                    <el-date-picker style="width: 100%" v-model="productCostForm.costsEndDate" type="datetime"
+                      placeholder="选择费用结束日期" value-format="yyyy-MM-dd HH:mm:ss">
+                    </el-date-picker>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="10" :offset="2">
+                  <el-form-item label="优先级">
+                    <el-input style="width: 100%" v-model="productCostForm.priorityLevel"
+                      onkeyup="value=value.replace(/\D/g,'')" placeholder="输入数字"></el-input>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <el-row v-if="['单交', '交三', '交商', '兜底配置'].includes(
+                productCostForm.productName
+              )
+                ">
+                <h4 >交强险费用</h4>
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="费用比例" prop="jqCarCostsProportion">
+                    <el-input v-model="productCostForm.jqCarCostsProportion" placeholder="请输入费用比例"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="其他费用比例">
+                    <el-input disabled v-model="productCostForm.jqCarOtherCostsProportion"
+                      placeholder="请输入其他费用比例"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="总费用比例" prop="jqCostsProportion">
+                    <el-input v-model="productCostForm.jqCostsProportion" placeholder="请输入总费用比例"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="交强管理比例一级	" prop="jqExportRadioLevel1">
+                    <el-input v-model="productCostForm.jqExportRadioLevel1" placeholder="请输入管理费比例"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="交强管理比例二级	" prop="jqExportRadioLevel2">
+                    <el-input v-model="productCostForm.jqExportRadioLevel2" placeholder="请输入管理费比例"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="交强管理比例三级	" prop="jqExportRadioLevel3">
+                    <el-input v-model="productCostForm.jqExportRadioLevel3" placeholder="请输入管理费比例"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="交强管理比例四级	" prop="jqExportRadioLevel4">
+                    <el-input v-model="productCostForm.jqExportRadioLevel4" placeholder="请输入管理费比例"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="交强管理比例五级	" prop="jqExportRadioLevel5">
+                    <el-input v-model="productCostForm.jqExportRadioLevel5" placeholder="请输入管理费比例"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="交强出口手续比例" prop="jqCostsExportProportion">
+                    <el-input v-model="productCostForm.jqCostsExportProportion" placeholder="请输入出口手续费比例"></el-input>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <el-row v-if="['单商', '单三', '交商', '交三', '兜底配置'].includes(
+                productCostForm.productName
+              )
+                ">
+                <h4 >商业险费用</h4>
+
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="费用比例" prop="syCarCostsProportion">
+                    <el-input v-model="productCostForm.syCarCostsProportion" placeholder="请输入费用比例"></el-input>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="其他费用比例">
+                    <el-input v-model="productCostForm.syCarOtherCostsProportion" placeholder="请输入其他费用比例"
+                      disabled></el-input>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="总费用比例" prop="syCostsProportion">
+                    <el-input v-model="productCostForm.syCostsProportion" placeholder="请输入总费用比例"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="商业手续比例一级	" prop="syExportRadioLevel1">
+                    <el-input v-model="productCostForm.syExportRadioLevel1" placeholder="请输入手续费比例"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="商业手续比例二级	" prop="syExportRadioLevel2">
+                    <el-input v-model="productCostForm.syExportRadioLevel2" placeholder="请输入手续费比例"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="商业手续比例三级	" prop="syExportRadioLevel3">
+                    <el-input v-model="productCostForm.syExportRadioLevel3" placeholder="请输入手续费比例"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="商业手续比例四级	" prop="syExportRadioLevel4">
+                    <el-input v-model="productCostForm.syExportRadioLevel4" placeholder="请输入手续费比例"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="商业手续比例五级	" prop="syExportRadioLevel5">
+                    <el-input v-model="productCostForm.syExportRadioLevel5" placeholder="请输入手续费比例"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="商业出口手续比例" prop="syCostsExportProportion">
+                    <el-input v-model="productCostForm.syCostsExportProportion" placeholder="请输入出口手续费比例"></el-input>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <el-row>
+                <h4 >非车费用</h4>
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="费用比例" prop="noCarCostsProportion">
+                    <el-input v-model="productCostForm.noCarCostsProportion" placeholder="请输入费用比例"></el-input>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="其他费用比例">
+                    <el-input v-model="productCostForm.noCarOtherCostsProportion" placeholder="请输入其他费用比例"
+                      disabled></el-input>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="总费用比例" prop="noCostsProportion">
+                    <el-input v-model="productCostForm.noCostsProportion" placeholder="请输入总费用比例"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="非车手续比例一级	" prop="noCarExportRadioLevel1">
+                    <el-input v-model="productCostForm.noCarExportRadioLevel1" placeholder="请输入手续费比例"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="非车手续比例二级	" prop="noCarExportRadioLevel2">
+                    <el-input v-model="productCostForm.noCarExportRadioLevel2" placeholder="请输入手续费比例"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="非车手续比例三级	" prop="noCarExportRadioLevel3">
+                    <el-input v-model="productCostForm.noCarExportRadioLevel3" placeholder="请输入手续费比例"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="非车手续比例四级	" prop="noCarExportRadioLevel4">
+                    <el-input v-model="productCostForm.noCarExportRadioLevel4" placeholder="请输入手续费比例"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="非车手续比例五级	" prop="noCarExportRadioLevel5">
+                    <el-input v-model="productCostForm.noCarExportRadioLevel5" placeholder="请输入手续费比例"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5" :offset="1">
+                  <el-form-item label="非车出口手续比例" prop="noCostsExportProportion">
+                    <el-input v-model="productCostForm.noCostsExportProportion" placeholder="请输入出口手续费比例"></el-input>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </el-form>
+            <div class="flex j-s a-c">
+              <span style="margin-right: 10px; width: 100px">驳回原因</span>
+              <el-input type="textarea" v-model="reject" maxlength="100" show-word-limit></el-input>
+            </div>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane label="产品费用因子" name="yinzi" class="tab-panestyle">
+          <div class="tab-panecent2">
+            <Product-Cost-Form v-if="productCostAddVehicleFactorVisible" :form="dynamicFormArray" :operator="operatorlist"
+              :disabled="true" over-size="small" @cancelForm="cancel"></Product-Cost-Form>
+          </div>
+        </el-tab-pane>
+      </el-tabs>
       <span slot="footer" class="dialog-footer">
         <el-button size="mini" @click="productCostAddVehicleFactorVisible = false">关闭</el-button>
         <el-button size="mini" type="success" @click="approval">审核通过</el-button>
         <el-button size="mini" type="primary" @click="rejectionReason">审核驳回</el-button>
       </span>
     </el-dialog>
-    <el-dialog title="产品因子录入" :visible.sync="productCostFactorDialogVisible" :close-on-click-modal="false" width="70%"
-      top="6vh" :fullscreen="true">
-      <Product-Cost-Form v-if="productCostFactorDialogVisible" :form="dynamicFormArray" :operator="operatorlist"
-        :disabled="true" over-size="small" @cancelForm="cancel"></Product-Cost-Form>
-    </el-dialog>
     <!--    -->
-    <el-dialog
-      title="承保规则"
-      :visible.sync="agreementListShow"
-      :fullscreen="true"
-    >
-      <el-table
-        :data="underwritingRulesResult"
-        @expand-change="handleExpandChange"
-        :expand-row-keys="expandRows"
-        row-key="id"
-        style="width: 100%">
-        <el-table-column
-          type="expand"
-        >
+    <el-dialog title="承保规则" :visible.sync="agreementListShow" :fullscreen="true">
+      <el-table :data="underwritingRulesResult" @expand-change="handleExpandChange" :expand-row-keys="expandRows"
+        row-key="id" style="width: 100%">
+        <el-table-column type="expand">
           <template slot-scope="scope">
-            <Product-Cost-Form ref="ProductRef" :form="dynamicFormArray" :operator="operatorlist" over-size="small" :underwritingRulesForm="scope.row.underwritingRulesForm" :disabled="true"></Product-Cost-Form>
+            <Product-Cost-Form ref="ProductRef" :form="dynamicFormArray" :operator="operatorlist" over-size="small"
+              :underwritingRulesForm="scope.row.underwritingRulesForm" :disabled="true"></Product-Cost-Form>
           </template>
         </el-table-column>
-        <el-table-column
-          prop="validInd"
-          label="是否启用"
-          width="180">
+        <el-table-column prop="validInd" label="是否启用" width="180">
           <template slot-scope="scope">
-            <span class="disused" :class="{'used': scope.row.validInd == 1}">{{ scope.row.validInd == 1? '启用':'禁用' }}</span>
+            <span class="disused" :class="{ 'used': scope.row.validInd == 1 }">{{ scope.row.validInd == 1 ? '启用' : '禁用'
+            }}</span>
           </template>
         </el-table-column>
-        <el-table-column
-          prop="rulesStartDate"
-          label="规则起期">
+        <el-table-column prop="rulesStartDate" label="规则起期">
         </el-table-column>
-        <el-table-column
-          prop="rulesEndDate"
-          label="规则止期">
+        <el-table-column prop="rulesEndDate" label="规则止期">
         </el-table-column>
-        <el-table-column
-          prop="ruleDescription"
-          label="规则描述">
+        <el-table-column prop="ruleDescription" label="规则描述">
         </el-table-column>
-        <el-table-column
-          prop="desc"
-          label="规则因子描述">
+        <el-table-column prop="desc" label="规则因子描述">
         </el-table-column>
       </el-table>
       <span slot="footer" class="dialog-footer">
@@ -330,6 +323,7 @@ export default {
   // 数据存放区域
   data() {
     return {
+      activeName: 'feiyong',
       date: "",
       date1: "",
       reject: "",
@@ -343,8 +337,8 @@ export default {
         agreementIdList: [],
         costsDescription: [],
         productCode: [],
-        costStartDate:"",
-        costsEndDate:"",
+        costStartDate: "",
+        costsEndDate: "",
       },
       //保险公司列表
       InsCompanyList: [],
@@ -353,7 +347,6 @@ export default {
       //产品代码列表
       insuranceRepertoire: [],
       productCostAddVehicleFactorVisible: false, //产品费用录入    显示/隐藏
-      productCostFactorDialogVisible: false,
       //操作符字典
       operator: {
         pageNum: 1,
@@ -588,7 +581,7 @@ export default {
   },
   watch: {
     underwritingRulesResult(val, old) {
-      if(val.length> 0) {
+      if (val.length > 0) {
         let obj = val[0]
         this.underwritingRulesHistoryDetails(obj, val)
       }
@@ -622,17 +615,17 @@ export default {
   },
   // 方法函数
   methods: {
-    costsEndDateChange(){
+    costsEndDateChange() {
       let tempStartDate = this.productpageRequest.costStartDate;
       let tempEndDate = this.productpageRequest.costsEndDate;
-      if (!tempStartDate) {
-        this.productpageRequest.costsEndDate = null;
-        this.$message({
-          message: "请先选择费用起期!",
-          type: "error",
-        });
-      }
-      if (!this.validateEndDate(tempStartDate, tempEndDate)) {
+      // if (!tempStartDate) {
+      //   this.productpageRequest.costsEndDate = null;
+      //   this.$message({
+      //     message: "请先选择费用起期!",
+      //     type: "error",
+      //   });
+      // }
+      if ( tempStartDate && !this.validateEndDate(tempStartDate, tempEndDate)) {
         this.productpageRequest.costsEndDate = null;
         this.$message({
           message: "费用止期不能小于/等于费用起期!",
@@ -647,8 +640,8 @@ export default {
       return endDate.getTime() > startDate.getTime();
     },
     // 点击展开行
-    handleExpandChange(row,rows) {
-      if(rows.length>0) {
+    handleExpandChange(row, rows) {
+      if (rows.length > 0) {
         this.underwritingRulesHistoryDetails(row)
       }
     },
@@ -660,10 +653,10 @@ export default {
       })
       that.$api.insCompany.getUndwrtRulesFactorQuery(row.id).then((res) => {
         if (res.code == '200') {
-          if(value&&value.length == 1) {
+          if (value && value.length == 1) {
             this.expandRows.push(value[0].id)
           }
-          let obj = {...res.data}
+          let obj = { ...res.data }
           obj.costsAttrLinks.map(val => {
             switch (val.attrType) {
               case 'inputNumber':
@@ -856,15 +849,15 @@ export default {
     },
     agreementIdFormatter(row, column) {
       let allAgreementItem = this.allAgreementList.find((val) => val.id == row.agreementId)
-      if(allAgreementItem) {
-        return <a onClick={ this.handleAgreement.bind(null, row) } style={{color: '#409eff', cursor: 'pointer'}}>{ row.agreementName }</a>;
+      if (allAgreementItem) {
+        return <a onClick={this.handleAgreement.bind(null, row)} style={{ color: '#409eff', cursor: 'pointer' }}>{row.agreementName}</a>;
       }
     },
     downloadRender(row) {
-      return <a onClick={ this.handleDownloadFile.bind(null, row) } style={{color: '#409eff', cursor: 'pointer'}}>{ row.feeFileName }</a>
+      return <a onClick={this.handleDownloadFile.bind(null, row)} style={{ color: '#409eff', cursor: 'pointer' }}>{row.feeFileName}</a>
     },
     handleDownloadFile(row) {
-      let url = process.env.BASE_URL  + row.feeFileUrl.substring(1,row.feeFileUrl.length); // 3.创建一个临时的url指向blob对象
+      let url = process.env.BASE_URL + row.feeFileUrl.substring(1, row.feeFileUrl.length); // 3.创建一个临时的url指向blob对象
       let link = document.createElement("a");
       link.target = '_blank'
       link.href = url;
@@ -882,9 +875,9 @@ export default {
       this.$api.insCompany
         .getUndwrtRulesQuery(params)
         .then((res) => {
-          if(res.content) {
+          if (res.content) {
             this.underwritingRulesResult = res.content.filter(item => item.validInd == 1);
-            if(this.underwritingRulesResult.length>0) {
+            if (this.underwritingRulesResult.length > 0) {
               this.underwritingRulesResult.forEach(item => {
                 item.underwritingRulesForm = {
                   agreementId: "", //协议id
@@ -933,20 +926,70 @@ export default {
   padding: 2px;
   font-size: 12px;
 }
-.disused{
+
+.disused {
   background: #A6A6A6;
-  borderRadius: 4px;
+  border-radius: 4px;
   padding: 4px 10px;
   color: #fff;
 }
-.used{
-  background: linear-gradient( 180deg, #66CDBB 0%, #33A08D 100%);
-  borderRadius: 4px;
+
+.used {
+  background: linear-gradient(180deg, #66CDBB 0%, #33A08D 100%);
+  border-radius: 4px;
   padding: 4px 10px;
   color: #fff;
 }
 
+.tab-panestyle {
+  padding: 20px;
+  background: #F2F2F2;
+}
+
+.tab-panecent {
+  background: #fff;
+  border-radius: 4px;
+  padding: 15px;
+  box-sizing: border-box;
+  max-height: 640px;
+  overflow-y: auto;
+}
+
+.tab-panecent2 {
+  border-radius: 4px;
+  box-sizing: border-box;
+}
+
 /deep/ {
+  .custom-class .el-dialog__header {
+    font-weight: bold;
+    border-bottom: 1px solid #D7DBE7;
+  }
+
+  .custom-class .el-dialog__body {
+    padding: 0;
+  }
+
+  .custom-class .el-dialog__footer {
+    padding: 10px 20px 10px 10px;
+  }
+
+  .el-tabs__item.is-active {
+    color: #fff;
+    background: #2D4D89;
+  }
+
+  .el-tabs--card>.el-tabs__header .el-tabs__nav,
+  .el-tabs--card>.el-tabs__header,
+  .el-tabs--card>.el-tabs__header .el-tabs__item {
+    border: none;
+    margin: 0;
+  }
+
+  .el-tabs--card>.el-tabs__header .el-tabs__nav {
+    padding-left: 20px;
+  }
+
   .el-button--warning {
     color: #fff;
     background-color: #ee7000;
@@ -964,7 +1007,8 @@ export default {
     justify-content: center;
     align-items: center;
   }
-  .el-link.el-link--default{
+
+  .el-link.el-link--default {
     color: #409eff;
   }
 

+ 7 - 6
src/views/Core/KtCommonTable.vue

@@ -1017,11 +1017,11 @@ export default {
     },
     // 选择切换
     selectionChange: function (selections) {
+      let idlist = [];
       this.tableSelectedCount=selections.length;
       this.selections = selections;
-      this.$emit("selectionChange", {
-        selections: selections,
-      });
+      this.selections.map((item) => idlist.push(item.id));
+      this.$emit("selectionChange", idlist);
     },
     // 选择切换
     handleCurrentChange: function (val) {
@@ -1306,12 +1306,13 @@ export default {
     }
     setTimeout(() => {
       let tableTop = that.$refs.commonTable.offsetTop;
-      let bottomTop = that.$refs.bottomFixed.offsetTop;
-      that.tableHeight = bottomTop - tableTop - 120 + "px";
+      let height = window.innerHeight;
+      that.tableHeight = height - tableTop - 160 + "px";
     }, 10);
     // window.onresize = function () {
     //   let tableTop = that.$refs.commonTable.offsetTop;
     //   let bottomTop = that.$refs.bottomFixed.offsetTop;
+
     //   that.tableHeight = bottomTop - tableTop - 120 + "px";
     // };
   },
@@ -1329,7 +1330,7 @@ export default {
 /* 底部固定分页 */
 .bottomFixed {
   height: 40px;
-  position: fixed;
+  /* position: fixed; */
   bottom: 0;
   width: 100%;
   background: #fff;

+ 2 - 2
src/views/Sys/Deptall.vue

@@ -44,12 +44,12 @@
           </el-table-column>
           <el-table-column prop="comtype" label="机构类型" :formatter="comtypeFormatter" align="center" width="150">
           </el-table-column>
-          <!-- <el-table-column prop="managementSource" label="业务来源" align="center" width="150">
+          <el-table-column prop="managementSource" label="业务来源" align="center" width="150">
             <template slot-scope="scope">
               <span v-for="(item, index) in business_sourceoptions" :key="index"
                 v-show="item.value == scope.row.managementSource">{{ item.label }}</span>
             </template>
-          </el-table-column> -->
+          </el-table-column>
           <el-table-column prop="address" label="机构地址" align="center">
           </el-table-column>
           <el-table-column prop="leadername" label="负责人" align="center">

+ 19 - 4
src/views/Task/daikeComponents/KtLetter.vue

@@ -179,7 +179,7 @@
           </el-col>
           <el-col :span="5">
             <el-form-item label="车辆用途" prop="vehicleUse">
-              <el-select v-if="carInfo.carnature == '02'" v-model="carInfo.vehicleUse" placeholder="请选择使车辆用途">
+              <el-select v-if="carInfo.carnature == '02'" v-model="carInfo.vehicleUse" @change="vehicleUseChange" placeholder="请选择使车辆用途">
                 <el-option :label="item.dictTag" :value="item.dictValue"
                   v-for="(item, index) in outOfBusinessVehicleUseoptions" :key="index"></el-option>
               </el-select>
@@ -217,7 +217,7 @@
             <el-form-item label="所属性质 " prop="property">
               <el-select v-model="carInfo.property" placeholder="请选择所属性质" @change="getCompanyListProperty">
                 <el-option :label="item.label" :value="item.value" v-for="(item, index) in propertyoptions"
-                  :key="index"></el-option>
+                  :key="index" :disabled="propertyDisable(item)"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -263,8 +263,8 @@
           <el-col :span="5" :offset="1">
             <el-form-item label="车主类型" >
               <el-select v-model="ownerInfo.property" placeholder="车主类型" @change="propertyTpe('ownerInfo')" >
-                <el-option label="个人" value="1"></el-option>
-                <el-option label="法人" value="0"></el-option>
+                <el-option label="法人" value="0" :disabled="carInfo.property=='1'"></el-option>
+                <el-option label="个人" value="1" :disabled="carInfo.property=='2'"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -4082,6 +4082,21 @@ export default {
     },
   },
   methods: {
+    vehicleUseChange(value){
+      if(value='05'){
+        this.carInfo.property='1';
+        this.ownerInfo.property='1';
+        this.ownerInfo.identifyType='01'
+      }
+    },
+    propertyDisable(item){
+      if(this.carInfo.vehicleUse=='05' && item.label=='企业'){
+        return true;
+      }else{
+        return false;
+
+      }
+    },
     // add  by hxl  2024-12-16  ---begin
     //保险公司列表
     findLeftTreeData: function () {

+ 37 - 21
src/views/Task/daikeComponents/KtLetter1.vue

@@ -172,7 +172,7 @@
           </el-col>
           <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
             <el-form-item label="车辆用途" prop="vehicleUse">
-              <el-select v-if="carInfo.carnature == '02'" v-model="carInfo.vehicleUse" placeholder="请选择使车辆用途" @blur="getCompanyList">
+              <el-select v-if="carInfo.carnature == '02'" v-model="carInfo.vehicleUse" placeholder="请选择使车辆用途" @change="vehicleUseChange" @blur="getCompanyList">
                 <el-option :label="item.dictTag" :value="item.dictValue"
                   v-for="(item, index) in outOfBusinessVehicleUseoptions" :key="index"></el-option>
               </el-select>
@@ -210,7 +210,7 @@
             <el-form-item label="所属性质 " prop="property">
               <el-select v-model="carInfo.property" placeholder="请选择所属性质" @change="getCompanyListProperty">
                 <el-option :label="item.label" :value="item.value" v-for="(item, index) in propertyoptions"
-                  :key="index"></el-option>
+                  :key="index"  :disabled="propertyDisable(item)"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -256,8 +256,8 @@
           <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
             <el-form-item label="车主类型"  >
               <el-select v-model="ownerInfo.property" placeholder="车主类型" @change="propertyTpe('ownerInfo')">
-                <el-option label="个人" value="1"></el-option>
-                <el-option label="法人" value="0"></el-option>
+                <el-option label="法人" value="0" :disabled="carInfo.property=='1'"></el-option>
+                <el-option label="个人" value="1" :disabled="carInfo.property=='2'"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -283,7 +283,7 @@
           </el-col>
           <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl" v-if="ownerInfo.property=='0'">
             <el-form-item label="注册资金" prop="registeredCapital">
-              <el-input v-model="ownerInfo.registeredCapital" placeholder="请输入注册资金" type="text" 
+              <el-input v-model="ownerInfo.registeredCapital" placeholder="请输入注册资金" type="text"
                 show-word-limit @blur="getCompanyList">
                 <el-button slot="append">万元</el-button>
                 </el-input>
@@ -351,7 +351,7 @@
               <el-input v-model="ownerInfo.email" placeholder="请输入电子邮箱"></el-input>
             </el-form-item>
           </el-col>
-         
+
         </el-row>
       </el-form>
     </div>
@@ -410,7 +410,7 @@
           </el-col>
           <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl" v-if="policyHolderInfo.property=='0'">
             <el-form-item label="注册资金" prop="registeredCapital">
-              <el-input v-model="policyHolderInfo.registeredCapital" placeholder="请输入注册资金" type="text" 
+              <el-input v-model="policyHolderInfo.registeredCapital" placeholder="请输入注册资金" type="text"
                 show-word-limit @blur="getCompanyList">
                 <el-button slot="append">万元</el-button>
                 </el-input>
@@ -550,7 +550,7 @@
           </el-col>
           <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl" v-if="insuredPersonInfo.property=='0'">
             <el-form-item label="注册资金" prop="registeredCapital">
-              <el-input v-model="insuredPersonInfo.registeredCapital" placeholder="请输入注册资金" type="text" 
+              <el-input v-model="insuredPersonInfo.registeredCapital" placeholder="请输入注册资金" type="text"
                 show-word-limit @blur="getCompanyList">
                 <el-button slot="append">万元</el-button>
                 </el-input>
@@ -593,7 +593,7 @@
             </el-form-item>
           </el-col>
           <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
-            <el-form-item label="地址" prop="addr"> 
+            <el-form-item label="地址" prop="addr">
               <el-input v-model="insuredPersonInfo.addr" placeholder="请输入地址" type="text" @blur="getCompanyList"></el-input>
             </el-form-item>
           </el-col>
@@ -5652,10 +5652,10 @@ export default {
       propertyoptions:[
         {
           value:'1',
-          label:'个人'
+          label:'个人',
         },{
           value:'2',
-          label:'企业'
+          label:'企业',
         },
       ],
       relifReasonoptions: [], //减免税原因代码
@@ -5763,7 +5763,7 @@ export default {
       detailJiaYiTitle: '查看详情',
       oldData: {},    // 旧获取公司参数
       myQrCode: null,
-      businessform:{ 
+      businessform:{
         name: "", //姓名
         identifyType: "02", //身份证类型
         legalRepresentative: "", //法人
@@ -6008,6 +6008,21 @@ export default {
     },
   },
   methods: {
+    vehicleUseChange(value){
+      if(value='05'){
+        this.carInfo.property='1';
+        this.ownerInfo.property='1';
+        this.ownerInfo.identifyType='01'
+      }
+    },
+    propertyDisable(item){
+      if(this.carInfo.vehicleUse=='05' && item.label=='企业'){
+        return true;
+      }else{
+        return false;
+
+      }
+    },
     deleteJiaYi(reslistindex, drivingIndex) {
       this.totalCompanyList[reslistindex].programme.drivingList.splice(drivingIndex, 1)
       this.$forceUpdate()
@@ -6030,6 +6045,7 @@ export default {
     },
     // 所属性质字段
     getCompanyListProperty(data){
+      console.log(data)
       if(data=='1'){
         this.ownerInfo.property='1'
         this.policyHolderInfo.property='1'
@@ -6134,7 +6150,7 @@ export default {
                       Number(_this.policyHolderInfo.city),
                       Number(_this.policyHolderInfo.county),
                     ]:[]
-                     
+
                     this.selectedOptions13 = _this.insuredPersonInfo.province?[
                        Number(_this.insuredPersonInfo.province),
                        Number(_this.insuredPersonInfo.city),
@@ -6560,7 +6576,7 @@ export default {
         if (paramsEdit.carinfo.transferFlag) {
           this.transferDateShow = true;
         }
-        paramsEdit.risk.map((ele) => {                                       
+        paramsEdit.risk.map((ele) => {
           if (ele.riskCode == "0507") {
             _this.jqchecked = true;
             this.protocolJudge("0507", true);
@@ -12641,7 +12657,7 @@ export default {
         this.$message.error("上传图片只能是 JPG、PNG 格式!");
         return false;
       }
-      
+
       var file = file.raw;
       let files = window.URL.createObjectURL(file); //转链接
       this.businessImg = files;
@@ -12871,7 +12887,7 @@ else{
         default:
       }
 }
-      
+
     },
     businessjoggle(param) {
       const loading = this.$loading({
@@ -12895,7 +12911,7 @@ else{
               identifyType:'10',
               scope: res.data.businessScope,
               legalPerson: res.data.legalRepresentative,
-              registeredCapital:parseInt(res.data.registeredCapital) 
+              registeredCapital:parseInt(res.data.registeredCapital)
             }
           }
 
@@ -12985,13 +13001,13 @@ else{
       this.businessform.property='0'
       switch (this.userIndex) {
         case 2:
-            this.ownerInfo ={...this.ownerInfo,...this.businessform} 
+            this.ownerInfo ={...this.ownerInfo,...this.businessform}
             break;
           case 3:
-            this.policyHolderInfo ={...this.policyHolderInfo,...this.businessform} 
+            this.policyHolderInfo ={...this.policyHolderInfo,...this.businessform}
             break;
           case 4:
-          this.insuredPersonInfo ={...this.insuredPersonInfo,...this.businessform} 
+          this.insuredPersonInfo ={...this.insuredPersonInfo,...this.businessform}
             break;
         }
     }
@@ -13032,7 +13048,7 @@ else{
           this.D03File = ""; // 投保人背面base64
           Object.keys(this.ownerInfoform).forEach((key) => {
             this.ownerInfoform[key] = "";
-          });  
+          });
            Object.keys(this.businessform).forEach((key) => {
             this.businessform[key] = "";
           });