Bläddra i källkod

Merge remote-tracking branch 'origin/master'

sunyize 2 år sedan
förälder
incheckning
0412daf14a

BIN
public/logo.png


BIN
public/static/specialExamination.xlsx


BIN
src/assets/logo.png


+ 0 - 172
src/assets/logo.svg

@@ -1,172 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="293px" height="293px" viewBox="0 0 293 293" enable-background="new 0 0 293 293" xml:space="preserve">  <image id="image0" width="293" height="293" x="0" y="0"
-    href="data:image/png;base64,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
-OjAwP26CAAAAAABJRU5ErkJggg==" />
-</svg>

+ 1 - 2
src/mixins/JeecgListMixin.js

@@ -88,9 +88,8 @@ export const JeecgListMixin = {
       }
       if(!params){
         params = this.getQueryParams();//查询条件
-        params.column = "updateTime"
+        params.column = "updateTime,createTime"
         params.order = "desc"
-
       }
       this.loading = true;
       getAction(this.url.list, params).then((res) => {

+ 89 - 81
src/views/lotCheck/TaskUploadData.vue

@@ -55,8 +55,9 @@
           <ul>
             <li>1)测试卡申请单是否加盖公章</li>
             <li>2)测试卡申请单中经办人、责任人身份证是否一致</li>
-            <li style="color: red" v-if="lotNote.testCardApplicationNote != null && lotNote.testCardApplicationNote.length > 0">
-              稽核结果备注:{{ lotNote.testCardApplicationNote}}
+            <li style="color: red"
+                v-if="lotNote.testCardApplicationNote != null && lotNote.testCardApplicationNote.length > 0">
+              稽核结果备注:{{ lotNote.testCardApplicationNote }}
             </li>
           </ul>
         </div>
@@ -83,7 +84,8 @@
                 </iframe>
                 <img style="width: 70%;height: 70%;border: 1px solid;"
                      v-if="!item.urlBase" :src="noDataPng" border="1">
-                <a-button v-if="item.urlBase && lotState.testCardApplicationState != 1" style="display: block;margin-top: 10px;border-color: red;color: red"
+                <a-button v-if="item.urlBase && lotState.testCardApplicationState != 1"
+                          style="display: block;margin-top: 10px;border-color: red;color: red"
                           danger @click="removeFile(item)">移除
                 </a-button>
 
@@ -182,7 +184,7 @@
             <li>8)是否无低级错误,如缺少签字,日期等</li>
             <li>9)合同签署是否是法人,是否有授权书</li>
             <li style="color: red" v-if="lotNote.contractNote != null && lotNote.contractNote.length > 0">
-              稽核结果备注:{{ lotNote.contractNote}}
+              稽核结果备注:{{ lotNote.contractNote }}
             </li>
           </ul>
         </div>
@@ -209,7 +211,8 @@
                 </iframe>
                 <img style="width: 70%;height: 70%;border: 1px solid;"
                      v-if="!item.urlBase" :src="noDataPng" border="1">
-                <a-button v-if="item.urlBase && lotState.contractState != 1" style="display: block;margin-top: 10px;border-color: red;color: red"
+                <a-button v-if="item.urlBase && lotState.contractState != 1"
+                          style="display: block;margin-top: 10px;border-color: red;color: red"
                           danger @click="removeFile(item)">移除
                 </a-button>
 
@@ -301,7 +304,7 @@
             <li>1)经办人和责任人授权书齐全并且加盖公章</li>
             <li>2)经办人和责任人与授权书一致</li>
             <li style="color: red" v-if="lotNote.empowerNote != null && lotNote.empowerNote.length > 0">
-              稽核结果备注:{{ lotNote.empowerNote}}
+              稽核结果备注:{{ lotNote.empowerNote }}
             </li>
           </ul>
         </div>
@@ -330,7 +333,8 @@
                 </iframe>
                 <img style="width: 70%;height: 70%;border: 1px solid;"
                      v-if="!item.urlBase" :src="noDataPng" border="1">
-                <a-button v-if="item.urlBase && lotState.empowerState != 1" style="display: block;margin-top: 10px;border-color: red;color: red"
+                <a-button v-if="item.urlBase && lotState.empowerState != 1"
+                          style="display: block;margin-top: 10px;border-color: red;color: red"
                           danger @click="removeFile(item)">移除
                 </a-button>
               </swiper-slide>
