Explorar el Código

车险订单任务池修改;协议新增isExternal字段

lihongxiao hace 2 años
padre
commit
e12bab82bc
Se han modificado 25 ficheros con 1132 adiciones y 135 borrados
  1. 6 0
      src/http/moudules/letter.js
  2. 29 12
      src/views/AgreementManage/CarInsurance/AgreementEntry.vue
  3. 22 0
      src/views/Core/KtCommonTable.vue
  4. 4 4
      src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/DocumentaryFeesDetail.vue
  5. 1 1
      src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/Notinvoiced.vue
  6. 4 4
      src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/DocumentaryFeesDetail.vue
  7. 1 1
      src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/Notinvoiced.vue
  8. 5 0
      src/views/Task/AgentPoolChannel/AgentPoolChannel.vue
  9. 22 15
      src/views/Task/AgentPoolChannel/AgentPoolChannel1.vue
  10. 108 1
      src/views/Task/AgentPoolChannel/AgentPoolChannel2.vue
  11. 5 0
      src/views/Task/AgentPoolChannel/AgentPoolChannel3.vue
  12. 64 15
      src/views/Task/AgentPoolChannel/AgentPoolChannel4.vue
  13. 5 0
      src/views/Task/CompanyPoolChannel/CompanyPoolChannel.vue
  14. 26 16
      src/views/Task/CompanyPoolChannel/CompanyPoolChannel1.vue
  15. 117 2
      src/views/Task/CompanyPoolChannel/CompanyPoolChannel2.vue
  16. 5 0
      src/views/Task/CompanyPoolChannel/CompanyPoolChannel3.vue
  17. 54 17
      src/views/Task/CompanyPoolChannel/CompanyPoolChannel4.vue
  18. 25 11
      src/views/Task/DaikeLetter.vue
  19. 22 15
      src/views/Task/TaskPoolChannel/TaskPoolChannel1.vue
  20. 143 5
      src/views/Task/TaskPoolChannel/TaskPoolChannel2.vue
  21. 5 0
      src/views/Task/TaskPoolChannel/TaskPoolChannel3.vue
  22. 64 15
      src/views/Task/TaskPoolChannel/TaskPoolChannel4.vue
  23. 271 0
      src/views/Task/component/qrCode.vue
  24. 3 1
      src/views/Task/daikeComponents/KtLetter.vue
  25. 121 0
      src/views/Task/mixin.js

+ 6 - 0
src/http/moudules/letter.js

@@ -991,3 +991,9 @@ export const withdrawalRequest = (data) => {
     data
     data
   })
   })
 }
 }
+export const getExternalAgreement = (id) => {
+  return axios({
+    url: "/tax/manager/getExternalAgreement",
+    method: "get",
+  })
+}

+ 29 - 12
src/views/AgreementManage/CarInsurance/AgreementEntry.vue

@@ -315,7 +315,21 @@
                   </el-select>
                   </el-select>
                 </el-form-item>
                 </el-form-item>
               </el-col>
               </el-col>
-
+              <el-col :span="12">
+                <el-form-item label="外部订单协议">
+                  <el-select v-model="agreement.isExternal"  placeholder="选择外部订单协议" style="width: 100%"
+                    @change="productFilterListChange">
+                    <el-option v-for="item in [{
+                      label:'是',
+                      value:'1'
+                    },{
+                      label:'否',
+                      value:'0'
+                    }]" :key="item.value" :label="item.label"
+                      :value="item.value"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
               <el-col :span="12">
               <el-col :span="12">
                 <el-form-item label="序号" prop="serialNumber">
                 <el-form-item label="序号" prop="serialNumber">
                   <el-input-number :min="0" v-model="agreement.serialNumber"></el-input-number>
                   <el-input-number :min="0" v-model="agreement.serialNumber"></el-input-number>
@@ -471,7 +485,7 @@
     <el-dialog :title="productCostAddDialogTitle" :visible.sync="productCostAddVehicleFactorVisible" width="80%" top="6vh"
     <el-dialog :title="productCostAddDialogTitle" :visible.sync="productCostAddVehicleFactorVisible" width="80%" top="6vh"
       @close="productcloseDialog">
       @close="productcloseDialog">
       <el-collapse accordion>
       <el-collapse accordion>
-        <div class="productstitle flex j-s" style="margin-top: 10px">
+        <div class="productstitle flex j-s" style="margin: 10px 0">
           <div>
           <div>
             <span v-for="(item, index) in productCostForm.productName" :key="index">
             <span v-for="(item, index) in productCostForm.productName" :key="index">
               {{ item }}-
               {{ item }}-
@@ -479,7 +493,7 @@
             <span>费用</span>
             <span>费用</span>
           </div>
           </div>
         </div>
         </div>
-        <el-button class="mrgin-1" size="small" type="warning"
+        <el-button class="mrgin-1" size="small" type="warning" v-if="!tableRowForm.isExternal"
           @click="productCostFactorDialogVisible = true">产品费用因子</el-button>
           @click="productCostFactorDialogVisible = true">产品费用因子</el-button>
         <el-form ref="productCostForm" :model="productCostForm" label-width="130px" :size="overSize"
         <el-form ref="productCostForm" :model="productCostForm" label-width="130px" :size="overSize"
           :rules="costformRules">
           :rules="costformRules">
@@ -523,19 +537,19 @@
 
 
           <el-row v-if="productjqincludes">
           <el-row v-if="productjqincludes">
             <h4 style="color: tomato">交强险费用</h4>
             <h4 style="color: tomato">交强险费用</h4>
-            <el-col :span="5" :offset="1">
+            <el-col :span="5" :offset="1"  v-if="!tableRowForm.isExternal">
               <el-form-item label="费用比例" prop="jqCarCostsProportion">
               <el-form-item label="费用比例" prop="jqCarCostsProportion">
                 <el-input v-model="productCostForm.jqCarCostsProportion"
                 <el-input v-model="productCostForm.jqCarCostsProportion"
                   @blur="costRatioInput('jqCostsProportion', 'jqCarCostsProportion', 'jqCarOtherCostsProportion')"
                   @blur="costRatioInput('jqCostsProportion', 'jqCarCostsProportion', 'jqCarOtherCostsProportion')"
                   placeholder="请输入费用比例"></el-input>
                   placeholder="请输入费用比例"></el-input>
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
-            <el-col :span="5" :offset="1" v-if="permissions">
+            <el-col :span="5" :offset="1" v-if="permissions && !tableRowForm.isExternal">
               <el-form-item label="其他费用比例">
               <el-form-item label="其他费用比例">
                 <el-input disabled v-model="productCostForm.jqCarOtherCostsProportion" placeholder="请输入其他费用比例"></el-input>
                 <el-input disabled v-model="productCostForm.jqCarOtherCostsProportion" placeholder="请输入其他费用比例"></el-input>
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
-            <el-col :span="5" :offset="1" v-if="permissions">
+            <el-col :span="5" :offset="1" v-if="permissions && !tableRowForm.isExternal">
               <el-form-item label="总费用比例" prop="jqCostsProportion">
               <el-form-item label="总费用比例" prop="jqCostsProportion">
                 <el-input v-model="productCostForm.jqCostsProportion"
                 <el-input v-model="productCostForm.jqCostsProportion"
                   @blur="totalCostRatioInput('jqCostsProportion', 'jqCarCostsProportion', 'jqCarOtherCostsProportion')"
                   @blur="totalCostRatioInput('jqCostsProportion', 'jqCarCostsProportion', 'jqCarOtherCostsProportion')"
@@ -576,7 +590,7 @@
           <el-row v-if="productsyincludes">
           <el-row v-if="productsyincludes">
             <h4 style="color: tomato">商业险费用</h4>
             <h4 style="color: tomato">商业险费用</h4>
 
 
-            <el-col :span="5" :offset="1">
+            <el-col :span="5" :offset="1" v-if="!tableRowForm.isExternal">
               <el-form-item label="费用比例" prop="syCarCostsProportion">
               <el-form-item label="费用比例" prop="syCarCostsProportion">
                 <el-input v-model="productCostForm.syCarCostsProportion"
                 <el-input v-model="productCostForm.syCarCostsProportion"
                   @blur="totalCostRatioInput('syCostsProportion', 'syCarCostsProportion', 'syCarOtherCostsProportion')"
                   @blur="totalCostRatioInput('syCostsProportion', 'syCarCostsProportion', 'syCarOtherCostsProportion')"
@@ -584,13 +598,13 @@
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
 
 
-            <el-col :span="5" :offset="1" v-if="permissions">
+            <el-col :span="5" :offset="1" v-if="permissions && !tableRowForm.isExternal">
               <el-form-item label="其他费用比例">
               <el-form-item label="其他费用比例">
                 <el-input v-model="productCostForm.syCarOtherCostsProportion" placeholder="请输入其他费用比例" disabled></el-input>
                 <el-input v-model="productCostForm.syCarOtherCostsProportion" placeholder="请输入其他费用比例" disabled></el-input>
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
 
 
-            <el-col :span="5" :offset="1" v-if="permissions">
+            <el-col :span="5" :offset="1" v-if="permissions && !tableRowForm.isExternal">
               <el-form-item label="总费用比例" prop="syCostsProportion">
               <el-form-item label="总费用比例" prop="syCostsProportion">
                 <el-input v-model="productCostForm.syCostsProportion" placeholder="请输入总费用比例"
                 <el-input v-model="productCostForm.syCostsProportion" placeholder="请输入总费用比例"
                   @blur="totalCostRatioInput('syCostsProportion', 'syCarCostsProportion', 'syCarOtherCostsProportion')"></el-input>
                   @blur="totalCostRatioInput('syCostsProportion', 'syCarCostsProportion', 'syCarOtherCostsProportion')"></el-input>
@@ -629,7 +643,7 @@
           </el-row>
           </el-row>
           <el-row>
           <el-row>
             <h4 style="color: tomato">非车费用</h4>
             <h4 style="color: tomato">非车费用</h4>
