Просмотр исходного кода

新增:车险订单-任务池-来源搜索功能

libo 2 лет назад
Родитель
Сommit
d23e56e233

BIN
src/assets/image/detailsDialog_cph.png


BIN
src/assets/image/detailsDialog_gs.png


BIN
src/assets/image/detailsDialog_ly.png


Разница между файлами не показана из-за своего большого размера
+ 562 - 510
src/views/Core/components/detailsDialog.vue


+ 156 - 145
src/views/Core/components/detailsDialogPro.vue

@@ -28,15 +28,39 @@
             :class="{ 'li-selected': selectedItem === 'fymx' }" @click="selectItem('fymx')">费用明细</li>
             :class="{ 'li-selected': selectedItem === 'fymx' }" @click="selectItem('fymx')">费用明细</li>
           <li v-if="orderInfo.feeOrderNewVo && orderInfo.feeOrderNewVo.deptManagerFee.length > 0"
           <li v-if="orderInfo.feeOrderNewVo && orderInfo.feeOrderNewVo.deptManagerFee.length > 0"
             :class="{ 'li-selected': selectedItem === 'jgglf' }" @click="selectItem('jgglf')">机构管理费</li>
             :class="{ 'li-selected': selectedItem === 'jgglf' }" @click="selectItem('jgglf')">机构管理费</li>
-          <li v-if="orderInfo.feeOrderNewVo && orderInfo.feeOrderNewVo.retailFee && orderInfo.feeOrderNewVo.retailFee.length > 0"
+          <li v-if="orderInfo.distributionLevelVoList && orderInfo.distributionLevelVoList.length > 0"
             :class="{ 'li-selected': selectedItem === 'fxmx1' }" @click="selectItem('fxmx1')">分销明细</li>
             :class="{ 'li-selected': selectedItem === 'fxmx1' }" @click="selectItem('fxmx1')">分销明细</li>
           <li v-if="orderInfo && orderInfo.orderstatus == 4 && orderInfo.auditopinion"
           <li v-if="orderInfo && orderInfo.orderstatus == 4 && orderInfo.auditopinion"
             :class="{ 'li-selected': selectedItem === 'shyj' }" @click="selectItem('shyj')">审核意见</li>
             :class="{ 'li-selected': selectedItem === 'shyj' }" @click="selectItem('shyj')">审核意见</li>
 
 
         </ul>
         </ul>
       </div>
       </div>
-      <div style="margin:20px;height: 60vh;overflow-y: auto;width: 100%;">
-        <OpenCloseBox id="gsxx">
+      <div style="margin:20px;height: 60vh;width: 100%;">
+        <ul class="fixedTop">
+            <li>
+              <div class="title">
+                <div class="img"><img src="@/assets/image/detailsDialog_cph.png" alt=""></div>
+                <p>车牌号:</p>
+              </div>
+              <p>{{ orderInfo.licenseno }}</p>
+            </li>
+            <li>
+              <div class="title">
+                <div class="img"><img src="@/assets/image/detailsDialog_gs.png" alt=""></div>
+                <p>保险公司:</p>
+              </div>
+              <p>{{ orderInfo.inscompany }}</p>
+            </li>
+            <li>
+              <div class="title">
+                <div class="img"><img src="@/assets/image/detailsDialog_ly.png" alt=""></div>
+                <p>业务来源:</p>
+              </div>
+              <p>{{ orderInfo.source }}</p>
+            </li>
+        </ul>
+        <div style="height: 46vh;overflow-y: auto;width: 100%;  position: relative;">
+          <OpenCloseBox id="gsxx">
           <span slot="title">归属信息</span>
           <span slot="title">归属信息</span>
           <div slot="boby">
           <div slot="boby">
             <el-row class="premium-style " :gutter="20" >
             <el-row class="premium-style " :gutter="20" >
@@ -205,35 +229,30 @@
           </div>
           </div>
         </OpenCloseBox>
         </OpenCloseBox>
         <OpenCloseBox id="bfys">
         <OpenCloseBox id="bfys">
