Quellcode durchsuchen

物联网稽核页面

sunyize vor 2 Jahren
Ursprung
Commit
de0c876f91

+ 270 - 117
src/views/lotCheck/TaskUploadData.vue

@@ -7,20 +7,24 @@
       sub-title=""
       @back="goBack"
     ></a-page-header>
-
+    <a-form-model
+      ref="form"
+      :model="infoModel"
+      :rules="rules"
+    >
     <a-card style="margin-bottom:10px;color: #000000d9;font-size: 15px;line-height: 2.5;">
       <div>
         <span>1.请选择所上传资料的卡类型</span>
       </div>
       <a-radio-group style="position: relative;left: 30px"
-                     @change="controlChange" v-model:value="lotData.blockType" :disabled="rectificationIs">
+                     @change="controlChange" v-model:value="infoModel.blockType" >
         <a-radio :value="'model'">正式卡</a-radio>
         <a-radio :value="'test'">测试卡</a-radio>
       </a-radio-group>
-      <div v-if="lotData.blockType != 'test'">
-        <span style="display: block">2.是否突破价格管控</span>
-        <a-radio-group style="position: relative;left: 30px;" :disabled="rectificationIs"
-                       @change="controlChange" v-model:value="lotData.control">
+      <div v-if="infoModel.blockType != 'test'">
+        <span style="display: block">2.是否有集团价格审批</span>
+        <a-radio-group style="position: relative;left: 30px;"
+                       @change="controlChange" v-model:value="infoModel.control">
           <a-radio :value="'controlY'">是</a-radio>
           <a-radio :value="'controlN'">否</a-radio>
         </a-radio-group>
@@ -61,12 +65,12 @@
           </a-form-model-item>
         </a-col>
         <a-col :span="6">
-          <a-form-model-item label="服务号码(全)" v-bind="labelCol4">
+          <a-form-model-item label="服务号码(全)" prop="smsNumber"  v-bind="labelCol4">
             <a-input v-model="infoModel.smsNumber" placeholder="请输入服务号码(全)"  ></a-input>
           </a-form-model-item>
         </a-col>
         <a-col :span="6">
-          <a-form-model-item label="客户经理" prop="userState" v-bind="labelCol4">
+          <a-form-model-item label="客户经理" prop="manage" v-bind="labelCol4">
             <a-input   v-model="infoModel.manage" placeholder="用户状态" ></a-input>
           </a-form-model-item>
         </a-col>
@@ -76,49 +80,54 @@
           </a-form-model-item>
         </a-col>
         <a-col :span="6">
-          <a-form-model-item label="使用场景" prop="managePhone" v-bind="labelCol4">
+          <a-form-model-item label="使用场景" prop="scene" v-bind="labelCol4">
             <a-input   v-model="infoModel.scene" placeholder="例-车联网-乘用车-智能后视镜"></a-input>
           </a-form-model-item>
         </a-col>
-        <a-col :span="7"  v-if='infoModel.contractDateIs==="0" ' >
-          <a-form-model-item label="合同到期时间" prop="contractDate" v-bind="labelCol6">
-            <a-date-picker   :style="{width:'100%'}" v-model="infoModel.contractDate"
-                             format="YYYY-MM-DD"
-                             showTime valueFormat="YYYY-MM-DD"/>
-          </a-form-model-item>
-        </a-col>
-        <a-col :span="7" v-if='infoModel.businessLicenseDateIs==="0"'>
-          <a-form-model-item label="营业执照到期时间" prop="businessLicenseDate" v-bind="labelCol4">
-            <a-date-picker     style="width: 210px" v-model="infoModel.businessLicenseDate"
-                               format="YYYY-MM-DD"
-                               showTime valueFormat="YYYY-MM-DD"/>
-          </a-form-model-item>
-
-        </a-col>
-        <a-col :span="5">
+        <a-col :span="6">
           <a-form-model-item label="资料是否完整" prop="isAll" v-bind="labelCol4">