-            <el-col :span="5" :offset="1">
+            <el-col :span="5" :offset="1" v-if="!tableRowForm.isExternal">
               <el-form-item label="费用比例" prop="noCarCostsProportion">
               <el-form-item label="费用比例" prop="noCarCostsProportion">
                 <el-input v-model="productCostForm.noCarCostsProportion"
                 <el-input v-model="productCostForm.noCarCostsProportion"
                   @blur="totalCostRatioInput('noCostsProportion', 'noCarCostsProportion', 'noCarOtherCostsProportion')"
                   @blur="totalCostRatioInput('noCostsProportion', 'noCarCostsProportion', 'noCarOtherCostsProportion')"
@@ -637,13 +651,13 @@
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
 
 
-            <el-col :span="5" :offset="1" v-if="permissions">
+            <el-col :span="5" :offset="1" v-if="permissions && !tableRowForm.isExternal">
               <el-form-item label="其他费用比例">
               <el-form-item label="其他费用比例">
                 <el-input v-model="productCostForm.noCarOtherCostsProportion" placeholder="请输入其他费用比例" disabled></el-input>
                 <el-input v-model="productCostForm.noCarOtherCostsProportion" placeholder="请输入其他费用比例" disabled></el-input>
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
 
 
-            <el-col :span="5" :offset="1" v-if="permissions">
+            <el-col :span="5" :offset="1" v-if="permissions && !tableRowForm.isExternal">
               <el-form-item label="总费用比例" prop="noCostsProportion">
               <el-form-item label="总费用比例" prop="noCostsProportion">
                 <el-input v-model="productCostForm.noCostsProportion" placeholder="请输入总费用比例"
                 <el-input v-model="productCostForm.noCostsProportion" placeholder="请输入总费用比例"
                   @blur="totalCostRatioInput('noCostsProportion', 'noCarCostsProportion', 'noCarOtherCostsProportion')"></el-input>
                   @blur="totalCostRatioInput('noCostsProportion', 'noCarCostsProportion', 'noCarOtherCostsProportion')"></el-input>
@@ -1063,6 +1077,7 @@
                   </el-select>
                   </el-select>
                 </el-form-item>
                 </el-form-item>
               </el-col>
               </el-col>
+            
               <el-col :span="12">
               <el-col :span="12">
                 <el-form-item label="序号" prop="serialNumber">
                 <el-form-item label="序号" prop="serialNumber">
                   <el-input-number :min="0" v-model="agreementsHistoryInfo.agreement.serialNumber"></el-input-number>
                   <el-input-number :min="0" v-model="agreementsHistoryInfo.agreement.serialNumber"></el-input-number>