-            <span slot="title">保费因素</span>
-            <div slot="boby">
-              <el-row class="premium-style " :gutter="20">
-                <el-col :span="6"><span>评分:</span>{{ orderInfo.extendInfo.score ? orderInfo.extendInfo.score : ''
-                }}</el-col>
-                <el-col :span="6"><span>总赔付率:</span>{{ orderInfo.extendInfo.lossRation }}</el-col>
-                <el-col :span="6"><span>总折扣率:</span>{{ orderInfo.extendInfo.totalAdjustRate }}</el-col>
-              </el-row>
-              <el-row class="premium-style " :gutter="20">
-                <el-col :span="6"><span>交强类型评分:</span>{{ orderInfo.extendInfo.jqScore }}</el-col>
-                <el-col :span="6"><span>交强赔付率:</span>{{ orderInfo.extendInfo.jqLossRation }}</el-col>
-                <el-col :span="6"><span>交强险折扣:</span>{{ orderInfo.extendInfo.jqAdjustRate }}</el-col>
-              </el-row>
-              <el-row class="premium-style " :gutter="20">
-                <el-col :span="6"><span>商业类型评分:</span>{{ orderInfo.extendInfo.syScore }}</el-col>
-                <el-col :span="6"><span>商业赔付率:</span>{{ orderInfo.extendInfo.syLossRation }}</el-col>
-                <el-col :span="6"><span>商业险折扣:</span>{{ orderInfo.extendInfo.syAdjustRate }}</el-col>
-              </el-row>
-              <el-row class="premium-style " :gutter="20">
-                <el-col :span="6"><span>交强续保:</span>{{ orderInfo.extendInfo.jqRenewal }}</el-col>
-                <el-col :span="6"><span>商业续保:</span>{{ orderInfo.extendInfo.syRenewal }}</el-col>
-                <el-col :span="6"><span>交强出险次数:</span>{{ orderInfo.extendInfo.jqClaims }}</el-col>
-                <el-col :span="6"><span>商业出险次数:</span>{{ orderInfo.extendInfo.syClaims }}</el-col>
-              </el-row>
-              <el-row class="premium-style " :gutter="20" v-if="orderInfo.ubiPredictedInfoScore">
-                <el-col :span="6"><span>紫金能源车(鼎然-车辆风险评分):</span>{{ orderInfo.ubiPredictedInfoScore }}</el-col>
-              </el-row>
-            </div>
-          </OpenCloseBox>
+          <span slot="title">保费因素</span>
+          <div slot="boby">
+            <el-row class="premium-style " :gutter="20">
+              <el-col :span="6"><span>评分:</span>{{ orderInfo.extendInfo.score }}</el-col>
+              <el-col :span="6"><span>总赔付率:</span>{{ orderInfo.extendInfo.lossRation }}</el-col>
+              <el-col :span="6"><span>总折扣率:</span>{{ orderInfo.extendInfo.totalAdjustRate }}</el-col>
+              <el-col :span="6"><span>出险信息:</span>{{ orderInfo.extendInfo.accidentInfoStr }}</el-col>
+            </el-row>
+            <el-row class="premium-style " :gutter="20">
+              <el-col :span="6"><span>交强类型评分:</span>{{ orderInfo.extendInfo.jqScore }}</el-col>
+              <el-col :span="6"><span>交强赔付率:</span>{{ orderInfo.extendInfo.jqLossRation }}</el-col>
+              <el-col :span="6"><span>交强险折扣:</span>{{ orderInfo.extendInfo.jqAdjustRate }}</el-col>
+            </el-row>
+            <el-row class="premium-style " :gutter="20">
+              <el-col :span="6"><span>商业类型评分:</span>{{ orderInfo.extendInfo.syScore }}</el-col>
+              <el-col :span="6"><span>商业赔付率:</span>{{ orderInfo.extendInfo.syLossRation }}</el-col>
+              <el-col :span="6"><span>商业险折扣:</span>{{ orderInfo.extendInfo.syAdjustRate }}</el-col>
+            </el-row>
+            <el-row class="premium-style " :gutter="20" v-if="orderInfo.ubiPredictedInfoScore">
+              <el-col :span="6"><span>紫金能源车(鼎然-车辆风险评分):</span>{{ orderInfo.ubiPredictedInfoScore }}</el-col>
+            </el-row>
+          </div>
+        </OpenCloseBox>
+
         <OpenCloseBox id="xzxx" v-if="orderInfo.kindinfo && orderInfo.kindinfo.length > 0">
         <OpenCloseBox id="xzxx" v-if="orderInfo.kindinfo && orderInfo.kindinfo.length > 0">
           <span slot="title">险种信息</span>
           <span slot="title">险种信息</span>
           <div slot="boby">
           <div slot="boby">
@@ -359,9 +378,9 @@
           <span slot="title">保单信息</span>
           <span slot="title">保单信息</span>
           <div slot="boby">
           <div slot="boby">
             <el-row class="premium-style " :gutter="20">
             <el-row class="premium-style " :gutter="20">
-              <!-- <el-col :span="12"><span>交强险投保单号:</span>{{ orderInfo.jqapplyno }}</el-col> -->
-              <el-col :span="12" v-if="orderInfo.jqpolicyno"><span>交强险保单号:</span>{{ orderInfo.jqpolicyno }}</el-col>
-              <!-- <el-col v-if="orderInfo.syapplyno" :span="12"><span>商业险投保单号:</span>{{ orderInfo.syapplyno }}</el-col> -->
+              <el-col :span="12"><span>交强险投保单号:</span>{{ orderInfo.jqapplyno }}</el-col>
+              <el-col :span="12"><span>交强险保单号:</span>{{ orderInfo.jqpolicyno }}</el-col>
+              <el-col v-if="orderInfo.syapplyno" :span="12"><span>商业险投保单号:</span>{{ orderInfo.syapplyno }}</el-col>
               <el-col v-if="orderInfo.sypolicyno" :span="12"><span>商业险保单号:</span>{{ orderInfo.sypolicyno }}</el-col>
               <el-col v-if="orderInfo.sypolicyno" :span="12"><span>商业险保单号:</span>{{ orderInfo.sypolicyno }}</el-col>
               <el-col :span="12" v-for="(oldfileItem, oldfileIndex) in warrantObj.oldfileList" :key="oldfileIndex">
               <el-col :span="12" v-for="(oldfileItem, oldfileIndex) in warrantObj.oldfileList" :key="oldfileIndex">
                 <div>
                 <div>
@@ -509,18 +528,6 @@
                   <span >¥{{ scope.row.deptPremiumsLevelFive }}</span>
                   <span >¥{{ scope.row.deptPremiumsLevelFive }}</span>
                 </template>
                 </template>
               </el-table-column>
               </el-table-column>
-              <el-table-column prop="externalProportion" label="代客录单扣减比例">
-                <template slot-scope="scope" >
-                  <span v-if="scope.row.externalProportion">{{ scope.row.externalProportion }}%</span>
-                  <span v-else>-</span>
-                </template>
-              </el-table-column>
-              <el-table-column prop="externalPremiums" label="代客录单扣减金额">
-                <template slot-scope="scope" >
-                  <span v-if="scope.row.externalPremiums">¥{{ scope.row.externalPremiums }}</span>
-                  <span v-else>-</span>
-                </template>
-              </el-table-column>
               <el-table-column prop="profitMarginPremiums" label="利润差值">
               <el-table-column prop="profitMarginPremiums" label="利润差值">
                 <template slot-scope="scope" >
                 <template slot-scope="scope" >
                   <span >¥{{ scope.row.profitMarginPremiums }}</span>
                   <span >¥{{ scope.row.profitMarginPremiums }}</span>
@@ -529,50 +536,25 @@
             </el-table>
             </el-table>
           </div>
           </div>
         </OpenCloseBox>
         </OpenCloseBox>