-            <a-radio-group v-model="infoModel.isAll" button-style="solid" @change="stepLoading">
+            <a-radio-group v-model="infoModel.isAll" button-style="solid" >
               <a-radio-button value="0">否</a-radio-button>
               <a-radio-button value="1">是</a-radio-button>
             </a-radio-group>
           </a-form-model-item>
         </a-col>
-        <a-col :span="5">
-          <a-form-model-item label="是否完成整改" prop="isAll" v-bind="labelCol4">
-            <a-radio-group v-model="infoModel.isComplete" button-style="solid" @change="stepLoading">
+        <a-col :span="6">
+          <a-form-model-item label="是否完成整改" prop="isComplete" v-bind="labelCol4">
+            <a-radio-group v-model="infoModel.isComplete" button-style="solid"  >
               <a-radio-button value="0">否</a-radio-button>
               <a-radio-button value="1">是</a-radio-button>
             </a-radio-group>
           </a-form-model-item>
         </a-col>
+        <a-col :span="7"  >
+          <a-form-model-item label="合同到期时间" prop="contractDate" v-bind="labelCol5">
+            <a-date-picker   :style="{width:'100%'}" v-model="infoModel.contractDate"
+                             format="YYYY-MM-DD"
+                             showTime valueFormat="YYYY-MM-DD"/>
+          </a-form-model-item>
+        </a-col>
+        <a-col :span="7"   >
+          <a-form-model-item label="营业执照到期时间" prop="businessLicenseDate" v-bind="labelCol5">
+            <a-date-picker       v-model="infoModel.businessLicenseDate"
+                               format="YYYY-MM-DD"
+                               showTime valueFormat="YYYY-MM-DD"/>
+          </a-form-model-item>
+
+        </a-col>
+
       </a-row>
     </a-card>
+    </a-form-model>
     <!--    步骤条-->
     <a-card style="margin-bottom:10px;width: 15%;float: left">
       <!--      v-model:current="current"-->
       <a-steps direction="vertical" :current="steps.current" size="small"  @change="stepsClick">
         <a-step v-for="item in steps.stepsNow" :key="item.title" :title="item.title" :status="item.status"/>
       </a-steps>
+      <a-button @click="addIsStaging" style="width: 100%" type="warn">暂存</a-button>
+      <a-button @click="submitAuditLot" style="width: 100%;position: relative;top: 10px" type="primary">提交申请</a-button>
+
     </a-card>
     <!--    测试卡申请单-->
     <a-card v-if="steps.currentId === 'testCard'" style="margin-bottom:10px; float: left;width: 83%;  ">
