From 47a0f58d4334939b08a55b9356f94de23c8b1367 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Wed, 15 Jun 2022 14:56:26 +0800
Subject: [PATCH] 新增保安员导入

---
 src/views/securityGuard/securityGuard.vue |  290 +++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 219 insertions(+), 71 deletions(-)

diff --git a/src/views/securityGuard/securityGuard.vue b/src/views/securityGuard/securityGuard.vue
index ddd3730..4f34dd4 100644
--- a/src/views/securityGuard/securityGuard.vue
+++ b/src/views/securityGuard/securityGuard.vue
@@ -155,6 +155,15 @@
               @click="handleExport"
               >导出
             </el-button>
+            <el-button
+              type="success"
+              size="small"
+              plain
+              icon="el-icon-upload2"
+              v-if="permission.securityGuard_import_admin"
+              @click="handleImport3"
+              >保安员批量导入-制证
+            </el-button>
           </template>
 
           <template slot-scope="{ type, size, row }" slot="menu">
@@ -174,15 +183,24 @@
                   >查看
                 </el-button>
                 <br v-if="permission.securityGuard_view" />
+                <!-- <el-button
+                  icon="el-icon-scissors"
+                  :size="size"
+                  :type="type"
+                  v-if="permission.securityGuard_edit && row.status != 2"
+                  @click="$refs.crud.rowEdit(row, index)"
+                  >编辑
+                </el-button>
+                <br v-if="permission.securityGuard_edit && row.status != 2" /> -->
                 <el-button
                   icon="el-icon-scissors"
                   :size="size"
                   :type="type"
-                  v-if="permission.securityGuard_delete && row.status != 2"
-                  @click="$refs.crud.rowEdit(row, index)"
-                  >编辑
+                  @click="accountUpdate(row)"
+                  v-if="permission.securityGuard_edit && row.status != 2"
+                  >账号修改
                 </el-button>
-                <br v-if="permission.securityGuard_delete && row.status != 2" />
+                <br v-if="permission.securityGuard_edit && row.status != 2" />
                 <el-button
                   icon="el-icon-close"
                   :size="size"
@@ -340,6 +358,26 @@
           </template>
         </avue-crud>
         <el-dialog
+          title="账号修改"
+          :visible.sync="accountVisible"
+          width="width"
+          :modal="true"
+          :modal-append-to-body="true"
+          :append-to-body="true"
+          :close-on-click-modal="false"
+          :close-on-press-escape="false"
+          :before-close="dialogBeforeClose"
+        >
+            <avue-form
+              ref="formAccount"
+              :option="optionAccount"
+              v-model="formAccount"
+              @reset-change="emptytChangeAccount"
+              @submit="submit"
+            >
+            </avue-form>
+        </el-dialog>
+        <el-dialog
           title="用户角色配置"
           append-to-body
           :visible.sync="roleBox"
@@ -424,6 +462,24 @@
           >
             <template slot="excelTemplate">
               <el-button type="primary" @click="handleTemplate1">
+                点击下载<i class="el-icon-download el-icon--right"></i>
+              </el-button>
+            </template>
+          </avue-form>
+        </el-dialog>
+        <el-dialog
+          title="保安员导入-制证"
+          append-to-body
+          :visible.sync="excelBox3"
+          width="555px"
+        >
+          <avue-form
+            :option="excelOption3"
+            v-model="excelForm3"
+            :upload-after="uploadAfter3"
+          >
+            <template slot="excelTemplate">
+              <el-button type="primary" @click="handleTemplate3">
                 点击下载<i class="el-icon-download el-icon--right"></i>
               </el-button>
             </template>
@@ -541,6 +597,8 @@
   update,
   updatePlatform,
   securitySave,
+  updateAccount,
+  securitySaves,
   grant,
   resetPassword,
   getUserPractitionersInfo,
@@ -704,44 +762,6 @@
       } else {
         callback(new Error("身份证错误"));
       }
