From 85da22c4861736f7b0cabbc75daecbe4fea1bf80 Mon Sep 17 00:00:00 2001
From: heyujie <516346543@qq.com>
Date: 星期日, 04 七月 2021 21:01:12 +0800
Subject: [PATCH] 周天更改

---
 src/pages/systemSettings/index/App.vue |  221 +++++++++++++++++++++++++++++++++---------------------
 1 files changed, 135 insertions(+), 86 deletions(-)

diff --git a/src/pages/systemSettings/index/App.vue b/src/pages/systemSettings/index/App.vue
index 9f3e647..e5988b4 100644
--- a/src/pages/systemSettings/index/App.vue
+++ b/src/pages/systemSettings/index/App.vue
@@ -28,12 +28,20 @@
             @click="openAccount(item, index)"
           >
             <div class="touxiang">
-              <img :src="item.headpic" alt="" />
+              <img
+                v-if="item.headpic"
+                :src="
+                  item.headpic.indexOf('http') > -1
+                    ? item.headpic
+                    : 'http://' + item.headpic
+                "
+                alt=""
+              />
             </div>
             <span class="user-name">{{ item.username }}</span>
           </div>
         </div>
-        <div class="add-account" >
+        <div class="add-account">
           <span class="icon iconfont" @click="showAddAccount">&#xe646;</span>
         </div>
       </div>
@@ -82,7 +90,15 @@
         >
           <div class="content-top">
             <div class="touxiang-big">
-              <img :src="activeAccountItem.headpic" alt="" />
+              <img
+                v-if="activeAccountItem.headpic"
+                :src="
+                  activeAccountItem.headpic.indexOf('http') > -1
+                    ? activeAccountItem.headpic
+                    : 'http://' + activeAccountItem.headpic
+                "
+                alt=""
+              />
             </div>
             <div class="user-desc">
               <div class="username">
@@ -109,7 +125,13 @@
                   >&#xe60c;</span
                 >
               </div>
-              <div class="user-role">{{activeAccountItem.sysRoles.length?activeAccountItem.sysRoles[0].name:""}}</div>
+              <div class="user-role">
+                {{
+                  activeAccountItem.sysRoles.length
+                    ? activeAccountItem.sysRoles[0].name
+                    : ""
+                }}
+              </div>
             </div>
           </div>
           <div class="list-btn">
@@ -156,7 +178,7 @@
           </el-form>
           <div class="btns">
             <div class="cancel" @click="cancelChangePassword">鍙栨秷</div>
-            <div class="ok">淇濆瓨</div>
+            <div class="ok" @click="SaveNewPassword('passwordForm')">淇濆瓨</div>
           </div>
         </div>
 
@@ -201,9 +223,15 @@
           <div class="upload-group">
             <div
               class="upload-jpg"
-              v-for="(item, index) in jpgArr"
+              :class="
+                selectedPic == index && url !== '' ? 'upload-jpg-mask' : ''
+              "
+              v-for="(url, index) in jpgArr"
               :key="index"
-            ></div>
+              @click="pickHeadDefPic(url, index)"
+            >
+              <img v-if="url !== ''" :src="url" alt="" srcset="" />
+            </div>
 
             <el-upload
               class="upload-demo"
@@ -469,7 +497,7 @@
   updatePassword,
   deleteUser,
   getUserMenus,
-  getSysMenus,
+  defHeadPics,
 } from "@/api/user";
 import switchBar from "../components/switchBar";
 import ipInput from "@/components/subComponents/IPInput";
@@ -488,16 +516,6 @@
     generalSettings,
   },
   data() {
-    var validatePass = (rule, value, callback) => {
-      if (value === "") {
-        callback(new Error("璇疯緭鍏ュ瘑鐮�"));
-      } else {
-        if (this.addForm.checkPass !== "") {
-          this.$refs.addForm.validateField("checkPassword");
-        }
-        callback();
-      }
-    };
     var validatePass2 = (rule, value, callback) => {
       if (value === "") {
         callback(new Error("璇峰啀娆¤緭鍏ュ瘑鐮�"));
@@ -507,30 +525,10 @@
         callback();
       }
     };
-    var validatePass3 = (rule, value, callback) => {
-      if (value === "") {
-        callback(new Error("璇疯緭鍏ュ瘑鐮�"));
-      } else {
-        if (this.passwordForm.password !== "") {
-          this.$refs.passwordForm.validateField("pw");
-        }
-        callback();
-      }
-    };
-    var validatePass5 = (rule, value, callback) => {
-      if (value === "") {
-        callback(new Error("璇疯緭鍏ュ瘑鐮�"));
-      } else {
-        if (this.passwordForm.newPassword !== "") {
-          this.$refs.passwordForm.validateField("newPw");
-        }
-        callback();
-      }
-    };
     var validatePass4 = (rule, value, callback) => {
       if (value === "") {
         callback(new Error("璇峰啀娆¤緭鍏ュ瘑鐮�"));
-      } else if (value !== this.passwordForm.confirmPassword) {
+      } else if (value !== this.passwordForm.newPassword) {
         callback(new Error("涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!"));
       } else {
         callback();
@@ -559,6 +557,7 @@
       showSecInput: false,
       showYrsInput: false,
       showMonthInput: false,
+      selectedPic: null,
       showDayInput: false,
       cameraInfo: false,
       dependentScene: false,
@@ -583,7 +582,7 @@
         { name: "閫氱敤璁剧疆" },
       ],
       accountArr: [],
-      jpgArr: [{}, {}, {}, {}, {}, {}, {}, {}, {}],
+      jpgArr: ["", "", "", "", "", "", "", "", ""],
       isManual: false,
       isNtp: true,
       activePage: "璐︽埛",
@@ -620,13 +619,23 @@
             trigger: "blur",
           },
         ],
