From 33298bf2b94d3e100e82aa1a1d41c7a414193e3b Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Wed, 28 Apr 2021 17:39:13 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/jfpt-Vue

---
 src/page/login/codelogin.vue |  466 ++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 256 insertions(+), 210 deletions(-)

diff --git a/src/page/login/codelogin.vue b/src/page/login/codelogin.vue
index b29aa58..b33f53d 100644
--- a/src/page/login/codelogin.vue
+++ b/src/page/login/codelogin.vue
@@ -51,15 +51,17 @@
         <i slot="prefix" class="icon-shouji"/>
       </el-input>
     </el-form-item>
-    <el-select v-model="loginForm.deptid" placeholder="请选择部门" style="width: 580px;">
-      <el-option
-        v-for="item in options"
-        :key="item.code"
-        :label="item.deptname"
-        :value="item.deptid">
-      </el-option>
-      <i slot="prefix" class="icon-yonghu"/>
-    </el-select>
+    <!--    <el-select v-model="loginForm.deptid" placeholder="请选择部门" style="width: 580px;">-->
+    <!--      <el-option-->
+    <!--        v-for="item in options"-->
+    <!--        :key="item.code"-->
+    <!--        :label="item.deptname"-->
+    <!--        :value="item.deptid">-->
+    <!--      </el-option>-->
+    <!--      <i slot="prefix" class="icon-yonghu"/>-->
+    <!--    </el-select>-->
+    <avue-input-tree style="width:580px !important" default-expand-all v-model="loginForm.deptid" placeholder="请选择部门" type="tree"
+                     :dic="dic"></avue-input-tree>
     <div style="margin-top: 16px">
       <el-radio v-model="loginForm.sex" label="0" border size="medium">男</el-radio>
       <el-radio v-model="loginForm.sex" label="1" border size="medium">女</el-radio>
@@ -68,222 +70,266 @@
       <el-button size="small"
                  type="primary"
                  @click.native.prevent="handleLogin"
-                 class="z-login-submit">{{$t('login.zc')}}</el-button>
+                 class="z-login-submit">{{ $t('login.zc') }}
+      </el-button>
       <el-button size="small"
                  @click.native.prevent="gbs"
-                 class="z-login-submit">{{$t('login.gb')}}</el-button>
+                 class="z-login-submit">{{ $t('login.gb') }}
+      </el-button>
     </el-form-item>
   </el-form>
 </template>
 
 <script>
