Browse Source

Merge branch 'master' of http://git.cc-lotus.info/count/webnew-count

guhongwei 5 years ago
parent
commit
a2ed1dd537
2 changed files with 59 additions and 10 deletions
  1. 35 4
      src/views/pcenter/pinfo.vue
  2. 24 6
      src/views/register.vue

+ 35 - 4
src/views/pcenter/pinfo.vue

@@ -93,6 +93,9 @@ import { mapState, createNamespacedHelpers } from 'vuex';
 const { mapActions: staff } = createNamespacedHelpers('staff');
 const { mapActions: expert } = createNamespacedHelpers('expert');
 const { mapActions: user } = createNamespacedHelpers('user');
+const { mapActions: department } = createNamespacedHelpers('department');
+const { mapActions: level } = createNamespacedHelpers('level');
+const { mapActions: login } = createNamespacedHelpers('login');
 export default {
   name: 'pinfo',
   props: {},
@@ -128,20 +131,40 @@ export default {
     ...mapState(['user']),
   },
   methods: {
-    ...user(['update']),
+    ...user(['update', 'fetch']),
     ...staff({ staffQuery: 'query', staffUpdate: 'update', staffFetch: 'fetch' }),
     ...expert({ expertQuery: 'query', expertUpdate: 'update', expertFetch: 'fetch' }),
+    ...department({ departmentQuery: 'query', departmentFetch: 'fetch' }),
+    ...level({ levelQuery: 'query', levelFetch: 'fetch' }),
+    ...login({ logout: 'logout' }),
     async search() {
+      this.searchInfo();
+      this.selectChild();
       if (this.user.type === '3') {
-        this.$set(this, `form`, this.user);
+        const user = await this.fetch(this.user.uid);
+        this.$set(this, `form`, user.data);
       } else if (this.user.type === '2') {
-        const expert = this.expertFetch(this.user.userid);
+        const expert = await this.expertFetch(this.user.userid);
         this.$set(this, `form`, expert.data);
       } else if (this.user.type === '1' || this.user.type === '0') {
-        const staff = this.staffFetch(this.user.userid);
+        const staff = await this.staffFetch(this.user.userid);
         this.$set(this, `form`, staff.data);
       }
     },
+    // 部门
+    async searchInfo() {
+      let res = await this.departmentQuery();
+      if (this.$checkRes(res)) {
+        this.$set(this, `deptList`, res.data);
+      }
+    },
+    // 职务
+    async selectChild(dept_id) {
+      let res = await this.levelQuery(dept_id);
+      if (this.$checkRes(res)) {
+        this.$set(this, `levelList`, res.data);
+      }
+    },
     inputIdnumber() {
       let card = this.form.id_number;
       if (card.length == 18) {
@@ -179,10 +202,18 @@ export default {
       } else {
         this.$message.error('信息修改失败');
       }
+      if (data.phone != this.user.phone) {
+        this.logoutBtn();
+      }
     },
     uploadSuccess({ type, data }) {
       this.$set(this.form, `${type}`, data.uri);
     },
+    // 退出登录
+    logoutBtn() {
+      this.logout();
+      this.$router.push({ path: '/' });
+    },
   },
 };
 </script>

+ 24 - 6
src/views/register.vue

@@ -36,16 +36,16 @@
                     </el-radio-group>
                   </el-form-item>
                   <el-form-item label="性别" prop="gender" v-if="form.type == '0' || form.type == '1' || form.type == '2'">
-                    <el-radio-group v-model="form.gender">
-                      <el-radio label="0">女</el-radio>
-                      <el-radio label="1">男</el-radio>
+                    <el-radio-group v-model="form.gender" disabled>
+                      <el-radio label="男">男</el-radio>
+                      <el-radio label="女">女</el-radio>
                     </el-radio-group>
                   </el-form-item>
                   <el-form-item label="家庭住址" prop="address" v-if="form.type == '0' || form.type == '1' || form.type == '2'">
                     <el-input v-model="form.address" placeholder="请输入家庭住址"></el-input>
                   </el-form-item>
                   <el-form-item label="身份证号" prop="id_number" v-if="form.type == '0' || form.type == '1' || form.type == '2'">
-                    <el-input v-model="form.id_number" placeholder="请输入身份证号"></el-input>
+                    <el-input v-model="form.id_number" placeholder="请输入身份证号" @input="inputIdnumber()"></el-input>
                   </el-form-item>
                   <el-form-item label="所在部门" prop="dept_id" v-if="form.type == '0' || form.type == '1'">
                     <el-select v-model="form.dept_id" filterable @change="selectChild">
@@ -63,8 +63,8 @@
                   <el-form-item label="头像" prop="img_url" v-if="form.type == '2'">
                     <upload :limit="1" :data="form.img_url" type="img_url" :url="'/files/imgpath/upload'" @upload="uploadSuccess"></upload>
                   </el-form-item>
-                  <el-form-item label="出生" prop="birthday" v-if="form.type == '2'">
-                    <el-date-picker v-model="form.birthday" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"> </el-date-picker>
+                  <el-form-item label="出生" prop="birthday" v-if="form.type !== '3'">
+                    <el-date-picker disabled v-model="form.birthday" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"> </el-date-picker>
                   </el-form-item>
                   <el-form-item label="职称级别" prop="level" v-if="form.type == '2'">
                     <el-input v-model="form.level" placeholder="请输入职称级别"></el-input>
@@ -247,6 +247,24 @@ export default {
     uploadSuccess({ type, data }) {
       this.$set(this.form, `${type}`, data.uri);
     },
+    inputIdnumber() {
+      let card = this.form.id_number;
+      if (card.length === 18) {
+        let birth = card.substring(6, 10) + '-' + card.substring(10, 12) + '-' + card.substring(12, 14);
+        let gender = parseInt(card.substr(16, 1)) % 2 == 1 ? '男' : '女';
+        let myDate = new Date();
+        let month = myDate.getMonth() + 1;
+        let day = myDate.getDate();
+        let age = myDate.getFullYear() - card.substring(6, 10) - 1;
+        if (card.substring(10, 12) < month || (card.substring(10, 12) == month && card.substring(12, 14) <= day)) {
+          age++;
+        }
+        console.log(birth);
+        console.log(gender);
+        this.form.birthday = birth;
+        this.form.gender = gender;
+      }
+    },
   },
   computed: {
     ...mapState(['user']),