-      // console.log(oldy, oldm, oldd, year - oldy, mouth, day);
-      // var test =
-      //   /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;
-      // if (!test.test(value)) {
-      //   callback(new Error("请输入正确身份证号码"));
-      // } else {
-      //   // //加入校验18岁到60岁的
-      //   // oldy = +value.slice(6, 10);
-      //   // oldm = +value.slice(10, 12);
-      //   // oldd = +value.slice(12, 14);
-      //   // ok =
-      //   //   year - oldy < 18 || year - oldy > 60
-      //   //     ? false
-      //   //     : year - oldy == 18
-      //   //     ? mouth < oldm
-      //   //       ? false
-      //   //       : mouth > oldm
-      //   //       ? true
-      //   //       : day < oldd
-      //   //       ? false
-      //   //       : true
-      //   //     : year - oldy == 60
-      //   //     ? mouth < oldm
-      //   //       ? true
-      //   //       : mouth > oldm
-      //   //       ? false
-      //   //       : day <= oldd
-      //   //       ? false
-      //   //       : true
-      //   //     : true;
-      //   // if (ok) {
-      //   callback();
-      //   // } else {
-      //   //   // callback(new Error("根据国家要求,需在18岁至60岁"));
-      //   //   callback(new Error("年龄不符"));
-      // }
-
-      // }
     };
     const validatePassPhone = (rule, value, callback) => {
       var test = /^(13[0-9]|14[0-9]|15[0-9]|17[0-9]|18[0-9]|19[0-9])\d{8}$/g;
@@ -751,12 +771,7 @@
         callback();
       }
     };
-    // let table = document.getElementsByClassName("tablesss");
-    // let heard = table[0].getElementsByClassName("avue-crud__search");
-    // let usNum =
-    //   this.windowWidth <= 1376 && this.windowHeight <= 778 ? 170 : 332;
-    // // that.option.height = +h - (+heard[0].clientHeight + 332);
-    // let optionHeight = +this.windowHeight - (+heard[0].clientHeight + +usNum);
+
     return {
       startTimecc: null,
       sort: "",
@@ -787,6 +802,7 @@
       certificateYear: null,
       certificateMonth: null,
       certificateFlag: false,
+      accountVisible:false,
       certificateObj: {
         realName: "",
         securitynumber: "",
@@ -796,6 +812,7 @@
       securityid: "",
       excelBox1: false,
       excelBox2: false,
+      excelBox3: false,
       isSecurity: true,
       securityCheckApplyvisible: false,
       excelForm1: {},
@@ -824,6 +841,32 @@
           }
         ]
       },
+      excelForm3: {},
+      excelOption3: {
+        submitBtn: false,
+        emptyBtn: false,
+        column: [
+          {
+            label: "文件上传",
+            prop: "excelFile",
+            type: "upload",
+            drag: true,
+            loadText: "文件上传中,请稍等",
+            span: 24,
+            propsHttp: {
+              res: "data"
+            },
+            tip: "请上传 .xls,.xlsx 标准格式文件",
+            action: "/api/securityPaper/import-security-paper"
+          },
+          {
+            label: "模板下载",
+            prop: "excelTemplate",
+            formslot: true,
+            span: 24
+          }
+        ]
+      },
       excelForm2: {},
       excelOption2: {
         submitBtn: false,
@@ -839,8 +882,8 @@
             propsHttp: {
               res: "data"
             },
-            tip: "请上传 zip 压缩文件,照片文件名以身份证号码命名",
-            action: "/api/blade-resource/oss/endpoint/put-file-zip"
+            tip: "请上传 zip 压缩文件,照片文件名以用户编号命名",
+            action: "/api/blade-resource/oss/endpoint/put-file-zips"
           }
         ]
       },
@@ -987,6 +1030,52 @@
           }
         ]
       },