@@ -1123,6 +1132,84 @@ export default {
   components: {noDataPng},
   data() {
     return {
+      rules:{
+        scene: [
+          {required: true, message: '必须输入'},
+        ],
+        smsNumber: [
+          {required: true, message: '必须输入'},
+        ],
+        customerName: [
+          {required: true, message: '必须输入'},
+        ],
+        isComplete:[
+          {required: true, message: '必须输入'},
+        ],
+        manage:[
+          {required: true, message: '必须输入'},
+        ],
+        isAll:[
+          {required: true, message: '必须输入'},
+        ],
+        contractDate:[
+          {required: true, message: '必须输入'},
+        ],
+        businessLicenseDate:[
+          {required: true, message: '必须输入'},
+        ],
+        installationAddress:[
+          {required: true, message: '必须输入'},
+        ],
+        floorName:[
+          {required: true, message: '必须输入'},
+        ],
+        firstActivationDate:[
+          {required: true, message: '必须输入'},
+        ],
+        customerNo:[
+          {required: true, message: '必须输入'},
+        ],
+        userNo:[
+          {required: true, message: '必须输入'},
+        ],
+        networkAccessTime:[
+          {required: true, message: '必须输入'},
+        ],
+        userState:[
+          {required: true, message: '必须输入'},
+        ],
+        contractDateIs:[
+          {required: true, message: '必须输入'},
+        ],
+        staffNo:[
+          {required: true, message: '必须输入'},
+        ],
+        codeNumber:[
+          {required: true, message: '必须输入'},
+        ],
+        accountCode:[
+          {required: true, message: '必须输入'},
+        ],
+        floorCode:[
+          {required: true, message: '必须输入'},
+        ],
+        userCode:[
+          {required: true, message: '必须输入'},
+        ],
+        managePhone: [
+          {required: true, message: '请输入客户经理手机号!', trigger: 'blur'}, {validator: this.isPhone}
+        ],
+      },
+      labelCol6: {
+        labelCol: {
+          xs: {span: 24},
+          sm: {span:10},
+        },
+        wrapperCol: {
+          xs: {span: 24},
+          sm: {span: 12},
+        }
+      },
       labelCol4: {
         labelCol: {
           xs: {span: 24},
@@ -1133,6 +1220,16 @@ export default {
           sm: {span: 12},
         }
       },
+      labelCol5: {
+        labelCol: {
+          xs: {span: 24},
+          sm: {span: 9},
+        },
+        wrapperCol: {
+          xs: {span: 24},
+          sm: {span: 4},
+        }
+      },
       labelCol1Note: {
         labelCol: {
           xs: {span: 24},
@@ -1147,8 +1244,18 @@ export default {
       rectificationIs: false,
       noDataPng: noDataPng,
       //加载状态
+      taskId:"",
       loading: false,
       infoModel: {
+        blockType: "",
+        control: "",
+        //合同文件
+        isAll:"",
+        contractDate:"",
+        businessLicenseDate:"",
+        dataId:"",
+        logId:"",
+        infoId:"",
         isComplete:"",
         scene:"",
         manage:"",
@@ -1181,11 +1288,12 @@ export default {
       previewImage: "",
       previewVisible: false,
       url: {
+        "getTask":"/smsTurck/customerData/query/getTask",
         "getInfoDataById": "/smsCheck/customerInfo/queryById",
         "getInfoDataByInfoId": "/smsLot/customerData/queryDataLogByInfoId",
         updateFile: "/smsCheck/customerData/updateFile",
         minioUpload: "/smsCheck/customerData/uploadMinio",
-        list: "/smsCheck/customerData/list",
+        //list: "/smsCheck/customerData/list",
         addOrEdit: "/smsLot/customerData/edit/info",
         lotInfo: "/smsLot/customerData/query/infoId",
         checkDataId: "/smsLot/customerData/query/check/dataId",
@@ -1421,6 +1529,7 @@ export default {
   },
   created() {
     let control = this.lotData.control;
+    this.infoModel.infoId = this.$route.query.id;
     //是否突破价格管控
     if (control == "controlN") {
       this.steps.stepsNow = this.steps.stepsControlN;
@@ -1473,6 +1582,8 @@ export default {
       swiperTop.controller.control = swiperThumbs
       swiperThumbs.controller.control = swiperTop
     })
+    this.infoId = this.$route.query.id;
+    this.getTask( this.infoId);
     let control = this.lotData.control;
     //是否突破价格管控
     if (control == "controlN") {
@@ -1482,6 +1593,117 @@ export default {
     }
   },
   methods: {
+    isPhone(rule, value, callback) {
+      if (!value || new RegExp(/^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/).test(value)) {
+        callback();
+      } else {
+        callback("您的手机号码格式不正确!");
+      }
+
+    },
+    /*提交*/
+    submitAuditLot() {
+      this.uploading = true;
+      var info = "yes";
+      this.$refs.form.validate(valid => {
+        // 验证通过
+        if (!valid) {
+          info = "no";
+          this.uploading = false;
+        }}
+      )
+      var text= "";
+      for (var i in this.steps.stepsNow) {
+        if (this.steps.stepsNow[i].status !== "finish") {
+          // text+= '111<br/> ';
+          var str=this.steps.stepsNow[i].title;
+          text+=  str+"资料或备注都未上传!!!"+'<br/><br/>';
+          //this.$message.warn( this.steps.stepsNow[i].title +"资料或备注都未上传!!!");
+          info="no";
+        }
+      }
+      var stringToHTML = function (str) {
+        var dom = document.createElement('div');
+        dom.innerHTML = str;
+        return dom;
+
+      };
+      console.log(stringToHTML('<h1>Hello world!</h1><p>How are you today?</p>'));
+      if (info==="no"){
+        this.$warning({
+          title: '提示',
+          dangerouslyUseHTMLString: true,
+          content:(h) => {
+            return h('div', {
+              domProps: {
+                innerHTML: text
+              },
+            }, []);
+          }
+        })
+        return
+      }
+      var that = this;
+      that.infoModel.control= that.lotData.control;
+      that.infoModel.blockType= that.lotData.blockType;
+      var data=that.infoModel ;
+
+      //data =this.dataListToStr(data);
+      postAction("/smsLot/customerData/add", data).then((res) => {
+        if (res.success) {
+          this.uploading = false;
+          this.$message.success("提交成功", 3);
+          this.addIng == true
+
+          this.$router.push({path: '/lot/check/task/check', query: {id: that.taskId}});
+          this.closeCurrent();
+        } else {
+          this.uploading = false;
+          if (  res.message  !==null){
+            this.$message.error( res.message);
+          }else {
+            this.$message.error("提交失败");
+          }
+        }
+      }).finally(() => {
+        this.uploading = false;
+      })
+    },
+    getTask(infoId){
+      var that = this;
+      var data = {
+        "infoId": infoId,
+      }
+      postAction(this.url.getTask, data).then((res) => {
+        if (res.success) {
+          that.taskId=res.result.taskId;
+        }
+      })
+    },
+    addIsStaging() {
+      this.uploading = true;
+      var that = this;
+      var data=that.infoModel ;
+      //data =this.dataListToStr(data);
+      postAction("/smsLot/customerData/addIsStaging", data).then((res) => {
+        if (res.success) {
+          this.uploading = false;
+          this.$message.success("提交成功", 3);
+          this.addIng == true
+          this.$router.push({path: '/lot/check/task/check', query: {id: that.taskId}});
+          this.closeCurrent();
+        } else {
+          this.uploading = false;
+          if (  res.message  !==null){
+            this.$message.error( res.message);
+          }else {
+            this.$message.error("提交失败");
+          }
+        }
+      }).finally(() => {
+        this.uploading = false;
+      })
+    },
     /**备注坚听*/
     textareaChange(name, nameRemark) {
       if (this.infoModel[nameRemark].length > 0) {
@@ -1544,9 +1766,9 @@ export default {
           if (data == null || !data) {
             return;
           }
-          that.lotDataValue(data);
           let result = res.result;
           that.infoModel=result;
+          that.lotDataValue(data);
           that.infoModel.testCard= JSON.parse(result.testCard);
           that.infoModel.contract= JSON.parse(result.contract);
           that.infoModel.handlingContract= JSON.parse(result.handlingContract);
@@ -1573,24 +1795,31 @@ export default {
     },
     lotDataValue(data) {
       let that = this;
+      if (data.control===''||data.control===null){
+        that.infoModel.control='controlN'
+      }
+      if (data.blockType===''||data.blockType===null){
+        that.infoModel.blockType='model'
+      }
       //为整改
       that.rectificationIs = true;
       //是否突破价格管控 0:未突破;1:突破
-      that.lotData.control = data.control == 0 ? "controlN" : "controlY";
+      that.lotData.control = data.control ;
       //卡类型 0测试卡;1正式卡,
-      that.lotData.blockType = data.blockType == 0 ? "test" : "model";
+      that.lotData.blockType = data.blockType;
       //判断步骤类型
-      let control = data.control;
-      let blockType = data.blockType;
-      if (control == 0 && blockType == 1) {
+      let control =  that.infoModel.control;
+      let blockType = that.infoModel.blockType;
+      if (control === 'controlN' && blockType === 'model') {
         this.steps.stepsNow = this.steps.stepsControlN;
-      } else if (control == 1 && blockType == 1) {
+      } else if (control === 'controlY' && blockType === 'model') {
         this.steps.stepsNow = this.steps.stepsControlY;
-      } else if (blockType == 0) {
+      } else if (blockType === 'test') {
         this.steps.stepsNow= this.steps.stepsTest;
       } else {
         this.steps.stepsNow = this.steps.stepsControlN;
       }
+
       //材料覆值
       //ID
       that.lotData.id = data.id
@@ -1617,7 +1846,7 @@ export default {
         that.swiperImg = that.lotData.testCardApplication
       }
       //稽核结果
-      that.lotCheckById(that.infoId);
+      //that.lotCheckById(that.infoId);
     },
     /**包装轮播数据*/
     packageArr(data) {
@@ -1652,8 +1881,8 @@ export default {
     },
     /**卡类型及价格管控监听事件*/
     controlChange(a, event) {
-      let blockType = this.lotData.blockType;
-      let control = this.lotData.control;
+      let blockType = this.infoModel.blockType;
+      let control = this.infoModel.control;
       //是否突破价格管控
       if (control == "controlN" && blockType == "model") {
         this.steps.stepsNow = this.steps.stepsControlN;
@@ -1834,83 +2063,7 @@ export default {
         that.swiperImg.push({})
       }
     },
-    /**提交稽核*/
-    submitLot() {
-      //卡类型
-      let blockType = this.lotData.blockType;
-      //价格突破
-      let control = this.lotData.control;
-      let data = {};
-      //测试卡
-      if (blockType == "test") {
-        data = {
-          //测试卡申请单
-          "testCardApplication": this.urlBaseJoin(this.lotData.testCardApplication, "url"),
-          //责任人经办人授权书
-          "empower": this.urlBaseJoin(this.lotData.empowerFiles, "url"),
-          //责任人经办人身份证
-          "idCard": this.urlBaseJoin(this.lotData.idCardFiles, "url"),
-          //客户证件扫描
-          "customerId": this.urlBaseJoin(this.lotData.scanningFiles, "url"),
-          //风险评估表
-          "risk": this.urlBaseJoin(this.lotData.riskFiles, "url"),
-        }
-      } else {
-        //突破价格管控
-        if (control == "controlY") {
-          data = {
-            //合同文件
-            "contract": this.urlBaseJoin(this.lotData.contractFiles, "url"),
-            //责任人经办人授权书
-            "empower": this.urlBaseJoin(this.lotData.empowerFiles, "url"),
-            //责任人经办人身份证
-            "idCard": this.urlBaseJoin(this.lotData.idCardFiles, "url"),
-            //客户证件扫描
-            "customerId": this.urlBaseJoin(this.lotData.scanningFiles, "url"),
-            //风险评估表
-            "risk": this.urlBaseJoin(this.lotData.riskFiles, "url"),
-            //省/集团价格审批
-            "priceApproval": this.urlBaseJoin(this.lotData.priceFiles, "url")
-          }
-        } else {
-          data = {
-            //合同文件
-            "contract": this.urlBaseJoin(this.lotData.contractFiles, "url"),
-            //责任人经办人授权书
-            "empower": this.urlBaseJoin(this.lotData.empowerFiles, "url"),
-            //责任人经办人身份证
-            "idCard": this.urlBaseJoin(this.lotData.idCardFiles, "url"),
-            //客户证件扫描
-            "customerId": this.urlBaseJoin(this.lotData.scanningFiles, "url"),
-            //风险评估表
-            "risk": this.urlBaseJoin(this.lotData.riskFiles, "url"),
-          }
-        }
-      }
-      //其他资料
 
-      this.postLotInfo(data);
-    },
-    postLotInfo(data) {
-      //任务Id
-      data["infoId"] = this.infoId;
-      //卡类型
-      data["blockType"] = this.lotData.blockType == "model" ? 1 : 0;
-      //是否突破价格管控
-      data["control"] = this.lotData.control == "controlY" ? 1 : 0;
-      //其他材料
-      data['commitment'] = this.urlBaseJoin(this.lotData.commitmentFiles, "url");
-      postAction(this.url.addOrEdit, data).then((res) => {
-        if (res.success) {
-          this.$message.success("提交成功");
-          this.$router.go(-1);
-          this.closeCurrent();
-          //this.$router.push({path: '/lot/check/task/check', query: {id: record.id}});
-        } else {
-          this.$message.error(res.message);
-        }
-      });
-    },
     urlBaseJoin(dataArray, name) {
       let newDataArr = [];
       for (var i in dataArray) {

Datei-Diff unterdrückt, da er zu groß ist
+ 590 - 189
src/views/lotCheck/modules/TaskCheckAudit.vue


+ 11 - 2
src/views/lotCheck/modules/TaskCheckList.vue

@@ -20,6 +20,7 @@
     <a-card :bordered="false" style="margin-top: -20px;">
       <a-tabs :active-key="currentTab" default-active-key="all" @change="tabChange">
         <a-tab-pane key="all" :tab="tabAll"></a-tab-pane>
+        <a-tab-pane key="noUp" :tab="noUp"></a-tab-pane>
         <a-tab-pane key="undo" :tab="tabUndo"></a-tab-pane>
         <a-tab-pane key="uncheck" :tab="tabUncheck"></a-tab-pane>
         <a-tab-pane key="checked" :tab="tabChecked"></a-tab-pane>
@@ -210,11 +211,13 @@ export default {
         taskStateColor: '',
       },
       tabAll: '全部(0)',
+      noUp: '未处理(0)',
       tabUndo: '未完善(0)',
       tabUncheck: '待稽核(0)',
       tabChecked: '待整改(0)',
       tabPassed: '稽核通过(0)',
       count: 0,
+      noUpCount:0,
       undoCount: 0,
       uncheckCount: 0,
       checkedCount: 0,
@@ -336,7 +339,7 @@ export default {
     },
     statusFilter(status) {
       const statusMap = {
-        '0': '未完善',
+        '0': '未处理',
         '1': '未完善',
         '2': '待稽核',
         '3': '待稽核',
@@ -445,7 +448,7 @@ export default {
         this.queryParam.checkState_MultiString = this.currentCheckState;
         this.currentTab = 'all';
       } else if (key === 'undo') {
-        this.currentCheckState = '0,1';
+        this.currentCheckState = '1';
         this.queryParam.checkState_MultiString = this.currentCheckState;
         this.currentTab = 'undo';
       } else if (key === 'uncheck') {
@@ -460,6 +463,10 @@ export default {
         this.currentCheckState = '5';
         this.queryParam.checkState_MultiString = this.currentCheckState;
         this.currentTab = 'passed';
+      }else if (key === 'noUp') {
+        this.currentCheckState = '0';
+        this.queryParam.checkState_MultiString = this.currentCheckState;
+        this.currentTab = 'noUp';
       }
       this.loadData(1);
     },
@@ -477,7 +484,9 @@ export default {
           that.uncheckCount = result.uncheckCount;
           that.checkedCount = result.checkedCount;
           that.passedCount = result.passedCount;
+          that.noUpCount = result.noUpCount;
           that.tabAll = '全部(' + result.count + ')';
+          that.noUp= '未处理(' + result.noUpCount + ')';
           that.tabUndo = '未完善(' + result.undoCount + ')';
           that.tabUncheck = '待稽核(' + result.uncheckCount + ')';
           that.tabChecked = '待整改(' + result.checkedCount + ')';

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.