From c4e67a8942e514b65ab41bb19781d50576c15725 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Fri, 24 Sep 2021 19:56:52 +0800
Subject: [PATCH] 用户

---
 src/views/securityGuard/securityGuard.vue |  248 ++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 190 insertions(+), 58 deletions(-)

diff --git a/src/views/securityGuard/securityGuard.vue b/src/views/securityGuard/securityGuard.vue
index d1609ba..f2eafe1 100644
--- a/src/views/securityGuard/securityGuard.vue
+++ b/src/views/securityGuard/securityGuard.vue
@@ -1,5 +1,5 @@
 <template>
-  <el-row :class="{securityGuard : isSecurity}">
+  <el-row :class="{ securityGuard: isSecurity }">
     <el-col :span="0" style="display: none">
       <div class="box">
         <el-scrollbar>
@@ -47,6 +47,15 @@
               v-if="permission.securityGuard_import"
               @click="handleImport1"
               >批量导入
+            </el-button>
+            <el-button
+              type="success"
+              size="small"
+              plain
+              icon="el-icon-upload2"
+              v-if="permission.securityGuard_import"
+              @click="handleImport2"
+              >个人照片批量上传
             </el-button>
             <el-button
               type="danger"
@@ -121,9 +130,17 @@
               icon="el-icon-edit"
               :size="size"
               :type="type"
-              v-if="permission.securityGuard_delete"
+              v-if="permission.securityGuard_delete && row.status != 2"
               @click.stop="rowDel(row)"
               >离职登记
+            </el-button>
+            <el-button
+              icon="el-icon-edit"
+              :size="size"
+              :type="type"
+              v-if="row.status == 2"
+              @click.stop="rowDellook(row)"
+              >离职查询
             </el-button>
             <el-button
               icon="el-icon-edit"
@@ -250,6 +267,19 @@
             </template>
           </avue-form>
         </el-dialog>
+        <el-dialog
+          title="个人照片批量上传"
+          append-to-body
+          :visible.sync="excelBox2"
+          width="555px"
+        >
+          <avue-form
+            :option="excelOption2"
+            v-model="excelForm2"
+            :upload-after="uploadAfter2"
+          >
+          </avue-form>
+        </el-dialog>
       </basic-container>
     </el-col>
   </el-row>
@@ -297,9 +327,34 @@
         callback();
       }
     };
+    const validatePassNumber = (rule, value, callback) => {
+      var test = /^[0-9]*$/gm;
+      if (!test.test(value)) {
+        callback(new Error("请输入数字"));
+      } else {
+        callback();
+      }
+    };
+    const validatePassCardid = (rule, value, callback) => {
+      var test = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/g;
+      if (!test.test(value) && value.length < 17) {
+        callback(new Error("请输入正确身份证号码"));
+      } else {
+        callback();
+      }
+    };
+    const validatePassPhone = (rule, value, callback) => {
+      var test = /^(13[0-9]|14[0-9]|15[0-9]|17[0-9]|18[0-9])\d{8}$/g;
+      if (!test.test(value)) {
+        callback(new Error("请输入正确手机号码"));
+      } else {
+        callback();
+      }
+    };
     return {
       securityid: "",
       excelBox1: false,
+      excelBox2: false,
       isSecurity: true,
       excelForm1: {},
       excelOption1: {
@@ -327,9 +382,28 @@
           },
         ],
       },
-
-      form: {
+      excelForm2: {},
+      excelOption2: {
+        submitBtn: false,
+        emptyBtn: false,
+        column: [
+          {
+            label: "文件上传",
+            prop: "file",
+            type: "upload",
+            drag: true,
+            loadText: "文件上传中,请稍等",
+            span: 24,
+            propsHttp: {
+              res: "data",
+            },
+            tip: "请上传 zip 压缩文件",
+            action: "/api/blade-resource/oss/endpoint/put-file-zip",
+          },
+        ],
       },
+
+      form: {},
       search: {},
       roleBox: false,
       excelBox: false,
@@ -441,7 +515,7 @@
               {
                 label: "登录账号",
                 prop: "account",
-                editDisabled:true,
+                editDisabled: true,
                 rules: [
                   {
                     required: true,
@@ -454,7 +528,7 @@
               {
                 label: "密码",
                 prop: "password",
-                type:'password',
+                type: "password",
                 hide: true,
                 editDisplay: false,
                 viewDisplay: false,
@@ -465,7 +539,7 @@
               {
                 label: "确认密码",
                 prop: "password2",
-                type:'password',
+                type: "password",
                 hide: true,
                 editDisplay: false,
                 viewDisplay: false,
@@ -473,7 +547,6 @@
                   { required: true, validator: validatePass2, trigger: "blur" },
                 ],
               },
-              
             ],
           },
           {
@@ -508,17 +581,35 @@
                 listType: "picture-img",
                 propsHttp: {
                   res: "data",
-                  url: "link",
+                  url: "url",
                 },
                 canvasOption: {
                   text: " ",
                   ratio: 0.1,
                 },
-                action: "/api/blade-resource/oss/endpoint/put-file",
+                action: "/api/blade-resource/oss/endpoint/put-files",
                 tip: "只能上传jpg/png个人头像,且不超过500kb",
-                span: 12,
-                row: true,
+                span: 10,
+                // row: true,
                 prop: "avatar",
+              },
+              {
+                label: "指纹信息",
+                type: "upload",
+                listType: "picture-img",
+                propsHttp: {
+                  res: "data",
+                  url: "url",
+                },
+                canvasOption: {
+                  text: " ",
+                  ratio: 0.1,
+                },
+                action: "/api/blade-resource/oss/endpoint/put-files",
+                tip: "只能上传jpg/png指纹信息,且不超过500kb",
+                span: 10,
+                // row: true,
+                prop: "fingerprint",
               },
               {
                 label: "是否持证",
@@ -553,6 +644,11 @@
                     message: "请输入身份证号",
                     trigger: "blur",
                   },
+                  {
+                    required: true,
+                    validator: validatePassCardid,
+                    trigger: "blur",
+                  },
                 ],
               },
               {
@@ -563,6 +659,11 @@
                   {
                     required: true,
                     message: "请输入手机号",
+                    trigger: "blur",
+                  },
+                  {
+                    required: true,
+                    validator: validatePassPhone,
                     trigger: "blur",
                   },
                 ],