+      optionAccount: {
+        height: "auto",
+        calcHeight: 30,
+        dialogWidth: 1000,
+        tip: false,
+        searchShow: true,
+        searchMenuSpan: 6,
+        border: true,
+        index: true,
+        stripe: true,
+        viewBtn: false,
+        addBtn: false,
+        editBtn: false,
+        selection: true,
+        excelBtn: false,
+        menuWidth: 230,
+        dialogClickModal: false,
+        column: [
+          {
+            label: "原账号",
+            prop: "oldAccount",
+            labelWidth: 110,
+            disabled: true,
+            rules: [
+              {
+                required: true,
+                message: "请输入原账号",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "新账号",
+            prop: "account",
+            labelWidth: 110,
+            rules: [
+              {
+                required: true,
+                message: "请输入新账号",
+                trigger: "blur"
+              }
+            ]
+          }
+        ]
+      },
+      formAccount: {},
       formSecurityCheckApply: {},
       option: {
         searchIndex: 6, //收缩展示数量
@@ -1648,7 +1737,6 @@
       "screenHeight"
     ]),
     permissionList() {
-      console.log(this.permission, 789787);
       return {
         addBtn: this.vaildData(this.permission.securityGuard_add, false),
         viewBtn: this.vaildData(null, false),
@@ -1758,6 +1846,36 @@
     // this.olondSFZ(); //检查身份证设备是否存在
   },
   methods: {
+    //账号修改
+    accountUpdate(row){
+      this.formAccount = {
+        id: row.id,
+        oldAccount: row.account,
+        account:"",
+      }
+      this.accountVisible = true;
+
+    },
+    //账号修改提交
+    submit(row, done, loading) {
+      var that = this;
+      updateAccount(row).then(
+        () => {
+          that.$refs.formAccount.resetFields();
+          that.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          that.accountVisible = false;
+          that.onLoad(that.page);
+          done();
+        },
+        error => {
+          window.console.log(error);
+          done();
+        }
+      );
+    },
     checkDom(name, fn) {
       //  声明定时器
       let that = this;
@@ -1786,6 +1904,7 @@
       //  首次执行
       checkDom();
     },
+    
     openccc() {
       console.log(this.zhiwenImg);
       // console.log(this.zhiwenChart);
@@ -1964,6 +2083,15 @@
     handleImport1() {
       this.excelBox1 = true;
     },
+    handleImport3() {
+      this.excelBox3 = true;
+    },
+    uploadAfter3(res, done, loading, column) {
+      window.console.log(column);
+      this.excelBox3 = false;
+      this.refreshChange();
+      done();
+    },
     uploadAfter1(res, done, loading, column) {
       window.console.log(column);
       this.excelBox1 = false;
@@ -1987,6 +2115,13 @@
           this.website.tokenHeader
         }=${getToken()}`
       );
+    },
+    handleTemplate3() {
+        window.open(
+          `/api/securityPaper/export-template-security-paper?${
+            this.website.tokenHeader
+          }=${getToken()}`
+        );
     },
     handleImport2() {
       this.excelBox2 = true;
@@ -2337,27 +2472,33 @@
         }
       };
 
-      securitySave(userMap).then(
+      securitySaves(userMap).then(
         res => {
           // console.log(res.data,111111111111111111);
           this.initFlag = false;
           if (res.data.code == 200) {
-            this.$alert("账号为身份证号码,密码为身份证后六位", "温馨提示", {
-              confirmButtonText: "确定",
-              callback: action => {
-                this.$message({
-                  type: "success",
-                  message: `操作成功`
-                });
-                this.onLoad(this.page);
-                done();
-              }
+            // this.$alert("新增成功,密码为身份证后六位", "温馨提示", {
+            //   confirmButtonText: "确定",
+            //   callback: action => {
+            //     this.$message({
+            //       type: "success",
+            //       message: `操作成功`
+            //     });
+            //     this.onLoad(this.page);
+            //     done();
+            //   }
+            // });
+            this.$message({
+              type: "success",
+              message: `操作成功`
             });
+            this.onLoad(this.page);
+            done();
           }
           //保安员证编号不匹配的情况
           if (res.data.code == 201) {
             this.$alert(
-              "用户新增成功!账号为身份证号码,密码为身份证后六位!注:当前保安证编号不匹配,请核实!也可通过提供保安证件信息提交核实申请!",
+              "用户新增成功!,密码为身份证后六位!注:当前保安证编号不匹配,请核实!",
               "温馨提示",
               {
                 confirmButtonText: "确定",
@@ -2410,7 +2551,7 @@
           }
           if (res.data.code == 201) {
             this.$alert(
-              "修改成功!注:当前保安证编号不匹配,请核实!也可通过提供保安证件信息提交核实申请!",
+              "修改成功!注:当前保安证编号不匹配,请核实!",
               "温馨提示",
               {
                 confirmButtonText: "确定",
@@ -2829,7 +2970,6 @@
     },
     //排序
     sortChange(value) {
-      // console.log(value, 51151515);
       if (value.order == "ascending") {
         this.sort = "asc";
       }
@@ -2914,13 +3054,21 @@
               "/api/blade-system/dept/security_lazy-tree?jurisdiction=" +
               that.userInfo.jurisdiction;
 
-            //审查状态查询开启
-            var columnExaminationType = that.findObject(
-              that.option.column,
-              "examinationType"
+            //导入action 修改
+            const importColumn = that.findObject(
+              that.excelOption1.column,
+              "excelFile"
             );
-            columnExaminationType.search = true;
-            columnExaminationType.hide = false;
+            importColumn.action =
+              "/api/blade-user/import-security?deptId=" + this.deptIds;
+
+            //审查状态查询开启
+            // var columnExaminationType = that.findObject(
+            //   that.option.column,
+            //   "examinationType"
+            // );
+            // columnExaminationType.search = true;
+            // columnExaminationType.hide = false;
           } else {
             var ColumnDeptUpdate1 = that.findObject(
               that.option.group,

--
Gitblit v1.9.3