@@ -422,7 +426,7 @@
           <ul>
             <li>1)经办人和责任人身份证复印件加盖公章</li>
             <li style="color: red" v-if="lotNote.idCardNote != null && lotNote.idCardNote.length > 0">
-              稽核结果备注:{{ lotNote.idCardNote}}
+              稽核结果备注:{{ lotNote.idCardNote }}
             </li>
           </ul>
         </div>
@@ -451,7 +455,8 @@
                 </iframe>
                 <img style="width: 70%;height: 70%;border: 1px solid;"
                      v-if="!item.urlBase" :src="noDataPng" border="1">
-                <a-button v-if="item.urlBase && lotState.idCardState != 1" style="display: block;margin-top: 10px;border-color: red;color: red"
+                <a-button v-if="item.urlBase && lotState.idCardState != 1"
+                          style="display: block;margin-top: 10px;border-color: red;color: red"
                           danger @click="removeFile(item)">移除
                 </a-button>
               </swiper-slide>
@@ -544,7 +549,7 @@
           <ul>
             <li>1)客户证件复印件加盖公章</li>
             <li style="color: red" v-if="lotNote.customerIdNote != null && lotNote.customerIdNote.length > 0">
-              稽核结果备注:{{ lotNote.customerIdNote}}
+              稽核结果备注:{{ lotNote.customerIdNote }}
             </li>
           </ul>
         </div>
@@ -573,7 +578,8 @@
                 </iframe>
                 <img style="width: 70%;height: 70%;border: 1px solid;"
                      v-if="!item.urlBase" :src="noDataPng" border="1">
-                <a-button v-if="item.urlBase && lotState.customerIdState != 1" style="display: block;margin-top: 10px;border-color: red;color: red"
+                <a-button v-if="item.urlBase && lotState.customerIdState != 1"
+                          style="display: block;margin-top: 10px;border-color: red;color: red"
                           danger @click="removeFile(item)">移除
                 </a-button>
               </swiper-slide>
@@ -674,7 +680,7 @@
             <li>8)现场考察部分截图是否清晰</li>
             <li>9)合同、入网评估表、系统受理是否一致</li>
             <li style="color: red" v-if="lotNote.riskNote != null && lotNote.riskNote.length > 0">
-              稽核结果备注:{{ lotNote.riskNote}}
+              稽核结果备注:{{ lotNote.riskNote }}
             </li>
           </ul>
         </div>
@@ -700,7 +706,8 @@
                 </iframe>
                 <img style="width: 70%;height: 70%;border: 1px solid;"
                      v-if="!item.urlBase" :src="noDataPng" border="1">
-                <a-button v-if="item.urlBase && lotState.riskState != 1" style="display: block;margin-top: 10px;border-color: red;color: red"
+                <a-button v-if="item.urlBase && lotState.riskState != 1"
+                          style="display: block;margin-top: 10px;border-color: red;color: red"
                           danger @click="removeFile(item)">移除
                 </a-button>
               </swiper-slide>
@@ -797,7 +804,7 @@
             <li>4)物联网开卡时提供公免卡审批表,开卡张数和公免额度与审批表一致。物联网公免卡的审批人员和流程同大网公免卡一致。</li>
             <li>5)累计限免有效期原则上不得大于15个月</li>
             <li style="color: red" v-if="lotNote.priceApprovalNote != null && lotNote.priceApprovalNote.length > 0">
-              稽核结果备注:{{ lotNote.priceApprovalNote}}
+              稽核结果备注:{{ lotNote.priceApprovalNote }}
             </li>
           </ul>
         </div>
@@ -823,7 +830,8 @@
                 </iframe>
                 <img style="width: 70%;height: 70%;border: 1px solid;"
                      v-if="!item.urlBase" :src="noDataPng" border="1">
-                <a-button v-if="item.urlBase && lotState.priceApprovalState != 1" style="display: block;margin-top: 10px;border-color: red;color: red"
+                <a-button v-if="item.urlBase && lotState.priceApprovalState != 1"
+                          style="display: block;margin-top: 10px;border-color: red;color: red"
                           danger @click="removeFile(item)">移除
                 </a-button>
 
@@ -916,7 +924,7 @@
           <ul>
             <li>1)如有其他材料请进行上传</li>
             <li style="color: red" v-if="lotNote.commitmentNote != null && lotNote.commitmentNote.length > 0">
-              稽核结果备注:{{ lotNote.commitmentNote}}
+              稽核结果备注:{{ lotNote.commitmentNote }}
             </li>
           </ul>
         </div>