@@ -638,6 +739,13 @@
                 type: "date",
                 format: "yyyy-MM-dd",
                 valueFormat: "yyyy-MM-dd",
+                rules: [
+                  {
+                    required: true,
+                    message: "请输入入职时间",
+                    trigger: "click",
+                  },
+                ],
               },
               {
                 label: "性别",
@@ -851,8 +959,8 @@
     if (!website.tenantMode) {
       this.initData(website.tenantId);
     }
-    console.log(this.search,111);
-    this.search['status'] = 1;
+    console.log(this.search, 111);
+    this.search["status"] = 1;
   },
   methods: {
     handleImport1() {
@@ -861,11 +969,20 @@
     uploadAfter1(res, done, loading, column) {
       window.console.log(column);
       this.excelBox1 = false;
-      // this.refreshChange();
+      this.refreshChange();
       done();
     },
     handleTemplate1() {
       window.open(`/api/blade-user/export-template-security`);
+    },
+    handleImport2() {
+      this.excelBox2 = true;
+    },
+    uploadAfter2(res, done, loading, column) {
+      window.console.log(column);
+      this.excelBox2 = false;
+      this.refreshChange();
+      done();
     },
 
     //行点击事件
@@ -924,33 +1041,35 @@
         row.postId = row.postId.join(",");
       }
 
-      const user = {
-        account: row.account,
-        address: row.address,
-        birthday: row.birthday,
-        cardid: row.cardid,
-        deptId: row.deptId,
-        education: row.education,
-        email: row.email,
-        height: row.height,
-        hold: row.hold,
-        jurisdiction: row.jurisdiction,
-        myPicture: row.myPicture,
-        name: row.name,
-        nation: row.nation,
-        nativeplace: row.nativeplace,
-        password: row.password,
-        password2: row.password2,
-        phone: row.phone,
-        politicaloutlook: row.politicaloutlook,
-        realName: row.realName,
-        registered: row.registered,
-        rtime: row.rtime,
-        securitynumber: row.securitynumber,
-        sex: row.sex,
-      };
       const userMap = {
-        user: user
+        user: {
+          account: row.account,
+          avatar: row.avatar,
+          fingerprint: row.fingerprint,
+          healstats: row.healstats,
+          address: row.address,
+          birthday: row.birthday,
+          cardid: row.cardid,
+          deptId: row.deptId,
+          education: row.education1,
+          email: row.email,
+          height: row.height,
+          hold: row.hold,
+          jurisdiction: row.jurisdiction,
+          myPicture: row.myPicture,
+          name: row.name,
+          nation: row.nation,
+          nativeplace: row.nativeplace,
+          password: row.password,
+          password2: row.password2,
+          phone: row.phone,
+          politicaloutlook: row.politicaloutlook,
+          realName: row.realName,
+          registered: row.registered,
+          rtime: row.rtime,
+          securitynumber: row.securitynumber,
+          sex: row.sex,
+        },
       };
       securitySave(userMap).then(
         () => {
@@ -974,7 +1093,8 @@
       row.postId = row.postId.join(",");
       //值替换,education 放在页面会卡死
       row.education = row.education1;
-      update(row).then(() => {
+      update(row).then(
+        () => {
           this.initFlag = false;
           this.onLoad(this.page);
           this.$message({
@@ -989,23 +1109,38 @@
         }
       );
     },
+    rowDellook(row) {
+      // console.log(row.reasonForLeav);
+      this.$alert(
+        row.reasonForLeav == "" ? "未填写" : row.reasonForLeav,
+        "离职原因",
+        {
+          confirmButtonText: "确定",
+          callback: (action) => {},
+        }
+      );
+    },
     rowDel(row) {
-      this.$confirm("确定将选择保安登记离职?", {
-        confirmButtonText: "确定",
+      this.$prompt("离职原因", "提示", {
+        confirmButtonText: "确定离职",
         cancelButtonText: "取消",
-        type: "warning",
+        inputErrorMessage: "",
       })
-        .then(() => {
+        .then(({ value }) => {
+          console.log(value);
+          row.reasonForLeav = value;
           row.status = "2";
-          return update(row);
-        })
-        .then(() => {
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!",
+          // console.log(update);
+          // return;
+          update(row).then((res) => {
+            this.$message({
+              type: "success",
+              message: "操作成功",
+            });
           });
-        });
+          this.refreshChange();
+        })
+        .catch(() => {});
     },
     rowCheck(row) {
       this.$confirm("确定审查异常标记?", {
@@ -1191,10 +1326,7 @@
       roleIds.forEach((roleId) => {
         getRoleDetail(roleId).then((res) => {
           var roleAlias = res.data.data.roleAlias;
-          if (
-            roleAlias == "保安公司管理员" ||
-            roleAlias == "保安"
-          ) {
+          if (roleAlias == "保安公司管理员" || roleAlias == "保安") {
             //去除保安公司查询
             const column = that.findObject(that.option.column, "deptId");
             column.search = false;

--
Gitblit v1.9.3