-        <OpenCloseBox id="fxmx1" v-if="feeOrderNewVoList.retailFee">
-              <span slot="title">分销明细</span>
+        <OpenCloseBox id="fxmx1" v-if="orderInfo.distributionLevelVoList">
+          <span slot="title">分销明细</span>
           <div slot="boby" style="font-size:12px;width: 100%" class="FeeEnclosure">
           <div slot="boby" style="font-size:12px;width: 100%" class="FeeEnclosure">
-            <el-table :data="feeOrderNewVoList.retailFee" :border="true" width="100%" :stripe="true" size="mini"
+            <el-table :data="orderInfo.distributionLevelVoList" :border="true" width="100%" :stripe="true" size="mini"
               :header-cell-style="{
               :header-cell-style="{
                 background: '#F7F7F9',
                 background: '#F7F7F9',
                 fontWeight: '700',
                 fontWeight: '700',
                 color: '#606266',
                 color: '#606266',
               }">
               }">
-              <el-table-column prop="insuranceType" label="等级"></el-table-column>
+              <el-table-column prop="distributionLevel" label="等级"></el-table-column>
               <el-table-column prop="userName" label="接收人"></el-table-column>
               <el-table-column prop="userName" label="接收人"></el-table-column>
-              <el-table-column prop="jqRetailProportion" label="交强分销比例">
-                <template slot-scope="scope" >
-                  <span>{{ scope.row.jqRetailProportion }}%</span>
-                </template>
-              </el-table-column>
-              <el-table-column prop="jqRetailPremiums" label="交强分销费">
+              <el-table-column prop="distributionRatio" label="比例">
                 <template slot-scope="scope" >
                 <template slot-scope="scope" >
-                  <span>¥{{ scope.row.jqRetailPremiums }}</span>
+                  <span>{{ scope.row.distributionRatio }}%</span>
                 </template>
                 </template>
               </el-table-column>
               </el-table-column>
-              <el-table-column prop="syRetailProportion" label="商业分销比例">
-                <template slot-scope="scope" >
-                  <span>{{ scope.row.syRetailProportion }}%</span>
-                </template>  
-              </el-table-column>
-              <el-table-column prop="syRetailPremiums" label="商业险分销费">
-                <template slot-scope="scope" >
-                  <span>¥{{ scope.row.syRetailPremiums }}</span>
-                </template>
-              </el-table-column>
-              <el-table-column prop="noRetailProportion" label="非车分销比例">
-                <template slot-scope="scope" >
-                  <span>{{ scope.row.noRetailProportion }}%</span>
-                </template>    
-              </el-table-column>
-              <el-table-column prop="noRetailPremiums" label="非车险分销费">
-                <template slot-scope="scope" >
-                  <span>¥{{ scope.row.noRetailPremiums }}</span>
-                </template>  
-              </el-table-column>
               <el-table-column prop="amount" label="金额">
               <el-table-column prop="amount" label="金额">
                 <template slot-scope="scope" >
                 <template slot-scope="scope" >
-                  <span>¥{{ scope.row.totalRetailPremiums }}</span>
+                  <span>¥{{ scope.row.amount }}</span>
                 </template>
                 </template>
               </el-table-column>
               </el-table-column>
             </el-table>
             </el-table>
@@ -586,6 +568,7 @@
             </p>
             </p>
           </div>
           </div>
         </OpenCloseBox>
         </OpenCloseBox>
+        </div>
       </div>
       </div>
     </div>
     </div>
     <span slot="footer" class="dialog-footer">
     <span slot="footer" class="dialog-footer">
@@ -594,18 +577,15 @@
       <el-button size="small" type="primary" style="background-color: #0EC216; border: 1px solid #0EC216"
       <el-button size="small" type="primary" style="background-color: #0EC216; border: 1px solid #0EC216"
         @click="adjustFee"><span v-if="isAuditing">取消调整</span><span v-if="!isAuditing">调整费用</span></el-button>
         @click="adjustFee"><span v-if="isAuditing">取消调整</span><span v-if="!isAuditing">调整费用</span></el-button>
       <el-button size="small" type="primary"
       <el-button size="small" type="primary"
-        style="background-color: #0EC216;border: 1px solid #0EC216"
+        style="background-color: #0EC216;border: 1px solid #0EC216;margin-right: 30px;"
         @click="adusitFUn">审核通过</el-button>
         @click="adusitFUn">审核通过</el-button>
-        <el-button size="small" type="primary" v-if="isrejection"
-        style="background-color: #0EC216;border: 1px solid #0EC216;"
-        @click="rejectionFUn">审核驳回</el-button>
       </template>
       </template>
       <el-button size="small" type="primary" plain @click="dialogVisible = false">关闭</el-button>
       <el-button size="small" type="primary" plain @click="dialogVisible = false">关闭</el-button>
     </span>
     </span>
   </el-dialog>
   </el-dialog>
 </template>
 </template>
 <script>
 <script>