-  import { isvalidatemobile } from "@/util/validate";
-  import {inster} from "@/api/zc/zc";
-  import {fetch,ss} from "@/api/system/dept";
-  import { mapGetters } from "vuex";
-  export default {
-    name: "codelogin",
-    data() {
-      const validatePass = (rule, value, callback) => {
-        if (value === '') {
-          callback(new Error('请输入密码'));
-        } else {
-          callback();
-        }
-      };
-      const validatePass2 = (rule, value, callback) => {
-        if (value === '') {
-          callback(new Error('请再次输入密码'));
-        } else if (value !== this.loginForm.password) {
-          callback(new Error('两次输入密码不一致!'));
-        } else {
-          callback();
-        }
-      };
-      const validatePhone = (rule, value, callback) => {
-        if (isvalidatemobile(value)[0]) {
-          callback(new Error(isvalidatemobile(value)[1]));
-        } else {
-          callback();
-        }
-      };
-      const validateCode = (rule, value, callback) => {
-        if (value.length !== 4) {
-          callback(new Error("请输入4位数的验证码"));
-        } else {
-          callback();
-        }
-      };
+import {isvalidatemobile} from "@/util/validate";
+import {inster} from "@/api/zc/zc";
+import {fetch, ss} from "@/api/system/dept";
+import {mapGetters} from "vuex";
+
+export default {
+  name: "codelogin",
+  data() {
+    const validatePass = (rule, value, callback) => {
+      if (value === '') {
+        callback(new Error('请输入密码'));
+      } else {
+        callback();
+      }
+    };
+    const validatePass2 = (rule, value, callback) => {
+      if (value === '') {
+        callback(new Error('请再次输入密码'));
+      } else if (value !== this.loginForm.password) {
+        callback(new Error('两次输入密码不一致!'));
+      } else {
+        callback();
+      }
+    };
+    const validatePhone = (rule, value, callback) => {
+      if (isvalidatemobile(value)[0]) {
+        callback(new Error(isvalidatemobile(value)[1]));
+      } else {
+        callback();
+      }
+    };
+    const validateCode = (rule, value, callback) => {
+      if (value.length !== 4) {
+        callback(new Error("请输入4位数的验证码"));
+      } else {
+        callback();
+      }
+    };
+    return {
+      msgText: "",
+      msgTime: "",
+      dic: [],
+      msgKey: false,
+      loginForm: {
+        phone: "",
+        username: "",
+        sname: "",
+        password: "",
+        sex: null,
+        deptid: '',
+        password2: ""
+      },
+      value: '',
+      options: [],
+      loginRules: {
+        phone: [{required: true, trigger: "blur", validator: validatePhone}],
+        code: [{required: true, trigger: "blur", validator: validateCode}],
+        password: [{required: true, validator: validatePass, trigger: 'blur'}],
+        password2: [{required: true, validator: validatePass2, trigger: 'blur'}],
+        username: [
+          {required: true, message: "请输入用户名", trigger: "blur"}
+        ],
+      },
+      passwordType: "password",
+      passwordTypes: "password2"
+    };
+  },
+  created() {
+    this.msgText = this.config.MSGINIT;
+    this.msgTime = this.config.MSGTIME;
+  },
+  mounted() {
+    var that = this;
+
+    //this.allmedia();
+    ss().then(res => {
+      that.dic = that.ergodicData(res.data.data)
+    });
+  },
+  computed: {
+    ...mapGetters(["tagWel"]),
+    config() {
       return {
-        msgText: "",
-        msgTime: "",
-        msgKey: false,
-        loginForm: {
-          phone: "",
-          username: "",
-          sname: "",
-          password: "",
-          sex: null,
-          deptid:'',
-          password2:""
-        },
-        value:'',
-        options: [],
-        loginRules: {
-          phone: [{ required: true, trigger: "blur", validator: validatePhone }],
-          code: [{ required: true, trigger: "blur", validator: validateCode }],
-          password: [{required: true, validator: validatePass, trigger: 'blur'}],
-          password2: [{required: true, validator: validatePass2, trigger: 'blur'}],
-          username: [
-            {required: true, message: "请输入用户名", trigger: "blur"}
-          ],
-        },
-        passwordType: "password",
-        passwordTypes: "password2"
+        MSGINIT: this.$t("login.msgText"),
+        MSGSCUCCESS: this.$t("login.msgSuccess"),
+        MSGTIME: 60
       };
-    },
-    created() {
-      this.msgText = this.config.MSGINIT;
-      this.msgTime = this.config.MSGTIME;
-    },
-    mounted() {
-      this.allmedia();
-    },
-    computed: {
-      ...mapGetters(["tagWel"]),
-      config() {
-        return {
-          MSGINIT: this.$t("login.msgText"),
-          MSGSCUCCESS: this.$t("login.msgSuccess"),
-          MSGTIME: 60
-        };
-      }
-    },
-    props: [],
-    methods: {
-      clearValidate(formName) {
-        this.$refs[formName].clearValidate();
-      },
-      async allmedia() {
-        ss().then(res => {
-           res.data.data.forEach(element => {
-             this.options.push({deptname:element.dept_name,deptid:element.deptid});
-           })
-        });
-
-        // let res = await fetch('/api/blade-system/dept/selectInfo');
-        // res.data.forEach(element => {
-        //   this.options.push({deptname:element.dept_name,deptid:element.deptid});
-        // })
-      },
-      refreshCode(row) {
-        inster(row).then(res => {
-          this.loginForm.phone=""
-          this.loginForm.username=""
-          this.loginForm.sname=""
-          this.loginForm.sex=null
-          this.loginForm.password=""
-          this.loginForm.password2=""
-          this.loginForm.deptid=""
-          this.$notify({
-            title: '注册成功,待审核',
-            type: 'warning'
-          });
-        })
-        var z = document.querySelector('.z');
-        z.style.display = 'none';
-        this.clearValidate('loginForm')
-        this.clearValidate('loginForm')
-      },
-      gb() {
-        this.loginForm.phone=""
-        this.loginForm.username=""
-        this.loginForm.sname=""
-        this.loginForm.sex=null
-        this.loginForm.password=""
-        this.loginForm.password2=""
-        this.loginForm.deptid=""
-        var zs = document.querySelector('.z');
-        zs.style.display = 'none';
-        this.clearValidate('loginForm')
-      },
-      handleSend() {
-        if (this.msgKey) return;
-        this.msgText = this.msgTime + this.config.MSGSCUCCESS;
-        this.msgKey = true;
-        const time = setInterval(() => {
-          this.msgTime--;
-          this.msgText = this.msgTime + this.config.MSGSCUCCESS;
-          if (this.msgTime === 0) {
-            this.msgTime = this.config.MSGTIME;
-            this.msgText = this.config.MSGINIT;
-            this.msgKey = false;
-            clearInterval(time);
-          }
-        }, 1000);
-      },
-      showPassword() {
-        this.passwordType === ""
-          ? (this.passwordType = "password")
-          : (this.passwordType = "");
-      },
-      showPasswords() {
-        this.passwordType === ""
-          ? (this.passwordType = "password2")
-          : (this.passwordType = "");
-      },
-      handleLogin() {
-        this.$refs.loginForm.validate(valid => {
-          if (valid) {
-            this.refreshCode(this.loginForm);
-            this.message('dahsiofhiusa');
-            return Promise.reject(new Error("注册成功,待审核"));
-          }
-        });
-      },
-      gbs(){
-        this.gb();
-      }
     }
+  },
+  props: [],
+  methods: {
+    ergodicData(val) {
+      var arr = [];
+      arr.push({label: val[0].title, value: val[0].value, id: val[0].id, parent_id: val[0].parent_id});
+      if (val.length > 1) {
+        val.forEach((item, index) => {
+          if (index > 0) {
+            var ind = true;
+            var arrInd = 0;
+            arr.forEach((it, i) => {
+              if (item.parent_id == it.id) {
+                ind = false;
+                arrInd = i;
+                return
+              }
+            })
+            if (ind == false) {
+              if (arr[arrInd].children && arr[arrInd].children.length > 0) {
+                arr[arrInd].children.push({label: item.title, value: item.value, id: item.id, parent_id: item.parent_id});
+              } else {
+                arr[arrInd].children = [];
+                arr[arrInd].children.push({label: item.title, value: item.value, id: item.id, parent_id: item.parent_id});
+              }
+            } else {
+              arr.push({label: item.title, value: item.value, id: item.id, parent_id: item.parent_id});
+            }
+          }
+        })
+      }
 
-  };
+      return arr;
+    },
+
+    clearValidate(formName) {
+      this.$refs[formName].clearValidate();
+    },
+    async allmedia() {
+      ss().then(res => {
+        res.data.data.forEach(element => {
+          this.options.push({deptname: element.dept_name, deptid: element.deptid});
+        })
+      });
+
+      // let res = await fetch('/api/blade-system/dept/selectInfo');
+      // res.data.forEach(element => {
+      //   this.options.push({deptname:element.dept_name,deptid:element.deptid});
+      // })
+    },
+    refreshCode(row) {
+      console.log(this.loginForm)
+      inster(row).then(res => {
+        this.loginForm.phone = ""
+        this.loginForm.username = ""
+        this.loginForm.sname = ""
+        this.loginForm.sex = null
+        this.loginForm.password = ""
+        this.loginForm.password2 = ""
+        this.loginForm.deptid = ""
+        this.$notify({
+          title: '注册成功,待审核',
+          type: 'warning'
+        });
+      })
+      var z = document.querySelector('.z');
+      z.style.display = 'none';
+      this.clearValidate('loginForm')
+      this.clearValidate('loginForm')
+    },
+    gb() {
+      this.loginForm.phone = ""
+      this.loginForm.username = ""
+      this.loginForm.sname = ""
+      this.loginForm.sex = null
+      this.loginForm.password = ""
+      this.loginForm.password2 = ""
+      this.loginForm.deptid = ""
+      var zs = document.querySelector('.z');
+      zs.style.display = 'none';
+      this.clearValidate('loginForm')
+    },
+    handleSend() {
+      if (this.msgKey) return;
+      this.msgText = this.msgTime + this.config.MSGSCUCCESS;
+      this.msgKey = true;
+      const time = setInterval(() => {
+        this.msgTime--;
+        this.msgText = this.msgTime + this.config.MSGSCUCCESS;
+        if (this.msgTime === 0) {
+          this.msgTime = this.config.MSGTIME;
+          this.msgText = this.config.MSGINIT;
+          this.msgKey = false;
+          clearInterval(time);
+        }
+      }, 1000);
+    },
+    showPassword() {
+      this.passwordType === ""
+        ? (this.passwordType = "password")
+        : (this.passwordType = "");
+    },
+    showPasswords() {
+      this.passwordType === ""
+        ? (this.passwordType = "password2")
+        : (this.passwordType = "");
+    },
+    handleLogin() {
+      this.$refs.loginForm.validate(valid => {
+        console.log(valid)
+        if (valid) {
+          this.refreshCode(this.loginForm);
+          this.message('dahsiofhiusa');
+          return Promise.reject(new Error("注册成功,待审核"));
+        }
+      });
+    },
+    gbs() {
+      this.gb();
+    }
+  }
+
+};
 </script>
 
 <style>
-  .msg-text {
-    display: block;
-    width: 60px;
-    font-size: 12px;
-    text-align: center;
-    cursor: pointer;
-  }
-  .msg-text.display {
-    color: #ccc;
-  }
+.msg-text {
+  display: block;
+  width: 60px;
+  font-size: 12px;
+  text-align: center;
+  cursor: pointer;
+}
 
-  .z-login-submit-prv {
-    margin-top: 20px;
-    padding: 0 10%;
-    box-sizing: border-box;
-  }
+.msg-text.display {
+  color: #ccc;
+}
 
-  .z-login-submit-prv>div {
-    width: 80%;
-    display: flex;
-  }
+.z-login-submit-prv {
+  margin-top: 20px;
+  padding: 0 10%;
+  box-sizing: border-box;
+}
 
-  .z-login-submit {
-    flex: 1;
-    height: 45px;
-    border: 1px solid #409EFF;
-    background: none;
-    font-size: 18px;
-    letter-spacing: 2px;
-    font-weight: 300;
-    color: #409EFF;
-    cursor: pointer;
-    font-family: "neo";
-    -webkit-transition: 0.25s;
-    transition: 0.25s;
-  }
+.z-login-submit-prv > div {
+  width: 80%;
+  display: flex;
+}
+
+.z-login-submit {
+  flex: 1;
+  height: 45px;
+  border: 1px solid #409EFF;
+  background: none;
+  font-size: 18px;
+  letter-spacing: 2px;
+  font-weight: 300;
+  color: #409EFF;
+  cursor: pointer;
+  font-family: "neo";
+  -webkit-transition: 0.25s;
+  transition: 0.25s;
+}
 </style>

--
Gitblit v1.9.3