فهرست منبع

个人中心修改

duy 2 سال پیش
والد
کامیت
281e5fcdff
1فایلهای تغییر یافته به همراه67 افزوده شده و 15 حذف شده
  1. 67 15
      src/views/user/index.vue

+ 67 - 15
src/views/user/index.vue

@@ -34,7 +34,7 @@
                          label-width="auto">
                     <el-row :gutter="20">
                         <el-col :span="12">
-                            <el-form-item label="用户姓名:">
+                            <el-form-item label="用户姓名:" prop="real_name">
                                 <el-input v-model="formUserModel.real_name"/>
                             </el-form-item>
                         </el-col>
@@ -44,28 +44,32 @@
                             </el-form-item>
                         </el-col>
                         <el-col :span="12">
-                            <el-form-item label="手机号码:" :prop="basicFormEdit?'phone':''">
+                            <el-form-item label="手机号码:" prop="phone">
                                 <el-input v-model="formUserModel.phone" placeholder="请输入绑定手机"/>
                             </el-form-item>
                         </el-col>
                         <el-col :span="12">
-                            <el-form-item label="所属岗位:">
-                                <el-select v-model="formUserModel.position" class=" block" placeholder="请选择"
+                            <el-form-item label="登录账号:" prop="account">
+                                <el-input v-model="formUserModel.account" placeholder="" disabled/>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="所属部门:" prop="deptId">
+                                <el-select v-model="formUserModel.dept_id" class=" block" placeholder=""
                                            size="large" disabled>
-                                    <el-option
-                                        v-for="item in posotionoptions"
-                                        :key="item.value"
-                                        :label="item.label"
-                                        :value="item.value"
-                                    />
+                                           <el-option v-for="item in sectionData" :label="item.deptName" :value="item.id"/>
                                 </el-select>
                             </el-form-item>
                         </el-col>
                         <el-col :span="12">
-                            <el-form-item label="登录账号:">
-                                <el-input v-model="formUserModel.account" placeholder="" disabled/>
+                            <el-form-item label="所属岗位:"  prop="postId"  :getPostId="initPostData(formUserModel.deptId)">
+                                <el-select v-model="formUserModel.post_id" class=" block" placeholder=""
+                                           size="large" disabled>
+                                           <el-option v-for="item in postData" :label="item.deptName" :value="item.id"/>
+                                </el-select>
                             </el-form-item>
                         </el-col>
+                   
 
 
                     </el-row>
@@ -87,7 +91,7 @@
                                   show-password type="password"/>
                     </el-form-item>
 
-                    <el-form-item label="新的密码:" prop="newPassword">
+                    <el-form-item label="新的密码:" :prop="formUserModel.user_id?'':'password'">
                         <el-input v-model="formUserPassModel.newPassword" placeholder="请输入新的密码"
                                   autocomplete="new-password"
                                   show-password type="password"/>
@@ -98,6 +102,7 @@
                                   show-password type="password"/>
                     </el-form-item>
                 </el-form>
+         
 
             </div>
         </HcCardItem>
@@ -106,20 +111,23 @@
 </template>
 
 <script setup>
-import {ref, watch} from "vue";
+import {ref, watch,onMounted} from "vue";
 import {useAppStore} from "~src/store";
 import avatarPng from '~src/assets/images/avatar.png';
 import {getTokenHeader} from '~src/api/request/header';
 import userApi from '~src/api/modules/userInfo/index.js'
 import {arrIndex, formValidate, getArrValue, isPhone} from "js-fast-way"
 import md5 from 'js-md5';
+import organizationApi from '~api/system/organization';
 
 const useAppState = useAppStore()
 
 //全局变量信息
 const userInfo = ref(useAppState.getUserInfo);
 const basicFormEdit = ref(false)
-
+onMounted(()=>{
+    getSectionData()
+})
 //上传组件参数
 const action = '/api/blade-resource/oss/endpoint/put-file';
 const accept = 'image/png,image/jpg,image/jpeg';
@@ -174,6 +182,26 @@ const formUserRules = {
         },
         trigger: "blur"
     },
+    real_name:{
+        required: true,
+        trigger: "blur",
+        trigger: "请输入姓名",
+    },
+    account:{
+        required: true,
+        trigger: "blur",
+        message: "请输入账号"
+    },
+    deptId:{
+        required: false,
+        trigger: "blur",
+        message: "请选择部门"
+    },
+    postId:{
+        required: false,
+        trigger: "blur",
+        message: "请选择岗位"
+    },
 }
 const formUserPassRules = {
     oldPassword: {
@@ -269,9 +297,33 @@ const saveUpdatePassword = async () => {
         }
     }
 }
+//部门下拉数据
+const sectionData = ref([])
+const getSectionData = async () => {
+    const { error, code, data } = await organizationApi.getList({deptType: 2})
+    if (!error && code === 200) {
+        sectionData.value = getArrValue(data)
+    } else {
+        sectionData.value = []
+    }
+}
 const posotionoptions = ref([
     {label: '总经理', value: '1'}
 ])
+//获取岗位数据
+const postData = ref([])
+const initPostData = async (id) => {
+    if (id) {
+        //获取岗位数据
+        const { error, code, data } = await organizationApi.getList({parentId: id})
+        if (!error && code === 200) {
+            postData.value = getArrValue(data)
+        } else {
+            postData.value = []
+        }
+    }
+
+}
 </script>
 
 <style lang="scss" scoped>