@@ -942,7 +950,8 @@
                 </iframe>
                 <img style="width: 70%;height: 70%;border: 1px solid;"
                      v-if="!item.urlBase" :src="noDataPng" border="1">
-                <a-button v-if="item.urlBase && lotState.commitmentState != 1" style="display: block;margin-top: 10px;border-color: red;color: red"
+                <a-button v-if="item.urlBase && lotState.commitmentState != 1"
+                          style="display: block;margin-top: 10px;border-color: red;color: red"
                           danger @click="removeFile(item)">移除
                 </a-button>
               </swiper-slide>
@@ -1023,7 +1032,6 @@ import {httpAction, postAction} from '@api/manage'
 import {snippetsOutlined, StarFilled, StarTwoTone} from '@ant-design/icons-vue';
 /*无数据图片*/
 import noDataPng from '@/assets/nodata.png'
-
 let Base64 = require('js-base64').Base64
 
 export default {
@@ -1377,7 +1385,7 @@ export default {
         default:
           if (that.steps[current].id == "commitment") {
             that.steps[current].status = data.commitmentState == '0' ? "error" : "finish";
-            that.lotNote.commitmentNote =  data.commitmentNote;
+            that.lotNote.commitmentNote = data.commitmentNote;
             that.lotState.commitmentState = data.commitmentState;
           }
           break;
@@ -1558,70 +1566,70 @@ export default {
       let that = this;
       if (data.file) {
         let formData = new FormData();
-        formData.append('file', data.file),
-          postAction(this.url.minioUpload, formData).then((res) => {
-            if (res.success) {
-              that.swiperId = that.swiperId + 1;
-              //文件链接
-              let filePath = res.message;
-              let swipData = {
-                id: that.swiperId,
-                urlBase: window._CONFIG['onlinePreviewDomainURL'] + '?url='
-                  + encodeURIComponent(
-                    Base64.encode(
-                      (filePath)
-                    )),
-                url: filePath,
-                fileName: data.file.name
-              }
-              if (that.swiperImg[0].urlBase) {
-                that.swiperImg.push(swipData)
-              } else {
-                //数据发生变化
-                that.swiperImg = []
-                that.swiperImg[0] = swipData;
-              }
-              //其他材料-流程最后一步
-              if (that.lotData.isShow.commitmentShow) {
-                that.lotData.commitmentFiles = that.swiperImg;
-                return
-              }
-              //当前步骤
-              let current = this.current;
-              switch (current) {
-                //合同
-                case 0:
-                  if (that.lotData.blockType == "test") {
-                    that.lotData.testCardApplication = that.swiperImg;
-                  } else {
-                    that.lotData.contractFiles = that.swiperImg;
-                  }
-                  break;
-                //责任人和经办人授权书
-                case 1:
-                  that.lotData.empowerFiles = that.swiperImg;
-                  break;
-                //责任人和经办人身份证
-                case 2:
-                  that.lotData.idCardFiles = that.swiperImg;
-                  break;
-                //客户证件扫描
-                case 3:
-                  that.lotData.scanningFiles = that.swiperImg;
-                  break;
-                //风险评估表
-                case 4:
-                  that.lotData.riskFiles = that.swiperImg;
-                  break;
-                //价格审批表
-                case 5:
-                  that.lotData.priceFiles = that.swiperImg;
-                  break;
-              }
+        formData.append('file', data.file)
+        postAction(this.url.minioUpload, formData).then((res) => {
+          if (res.success) {
+            that.swiperId = that.swiperId + 1;
+            //文件链接
+            let filePath = res.message;
+            let swipData = {
+              id: that.swiperId,
+              urlBase: window._CONFIG['onlinePreviewDomainURL'] + '?url='
+                + encodeURIComponent(
+                  Base64.encode(
+                    (filePath)
+                  )),
+              url: filePath,
+              fileName: data.file.name
+            }
+            if (that.swiperImg[0].urlBase) {
+              that.swiperImg.push(swipData)
+            } else {
+              //数据发生变化
+              that.swiperImg = []
+              that.swiperImg[0] = swipData;
+            }
+            //其他材料-流程最后一步
+            if (that.lotData.isShow.commitmentShow) {
+              that.lotData.commitmentFiles = that.swiperImg;
+              return
+            }
+            //当前步骤
+            let current = this.current;
+            switch (current) {
+              //合同
+              case 0:
+                if (that.lotData.blockType == "test") {
+                  that.lotData.testCardApplication = that.swiperImg;
+                } else {
+                  that.lotData.contractFiles = that.swiperImg;
+                }
+                break;
+              //责任人和经办人授权书
+              case 1:
+                that.lotData.empowerFiles = that.swiperImg;
+                break;
+              //责任人和经办人身份证
+              case 2:
+                that.lotData.idCardFiles = that.swiperImg;
+                break;
+              //客户证件扫描
+              case 3:
+                that.lotData.scanningFiles = that.swiperImg;
+                break;
+              //风险评估表
+              case 4:
+                that.lotData.riskFiles = that.swiperImg;
+                break;
+              //价格审批表
+              case 5:
+                that.lotData.priceFiles = that.swiperImg;
+                break;
+            }
 
 
-            }
-          })
+          }
+        })
       }
     },
     /**文件上传成功后回调*/

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 726 - 169
src/views/specialApply/TaskUploadData.vue


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 684 - 184
src/views/specialApply/modules/TaskCheckAudit.vue


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 881 - 193
src/views/specialApply/modules/TaskCheckDetails.vue


+ 57 - 47
src/views/specialApply/modules/TaskCheckList.vue

@@ -1,21 +1,5 @@
 <template>
   <div>
-    <a-page-header
-      style="background-color: #FFFFFF;"
-      title="客户列表"
-      sub-title=""
-      @back="goBack"
-    >
-      <a-descriptions :title="task.taskName" :column="3" :bordered="false">
-        <a-descriptions-item label="状态">
-          <a-tag :color="task.taskStateColor">{{ task.taskStateText }}</a-tag>
-        </a-descriptions-item>
-        <a-descriptions-item label="开始时间">{{ task.taskStartTime }}</a-descriptions-item>
-        <a-descriptions-item label="结束时间">{{ task.taskEndTime }}</a-descriptions-item>
-        <!--        <a-descriptions-item label="描述"><span v-html="task.description"></span></a-descriptions-item>-->
-      </a-descriptions>
-      <a-divider style="margin: 6px;"/>
-    </a-page-header>
 
     <a-card :bordered="false" style="margin-top: -20px;">
       <a-tabs :active-key="currentTab" default-active-key="all" @change="tabChange">
@@ -30,13 +14,13 @@
         <a-form layout="inline" @keyup.enter.native="searchQuery">
           <a-row :gutter="24">
             <a-col :xl="6" :lg="7" :md="8" :sm="24">
-              <a-form-item label="客户编号">
-                <j-input placeholder="请输入客户编号" v-model="queryParam.customerNo"></j-input>
+              <a-form-item label="机主姓名">
+                <j-input placeholder="请输入机主姓名" v-model="queryParam.customerName"></j-input>
               </a-form-item>
             </a-col>
             <a-col :xl="6" :lg="7" :md="8" :sm="24">
-              <a-form-item label="客户名称">
-                <j-input placeholder="请输入客户名称" v-model="queryParam.customerName"></j-input>
+              <a-form-item label="号码">
+                <j-input placeholder="请输入号码" v-model="queryParam.customerNo"></j-input>
               </a-form-item>
             </a-col>
             <template v-if="toggleSearchStatus">
@@ -63,6 +47,9 @@
                   @click="importCustiom">导入客户
         </a-button>
         <a-button type="primary" icon="download" @click="handleExportXls('客户列表')">导出</a-button>
+        <a-button v-if="selectedRowKeys.length > 0" type="primary" icon="upload" @click="batchImproves()">材料批量上传
+        </a-button>
+
         <!-- 高级查询区域 -->
         <a-dropdown v-if="selectedRowKeys.length > 0">
           <a-menu slot="overlay">
@@ -108,6 +95,12 @@
               <a-divider type="vertical"/>
             </span>
 
+            <span v-has="'special:task:check:list:upload:improve'"
+                  v-if="record.checkState == 2">
+              <a @click="showUpload(record)">修改资料</a>
+              <a-divider type="vertical"/>
+            </span>
+
             <span v-has="'special:task:check:list:upload:improve'" v-if="record.checkState == 4">
               <a @click="showUpload(record)">整改</a>
               <a-divider type="vertical"/>
@@ -123,6 +116,11 @@
               <a-divider type="vertical"/>
             </span>
 
+            <span v-has="'lot:task:check:list:audit:resetting'" v-if="record.checkState === 5">
+              <a @click="showCheckCheck(record)">重新稽核</a>
+              <a-divider type="vertical"/>
+            </span>
+
             <span v-has="'special:task:check:list:history'" v-if="record.checkState >= 4">
               <a @click="showCheckLog(record)">历史</a>
               <a-divider type="vertical"/>
@@ -210,6 +208,12 @@ export default {
       uncheckCount: 0,
       checkedCount: 0,
       passedCount: 0,
+      /* 排序参数 */
+      queryParam: {
+        customerName:"123",
+        column: 'createTime',
+        order: 'desc',
+      },
       columns: [
         {
           title: '#',
@@ -222,7 +226,7 @@ export default {
         {
           title: '提交材料日期',
           align: "center",
-          dataIndex: 'submitSpecialDate'
+          dataIndex: 'createTime'
         },
         {
           title: '机主姓名',
@@ -242,7 +246,7 @@ export default {
           dataIndex: 'shutdownLabel'
         },
         {
-          title: '漫游被关停日期(ABM查询)',
+          title: '最后一次关停时间',
           align: "center",
           dataIndex: 'shutdownLabelDate'
         },
@@ -251,11 +255,6 @@ export default {
           align: "center",
           dataIndex: 'staffDeptLevel3'
         },
-        {
-          title: '复开时间',
-          align: "center",
-          dataIndex: 'reopenTime'
-        },
         {
           title: '有无特审单',
           align: "center",
@@ -278,16 +277,9 @@ export default {
           dataIndex: 'staffNo'
         },
         {
-          title: '导入时间',
-          align: "center",
-          sorter: true,
-          dataIndex: 'createTime'
-        },
-        {
-          title: '更新时间',
+          title: '复开时间',
           align: "center",
-          sorter: true,
-          dataIndex: 'updateTime'
+          dataIndex: 'reopenTime'
         },
         {
           title: '稽核进度',
@@ -303,22 +295,30 @@ export default {
           scopedSlots: {customRender: 'action'}
         }
       ],
-      isorter: {
-        column: 'checkState',
-        order: 'asc',
-      },
       url: {
         queryTask: "/smsCheck/task/queryById",
-        list: "/smsCheck/customerInfo/list",
-        count: "/smsCheck/customerInfo/count",
+        list: "/smsCheck/customerInfo/special/list",
+        count: "/special/examination/type/count",
         delete: "/smsCheck/customerInfo/delete",
         edit: "/smsCheck/customerInfo/edit",
         notice: "/smsCheck/customerInfo/notice",
         editCheck: "/smsCheck/customerInfo/edit/check/state",
         dataDelete: "/smsCheck/customerData/clear",
-        exportXlsUrl: "smsCheck/customerInfo/exportXls",
+        exportXlsUrl: "/special/examination/exportXls",
       },
       autoSearch: false,
+      /* 分页参数 */
+      ipagination:{
+        current: 1,
+        pageSize: 10,
+        pageSizeOptions: ['10', '50', '100','200'],
+        showTotal: (total, range) => {
+          return range[0] + "-" + range[1] + " 共" + total + "条"
+        },
+        showQuickJumper: true,
+        showSizeChanger: true,
+        total: 0
+      },
     }
   },
   created() {
@@ -367,9 +367,13 @@ export default {
     showImprove(record) {
       this.$router.push({path: '/specialApply/data/upload', query: {id: record.id, data: record}});
     },
+    //批量上传客户资料
+    batchImproves(ids) {
+      this.$router.push({path: '/specialApply/data/upload', query: {ids: this.selectedRowKeys, batchImproves: true}});
+    },
     // 整改
     showUpload(record) {
-      this.$router.push({path: '/specialApply/data/upload', query: {id: record.id, data: record,rectification:true}});
+      this.$router.push({path: '/specialApply/data/upload', query: {id: record.id, data: record, rectification: true}});
     },
     // 显示上传页面
     handSubmit(record) {
@@ -405,7 +409,10 @@ export default {
     },
     // 显示稽核详情页面
     showCheckDetail(record) {
-      this.$router.push({path: '/specialApply/modules/TaskCheckDetails', query: {id: record.id, data: record}});
+      this.$router.push({
+        path: '/specialApply/modules/TaskCheckDetails',
+        query: {id: record.id, data: record, rectification: true}
+      });
     },
     // 显示稽核历史页面
     showCheckLog(record) {
@@ -470,9 +477,12 @@ export default {
       this.loadData(1);
     },
     loadTabNumber(taskId) {
+      let params = {id: "1111"}
       let url = this.url.count;
-      let params = {
-        id: taskId
+      if (taskId) {
+        params = {
+          id: taskId
+        }
       }
       let that = this;
       getAction(url, params).then(res => {

+ 16 - 37
src/views/specialApply/modules/TaskImport.vue

@@ -7,21 +7,17 @@
         sub-title="1、先选择客户资料,进行导入前预览。2、信息无误后再确认导入"
         @back="goBack"
       >
-        <a-descriptions :title="task.taskName" size="small" :column="3">
-          <a-descriptions-item label="状态">
-            <a-tag :color="task.taskStateColor">{{ task.taskStateText }}</a-tag>
-          </a-descriptions-item>
-          <a-descriptions-item label="开始时间">{{ task.taskStartTime }}</a-descriptions-item>
-          <a-descriptions-item label="结束时间">{{ task.taskEndTime }}</a-descriptions-item>
-          <a-descriptions-item label="描述"><span v-html="task.description"></span></a-descriptions-item>
-          <!--{{task.description}}-->
-        </a-descriptions>
+        <a-alert message="导入表格中机主姓名、号码、漫游被关停日期、三级部门、复开时间为必填项。" type="warning" show-icon />
         <a-divider style="margin: 6px;"/>
       </a-page-header>
 
       <a-card :bordered="false" style="margin-top: -22px;">
         <!-- 操作按钮区域 start -->
         <div class="table-operator">
+          <a-button type="primary" icon="import"
+                    @click="downloadTemplat">下载导入模版
+          </a-button>
+
           <a-upload name="file"
                     :showUploadList="false"
                     :multiple="false"
@@ -92,11 +88,6 @@ export default {
             return parseInt(index) + 1;
           }
         },
-        {
-          title: '提交材料日期',
-          align: "center",
-          dataIndex: 'submitSpecialDate'
-        },
         {
           title: '机主姓名',
           align: "center",
@@ -108,27 +99,7 @@ export default {
           dataIndex: 'smsNumber'
         },
         {
-          title: '关停标签',
-          align: "center",
-          dataIndex: 'shutdownLabel'
-        },
-        {
-          title: '漫游被关停日期(ABM查询)',
-          align: "center",
-          dataIndex: 'shutdownLabelDate'
-        },
-        {
-          title: '三级部门',
-          align: "center",
-          dataIndex: 'staffDeptLevel3'
-        },
-        {
-          title: '复开时间',
-          align: "center",
-          dataIndex: 'reopenTime'
-        },
-        {
-          title: '有无特审单',
+          title: '有无特审单/签报',
           align: "center",
           dataIndex: 'materialLabel'
         },
@@ -157,8 +128,8 @@ export default {
         },
       ],
       url: {
-        importExcel: window._CONFIG['domainURL'] + "/special/examination/importCustomerExcel",
-        importData: "/special/examination/taskId/importCustomerData",
+        importExcel: window._CONFIG['domainURL'] + "/special/examination/importCustomerExcel", //数据入库
+        importData: "/special/examination/taskId/importCustomerData", //识别excel数据
         queryTask: "/smsCheck/task/queryById",
       },
     }
@@ -168,6 +139,14 @@ export default {
     this.queryInfoById(this.task.id);
   },
   methods: {
+    /**下载模版*/
+    downloadTemplat(){
+      const a = document.createElement('a')
+      a.href = '/static/specialExamination.xlsx'
+      a.setAttribute('download', '特审复开审批模版.xlsx')
+      a.click();
+      a.remove();
+    },
     // 返回上一级
     goBack() {
       this.$router.go(-1);

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 602 - 112
src/views/truckCheck/TaskUploadData.vue


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 590 - 105
src/views/truckCheck/modules/TaskCheckAudit.vue


+ 0 - 5
src/views/truckCheck/modules/TaskCheckList.vue

@@ -104,11 +104,6 @@
               <a-divider type="vertical"/>
             </span>
 
-            <span v-has="'truck:task:check:list:submit'" v-if="record.checkState == 1 || record.checkState == 4">
-              <a @click="handSubmit(record)">提交</a>
-              <a-divider type="vertical"/>
-            </span>
-
             <span v-has="'truck:task:check:list:audit'" v-if="record.checkState === 2 || record.checkState === 3">
               <a @click="showCheckCheck(record)">稽核</a>
               <a-divider type="vertical"/>

Vissa filer visades inte eftersom för många filer har ändrats