-        password: [{ validator: validatePass, trigger: "blur" }],
+        password: [
+            { required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'blur' },
+            { min: 6, message: '闀垮害鑷冲皯涓� 6 浣�', trigger: 'blur' }
+          ],
         confirmPassword: [{ validator: validatePass2, trigger: "blur" }],
       },
       pwRules: {
-        pw: [{ validator: validatePass3, trigger: "blur" }],
-        newPw: [{ validator: validatePass5, trigger: "blur" }],
-        confirmNewPw: [{ validator: validatePass4, trigger: "blur" }],
+        // pw: [{ validator: validatePass3, trigger: "blur" }],
+         curPassword: [
+            { required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'blur' },
+            { min: 6, message: '闀垮害鑷冲皯涓� 6 浣�', trigger: 'blur' }
+          ],
+        newPassword: [
+            { required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'blur' },
+            { min: 6, message: '闀垮害鑷冲皯涓� 6 浣�', trigger: 'blur' }
+          ],
+        confirmPassword: [{ validator: validatePass4, trigger: "blur" }],
       },
     };
   },
@@ -636,13 +645,27 @@
   },
   mounted() {
     this.fetchUserList();
+    this.fetchDefHeadPic();
   },
   methods: {
-    fetchUserList() {
+    fetchDefHeadPic() {
+      defHeadPics().then((res) => {
+        res.data.slice(0, 5).forEach((x, i) => {
+          this.jpgArr[i] = x;
+        });
+      });
+    },
+    fetchUserList(showLast = false) {
       getUsers().then((res) => {
         this.accountArr = res.data;
         if (this.accountArr.length) {
           this.activeAccountItem = this.accountArr[0];
+        }
+        if (showLast) {
+          this.cancelAdd();
+          const lastIdx = this.accountArr.length - 1;
+          this.openAccount(this.accountArr[lastIdx], lastIdx);
+          
         }
       });
     },
@@ -661,7 +684,7 @@
         nickname: this.inputNickName,
       }).then((res) => {
         this.$message.success(res.msg);
-        this.fetchUserList();
+        this.fetchUserList(true);
       });
     },
     openAccount(item, i) {
@@ -790,7 +813,7 @@
     },
     submitClock() {
       if (this.syncType === "1") {
-        if (this.ntpServer === ""||this.ntpServer === "...") {
+        if (this.ntpServer === "" || this.ntpServer === "...") {
           this.$notify({
             type: "error",
             message: "NTP 鏈嶅姟鍣ㄥ湴鍧�涓嶈兘涓虹┖",
@@ -870,7 +893,8 @@
       let param = new FormData();
       param.append("file", params.file);
       uploadHeadPic(param).then((res) => {
-        this.addForm.headpic = res.data;
+        let index = this.jpgArr.findIndex((x) => x == "");
+        this.$set(this.jpgArr, index, res.data);
       });
     },
     initClockConf(ntpTest = false) {
@@ -879,8 +903,8 @@
           this.timezone = rsp.data.time_zone;
           if (!ntpTest) {
             this.syncType = rsp.data.ntp ? "1" : "2";
-            this.isNtp = rsp.data.ntp
-            this.isManual = !rsp.data.ntp
+            this.isNtp = rsp.data.ntp;
+            this.isManual = !rsp.data.ntp;
           }
           if (rsp.data.ntp) {
             this.ntpServer = rsp.data.ntp_server;
@@ -889,7 +913,7 @@
           this.timestamp = rsp.data.local_time;
           if (this.clockTimer === null) {
             this.runClock();
-            if(this.isManual)this.parseTime()
+            if (this.isManual) this.parseTime();
           }
         }
       });
@@ -939,8 +963,25 @@
     cancelChangePassword() {
       this.isChangePw = false;
       this.inAccountDetail = false;
+      this.$refs['passwordForm'].resetFields()
     },
-
+    SaveNewPassword(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          updatePassword({
+            oldPwd: this.passwordForm.curPassword,
+            newPwd: this.passwordForm.newPassword,
+          }).then(
+            (res) => {
+              this.$message.success(res.data);
+            },
+            (err) => {
+              this.$message.warning("淇濆瓨澶辫触锛�" + err.msg);
+            }
+          );
+        }
+      });
+    },
     saveAddAccount(formName) {
       this.$refs[formName].validate((valid) => {
         if (valid) {
@@ -953,6 +994,7 @@
           addUser(data).then(
             (res) => {
               this.$message.success(res.data);
+              this.fetchUserList(true);
             },
             (err) => {
               this.$message.warning("淇濆瓨澶辫触锛�" + err.msg);
@@ -963,6 +1005,10 @@
           return false;
         }
       });
+    },
+    pickHeadDefPic(url, i) {
+      this.addForm.headpic = url;
+      this.selectedPic = i;
     },
     testNTP() {
       this.ntpTestLoading = true;
@@ -1011,9 +1057,10 @@
         cancelButtonText: "鍙栨秷",
       })
         .then(() => {
-          deleteUser({
+          let obj = {
             ids: [this.activeAccountItem.id],
-          }).then((res) => {
+          };
+          deleteUser(obj).then((res) => {
             if (res.success) {
               this.fetchUserList();
               this.$message({
@@ -1041,10 +1088,14 @@
       this.isSetPermission = true;
       this.fetchMenu();
     },
-    parseTime(){
+    parseTime() {
       debugger;
-      [this.syncYrs, this.syncMonth, this.syncDay] = this.equipmentDate.split("-");
-      [this.syncHour, this.syncMin, this.syncSec] = this.equipmentTime.split(":");
+      [this.syncYrs, this.syncMonth, this.syncDay] = this.equipmentDate.split(
+        "-"
+      );
+      [this.syncHour, this.syncMin, this.syncSec] = this.equipmentTime.split(
+        ":"
+      );
     },
     changeSwitch(str) {
       if (str == "isNtp") {
@@ -1053,28 +1104,15 @@
         this.isNtp = !this[str];
       }
       this.syncType = this.isNtp ? "1" : "2";
-      if (this.isManual) this.parseTime()
+      if (this.isManual) this.parseTime();
     },
   },
   computed: {
-    isShowAddAccount(){
-      const info = JSON.parse(sessionStorage.getItem('userInfo'))
-      return true
-    }
+    isShowAddAccount() {
+      const info = JSON.parse(sessionStorage.getItem("userInfo"));
+      return true;
+    },
   },
-  // watch: {
-  //   isManual(v) {
-  //     this.isNtp = !v;
-  //     v && (this.syncType = "2");
-  //     if (v) {
-       
-  //     }
-  //   },
-  //   isNtp(v) {
-  //     this.isManual = !v;
-  //     v && (this.syncType = "1");
-  //   },
-  // },
 };
 </script>
 <style lang="scss">
@@ -1279,9 +1317,9 @@
                 cursor: pointer;
               }
             }
-            .user-role{
-                  margin: 5px 0 0 15px;
-    font-size: 14px;
+            .user-role {
+              margin: 5px 0 0 15px;
+              font-size: 14px;
             }
           }
         }
@@ -1362,22 +1400,31 @@
 
       .add-account-page {
         .upload-group {
-          height: 120px;
-          width: 350px;
+          height: 130px;
+          width: 360px;
           margin: 0 auto;
           overflow: hidden;
           .upload-jpg {
-            height: 50px;
-            width: 50px;
+            height: 46px;
+            width: 46px;
             float: left;
             margin: 0 10px;
-            background-color: antiquewhite;
             margin-bottom: 20px;
-            border-radius: 25px;
+            background-color: rgba(242, 242, 242, 1);
+            border: 3px solid transparent;
+            border-radius: 50%;
+            cursor: pointer;
+            img {
+              height: 46px;
+              width: 46px;
+            }
+          }
+          .upload-jpg-mask {
+            border: 3px solid blue;
           }
           .upload-jpg-up {
-            height: 50px;
-            width: 50px;
+            height: 52px;
+            width: 52px;
             float: left;
             display: flex;
             background-color: rgba(242, 242, 242, 1);
@@ -1389,6 +1436,8 @@
             font-size: 12px;
             cursor: pointer;
           }
+          .loaded-Pic {
+          }
         }
         .fill-group {
           .p-title {

--
Gitblit v1.8.0