@@ -1297,6 +1312,7 @@ export default {
       labelData:'',
       labelData:'',
       selectTree: [],
       selectTree: [],
       insuranceCompanyId: "",
       insuranceCompanyId: "",
+      tableRowForm:{},
       productUpdateObj: {
       productUpdateObj: {
         productId: "",
         productId: "",
         productName: "",
         productName: "",
@@ -2867,6 +2883,7 @@ export default {
     //产品费用
     //产品费用
     productCost(index, row) {
     productCost(index, row) {
       this.insuranceCompanyId = row.insuranceCompanyId;
       this.insuranceCompanyId = row.insuranceCompanyId;
+      this.tableRowForm = row;
       this.agreementId = row.id;
       this.agreementId = row.id;
       this.productCostForm.agreementId = row.id;
       this.productCostForm.agreementId = row.id;
       this.productCostVehicleFactorVisible = true;
       this.productCostVehicleFactorVisible = true;

+ 22 - 0
src/views/Core/KtCommonTable.vue

@@ -231,6 +231,19 @@
             :type="button6Type"
             :type="button6Type"
             @click="handleButton6(scope.$index, scope.row)"
             @click="handleButton6(scope.$index, scope.row)"
           />
           />
+          <el-button type="text" size="small" v-if="buttonDropdown.length>0">
+            <el-dropdown trigger="click">
+              <span class="el-dropdown-link">
+                更多
+                <i class="el-icon-arrow-down el-icon--right"></i>
+              </span>
+              <el-dropdown-menu slot="dropdown">
+                <el-dropdown-item v-for="val in buttonDropdown" :key="val.label">
+                  <el-button style="width:100%" size="mini" type="text"  v-if="!val.hide || (val.hide && val.hide(scope.row))"  @click="val.click(scope.row)">{{ val.label }}</el-button>
+                </el-dropdown-item>
+              </el-dropdown-menu>
+            </el-dropdown>
+          </el-button>
         </template>
         </template>
       </el-table-column>
       </el-table-column>
     </el-table>
     </el-table>
@@ -364,6 +377,10 @@ export default {
     button6Name: {
     button6Name: {
       type: String,
       type: String,
     },
     },
+    buttonDropdown:{
+      type: Array,
+      default: [],
+    },
     permsButton1: {
     permsButton1: {
       type: String,
       type: String,
     },
     },
@@ -828,4 +845,9 @@ export default {
 .el-table .successRow {
 .el-table .successRow {
   background: #f0f9eb;
   background: #f0f9eb;
 }
 }
+.el-dropdown-link{
+  cursor: pointer;
+    color: var(--themeColor);
+    font-size: 12px;
+}
 </style>
 </style>

+ 4 - 4
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/DocumentaryFeesDetail.vue

@@ -123,7 +123,7 @@
           <el-col :span="8">
           <el-col :span="8">
             <el-form-item label="险种" prop="riskcode">
             <el-form-item label="险种" prop="riskcode">
               <el-select v-model="formDataAdd.riskcode"  placeholder="选择险种" size="small">
               <el-select v-model="formDataAdd.riskcode"  placeholder="选择险种" size="small">
-                <el-option v-for="item in InsInsuranceKindoptions" :key="item.dictValue" :label="item.dictTag"
+                <el-option v-for="item in productsTypeoptions" :key="item.dictValue" :label="item.dictTag"
                   :value="item.dictValue"></el-option>
                   :value="item.dictValue"></el-option>
               </el-select>
               </el-select>
             </el-form-item>
             </el-form-item>
@@ -263,7 +263,7 @@ export default {
         children: "children",
         children: "children",
       },
       },
       ztreeNodes: [],
       ztreeNodes: [],
-      InsInsuranceKindoptions: [],
+      productsTypeoptions: [],
       dialogVisibleAdd:false,
       dialogVisibleAdd:false,
       agreementTypeoptions: [], //协议类型
       agreementTypeoptions: [], //协议类型
       formDataAdd:{},
       formDataAdd:{},
@@ -669,7 +669,7 @@ export default {
     this.$api.dept.findDeptTree("9", "").then((res) => {
     this.$api.dept.findDeptTree("9", "").then((res) => {
       this.treedata = res.data;
       this.treedata = res.data;
     });
     });
-    this.getDicType("InsInsuranceKind"); //险种类型
+    this.getDicType("productsType"); //险种类型
     this.getDicType("agreementType"); //险种类型
     this.getDicType("agreementType"); //险种类型
     this.areaqueryList(1, 99, "provinceId");
     this.areaqueryList(1, 99, "provinceId");
     this.companyqueryList(0,'allPartnerCompaniesId');
     this.companyqueryList(0,'allPartnerCompaniesId');
@@ -890,7 +890,7 @@ export default {
       this.$api.insCompany.dicType(type).then((res) => {
       this.$api.insCompany.dicType(type).then((res) => {
         if (res.code == 200) {
         if (res.code == 200) {
           this[type + "options"] = res.data.ddList;
           this[type + "options"] = res.data.ddList;
-          if (type == 'InsInsuranceKind') {
+          if (type == 'productsType') {
             this.formList.forEach(e => {
             this.formList.forEach(e => {
               if (e.prop == 'riskcode') {
               if (e.prop == 'riskcode') {
                 e.options = res.data.ddList
                 e.options = res.data.ddList

+ 1 - 1
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/Notinvoiced.vue

@@ -170,7 +170,7 @@ export default {
             type: "text"
             type: "text"
           },
           },
           {
           {
-            prop: "invoicCommissionFeevalue",
+            prop: "allInvoicCommissionFeevalue",
             label: "已开票跟单费",
             label: "已开票跟单费",
             type: "text"
             type: "text"
           },
           },

+ 4 - 4
src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/DocumentaryFeesDetail.vue

@@ -92,7 +92,7 @@
           <el-col :span="8">
           <el-col :span="8">
             <el-form-item label="险种" prop="riskcode">
             <el-form-item label="险种" prop="riskcode">
               <el-select v-model="formDataAdd.riskcode"  placeholder="选择险种" size="small">
               <el-select v-model="formDataAdd.riskcode"  placeholder="选择险种" size="small">
-                <el-option v-for="item in InsInsuranceKindoptions" :key="item.dictValue" :label="item.dictTag"
+                <el-option v-for="item in productsTypeoptions" :key="item.dictValue" :label="item.dictTag"
                   :value="item.dictValue"></el-option>
                   :value="item.dictValue"></el-option>
               </el-select>
               </el-select>
             </el-form-item>
             </el-form-item>
@@ -225,7 +225,7 @@ export default {
       fileListRadio:[],
       fileListRadio:[],
       dialogVisibleradio:false,
       dialogVisibleradio:false,
       ztreeNodes: [],
       ztreeNodes: [],
-      InsInsuranceKindoptions: [],
+      productsTypeoptions: [],
       optionProps: {
       optionProps: {
         //公司下拉列表配置
         //公司下拉列表配置
         checkStrictly: true,
         checkStrictly: true,
@@ -582,7 +582,7 @@ export default {
     this.$api.dept.findDeptTree("9", "").then((res) => {
     this.$api.dept.findDeptTree("9", "").then((res) => {
       this.treedata = res.data;
       this.treedata = res.data;
     });
     });
-    this.getDicType("InsInsuranceKind"); //险种类型
+    this.getDicType("productsType"); //险种类型
     this.getDicType("agreementType"); //险种类型
     this.getDicType("agreementType"); //险种类型
     this.areaqueryList(1, 99, "provinceId");
     this.areaqueryList(1, 99, "provinceId");
     this.companyqueryList(0,'allPartnerCompaniesId');
     this.companyqueryList(0,'allPartnerCompaniesId');
@@ -799,7 +799,7 @@ drivinguploadBatchs(file, fileList){
       this.$api.insCompany.dicType(type).then((res) => {
       this.$api.insCompany.dicType(type).then((res) => {
         if (res.code == 200) {
         if (res.code == 200) {
           this[type + "options"] = res.data.ddList;
           this[type + "options"] = res.data.ddList;
-          if (type == 'InsInsuranceKind') {
+          if (type == 'productsType') {
             this.formList.forEach(e => {
             this.formList.forEach(e => {
               if (e.prop == 'riskcode') {
               if (e.prop == 'riskcode') {
                 e.options = res.data.ddList
                 e.options = res.data.ddList

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

@@ -216,7 +216,7 @@ export default {
             type: "text"
             type: "text"
           },
           },
           {
           {
-            prop: "invoicCommissionFeevalue",
+            prop: "allInvoicCommissionFeevalue",
             label: "已开票跟单费",
             label: "已开票跟单费",
             type: "text"
             type: "text"
           },
           },

+ 5 - 0
src/views/Task/AgentPoolChannel/AgentPoolChannel.vue

@@ -244,6 +244,11 @@ export default {
 
 
 <style scoped lang="scss">
 <style scoped lang="scss">
 /deep/ {
 /deep/ {
+  .el-step__description.is-finish,
+  .el-step__head.is-finish {
+    color: #333;
+    border: none;
+  }
   .el-step__title,
   .el-step__title,
   .el-step__icon-inner {
   .el-step__icon-inner {
     color: var(--themeColor)
     color: var(--themeColor)

+ 22 - 15
src/views/Task/AgentPoolChannel/AgentPoolChannel1.vue

@@ -4,8 +4,7 @@
       @areaSelectChange="areaSelectChange"></retrievalForm>
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
-      @handleButton3="transmit" button2Name="报价轨迹" button2Type="text"
-      @handleButton2="trajectory" button5Name="详情" button5Type="text" @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
+      @handleButton3="transmit" :buttonDropdown="dropdownOption" button5Name="详情" button5Type="text" @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
       @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
       @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
     <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
     <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
       转发人:
       转发人:
@@ -79,6 +78,22 @@ export default {
       ddgjdialogVisible:false,
       ddgjdialogVisible:false,
       trajectoryTable:[],
       trajectoryTable:[],
       optionsStatus:[],
       optionsStatus:[],
+      dropdownOption:[
+        {
+          label:'报价轨迹',
+          click:(row)=>this.trajectory(row)
+        },
+        {
+          label:'撤单',
+          hide:(row) => {
+            return  row.insCompany == '紫金财险' ?true:false
+          },
+          click:(row)=>this.cancelorder(row)
+        },{
+          label:'更新订单',
+          click:(row)=>this.refreshStatus(row)
+        },
+      ]
     }
     }
   },
   },
   mixins: [mixin],
   mixins: [mixin],
@@ -126,19 +141,6 @@ export default {
           }
           }
         });
         });
     },
     },
-    trajectory(row){
-      this.$api.letter.queryBySuborder(row.row.subOrderId).then((res) => {
-        if (res.code == 200 && res.data.length > 0) {
-          this.ddgjdialogVisible = true;
-          this.trajectoryTable = res.data;
-        } else {
-          this.$message({
-            message: res.msg || "暂无数据!",
-            type: "warning",
-          });
-        }
-      });
-    },
     transmit(row) {
     transmit(row) {
       this.dialogVisible = true;
       this.dialogVisible = true;
       this.transmitValue = "";
       this.transmitValue = "";
@@ -247,6 +249,11 @@ export default {
 
 
 <style scoped lang="scss">
 <style scoped lang="scss">
 /deep/{
 /deep/{
+  .el-step__description.is-finish,
+  .el-step__head.is-finish {
+    color: #333;
+    border: none;
+  }
   .el-step__title,.el-step__icon-inner{
   .el-step__title,.el-step__icon-inner{
     color:var(--themeColor)
     color:var(--themeColor)
   }
   }

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

@@ -5,6 +5,7 @@
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
       @handleButton3="transmit" button2Name="报价轨迹" button2Type="text"
       @handleButton3="transmit" button2Name="报价轨迹" button2Type="text"
+      :buttonDropdown="dropdownOption"
       @handleButton2="trajectory" button5Name="详情" button5Type="text" @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
       @handleButton2="trajectory" button5Name="详情" button5Type="text" @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
       @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
       @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
     <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
     <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
@@ -51,6 +52,8 @@
         <el-table-column property="createTime" align="center" label="转发时间"></el-table-column>
         <el-table-column property="createTime" align="center" label="转发时间"></el-table-column>
       </el-table>
       </el-table>
     </el-dialog>
     </el-dialog>
+    <qrCodedialog ref="qrCodedialog"></qrCodedialog>
+
   </div>
   </div>
 </template>
 </template>
 <script>
 <script>
@@ -60,12 +63,14 @@ import CommonUtil from "@/utils/comutil.js";
 import detailsDialog from "@/views/Core/components/detailsDialog.vue";
 import detailsDialog from "@/views/Core/components/detailsDialog.vue";
 import retrievalForm from "@/components/Form/retrievalForm.vue";
 import retrievalForm from "@/components/Form/retrievalForm.vue";
 import { mixin } from "../mixin";
 import { mixin } from "../mixin";
+import qrCodedialog from "../component/qrCode.vue";
 
 
 export default {
 export default {
   components: {
   components: {
     KtCommonTable,
     KtCommonTable,
     detailsDialog,
     detailsDialog,
-    retrievalForm
+    retrievalForm,
+    qrCodedialog
   },
   },
   data() {
   data() {
     return {
     return {
@@ -80,6 +85,25 @@ export default {
       ddgjdialogVisible:false,
       ddgjdialogVisible:false,
       trajectoryTable:[],
       trajectoryTable:[],
       optionsStatus:[],
       optionsStatus:[],
+      subOrderId:'',
+      dropdownOption:[
+        {
+          label:'二维码',
+          click:(row)=>this.carcode(row)
+        },{
+          label:'撤销二维码',
+          click:(row)=>this.revokeCode(row)
+        },{
+          label:'状态更新',
+          click:(row)=>this.querystatus(row)
+        }, {
+          label:'撤单',
+          hide:(row) => {
+            return  row.insCompany == '紫金财险' ?true:false
+          },
+          click:(row)=>this.cancelorder(row)
+        },
+      ]
     }
     }
   },
   },
   mixins: [mixin],
   mixins: [mixin],
@@ -91,6 +115,89 @@ export default {
   },
   },
 
 
   methods: {
   methods: {
+    querystatus(item) {
+      let inscompany = {
+        国任财险: "updateOrderInfoGuoren",
+        华泰财险: "updateOrderInfoHuatai",
+        大家财险: "updateOrderInfoDajia",
+        紫金财险: "getOrderDetail",
+        中煤财险: "paymentEnquiry",
+        渤海财险: "getOrderDetailboHai"
+      };
+      Object.keys(inscompany).forEach(val => {
+        if (val == item.insCompany) {
+          this.$api.letter[inscompany[val]]({ companyId: item.subOrderId }).then(
+            res => {
+              if (res.code == 200) {
+                this.$message({
+                  message: res.msg ? res.msg : "已刷新状态",
+                  type: "success"
+                });
+                this.findPage();
+              } else {
+                this.$message({ message: res.msg, type: "error" });
+              }
+            }
+          );
+        }
+      });
+      if (item.insCompany == "永诚财险") {
+        this.$api.letter.orderStatusyongcheng(item.subOrderId).then(res => {
+          if (res.code == 200) {
+            this.$message({
+              message: res.msg ? res.msg : "已刷新状态",
+              type: "success"
+            });
+            this.findPage();
+          } else {
+            this.$message({ message: res.msg, type: "error" });
+          }
+        });
+      }
+      if (item.insCompany == "华泰财险") {
+        let HtApiType =
+          item.apiType == 2
+            ? "pychonverifyPayment"
+            : "updateOrderInfoHuatai";
+
+        this.$api.letter[HtApiType](item.apiType == 2 ? { subOrderNo: item.subOrderId } : item.id).then(res => {
+          if (res.code == 200) {
+            this.$message({
+              message: res.msg ? res.msg : "已刷新状态",
+              type: "success"
+            });
+            this.findPage();
+          } else {
+            this.$message({ message: res.msg, type: "error" });
+          }
+        });
+      }
+      if (
+        item.insCompany == "恒邦财险" ||
+        item.insCompany == "众安财险" ||
+        item.insCompany == "中国人寿" ||
+        item.insCompany == "安盛天平" ||
+        item.insCompany == "太平财险" ||
+        item.insCompany == "华农财险"
+      ) {
+        this.$api.letter
+          .pychonverifyPayment({ subOrderNo: item.subOrderId })
+          .then(res => {
+            if (res.code == "200") {
+              this.$message({
+                message: "订单支付成功,正在更改状态",
+                type: "success"
+              });
+              this.findPage();
+            } else {
+              this.$message({ message: res.msg, type: "error" });
+            }
+          });
+      }
+    },
+    carcode(row) {
+      this.$refs.qrCodedialog.carcode(row)
+    },
     getStatusText(code) {
     getStatusText(code) {
       return this.optionsStatus.find(val=>val.dictValue==code).dictTag;;
       return this.optionsStatus.find(val=>val.dictValue==code).dictTag;;
     },
     },

+ 5 - 0
src/views/Task/AgentPoolChannel/AgentPoolChannel3.vue

@@ -247,6 +247,11 @@ export default {
 
 
 <style scoped lang="scss">
 <style scoped lang="scss">
 /deep/{
 /deep/{
+  .el-step__description.is-finish,
+  .el-step__head.is-finish {
+    color: #333;
+    border: none;
+  }
   .el-step__title,.el-step__icon-inner{
   .el-step__title,.el-step__icon-inner{
     color:var(--themeColor)
     color:var(--themeColor)
   }
   }

+ 64 - 15
src/views/Task/AgentPoolChannel/AgentPoolChannel4.vue

@@ -4,8 +4,8 @@
       @areaSelectChange="areaSelectChange"></retrievalForm>
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
-      @handleButton3="transmit" button2Name="报价轨迹" button2Type="text"
-      @handleButton2="trajectory" button5Name="详情" button5Type="text" @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
+      @handleButton3="transmit" :buttonDropdown="dropdownOption"
+      button5Name="详情" button5Type="text" @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
       @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
       @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
     <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
     <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
       转发人:
       转发人:
@@ -78,6 +78,25 @@ export default {
       ddgjdialogVisible:false,
       ddgjdialogVisible:false,
       trajectoryTable:[],
       trajectoryTable:[],
       optionsStatus:[],
       optionsStatus:[],
+      dropdownOption:[
+        {
+          label:'报价轨迹',
+          click:(row)=>this.trajectory(row)
+        },
+        {
+          label:'撤单',
+          hide:(row) => {
+            return  row.insCompany == '紫金财险' ?true:false
+          },
+          click:(row)=>this.cancelorder(row)
+        },{
+          label:'更新订单',
+          hide:(row) => {
+            return  row.orderstatus=='4' && row.insCompany == '华泰财险' ?true:false
+          },
+          click:(row)=>this.updateStatusHuatai(row)
+        },
+      ]
     }
     }
   },
   },
   mixins: [mixin],
   mixins: [mixin],
@@ -89,6 +108,44 @@ export default {
   },
   },
 
 
   methods: {
   methods: {
+    cancelorder(item) {
+      this.$api.letter.zijincancelorder({ companyId: item.subOrderId }).then(res => {
+        if (res.code == 200) {
+          this.$message({
+            message: res.msg,
+            type: "success"
+          });
+          this.findPage();
+        }
+        else{
+          this.$message.error(res.msg);
+        }
+      });
+    },
+     //华泰刷新核保状态
+     updateStatusHuatai(item) {
+      let HtApiType =
+        item.apiType == 2
+          ? "auditStatusQuery"
+          : "orderStatushuatai";
+      this.$api.letter[HtApiType]({ companyId: item.subOrderId }).then(res => {
+        if (res.code == 200) {
+          this.$message({
+            message: res.msg ? res.msg : "已刷新状态",
+            type: "success"
+          });
+          this.findPage();
+        } else {
+          this.$message({
+            showClose: true,
+            dangerouslyUseHTMLString: true,
+            message: res.msg.replace(/\n/g, "<br><br>"),
+            type: "error",
+            duration: 7000
+          });
+        }
+      });
+    },
     getStatusText(code) {
     getStatusText(code) {
       return this.optionsStatus.find(val=>val.dictValue==code).dictTag;;
       return this.optionsStatus.find(val=>val.dictValue==code).dictTag;;
     },
     },
@@ -125,19 +182,6 @@ export default {
           }
           }
         });
         });
     },
     },
-    trajectory(row){
-      this.$api.letter.queryBySuborder(row.row.subOrderId).then((res) => {
-        if (res.code == 200 && res.data.length > 0) {
-          this.ddgjdialogVisible = true;
-          this.trajectoryTable = res.data;
-        } else {
-          this.$message({
-            message: res.msg || "暂无数据!",
-            type: "warning",
-          });
-        }
-      });
-    },
     transmit(row) {
     transmit(row) {
       this.dialogVisible = true;
       this.dialogVisible = true;
       this.transmitValue = "";
       this.transmitValue = "";
@@ -244,6 +288,11 @@ export default {
 
 
 <style scoped lang="scss">
 <style scoped lang="scss">
 /deep/{
 /deep/{
+  .el-step__description.is-finish,
+  .el-step__head.is-finish {
+    color: #333;
+    border: none;
+  }
   .el-step__title,.el-step__icon-inner{
   .el-step__title,.el-step__icon-inner{
     color:var(--themeColor)
     color:var(--themeColor)
   }
   }

+ 5 - 0
src/views/Task/CompanyPoolChannel/CompanyPoolChannel.vue

@@ -246,6 +246,11 @@ export default {
 
 
 <style scoped lang="scss">
 <style scoped lang="scss">
 /deep/{
 /deep/{
+  .el-step__description.is-finish,
+  .el-step__head.is-finish {
+    color: #333;
+    border: none;
+  }
   .el-step__title,.el-step__icon-inner{
   .el-step__title,.el-step__icon-inner{
     color:var(--themeColor)
     color:var(--themeColor)
   }
   }

+ 26 - 16
src/views/Task/CompanyPoolChannel/CompanyPoolChannel1.vue

@@ -4,8 +4,8 @@
       @areaSelectChange="areaSelectChange"></retrievalForm>
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
-      @handleButton3="transmit" button2Name="报价轨迹" button2Type="text"
-      @handleButton2="trajectory" button5Name="详情" button5Type="text" @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
+      @handleButton3="transmit"   :buttonDropdown="dropdownOption"
+       button5Name="详情" button5Type="text" @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
       @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
       @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
     <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
     <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
       转发人:
       转发人:
@@ -79,6 +79,22 @@ export default {
       ddgjdialogVisible:false,
       ddgjdialogVisible:false,
       trajectoryTable:[],
       trajectoryTable:[],
       optionsStatus:[],
       optionsStatus:[],
+      dropdownOption:[
+        {
+          label:'报价轨迹',
+          click:(row)=>this.trajectory(row)
+        },
+        {
+          label:'撤单',
+          hide:(row) => {
+            return  row.insCompany == '紫金财险' ?true:false
+          },
+          click:(row)=>this.cancelorder(row)
+        },{
+          label:'更新订单',
+          click:(row)=>this.refreshStatus(row)
+        },
+      ]
     }
     }
   },
   },
   mixins: [mixin],
   mixins: [mixin],
@@ -94,7 +110,8 @@ export default {
   },
   },
 
 
   methods: {
   methods: {
-
+   
+ 
     getStatusText(code) {
     getStatusText(code) {
       return this.optionsStatus.find(val=>val.dictValue==code).dictTag;;
       return this.optionsStatus.find(val=>val.dictValue==code).dictTag;;
     },
     },
@@ -131,19 +148,7 @@ export default {
           }
           }
         });
         });
     },
     },
-    trajectory(row){
-      this.$api.letter.queryBySuborder(row.row.subOrderId).then((res) => {
-        if (res.code == 200 && res.data.length > 0) {
-          this.ddgjdialogVisible = true;
-          this.trajectoryTable = res.data;
-        } else {
-          this.$message({
-            message: res.msg || "暂无数据!",
-            type: "warning",
-          });
-        }
-      });
-    },
+  
     transmit(row) {
     transmit(row) {
       this.dialogVisible = true;
       this.dialogVisible = true;
       this.transmitValue = "";
       this.transmitValue = "";
@@ -250,6 +255,11 @@ export default {
 
 
 <style scoped lang="scss">
 <style scoped lang="scss">
 /deep/{
 /deep/{
+  .el-step__description.is-finish,
+  .el-step__head.is-finish {
+    color: #333;
+    border: none;
+  }
   .el-step__title,.el-step__icon-inner{
   .el-step__title,.el-step__icon-inner{
     color:var(--themeColor)
     color:var(--themeColor)
   }
   }

+ 117 - 2
src/views/Task/CompanyPoolChannel/CompanyPoolChannel2.vue

@@ -6,7 +6,9 @@
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
       @handleButton3="transmit" button2Name="报价轨迹" button2Type="text"
       @handleButton3="transmit" button2Name="报价轨迹" button2Type="text"
       @handleButton2="trajectory" button5Name="详情" button5Type="text" @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
       @handleButton2="trajectory" button5Name="详情" button5Type="text" @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
-      @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
+      @handleButton4="forwardingRecords" :operationWidth="300"
+      :buttonDropdown="dropdownOption"
+      ></kt-common-table>
     <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
     <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
       转发人:
       转发人:
       <el-select v-model="transmitValue" filterable clearable placeholder="请选择">
       <el-select v-model="transmitValue" filterable clearable placeholder="请选择">
@@ -51,6 +53,7 @@
         <el-table-column property="createTime" align="center" label="转发时间"></el-table-column>
         <el-table-column property="createTime" align="center" label="转发时间"></el-table-column>
       </el-table>
       </el-table>
     </el-dialog>
     </el-dialog>
+    <qrCodedialog ref="qrCodedialog"></qrCodedialog>
   </div>
   </div>
 </template>
 </template>
 <script>
 <script>
@@ -59,13 +62,15 @@ import Cookies from "js-cookie";
 import CommonUtil from "@/utils/comutil.js";
 import CommonUtil from "@/utils/comutil.js";
 import detailsDialog from "@/views/Core/components/detailsDialog.vue";
 import detailsDialog from "@/views/Core/components/detailsDialog.vue";
 import retrievalForm from "@/components/Form/retrievalForm.vue";
 import retrievalForm from "@/components/Form/retrievalForm.vue";
+import qrCodedialog from "../component/qrCode.vue";
 import { mixin } from "../mixin";
 import { mixin } from "../mixin";
 
 
 export default {
 export default {
   components: {
   components: {
     KtCommonTable,
     KtCommonTable,
     detailsDialog,
     detailsDialog,
-    retrievalForm
+    retrievalForm,
+    qrCodedialog
   },
   },
   data() {
   data() {
     return {
     return {
@@ -79,6 +84,27 @@ export default {
       ddgjdialogVisible:false,
       ddgjdialogVisible:false,
       trajectoryTable:[],
       trajectoryTable:[],
       optionsStatus:[],
       optionsStatus:[],
+      subOrderId:'',
+      dropdownOption:[
+        {
+          label:'二维码',
+          click:(row)=>this.carcode(row)
+        },{
+          label:'撤销二维码',
+          click:(row)=>this.revokeCode(row)
+        },{
+          label:'状态更新',
+          click:(row)=>this.querystatus(row)
+        },
+        {
+          label:'撤单',
+          hide:(row) => {
+            return  row.insCompany == '紫金财险' ?true:false
+          },
+          click:(row)=>this.cancelorder(row)
+        },
+      ]
+
     }
     }
   },
   },
   mixins: [mixin],
   mixins: [mixin],
@@ -90,6 +116,89 @@ export default {
   },
   },
 
 
   methods: {
   methods: {
+    querystatus(item) {
+      let inscompany = {
+        国任财险: "updateOrderInfoGuoren",
+        华泰财险: "updateOrderInfoHuatai",
+        大家财险: "updateOrderInfoDajia",
+        紫金财险: "getOrderDetail",
+        中煤财险: "paymentEnquiry",
+        渤海财险: "getOrderDetailboHai"
+      };
+      Object.keys(inscompany).forEach(val => {
+        if (val == item.insCompany) {
+          this.$api.letter[inscompany[val]]({ companyId: item.subOrderId }).then(
+            res => {
+              if (res.code == 200) {
+                this.$message({
+                  message: res.msg ? res.msg : "已刷新状态",
+                  type: "success"
+                });
+                this.findPage();
+              } else {
+                this.$message({ message: res.msg, type: "error" });
+              }
+            }
+          );
+        }
+      });
+      if (item.insCompany == "永诚财险") {
+        this.$api.letter.orderStatusyongcheng(item.subOrderId).then(res => {
+          if (res.code == 200) {
+            this.$message({
+              message: res.msg ? res.msg : "已刷新状态",
+              type: "success"
+            });
+            this.findPage();
+          } else {
+            this.$message({ message: res.msg, type: "error" });
+          }
+        });
+      }
+      if (item.insCompany == "华泰财险") {
+        let HtApiType =
+          item.apiType == 2
+            ? "pychonverifyPayment"
+            : "updateOrderInfoHuatai";
+
+        this.$api.letter[HtApiType](item.apiType == 2 ? { subOrderNo: item.subOrderId } : item.id).then(res => {
+          if (res.code == 200) {
+            this.$message({
+              message: res.msg ? res.msg : "已刷新状态",
+              type: "success"
+            });
+            this.findPage();
+          } else {
+            this.$message({ message: res.msg, type: "error" });
+          }
+        });
+      }
+      if (
+        item.insCompany == "恒邦财险" ||
+        item.insCompany == "众安财险" ||
+        item.insCompany == "中国人寿" ||
+        item.insCompany == "安盛天平" ||
+        item.insCompany == "太平财险" ||
+        item.insCompany == "华农财险"
+      ) {
+        this.$api.letter
+          .pychonverifyPayment({ subOrderNo: item.subOrderId })
+          .then(res => {
+            if (res.code == "200") {
+              this.$message({
+                message: "订单支付成功,正在更改状态",
+                type: "success"
+              });
+              this.findPage();
+            } else {
+              this.$message({ message: res.msg, type: "error" });
+            }
+          });
+      }
+    },
+    carcode(row) {
+      this.$refs.qrCodedialog.carcode(row)
+    },
     getStatusText(code) {
     getStatusText(code) {
       return this.optionsStatus.find(val=>val.dictValue==code).dictTag;;
       return this.optionsStatus.find(val=>val.dictValue==code).dictTag;;
     },
     },
@@ -245,6 +354,11 @@ export default {
 
 
 <style scoped lang="scss">
 <style scoped lang="scss">
 /deep/{
 /deep/{
+  .el-step__description.is-finish,
+  .el-step__head.is-finish {
+    color: #333;
+    border: none;
+  }
   .el-step__title,.el-step__icon-inner{
   .el-step__title,.el-step__icon-inner{
     color:var(--themeColor)
     color:var(--themeColor)
   }
   }
@@ -266,4 +380,5 @@ export default {
     box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.1);
     box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.1);
   }
   }
 }
 }
+
 </style>
 </style>

+ 5 - 0
src/views/Task/CompanyPoolChannel/CompanyPoolChannel3.vue

@@ -350,6 +350,11 @@ export default {
 
 
 <style scoped lang="scss">
 <style scoped lang="scss">
 /deep/{
 /deep/{
+  .el-step__description.is-finish,
+  .el-step__head.is-finish {
+    color: #333;
+    border: none;
+  }
   .el-step__title,.el-step__icon-inner{
   .el-step__title,.el-step__icon-inner{
     color:var(--themeColor)
     color:var(--themeColor)
   }
   }

+ 54 - 17
src/views/Task/CompanyPoolChannel/CompanyPoolChannel4.vue

@@ -3,10 +3,12 @@
     <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
     <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
       @areaSelectChange="areaSelectChange"></retrievalForm>
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
-      :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
-      @handleButton3="transmit" button2Name="报价轨迹" button2Type="text"
-      @handleButton2="trajectory" button5Name="详情" button5Type="text" @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
-      @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
+      :showBatchDelete="false" @findPage="findPage" 
+      button3Name="转发" button3Type="text" @handleButton3="transmit"
+      button5Name="详情" button5Type="text" @handleButton5="detailFun" 
+      button4Name="转发记录" button4Type="text" @handleButton4="forwardingRecords" 
+      :buttonDropdown="dropdownOption"
+      :operationWidth="300"></kt-common-table>
     <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
     <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
       转发人:
       转发人:
       <el-select v-model="transmitValue" filterable clearable placeholder="请选择">
       <el-select v-model="transmitValue" filterable clearable placeholder="请选择">
@@ -79,6 +81,25 @@ export default {
       ddgjdialogVisible:false,
       ddgjdialogVisible:false,
       trajectoryTable:[],
       trajectoryTable:[],
       optionsStatus:[],
       optionsStatus:[],
+      dropdownOption:[
+        {
+          label:'报价轨迹',
+          click:(row)=>this.trajectory(row)
+        },
+        {
+          label:'撤单',
+          hide:(row) => {
+            return  row.insCompany == '紫金财险' ?true:false
+          },
+          click:(row)=>this.cancelorder(row)
+        },{
+          label:'更新订单',
+          hide:(row) => {
+            return  row.orderstatus=='4' && row.insCompany == '华泰财险' ?true:false
+          },
+          click:(row)=>this.updateStatusHuatai(row)
+        },
+      ]
     }
     }
   },
   },
   mixins: [mixin],
   mixins: [mixin],
@@ -90,6 +111,30 @@ export default {
   },
   },
 
 
   methods: {
   methods: {
+     //华泰刷新核保状态
+     updateStatusHuatai(item) {
+      let HtApiType =
+        item.apiType == 2
+          ? "auditStatusQuery"
+          : "orderStatushuatai";
+      this.$api.letter[HtApiType]({ companyId: item.subOrderId }).then(res => {
+        if (res.code == 200) {
+          this.$message({
+            message: res.msg ? res.msg : "已刷新状态",
+            type: "success"
+          });
+          this.findPage();
+        } else {
+          this.$message({
+            showClose: true,
+            dangerouslyUseHTMLString: true,
+            message: res.msg.replace(/\n/g, "<br><br>"),
+            type: "error",
+            duration: 7000
+          });
+        }
+      });
+    },
     getStatusText(code) {
     getStatusText(code) {
       return this.optionsStatus.find(val=>val.dictValue==code).dictTag;;
       return this.optionsStatus.find(val=>val.dictValue==code).dictTag;;
     },
     },
@@ -126,19 +171,6 @@ export default {
           }
           }
         });
         });
     },
     },
-    trajectory(row){
-      this.$api.letter.queryBySuborder(row.row.subOrderId).then((res) => {
-        if (res.code == 200 && res.data.length > 0) {
-          this.ddgjdialogVisible = true;
-          this.trajectoryTable = res.data;
-        } else {
-          this.$message({
-            message: res.msg || "暂无数据!",
-            type: "warning",
-          });
-        }
-      });
-    },
     transmit(row) {
     transmit(row) {
       this.dialogVisible = true;
       this.dialogVisible = true;
       this.transmitValue = "";
       this.transmitValue = "";
@@ -245,6 +277,11 @@ export default {
 
 
 <style scoped lang="scss">
 <style scoped lang="scss">
 /deep/{
 /deep/{
+  .el-step__description.is-finish,
+  .el-step__head.is-finish {
+    color: #333;
+    border: none;
+  }
   .el-step__title,.el-step__icon-inner{
   .el-step__title,.el-step__icon-inner{
     color:var(--themeColor)
     color:var(--themeColor)
   }
   }

+ 25 - 11
src/views/Task/DaikeLetter.vue

@@ -10,10 +10,10 @@
       >
       >
         <el-row type="flex" justify="space-between">
         <el-row type="flex" justify="space-between">
           <el-col :span="5">
           <el-col :span="5">
-            <el-form-item label="业务员" prop="name">
+            <el-form-item label="工号">
               <el-input
               <el-input
-                placeholder="请输入业务员"
-                v-model="salespersonForm.name"
+                placeholder="请输入工号"
+                v-model="salespersonForm.userId"
                 maxlength="17"
                 maxlength="17"
                 type="text"
                 type="text"
                 show-word-limit
                 show-word-limit
@@ -29,10 +29,24 @@
             </el-form-item>
             </el-form-item>
           </el-col>
           </el-col>
           <el-col :span="5">
           <el-col :span="5">
-            <el-form-item label="工号">
-              <el-input v-model="salespersonForm.userId" type="text" disabled></el-input>
+            <el-form-item label="业务员" prop="name">
+              <el-input
+                placeholder="请输入业务员"
+                v-model="salespersonForm.name"
+                type="text"
+                show-word-limit
+              >
+                <el-button
+                  slot="append"
+                  type="primary"
+                  icon="el-icon-search"
+                  @click="toChooseName()"
+                  style="color: #fff;background-color:#D42426;border-color:#D42426;"
+                ></el-button>
+              </el-input>
             </el-form-item>
             </el-form-item>
           </el-col>
           </el-col>
+        
           <el-col :span="5">
           <el-col :span="5">
             <el-form-item label="工号类型">
             <el-form-item label="工号类型">
               <el-select v-model="salespersonForm.noType" disabled>
               <el-select v-model="salespersonForm.noType" disabled>
@@ -72,13 +86,13 @@
       <el-form :inline="true" class="demo-form-inline" size="small"  label-width="80px" :model="salespersonForm" >
       <el-form :inline="true" class="demo-form-inline" size="small"  label-width="80px" :model="salespersonForm" >
         <el-row :gutter="20">
         <el-row :gutter="20">
           <el-col :span="12">
           <el-col :span="12">
-            <el-form-item label="业务员">
-              <el-input v-model="salespersonForm.name" placeholder="业务员" clearable></el-input>
+            <el-form-item label="工号">
+              <el-input v-model="salespersonForm.userId" placeholder="工号" clearable></el-input>
             </el-form-item>
             </el-form-item>
           </el-col>
           </el-col>
           <el-col :span="12">
           <el-col :span="12">
-            <el-form-item label="工号">
-              <el-input v-model="salespersonForm.userId" placeholder="工号" clearable></el-input>
+            <el-form-item label="业务员">
+              <el-input v-model="salespersonForm.name" placeholder="业务员" clearable></el-input>
             </el-form-item>
             </el-form-item>
           </el-col>
           </el-col>
           <el-col :span="12">
           <el-col :span="12">
@@ -168,7 +182,7 @@ export default {
       this.activeName='999'
       this.activeName='999'
       this.$refs.Ktletter.add()
       this.$refs.Ktletter.add()
       this.$refs.Ktletter.userId=row.userId
       this.$refs.Ktletter.userId=row.userId
-      this.$refs.Ktletter.obtainProtocol()
+      // this.$refs.Ktletter.obtainProtocol()
       this.dialogVisible = false;
       this.dialogVisible = false;
       this.isdisabled=false
       this.isdisabled=false
     },
     },
@@ -211,7 +225,7 @@ export default {
     orderEdit(data){
     orderEdit(data){
       this.activeName=data.activeName
       this.activeName=data.activeName
       this.$refs.Ktletter.editingWay(data)
       this.$refs.Ktletter.editingWay(data)
-      this.$refs.Ktletter.obtainProtocol(data)
+      // this.$refs.Ktletter.obtainProtocol(data)
     }
     }
   }
   }
 }
 }

+ 22 - 15
src/views/Task/TaskPoolChannel/TaskPoolChannel1.vue

@@ -4,8 +4,7 @@
       @areaSelectChange="areaSelectChange"></retrievalForm>
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
-      @handleButton3="transmit" button2Name="报价轨迹" button2Type="text"
-      @handleButton2="trajectory" button5Name="详情" button5Type="text" @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
+      @handleButton3="transmit"  :buttonDropdown="dropdownOption" button5Name="详情" button5Type="text" @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
       @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
       @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
     <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
     <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
       转发人:
       转发人:
@@ -79,6 +78,22 @@ export default {
       ddgjdialogVisible:false,
       ddgjdialogVisible:false,
       trajectoryTable:[],
       trajectoryTable:[],
       optionsStatus:[],
       optionsStatus:[],
+      dropdownOption:[
+        {
+          label:'报价轨迹',
+          click:(row)=>this.trajectory(row)
+        },
+        {
+          label:'撤单',
+          hide:(row) => {
+            return  row.insCompany == '紫金财险' ?true:false
+          },
+          click:(row)=>this.cancelorder(row)
+        },{
+          label:'更新订单',
+          click:(row)=>this.refreshStatus(row)
+        },
+      ]
     }
     }
   },
   },
   mixins: [mixin],
   mixins: [mixin],
@@ -128,19 +143,6 @@ export default {
           }
           }
         });
         });
     },
     },
-    trajectory(row){
-      this.$api.letter.queryBySuborder(row.row.subOrderId).then((res) => {
-        if (res.code == 200 && res.data.length > 0) {
-          this.ddgjdialogVisible = true;
-          this.trajectoryTable = res.data;
-        } else {
-          this.$message({
-            message: res.msg || "暂无数据!",
-            type: "warning",
-          });
-        }
-      });
-    },
     transmit(row) {
     transmit(row) {
       this.dialogVisible = true;
       this.dialogVisible = true;
       this.transmitValue = "";
       this.transmitValue = "";
@@ -247,6 +249,11 @@ export default {
 
 
 <style scoped lang="scss">
 <style scoped lang="scss">
 /deep/{
 /deep/{
+  .el-step__description.is-finish,
+  .el-step__head.is-finish {
+    color: #333;
+    border: none;
+  }
   .el-step__title,.el-step__icon-inner{
   .el-step__title,.el-step__icon-inner{
     color:var(--themeColor)
     color:var(--themeColor)
   }
   }

+ 143 - 5
src/views/Task/TaskPoolChannel/TaskPoolChannel2.vue

@@ -3,10 +3,13 @@
     <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
     <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
       @areaSelectChange="areaSelectChange"></retrievalForm>
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
-      :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
-      @handleButton3="transmit" button2Name="报价轨迹" button2Type="text"
-      @handleButton2="trajectory" button5Name="详情" button5Type="text" @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
-      @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
+      :showBatchDelete="false" @findPage="findPage" 
+      :buttonDropdown="dropdownOption"
+      button3Name="转发" button3Type="text" @handleButton3="transmit" 
+      button2Name="报价轨迹" button2Type="text" @handleButton2="trajectory" 
+      button5Name="详情" button5Type="text" @handleButton5="detailFun" 
+      button4Name="转发记录" button4Type="text"   @handleButton4="forwardingRecords"
+      :operationWidth="300"></kt-common-table>
     <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
     <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
       转发人:
       转发人:
       <el-select v-model="transmitValue" filterable clearable  placeholder="请选择">
       <el-select v-model="transmitValue" filterable clearable  placeholder="请选择">
@@ -51,6 +54,8 @@
         <el-table-column property="createTime" align="center" label="转发时间"></el-table-column>
         <el-table-column property="createTime" align="center" label="转发时间"></el-table-column>
       </el-table>
       </el-table>
     </el-dialog>
     </el-dialog>
+    <qrCodedialog ref="qrCodedialog"></qrCodedialog>
+
   </div>
   </div>
 </template>
 </template>
 <script>
 <script>
@@ -60,12 +65,14 @@ import CommonUtil from "@/utils/comutil.js";
 import detailsDialog from "@/views/Core/components/detailsDialog.vue";
 import detailsDialog from "@/views/Core/components/detailsDialog.vue";
 import retrievalForm from "@/components/Form/retrievalForm.vue";
 import retrievalForm from "@/components/Form/retrievalForm.vue";
 import { mixin } from "../mixin";
 import { mixin } from "../mixin";
+import qrCodedialog from "../component/qrCode.vue";
 
 
 export default {
 export default {
   components: {
   components: {
     KtCommonTable,
     KtCommonTable,
     detailsDialog,
     detailsDialog,
-    retrievalForm
+    retrievalForm,
+    qrCodedialog
   },
   },
   data() {
   data() {
     return {
     return {
@@ -79,6 +86,25 @@ export default {
       ddgjdialogVisible:false,
       ddgjdialogVisible:false,
       trajectoryTable:[],
       trajectoryTable:[],
       optionsStatus:[],
       optionsStatus:[],
+      subOrderId:'',
+      dropdownOption:[
+        {
+          label:'二维码',
+          click:(row)=>this.carcode(row)
+        },{
+          label:'撤销二维码',
+          click:(row)=>this.revokeCode(row)
+        },{
+          label:'状态更新',
+          click:(row)=>this.querystatus(row)
+        }, {
+          label:'撤单',
+          hide:(row) => {
+            return  row.insCompany == '紫金财险' ?true:false
+          },
+          click:(row)=>this.cancelorder(row)
+        },
+      ]
     }
     }
   },
   },
   mixins: [mixin],
   mixins: [mixin],
@@ -91,6 +117,89 @@ export default {
   },
   },
 
 
   methods: {
   methods: {
+    querystatus(item) {
+      let inscompany = {
+        国任财险: "updateOrderInfoGuoren",
+        华泰财险: "updateOrderInfoHuatai",
+        大家财险: "updateOrderInfoDajia",
+        紫金财险: "getOrderDetail",
+        中煤财险: "paymentEnquiry",
+        渤海财险: "getOrderDetailboHai"
+      };
+      Object.keys(inscompany).forEach(val => {
+        if (val == item.insCompany) {
+          this.$api.letter[inscompany[val]]({ companyId: item.subOrderId }).then(
+            res => {
+              if (res.code == 200) {
+                this.$message({
+                  message: res.msg ? res.msg : "已刷新状态",
+                  type: "success"
+                });
+                this.findPage();
+              } else {
+                this.$message({ message: res.msg, type: "error" });
+              }
+            }
+          );
+        }
+      });
+      if (item.insCompany == "永诚财险") {
+        this.$api.letter.orderStatusyongcheng(item.subOrderId).then(res => {
+          if (res.code == 200) {
+            this.$message({
+              message: res.msg ? res.msg : "已刷新状态",
+              type: "success"
+            });
+            this.findPage();
+          } else {
+            this.$message({ message: res.msg, type: "error" });
+          }
+        });
+      }
+      if (item.insCompany == "华泰财险") {
+        let HtApiType =
+          item.apiType == 2
+            ? "pychonverifyPayment"
+            : "updateOrderInfoHuatai";
+
+        this.$api.letter[HtApiType](item.apiType == 2 ? { subOrderNo: item.subOrderId } : item.id).then(res => {
+          if (res.code == 200) {
+            this.$message({
+              message: res.msg ? res.msg : "已刷新状态",
+              type: "success"
+            });
+            this.findPage();
+          } else {
+            this.$message({ message: res.msg, type: "error" });
+          }
+        });
+      }
+      if (
+        item.insCompany == "恒邦财险" ||
+        item.insCompany == "众安财险" ||
+        item.insCompany == "中国人寿" ||
+        item.insCompany == "安盛天平" ||
+        item.insCompany == "太平财险" ||
+        item.insCompany == "华农财险"
+      ) {
+        this.$api.letter
+          .pychonverifyPayment({ subOrderNo: item.subOrderId })
+          .then(res => {
+            if (res.code == "200") {
+              this.$message({
+                message: "订单支付成功,正在更改状态",
+                type: "success"
+              });
+              this.findPage();
+            } else {
+              this.$message({ message: res.msg, type: "error" });
+            }
+          });
+      }
+    },
+    carcode(row) {
+      this.$refs.qrCodedialog.carcode(row)
+    },
     getStatusText(code) {
     getStatusText(code) {
       return this.optionsStatus.find(val=>val.dictValue==code).dictTag;;
       return this.optionsStatus.find(val=>val.dictValue==code).dictTag;;
     },
     },
@@ -246,6 +355,11 @@ export default {
 
 
 <style scoped lang="scss">
 <style scoped lang="scss">
 /deep/{
 /deep/{
+  .el-step__description.is-finish,
+  .el-step__head.is-finish {
+    color: #333;
+    border: none;
+  }
   .el-step__title,.el-step__icon-inner{
   .el-step__title,.el-step__icon-inner{
     color:var(--themeColor)
     color:var(--themeColor)
   }
   }
@@ -266,5 +380,29 @@ export default {
     border:none;
     border:none;
     box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.1);
     box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.1);
   }
   }
+  .proSaomazhifucodeClass .el-dialog__header {
+    background: rgba(45, 77, 137, 0.1);
+    font-weight: bold;
+  }
+
+  .proSaomazhifucodeClass .el-dialog__footer {
+    border-top: 1px solid #eef1f6;
+  }
+
+  .el-step__head {
+    min-height: 90px;
+  }
+
+  .el-table .row-expand-cover .cell .el-table__expand-icon {
+    display: none;
+  }
+
+  .el-descriptions-item__label {
+    &:not(.is-bordered-label) {
+      color: #333;
+    }
+  }
+
 }
 }
+
 </style>
 </style>

+ 5 - 0
src/views/Task/TaskPoolChannel/TaskPoolChannel3.vue

@@ -247,6 +247,11 @@ export default {
 
 
 <style scoped lang="scss">
 <style scoped lang="scss">
 /deep/ {
 /deep/ {
+  .el-step__description.is-finish,
+  .el-step__head.is-finish {
+    color: #333;
+    border: none;
+  }
   .el-step__title,
   .el-step__title,
   .el-step__icon-inner {
   .el-step__icon-inner {
     color: var(--themeColor)
     color: var(--themeColor)

+ 64 - 15
src/views/Task/TaskPoolChannel/TaskPoolChannel4.vue

@@ -4,8 +4,8 @@
       @areaSelectChange="areaSelectChange"></retrievalForm>
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
-      @handleButton3="transmit" button2Name="报价轨迹" button2Type="text"
-      @handleButton2="trajectory" button5Name="详情" button5Type="text" @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
+      @handleButton3="transmit"      :buttonDropdown="dropdownOption"
+       button5Name="详情" button5Type="text" @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
       @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
       @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
     <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
     <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
       转发人:
       转发人:
@@ -78,6 +78,25 @@ export default {
       ddgjdialogVisible:false,
       ddgjdialogVisible:false,
       trajectoryTable:[],
       trajectoryTable:[],
       optionsStatus:[],
       optionsStatus:[],
+      dropdownOption:[
+        {
+          label:'报价轨迹',
+          click:(row)=>this.trajectory(row)
+        },
+        {
+          label:'撤单',
+          hide:(row) => {
+            return  row.insCompany == '紫金财险' ?true:false
+          },
+          click:(row)=>this.cancelorder(row)
+        },{
+          label:'更新订单',
+          hide:(row) => {
+            return  row.orderstatus=='4' && row.insCompany == '华泰财险' ?true:false
+          },
+          click:(row)=>this.updateStatusHuatai(row)
+        },
+      ]
     }
     }
   },
   },
   mixins: [mixin],
   mixins: [mixin],
@@ -89,6 +108,44 @@ export default {
   },
   },
 
 
   methods: {
   methods: {
+    cancelorder(item) {
+      this.$api.letter.zijincancelorder({ companyId: item.subOrderId }).then(res => {
+        if (res.code == 200) {
+          this.$message({
+            message: res.msg,
+            type: "success"
+          });
+          this.findPage();
+        }
+        else{
+          this.$message.error(res.msg);
+        }
+      });
+    },
+     //华泰刷新核保状态
+     updateStatusHuatai(item) {
+      let HtApiType =
+        item.apiType == 2
+          ? "auditStatusQuery"
+          : "orderStatushuatai";
+      this.$api.letter[HtApiType]({ companyId: item.subOrderId }).then(res => {
+        if (res.code == 200) {
+          this.$message({
+            message: res.msg ? res.msg : "已刷新状态",
+            type: "success"
+          });
+          this.findPage();
+        } else {
+          this.$message({
+            showClose: true,
+            dangerouslyUseHTMLString: true,
+            message: res.msg.replace(/\n/g, "<br><br>"),
+            type: "error",
+            duration: 7000
+          });
+        }
+      });
+    },
     getStatusText(code) {
     getStatusText(code) {
       return this.optionsStatus.find(val=>val.dictValue==code).dictTag;;
       return this.optionsStatus.find(val=>val.dictValue==code).dictTag;;
     },
     },
@@ -125,19 +182,6 @@ export default {
           }
           }
         });
         });
     },
     },
-    trajectory(row){
-      this.$api.letter.queryBySuborder(row.row.subOrderId).then((res) => {
-        if (res.code == 200 && res.data.length > 0) {
-          this.ddgjdialogVisible = true;
-          this.trajectoryTable = res.data;
-        } else {
-          this.$message({
-            message: res.msg || "暂无数据!",
-            type: "warning",
-          });
-        }
-      });
-    },
     transmit(row) {
     transmit(row) {
       this.dialogVisible = true;
       this.dialogVisible = true;
       this.transmitValue = "";
       this.transmitValue = "";
@@ -244,6 +288,11 @@ export default {
 
 
 <style scoped lang="scss">
 <style scoped lang="scss">
 /deep/{
 /deep/{
+  .el-step__description.is-finish,
+  .el-step__head.is-finish {
+    color: #333;
+    border: none;
+  }
   .el-step__title,.el-step__icon-inner{
   .el-step__title,.el-step__icon-inner{
     color:var(--themeColor)
     color:var(--themeColor)
   }
   }

+ 271 - 0
src/views/Task/component/qrCode.vue

@@ -0,0 +1,271 @@
+<template>
+    <div>
+        <el-dialog :visible.sync="codedialogVisible" width="430px" top="10vh" class="saomazhifucodeClass">
+      <div class="ORcodebody" v-watermark="orderId">
+        <div slot="title" class="dialog-title">
+          <span>扫码付款</span>
+        </div>
+        <div class="ORcode">
+          <div style="padding:13px;position: relative;">
+            <img v-if="['太平财险', '华泰财险'].includes(carcodeForm.inscompany)" :src="paycodeimg" alt style="width:100%" />
+            <div v-else id="qrcode" ref="qrcode"></div>
+          </div>
+        </div>
+        <img style="margin-left: -16px" src="../../../assets/image/divider.png" alt />
+        <div style="font-size:32px;text-align: center;color:#D42426;margin-top:20px">
+          <span style="font-size:24px;font-weight:bold">¥</span>
+          {{ carcodeForm.sumpremium }}
+        </div>
+        <div class="ORtitle">
+          <div>
+            <span>保险公司:</span>
+            <span>{{ carcodeForm.inscompany }}</span>
+          </div>
+          <div>
+            <span>车牌号:</span>
+            <span>{{ carcodeForm.cPlateNo }}</span>
+          </div>
+          <div>
+            <span>投保人:</span>
+            <span>{{ carcodeForm.cInsuredNme }}</span>
+          </div>
+          <div v-show="carcodeForm.jqpremium">
+            <span>交强:</span>
+            <span>{{ carcodeForm.jqpremium }}</span>
+          </div>
+
+          <div v-show="carcodeForm.sypremium">
+            <span>商业:</span>
+            <span>{{ carcodeForm.sypremium }}</span>
+          </div>
+          <div v-show="carcodeForm.taxamount">
+            <span>车船税:</span>
+            <span>{{ carcodeForm.taxamount }}</span>
+          </div>
+
+          <div v-show="carcodeForm.jqStartDate">
+            <span>交强险起保日期:</span>
+            <span>{{ carcodeForm.jqStartDate }}</span>
+          </div>
+          <div v-show="carcodeForm.syStartDate">
+            <span>商业险起保日期:</span>
+            <span>{{ carcodeForm.syStartDate }}</span>
+          </div>
+          <div v-if="carcodeForm.jypremium">
+            <span>非车险:</span>
+            <span>{{ carcodeForm.jypremium }}</span>
+          </div>
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer display">
+        <el-button size="small" style="width:100px;border-color:#D42426;color:#D42426 "
+          @click="codedialogVisible = false">关闭</el-button>
+      </span>
+    </el-dialog>
+    <!--第二种 二维码 -->
+    <el-dialog :visible.sync="codedialogVisiblePro" width="660px" class="proSaomazhifucodeClass" top="10vh" title="扫码付款">
+      <div class="flex j-s">
+        <div class="scan-code">
+          <div style="font-weight: bold;">
+            总金额:
+            <span style="color:#2D4D89 ">{{ carcodeForm.sumpremium }}</span>
+          </div>
+          <div>交强险:{{ carcodeForm.jqpremium }}</div>
+          <div>车船税:{{ carcodeForm.taxamount }}</div>
+          <div>商业险:{{ carcodeForm.sypremium }}</div>
+          <div>非车险:{{ carcodeForm.jypremium }}</div>
+        </div>
+        <div>
+          <img v-if="['太平财险', '华泰财险'].includes(carcodeForm.inscompany)" :src="paycodeimg" alt style="width:200px;height: 200px;" />
+          <div v-else id="qrcode" ref="qrcode"></div>
+        </div>
+        <div class="scan-code">
+          <div>保险公司:{{ carcodeForm.inscompany }}</div>
+          <div>车牌号:{{ carcodeForm.cPlateNo }}</div>
+          <div>投保人:{{ carcodeForm.cInsuredNme }}</div>
+          <div>交强险起保日期:{{ carcodeForm.jqstartdate }}</div>
+          <div>商业险起保日期:{{ carcodeForm.systartdate }}</div>
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" style="width:100px;background: #EAEDF1;border-color:#EAEDF1;color:#2D4D89 "
+          @click="codedialogVisiblePro = false">关闭</el-button>
+      </span>
+    </el-dialog>
+    </div>
+</template>
+<script>
+import QRCode from "qrcodejs2";
+export default {
+    data(){
+        return{
+            codedialogVisible:false,
+            codedialogVisiblePro:false,
+            carcodeForm:{},
+            paycodeimg:'',
+            qrcode: null,
+            qrcodeWidth: "180",
+            qrcodeHeight: "180",
+            orderId:''
+        }
+    },
+  methods: {
+    carcode(row) {
+      console.log(row);
+      this.orderId = row.subOrderId
+      this.$api.letter.getQrCode(row.subOrderId).then(res => {
+        if (res.code == "200") {
+          this.carcodeForm=res.data
+          this.$api.letter.getThemeByUserId().then(res => {
+            if (res.code == 200) {
+              if (res.data[0] == 'GD') {
+                this.codedialogVisiblePro = true;
+                this.qrcodeWidth = "154";
+                this.qrcodeHeight = "154";
+              }
+              else {
+                this.codedialogVisible = true;
+              }
+              this.$nextTick(function () {
+                if (row.inscompany == "太平财险") {
+                  let anresult = qrCodeUrl.replace(/[\r\n]/g, "");
+                  let animgBase64 = `data:image/png;base64,${anresult}`;
+                  base64ToPath(animgBase64).then(path => {
+                    this.paycodeimg = path;
+                  });
+                } else if (row.inscompany == "华泰财险") {
+                  switch (row.apiType) {
+                    case 1:
+                      this.paycodeimg = qrCodeUrl;
+                      break;
+                    case 2:
+                      let anresult = qrCodeUrl.replace(/[\r\n]/g, "");
+                      let animgBase64 = `data:image/png;base64,${anresult}`;
+                      base64ToPath(animgBase64).then(path => {
+                        this.paycodeimg = path;
+                      });
+                      break;
+                  }
+                }
+                else {
+                  this.creatQrCode( this.carcodeForm.qrCodeUrl);
+                }
+              });
+            }
+          })
+        } else {
+          this.$message({ message: res.msg, type: "warning" });
+        }
+      });
+     
+    },
+      //二维码生成插件
+      creatQrCode(text) {
+      if (this.qrcode) {
+        this.qrcode.clear();
+        this.qrcode.makeCode(text);
+      } else {
+        this.qrcode = new QRCode("qrcode", {
+          text: text,
+          width: this.qrcodeWidth,
+          height: this.qrcodeHeight,
+          colorDark: "#000000",
+          colorLight: "#ffffff",
+          correctLevel: QRCode.CorrectLevel.H
+        });
+      }
+    },
+  }
+}
+</script>
+<style scoped scoped lang="scss">
+/deep/{
+    .saomazhifucodeClass .el-dialog__body,
+  .saomazhifucodeClass .el-dialog__header,
+  .saomazhifucodeClass .el-dialog__footer {
+    padding: 0;
+    background: #f4e9e9;
+  }
+
+  .saomazhifucodeClass .el-dialog__body {
+    padding: 15px;
+  }
+
+  .saomazhifucodeClass .el-dialog__footer {
+    background: #f4e9e9;
+    padding-bottom: 15px;
+  }
+
+  .saomazhifucodeClass .el-dialog__headerbtn {
+    margin-top: 10px;
+  }
+}
+.ORcodebody {
+  height: auto;
+  // background: url(../../../assets/image/group.png) #fff;
+  padding: 16px;
+  background-color: #fff;
+}
+
+.ORcode {
+  width: 100%;
+  height: auto;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  padding: 30px;
+  box-sizing: border-box;
+
+  &>div {
+    width: 176px;
+    height: 176px;
+    border: 1px solid var(--themeColor);
+    border-radius: 5px;
+  }
+ 
+}
+
+.ORtitle {
+  width: 100%;
+  padding-bottom: 20px;
+  box-sizing: border-box;
+
+  &>div {
+    width: 100%;
+    margin: 10px 0;
+    font-size: 14px;
+
+    &>span {
+      &:nth-child(1) {
+        color: #868b98;
+        text-align: end;
+        width: 150px;
+      }
+
+      &:nth-child(2) {
+        color: #333333;
+      }
+    }
+  }
+}
+#qrCode {
+  display: inline-block;
+  margin: 0 auto;
+  /*水平居中*/
+  position: relative;
+  top: 15%;
+}
+
+#qrCode img {
+  width: 200px;
+  height: 200px;
+  background-color: #fff;
+  padding: 6px;
+}
+.display {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  box-sizing: border-box;
+}
+</style>

+ 3 - 1
src/views/Task/daikeComponents/KtLetter.vue

@@ -4355,7 +4355,9 @@ export default {
         res = await this.$api.letter.getAllAgreement()
         res = await this.$api.letter.getAllAgreement()
       }
       }
       else {
       else {
-        res = await this.$api.letter.getAllAgreementByUserId({ userId: this.userId })
+        // res = await this.$api.letter.getAllAgreementByUserId({ userId: this.userId })
+        res = await this.$api.letter.getExternalAgreement()
+        
       }
       }
       if (res.code == 200) {
       if (res.code == 200) {
         res.data.map(ele => {
         res.data.map(ele => {

+ 121 - 0
src/views/Task/mixin.js

@@ -1152,6 +1152,127 @@ export const mixin = { // 导出混入对象
           return <el-tag type="warning">电销</el-tag>
           return <el-tag type="warning">电销</el-tag>
         default:
         default:
       }
       }
+    },
+    trajectory(row){
+      this.$api.letter.queryBySuborder(row.subOrderId).then((res) => {
+        if (res.code == 200 && res.data.length > 0) {
+          this.ddgjdialogVisible = true;
+          this.trajectoryTable = res.data;
+        } else {
+          this.$message({
+            message: res.msg || "暂无数据!",
+            type: "warning",
+          });
+        }
+      });
+    },
+    cancelorder(item) {
+      this.$api.letter.zijincancelorder({ companyId: item.subOrderId }).then(res => {
+        if (res.code == 200) {
+          this.$message({
+            message: res.msg,
+            type: "success"
+          });
+          this.findPage();
+        }
+        else{
+          this.$message.error(res.msg)
+        }
+      });
+    },
+     // 撤销二维码
+     revokeCode(row) {
+      this.$api.letter.getRevokeQrCode(row.subOrderId).then(res => {
+        if (res.code == 200) {
+          this.$message({
+            message: res.msg,
+            type: "success"
+          });
+          this.findPage();
+        }
+      });
+    },
+    //查询缴费状态
+ refreshStatus(item) {
+  let inscompany = {
+    国任财险: "updateOrderInfoGuoren",
+    华泰财险: "orderStatushuatai",
+    大家财险: "updateOrderInfoDajia",
+    中煤财险: "orderStatuszhongmei",
+    太平财险: "auditStatusQuery",
+    华农财险: "auditStatusQuery",
+    恒邦财险: "auditStatusQuery",
+    众安财险: "auditStatusQuery",
+    中国人寿: "auditStatusQuery",
+    安盛天平: "auditStatusQuery",
+    紫金财险: "auditStatusQueryZijin",
+    渤海财险: "orderStatusbohai"
+  };
+  Object.keys(inscompany).forEach(val => {
+    if (val == item.insCompany) {
+      this.$api.letter[inscompany[val]]({ companyId: item.subOrderId }).then(
+        res => {
+          if (res.code == 200) {
+            this.$message({
+              message: res.msg ? res.msg : "已刷新状态",
+              type: "success"
+            });
+            this.findPage();
+          } else {
+            this.$message({
+              showClose: true,
+              dangerouslyUseHTMLString: true,
+              message: res.msg.replace(/\n/g, "<br><br>"),
+              type: "error",
+              duration: 7000
+            });
+          }
+        }
+      );
     }
     }
+  });
+  if (item.insCompany == "永诚财险") {
+    this.$api.letter.orderStatusyongcheng(item.subOrderId).then(res => {
+      if (res.code == 200) {
+        this.$message({
+          message: res.msg ? res.msg : "已刷新状态",
+          type: "success"
+        });
+        this.findPage();
+      } else {
+        this.$message({
+          showClose: true,
+          dangerouslyUseHTMLString: true,
+          message: res.msg.replace(/\n/g, "<br><br>"),
+          type: "error",
+          duration: 7000
+        });
+      }
+    });
+  }
+  if (item.insCompany == "华泰财险") {
+    let HtApiType =
+      item.apiType == 2
+        ? "auditStatusQuery"
+        : "orderStatushuatai";
+    this.$api.letter[HtApiType](item.subOrderId).then(res => {
+      if (res.code == 200) {
+        this.$message({
+          message: res.msg ? res.msg : "已刷新状态",
+          type: "success"
+        });
+        this.findPage();
+      } else {
+        this.$message({
+          showClose: true,
+          dangerouslyUseHTMLString: true,
+          message: res.msg.replace(/\n/g, "<br><br>"),
+          type: "error",
+          duration: 7000
+        });
+      }
+    });
+  }
+},
   }
   }
 }
 }