-import OpenCloseBox from './openclose.vue'
+import OpenCloseBox from "./openclose.vue";
 
 
 export default {
 export default {
   name: "detailsDialog",
   name: "detailsDialog",
@@ -615,7 +595,7 @@ export default {
       obj: {},
       obj: {},
       warrantObj: {},
       warrantObj: {},
       selectedItem: null,
       selectedItem: null,
-      isAuditing: false,
+      isAuditing: false
     };
     };
   },
   },
   props: {
   props: {
@@ -623,12 +603,8 @@ export default {
       type: Object,
       type: Object,
       default: {}
       default: {}
     },
     },
-    auditStatus:String,
-    isrejection:{
-      type: Boolean,
-      default: false
-    },
-    feeOrderNewVoList: Object,
+    auditStatus: String,
+    feeOrderNewVoList: Object
   },
   },
   components: { OpenCloseBox },
   components: { OpenCloseBox },
   methods: {
   methods: {
@@ -636,25 +612,29 @@ export default {
       this.isAuditing = !this.isAuditing;
       this.isAuditing = !this.isAuditing;
     },
     },
     adusitFUn() {
     adusitFUn() {
-      this.$emit('adusitFUn')
-    },
-    rejectionFUn() {
-      this.$emit('rejectionFUn')
+      this.$emit("adusitFUn");
     },
     },
     updatedCost() {
     updatedCost() {
       let newCost = {
       let newCost = {
-        deptManagerFee : this.feeOrderNewVoList.deptManagerFee,
-        feeOrder : this.feeOrderNewVoList.list,
-        retailFee: this.feeOrderNewVoList.retailFee
-      }
-      this.$emit('updatedCost',newCost)
-      this.isAuditing=false;
+        deptManagerFee: this.feeOrderNewVoList.deptManagerFee,
+        feeOrder: this.feeOrderNewVoList.list
+      };
+      this.$emit("updatedCost", newCost);
+      this.isAuditing = false;
     },
     },
     feeOrderNewVomergeRows({ row, column, rowIndex, columnIndex }) {
     feeOrderNewVomergeRows({ row, column, rowIndex, columnIndex }) {
       if (columnIndex === 0) {
       if (columnIndex === 0) {
-        if (rowIndex === 0 || this.feeOrderNewVoList.list[rowIndex].type !== this.feeOrderNewVoList.list[rowIndex - 1].type) {
+        if (
+          rowIndex === 0 ||
+          this.feeOrderNewVoList.list[rowIndex].type !==
+            this.feeOrderNewVoList.list[rowIndex - 1].type
+        ) {
           let rowSpan = 1;
           let rowSpan = 1;
-          for (let i = rowIndex + 1; i < this.feeOrderNewVoList.list.length; i++) {
+          for (
+            let i = rowIndex + 1;
+            i < this.feeOrderNewVoList.list.length;
+            i++
+          ) {
             if (this.feeOrderNewVoList.list[i].type === row.type) {
             if (this.feeOrderNewVoList.list[i].type === row.type) {
               rowSpan++;
               rowSpan++;
             } else {
             } else {
@@ -672,16 +652,15 @@ export default {
       this.selectedItem = item;
       this.selectedItem = item;
       document.getElementById(item).scrollIntoView({ behavior: "smooth" });
       document.getElementById(item).scrollIntoView({ behavior: "smooth" });
     },
     },
-    setBackupVisible: function (backupVisible) {
-      this.selectedItem = 'gsxx'
-      this.dialogVisible = backupVisible
+    setBackupVisible: function(backupVisible) {
+      this.selectedItem = "gsxx";
+      this.dialogVisible = backupVisible;
     },
     },
     imageFun(param) {
     imageFun(param) {
-      this.obj = param
+      this.obj = param;
     },
     },
     warrantyFun(param) {
     warrantyFun(param) {
-      this.warrantObj = param
-
+      this.warrantObj = param;
     },
     },
     saveAs(blob, filename) {
     saveAs(blob, filename) {
       var link = document.createElement("a");
       var link = document.createElement("a");
@@ -692,33 +671,17 @@ export default {
     },
     },
     //预览文件
     //预览文件
     viewfile(index) {
     viewfile(index) {
-      if(this.orderInfo.isExternal==1){
-        let url = process.env.BASE_URL +index.fileurl; // 3.创建一个临时的url指向blob对象
-      fetch(url)
-          .then((response) => response.blob())
-          .then((blob) => {
-            this.saveAs(
-              blob,
-              index.fileurl.substring(name + 1, index.fileurl.length)
-            );
-          })
-          .catch((error) => { });
-
-      }
-      else{
-        let name = index.fileurl.lastIndexOf("/");
-        fetch(index.fileurl)
-          .then((response) => response.blob())
-          .then((blob) => {
-            this.saveAs(
-              blob,
-              index.fileurl.substring(name + 1, index.fileurl.length)
-            );
-          })
-          .catch((error) => { });
-        }
-
-    },
+      let name = index.fileurl.lastIndexOf("/");
+      fetch(index.fileurl)
+        .then(response => response.blob())
+        .then(blob => {
+          this.saveAs(
+            blob,
+            index.fileurl.substring(name + 1, index.fileurl.length)
+          );
+        })
+        .catch(error => {});
+    }
   }
   }
 };
 };
 </script>
 </script>
@@ -747,12 +710,62 @@ export default {
     color: var(--themeColor);
     color: var(--themeColor);
     background-color: rgba(212, 36, 38, 0.06);
     background-color: rgba(212, 36, 38, 0.06);
   }
   }
+  .fixedTop {
+    width: 100%;
+    height: auto;
+    // position: absolute;
+    // top: 10px;
+    background: linear-gradient(#fbe8e8, #fff 50%);
+    border-radius: 5px;
+    margin-bottom: 20px;
+    list-style-type: none;
+    padding: 20px;
+    box-sizing: border-box;
+    display: flex;
+    justify-content: space-between;
+
+    li {
+      width: auto;
+      height: auto;
+
+      .title {
+        width: 100%;
+        height: auto;
+        display: flex;
+        justify-content: flex-start;
+
+        p {
+          font-size: 16px;
+          color: #666;
+          margin: 0 0 0 10px;
+        }
+
+        .img {
+          width: 24px;
+          height: 24px;
+
+          img {
+            width: 100%;
+            height: 100%;
+          }
+        }
+
+        margin-bottom: 5px;
+      }
+
+      p {
+        margin: 10px 0 0 0;
+        font-size: 20px;
+        color: #333;
+      }
+    }
+  }
 }
 }
 
 
 .icon-img {
 .icon-img {
   width: 30px;
   width: 30px;
   height: 30px;
   height: 30px;
-  vertical-align: bottom
+  vertical-align: bottom;
 }
 }
 
 
 .details-title {
 .details-title {
@@ -764,7 +777,7 @@ export default {
   font-size: 0;
   font-size: 0;
 
 
   b {
   b {
-    background: #F7F7F9;
+    background: #f7f7f9;
     font-size: 14px;
     font-size: 14px;
   }
   }
 
 
@@ -775,7 +788,7 @@ export default {
     width: 25%;
     width: 25%;
     text-align: center;
     text-align: center;
     line-height: 40px;
     line-height: 40px;
-    border: 1px solid #EEF1F6;
+    border: 1px solid #eef1f6;
     font-size: 14px;
     font-size: 14px;
   }
   }
 }
 }
@@ -786,7 +799,7 @@ export default {
   }
   }
 
 
   span {
   span {
-    color: #868B98;
+    color: #868b98;
   }
   }
 }
 }
 
 
@@ -806,7 +819,6 @@ export default {
 }
 }
 
 
 .tax-arrears {
 .tax-arrears {
-
   b,
   b,
   span {
   span {
     width: 25%;
     width: 25%;
@@ -814,7 +826,6 @@ export default {
 }
 }
 
 
 .kind-arrears {
 .kind-arrears {
-
   b,
   b,
   span {
   span {
     width: 33.33%;
     width: 33.33%;
@@ -827,8 +838,8 @@ export default {
   height: 120px;
   height: 120px;
   // box-shadow: #ddd 0px 0px 5px;
   // box-shadow: #ddd 0px 0px 5px;
   margin-right: 86px;
   margin-right: 86px;
-  border: 1px dashed #CED4DA;
-  background: #F7F7F9;
+  border: 1px dashed #ced4da;
+  background: #f7f7f9;
 }
 }
 
 
 .FeeEnclosure {
 .FeeEnclosure {
@@ -847,7 +858,7 @@ export default {
 
 
 /deep/ .el-dialog__body {
 /deep/ .el-dialog__body {
   padding-top: 0;
   padding-top: 0;
-  border-bottom: 1px solid #EEF1F6;
+  border-bottom: 1px solid #eef1f6;
   background-color: rgb(242, 242, 242);
   background-color: rgb(242, 242, 242);
   padding: 0;
   padding: 0;
 }
 }

Разница между файлами не показана из-за своего большого размера
+ 768 - 1022
src/views/FinancialManagement/CarInsurance/Verifytasks/Verifyuntasks.vue


+ 151 - 208
src/views/Task/mixin.js

@@ -118,47 +118,27 @@ export const mixin = { // 导出混入对象
           type: 'date',
           type: 'date',
           list: 'attachList'
           list: 'attachList'
         },
         },
+        {
+          name: 'managementSource',
+          label: '机构来源',
+          type: 'select',
+          options: []
+        },
       ],
       ],
       loading: false,
       loading: false,
       queryFrom: {},
       queryFrom: {},
       pageResult: {},
       pageResult: {},
       columns: [
       columns: [
         { prop: "subOrderId", label: "订单号", minWidth: 180 },
         { prop: "subOrderId", label: "订单号", minWidth: 180 },
-        { prop: "userid", label: "业务员工号", minWidth: 180 },
-        { prop: "username", label: "业务员姓名", minWidth: 180 },
-        // { prop: "userid", label: "业务员", minWidth: 160, formatter: this.useridFormatter },
-        { prop: "managementSource", label: "业务来源", minWidth: 160, formatter: this.managementSourceFormatter },
-        // { prop: "insCompany", label: "保险公司", minWidth: 120 },
+        { prop: "userid", label: "业务员", minWidth: 160, formatter: this.useridFormatter },
+        { prop: "managementSource", label: "机构来源", minWidth: 160, formatter: this.managementSourceFormatter },
+        { prop: "insCompany", label: "保险公司", minWidth: 120 },
         { prop: "partnerCompaniesName", label: "合作公司", minWidth: 120 },
         { prop: "partnerCompaniesName", label: "合作公司", minWidth: 120 },
-        // { prop: "agreementName", label: "协议", minWidth: 160 },
+        { prop: "agreementName", label: "协议", minWidth: 160 },
         { prop: "licenseno", label: "车牌号", minWidth: 160 },
         { prop: "licenseno", label: "车牌号", minWidth: 160 },
         { prop: "insuredname", label: "投保人姓名", minWidth: 120 },
         { prop: "insuredname", label: "投保人姓名", minWidth: 120 },
         { prop: "product", label: "投保险种", minWidth: 100 },
         { prop: "product", label: "投保险种", minWidth: 100 },
-        { prop: "createtime", label: "录单日期", minWidth: 160},
-      ],
-      columns1: [
-        { prop: "subOrderId", label: "订单号", minWidth: 180 },
-        { prop: "userid", label: "业务员工号", minWidth: 180 },
-        { prop: "username", label: "业务员姓名", minWidth: 180 },
-        // { prop: "userid", label: "业务员", minWidth: 160, formatter: this.useridFormatter },
-        { prop: "managementSource", label: "业务来源", minWidth: 160, formatter: this.managementSourceFormatter },
-        // { prop: "insCompany", label: "保险公司", minWidth: 120 },
-        { prop: "partnerCompaniesName", label: "已承保公司", minWidth: 120 },
-        { prop: "licenseno", label: "车牌号", minWidth: 160 },
-        { prop: "jqpremium", label: "交强险保费", minWidth: 160 },
-        { prop: "sypremium", label: "商业险保费", minWidth: 160 },
-
-
-        // { prop: "agreementName", label: "协议", minWidth: 160 },
-        { prop: "taxamount", label: "车船税", minWidth: 160 },
-        { prop: "jypremium", label: "驾意险保费", minWidth: 160 },
-
-      
-        
-        // { prop: "isExternal", label: "外部订单", formatter: this.isExternalFormatter},
-        { prop: "insuredname", label: "投保人姓名", minWidth: 120 },
-        { prop: "product", label: "投保险种", minWidth: 100 },
-        { prop: "createtime", label: "录单日期", minWidth: 160},
+        { prop: "createtime", label: "录单日期", minWidth: 160 },
       ],
       ],
       statusoptions: "",
       statusoptions: "",
       dialogVisible: false,
       dialogVisible: false,
@@ -177,24 +157,24 @@ export const mixin = { // 导出混入对象
       quoteno: "",
       quoteno: "",
       oldfileList: [],
       oldfileList: [],
       orderInfo: {},
       orderInfo: {},
-      forwardingRecordsdialogVisible:false,
-      gridData:[],
+      forwardingRecordsdialogVisible: false,
+      gridData: [],
       natureOfVehicleUseoptions: [],
       natureOfVehicleUseoptions: [],
-      businessVehicleUseoptions:[],
-      energyTypeoptions:[],
-      vehicleTypeoptions:[],
-      trafficManagementVehicleTypeoptions:[],
+      businessVehicleUseoptions: [],
+      energyTypeoptions: [],
+      vehicleTypeoptions: [],
+      trafficManagementVehicleTypeoptions: [],
       outOfBusinessVehicleUseoptions: [],
       outOfBusinessVehicleUseoptions: [],
-      isAuditing:{
-        adjustFeeFlag:false,
+      isAuditing: {
+        adjustFeeFlag: false,
       },
       },
-      feeOrderNewVoList:{},
-      dialogVisibleOrder:false,
-      formDataOrder:{
-        carinfo:{},
-        ownerinfo:{},
-        applyinfo:{},
-        insureinfo:{},
+      feeOrderNewVoList: {},
+      dialogVisibleOrder: false,
+      formDataOrder: {
+        carinfo: {},
+        ownerinfo: {},
+        applyinfo: {},
+        insureinfo: {},
       },
       },
       formvehicleList: [
       formvehicleList: [
         { prop: "licenseNo", label: "车牌号" },
         { prop: "licenseNo", label: "车牌号" },
@@ -211,7 +191,7 @@ export const mixin = { // 导出混入对象
       ],
       ],
       formownersList: [
       formownersList: [
         { prop: "name", label: "车主姓名" },
         { prop: "name", label: "车主姓名" },
-        { prop: "identifyType", label: "证件类型" ,type:'select'},
+        { prop: "identifyType", label: "证件类型", type: 'select' },
         { prop: "identifyNumber", label: "身份证号" },
         { prop: "identifyNumber", label: "身份证号" },
         { prop: "mobile", label: "手机号" },
         { prop: "mobile", label: "手机号" },
         { prop: "email", label: "电子邮箱" },
         { prop: "email", label: "电子邮箱" },
@@ -219,7 +199,7 @@ export const mixin = { // 导出混入对象
       ],
       ],
       formPolicyholderList: [
       formPolicyholderList: [
         { prop: "name", label: "投保人姓名" },
         { prop: "name", label: "投保人姓名" },
-        { prop: "identifyType", label: "证件类型" ,type:'select'},
+        { prop: "identifyType", label: "证件类型", type: 'select' },
         { prop: "identifyNumber", label: "身份证号" },
         { prop: "identifyNumber", label: "身份证号" },
         { prop: "mobile", label: "手机号" },
         { prop: "mobile", label: "手机号" },
         { prop: "email", label: "电子邮箱" },
         { prop: "email", label: "电子邮箱" },
@@ -227,7 +207,7 @@ export const mixin = { // 导出混入对象
       ],
       ],
       forminsureinfoList: [
       forminsureinfoList: [
         { prop: "name", label: "被保人姓名" },
         { prop: "name", label: "被保人姓名" },
-        { prop: "identifyType", label: "证件类型" ,type:'select'},
+        { prop: "identifyType", label: "证件类型", type: 'select' },
         { prop: "identifyNumber", label: "身份证号" },
         { prop: "identifyNumber", label: "身份证号" },
         { prop: "mobile", label: "手机号" },
         { prop: "mobile", label: "手机号" },
         { prop: "email", label: "电子邮箱" },
         { prop: "email", label: "电子邮箱" },
@@ -238,13 +218,13 @@ export const mixin = { // 导出混入对象
           return time.getTime() > Date.now();
           return time.getTime() > Date.now();
         }
         }
       },
       },
-      whetheroptions:[
+      whetheroptions: [
         {
         {
-          label:'是',
-          value:false
+          label: '是',
+          value: false
         }, {
         }, {
-          label:'否',
-          value:true
+          label: '否',
+          value: true
         },
         },
       ]
       ]
     }
     }
@@ -264,8 +244,8 @@ export const mixin = { // 导出混入对象
     }
     }
   },
   },
   created() {
   created() {
-    this.pageRequest.quoteStartDateStr=this.currentDate;
-    this.pageRequest.quoteEndDateStr=this.currentDate;
+    this.pageRequest.quoteStartDateStr = this.currentDate;
+    this.pageRequest.quoteEndDateStr = this.currentDate;
     this.$api.letter.gainTopList().then(res => {
     this.$api.letter.gainTopList().then(res => {
       this.companyList = res.data;
       this.companyList = res.data;
     });
     });
@@ -276,6 +256,7 @@ export const mixin = { // 导出混入对象
     this.CompanyList();
     this.CompanyList();
     this.agrmentlist();
     this.agrmentlist();
     this.getDicType("productsType"); //车船税类型
     this.getDicType("productsType"); //车船税类型
+    this.getManagementSource('business_source')//来源
     this.getDicTypePro("natureOfVehicleUse"); //车辆使用性质
     this.getDicTypePro("natureOfVehicleUse"); //车辆使用性质
     this.getDicTypePro("vehicleType"); //车辆种类
     this.getDicTypePro("vehicleType"); //车辆种类
     this.getDicTypePro("trafficManagementVehicleType"); //车辆类型
     this.getDicTypePro("trafficManagementVehicleType"); //车辆类型
@@ -284,25 +265,25 @@ export const mixin = { // 导出混入对象
     this.getDicTypePro("outOfBusinessVehicleUse"); //(车辆用途)非营业
     this.getDicTypePro("outOfBusinessVehicleUse"); //(车辆用途)非营业
   },
   },
   methods: {
   methods: {
-    submitOrder(){
-      let data={
-        ownerInfo:this.formDataOrder.ownerinfo,
-        carInfo:this.formDataOrder.carinfo,
-        applyInfo:this.formDataOrder.applyinfo,
-        insureInfo:this.formDataOrder.insureinfo,
-        subOrderNo:this.formDataOrder.id
+    submitOrder() {
+      let data = {
+        ownerInfo: this.formDataOrder.ownerinfo,
+        carInfo: this.formDataOrder.carinfo,
+        applyInfo: this.formDataOrder.applyinfo,
+        insureInfo: this.formDataOrder.insureinfo,
+        subOrderNo: this.formDataOrder.id
       }
       }
       this.$api.task.batchOrder(data).then(res => {
       this.$api.task.batchOrder(data).then(res => {
         if (res.code == 200) {
         if (res.code == 200) {
-      this.findPage();
-      this.dialogVisibleOrder=false
+          this.findPage();
+          this.dialogVisibleOrder = false
 
 
           this.$message({
           this.$message({
-            message: res.msg ||'操作成功',
+            message: res.msg || '操作成功',
             type: 'success'
             type: 'success'
           });
           });
         }
         }
-        else{
+        else {
           this.$message.error(res.msg);
           this.$message.error(res.msg);
         }
         }
       });
       });
@@ -317,8 +298,8 @@ export const mixin = { // 导出混入对象
         this.formDataOrder.carinfo.vehicleUse = "";
         this.formDataOrder.carinfo.vehicleUse = "";
       }
       }
     },
     },
-    handleCloseOrder(){
-      this.dialogVisibleOrder=false
+    handleCloseOrder() {
+      this.dialogVisibleOrder = false
     },
     },
     getDicTypePro(type) {
     getDicTypePro(type) {
       this.$api.insCompany.dicType(type).then(res => {
       this.$api.insCompany.dicType(type).then(res => {
@@ -327,23 +308,23 @@ export const mixin = { // 导出混入对象
         }
         }
       });
       });
     },
     },
-    capTypedictTag(val,option) {
-      if(option.find(item =>  item.dictValue == val)){
-        return option.find(item =>  item.dictValue == val).dictTag;
-        }
-      else{
+    capTypedictTag(val, option) {
+      if (option.find(item => item.dictValue == val)) {
+        return option.find(item => item.dictValue == val).dictTag;
+      }
+      else {
         return '-'
         return '-'
       }
       }
     },
     },
-    forwardingRecords(row){
-      let id=row.row.subOrderId;
+    forwardingRecords(row) {
+      let id = row.row.subOrderId;
       this.forwardingRecordsQuery(id);
       this.forwardingRecordsQuery(id);
     },
     },
     forwardingRecordsQuery(id) {
     forwardingRecordsQuery(id) {
       this.$api.letter.findForwardingListBySubOrderId(id).then((res) => {
       this.$api.letter.findForwardingListBySubOrderId(id).then((res) => {
         if (res.code == '200' && res.data.length) {
         if (res.code == '200' && res.data.length) {
-          this.gridData=res.data;
-          this.forwardingRecordsdialogVisible=true;
+          this.gridData = res.data;
+          this.forwardingRecordsdialogVisible = true;
         } else {
         } else {
           this.$message({
           this.$message({
             type: 'error',
             type: 'error',
@@ -393,36 +374,37 @@ export const mixin = { // 导出混入对象
               return val;
               return val;
             })
             })
             this.feeOrderNewVoList = {
             this.feeOrderNewVoList = {
-              list: [...data1.entranceFee,...data1.exportFee],
+              list: [...data1.entranceFee, ...data1.exportFee],
             }
             }
           }
           }
-          if(data.carinfo.carnature &&  data.carinfo.carnature == '02' || data.carinfo.carnature == '非营业'){
-            data.carinfo.vehicleUse=this.capTypedictTag(data.carinfo.vehicleUse,this.outOfBusinessVehicleUseoptions)
-          }else{
-            data.carinfo.vehicleUse=this.capTypedictTag(data.carinfo.vehicleUse,this.businessVehicleUseoptions)
+          if (data.carinfo.carnature && data.carinfo.carnature == '02' || data.carinfo.carnature == '非营业') {
+            data.carinfo.vehicleUse = this.capTypedictTag(data.carinfo.vehicleUse, this.outOfBusinessVehicleUseoptions)
+          } else {
+            data.carinfo.vehicleUse = this.capTypedictTag(data.carinfo.vehicleUse, this.businessVehicleUseoptions)
           }
           }
-          data.carinfo.carnature = this.capTypedictTag(data.carinfo.carnature,this.natureOfVehicleUseoptions);
-          data.carinfo.cartype=data.carinfo.cartype?this.capTypedictTag(data.carinfo.cartype,this.trafficManagementVehicleTypeoptions):''
-          data.carinfo.cimodelclass=data.carinfo.cimodelclass?this.capTypedictTag(data.carinfo.cimodelclass,this.vehicleTypeoptions):''
-          data.carinfo.energyType=data.carinfo.energyType?this.capTypedictTag(data.carinfo.energyType,this.energyTypeoptions):''
+          data.carinfo.carnature = this.capTypedictTag(data.carinfo.carnature, this.natureOfVehicleUseoptions);
+          data.carinfo.cartype = data.carinfo.cartype ? this.capTypedictTag(data.carinfo.cartype, this.trafficManagementVehicleTypeoptions) : ''
+          data.carinfo.cimodelclass = data.carinfo.cimodelclass ? this.capTypedictTag(data.carinfo.cimodelclass, this.vehicleTypeoptions) : ''
+          data.carinfo.energyType = data.carinfo.energyType ? this.capTypedictTag(data.carinfo.energyType, this.energyTypeoptions) : ''
+          data.source = row.row.managementSource
           this.queryOrders = data;
           this.queryOrders = data;
         }
         }
-        else{
+        else {
           this.$message.error(res.msg)
           this.$message.error(res.msg)
         }
         }
       });
       });
       this.$refs.detailsDialog.setBackupVisible(true);
       this.$refs.detailsDialog.setBackupVisible(true);
     },
     },
-    batchOrder(row){
-      this.dialogVisibleOrder=true
+    batchOrder(row) {
+      this.dialogVisibleOrder = true
       let params = {
       let params = {
         companyId: row.row.subOrderId
         companyId: row.row.subOrderId
       };
       };
       this.$api.letter.getTaskByCompanyId(params).then(res => {
       this.$api.letter.getTaskByCompanyId(params).then(res => {
-        if(res.code==200){
+        if (res.code == 200) {
           this.formDataOrder = res.data;
           this.formDataOrder = res.data;
         }
         }
-        else{
+        else {
           this.$message.error(res.msg)
           this.$message.error(res.msg)
         }
         }
       })
       })
@@ -472,50 +454,22 @@ export const mixin = { // 导出混入对象
         }
         }
       });
       });
     },
     },
+    getManagementSource(type) {
+      this.$api.dict.findByLableName(type).then(res => {
+        if (res.code == 200) {
+          for (let i = 0; i < res.data.length; i++) {
+            res.data[i].name = res.data[i].label
+            res.data[i].id = Number(res.data[i].value)
+          }
+          this.selectDataMatching(this.retrievalFields, 'managementSource', res.data);
+        }
+      });
+    },
     cpolicy() {
     cpolicy() {
       if (this.orderInfo.orderstatus == "3") {
       if (this.orderInfo.orderstatus == "3") {
         this.oldfileList = [];
         this.oldfileList = [];
         let businessList = []
         let businessList = []
         let accidentList = []
         let accidentList = []
-        if(this.orderInfo.isExternal==1){
-          this.$api.letter
-          .getPolicyPrintexternalOrder(this.orderInfo.id).then(res1=>{
-            if(res1.code==200){
-              if (res1.data.jqPolicy) {
-                  this.oldfileList.push({
-                    fileTitle: "交强电子保单",
-                    filename: this.orderInfo.jqpolicyno,
-                    fileurl: res1.data.jqPolicy
-                  });
-                }
-                if (res1.data.jqSign) {
-                  this.oldfileList.push({
-                    fileTitle: "交强电子标志",
-                    filename: this.orderInfo.jqpolicyno,
-                    fileurl: res1.data.jqSign
-                  });
-                  }
-                if (res1.data.jqSign) {
-                  accidentList.push({
-                    fileTitle: "商业电子保单",
-                    filename: this.orderInfo.sypolicyno,
-                    fileurl: res1.data.jqSign
-                  });
-                }
-                if (res1.data.noPolicy) {
-                  accidentList.push({
-                    fileTitle: "驾意险保单",
-                    filename: "驾意险保单",
-                    fileurl: res1.data.noPolicy
-                  });
-                }
-              }
-            else{
-              this.$message.error(res1.msg)
-            }
-          })
-        }
-        else{
         switch (this.orderInfo.inscompany) {
         switch (this.orderInfo.inscompany) {
           case "永安财险":
           case "永安财险":
             if (this.orderInfo.jqpolicyno) {
             if (this.orderInfo.jqpolicyno) {
@@ -1123,7 +1077,6 @@ export const mixin = { // 导出混入对象
             break;
             break;
           default:
           default:
         }
         }
-      }
         let obj = {
         let obj = {
           oldfileList: this.oldfileList,
           oldfileList: this.oldfileList,
           businessList,
           businessList,
@@ -1219,17 +1172,7 @@ export const mixin = { // 导出混入对象
         default:
         default:
       }
       }
     },
     },
-    isExternalFormatter(row, column) {
-      let isExternal = row.isExternal;
-      switch (isExternal) {
-        case 1:
-          return  '是'
-        case 0:
-          return  '否'
-        default:
-      }
-    },
-    trajectory(row){
+    trajectory(row) {
       this.$api.letter.queryBySuborder(row.subOrderId).then((res) => {
       this.$api.letter.queryBySuborder(row.subOrderId).then((res) => {
         if (res.code == 200 && res.data.length > 0) {
         if (res.code == 200 && res.data.length > 0) {
           this.ddgjdialogVisible = true;
           this.ddgjdialogVisible = true;
@@ -1251,13 +1194,13 @@ export const mixin = { // 导出混入对象
           });
           });
           this.findPage();
           this.findPage();
         }
         }
-        else{
+        else {
           this.$message.error(res.msg)
           this.$message.error(res.msg)
         }
         }
       });
       });
     },
     },
-     // 撤销二维码
-     revokeCode(row) {
+    // 撤销二维码
+    revokeCode(row) {
       this.$api.letter.getRevokeQrCode(row.subOrderId).then(res => {
       this.$api.letter.getRevokeQrCode(row.subOrderId).then(res => {
         if (res.code == 200) {
         if (res.code == 200) {
           this.$message({
           this.$message({
@@ -1269,25 +1212,46 @@ export const mixin = { // 导出混入对象
       });
       });
     },
     },
     //查询缴费状态
     //查询缴费状态
- 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 => {
+    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) {
           if (res.code == 200) {
             this.$message({
             this.$message({
               message: res.msg ? res.msg : "已刷新状态",
               message: res.msg ? res.msg : "已刷新状态",
@@ -1303,52 +1267,31 @@ export const mixin = { // 导出混入对象
               duration: 7000
               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
+      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
+            });
+          }
         });
         });
       }
       }
-    });
-  }
-},
+    },
   }
   }
 }
 }

Некоторые файлы не были показаны из-за большого количества измененных файлов