Sfoglia il codice sorgente

人员管理提交

LAPTOP-16IUEB3P\Lenovo 3 anni fa
parent
commit
342c1f3e8d

+ 33 - 1
ele-admin-template/src/api/system/organization/index.js

@@ -67,7 +67,39 @@ export async function removeOrganization(params) {
 }
 
 
+/**
+ * 获取人员详情
+ * @param id 人员id
+ */
+export async function getUserDetail(id) {
+  const res = await request.get(`/main/user/getById/`+id  );
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
 
+/**
+ * 新增或修改人员信息
+ * @param params 人员信息
+ */
+export async function saveOrUpdateUser(params) {
+  const res = await request.post('/main/user/saveNew' , params  );
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
 
 
-
+/**
+ * 删除人员
+ * @param params 人员信息
+ */
+export async function removePersonnel(params) {
+  const res = await request.post('/main/user/removeById', params);
+  if (res.data.code == 0) {
+    return res.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 13 - 0
ele-admin-template/src/api/system/user/index.js

@@ -74,6 +74,19 @@ export async function userLogout(params) {
   return Promise.reject(new Error(res.data.message));
 }
 
+
+/**
+ * 查询未绑定用户账号
+ * @param params 查询条件
+ */
+export async function getNotBoundAccount(params) {
+  const res = await request.get('/system/account/getNotBoundAccount');
+  if (res.data.code == 0 ) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
 // ————————————————————————原系统接口
 /**
  * 查询用户列表

+ 1 - 1
ele-admin-template/src/components/RegionsSelect/index.vue

@@ -17,7 +17,7 @@
   export default {
     name: 'RegionsSelect',
     props: {
-      value: [Array,String],
+      value: [Array,String,Number],
       placeholder: String,
       options: Array,
       valueField: {

+ 61 - 41
ele-admin-template/src/views/system/organization/components/org-user-edit.vue

@@ -18,40 +18,50 @@
               v-model="form.groupId"
             />
           </el-form-item>
-          <el-form-item label="用户账号:" prop="accountId">
+          <el-form-item label="性别:" prop="sex">
             <el-select
               clearable
               class="ele-block"
-              v-model="form.accountId"
-              placeholder="请选择用户账号"
+              v-model="form.sex"
+              placeholder="请选择性别"
             >
-              <el-option
-                v-for="item in accountList"
-                :key="item.id"
-                :label="item.loginName"
-                :value="item.id">
-              </el-option>
+              <el-option label="男" :value="1" />
+              <el-option label="女" :value="2" />
             </el-select>
           </el-form-item>
-          <el-form-item label="性别:" prop="sex">
+          <el-form-item label="员工状态:" prop="status">
             <el-select
               clearable
               class="ele-block"
-              v-model="form.sex"
-              placeholder="请选择性别"
+              v-model="form.status"
+              placeholder="请选择员工状态"
             >
-              <el-option label="男" :value="1" />
-              <el-option label="女" :value="2" />
+              <el-option
+                v-for="item in statusOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value">
+              </el-option>
             </el-select>
           </el-form-item>
-          <el-form-item label="籍贯:" prop="address">
-             <regions-select style="width: 100%;" v-model="form.address" placeholder="请选择省市区"/>
+          <el-form-item label="籍贯:" prop="city">
+             <regions-select style="width: 100%;" v-model="city" placeholder="请选择省市区"/>
           </el-form-item>
           <el-form-item label="生日:" prop="age">
             <el-date-picker style="width: 100%;"
               clearable
               v-model="form.birthday"
               type="date"
+              value-format="yyyy-MM-dd"
+              placeholder="请选择日期">
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item label="入职时间:" prop="joinDate">
+            <el-date-picker style="width: 100%;"
+              clearable
+              v-model="form.joinDate"
+              type="date"
+              value-format="yyyy-MM-dd"
               placeholder="请选择日期">
             </el-date-picker>
           </el-form-item>
@@ -89,18 +99,25 @@
               placeholder="请输入姓名"
             />
           </el-form-item>
-          <el-form-item label="员工状态:" prop="status">
+          <el-form-item label="用户账号:">
+            <el-input
+              :disabled="true"
+              :maxlength="11"
+              v-model="form.loginName"
+              v-if="isUpdate&&data.accountId"
+            />
             <el-select
               clearable
               class="ele-block"
-              v-model="form.status"
-              placeholder="请选择员工状态"
+              v-model="form.accountId"
+              placeholder="请选择用户账号"
+              v-else
             >
               <el-option
-                v-for="item in statusOptions"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value">
+                v-for="item in accountList"
+                :key="item.id"
+                :label="item.loginName"
+                :value="item.id">
               </el-option>
             </el-select>
           </el-form-item>
@@ -154,8 +171,8 @@
   import OrgSelect from './org-select.vue';
   import RoleSelect from '@/views/system/user/components/role-select.vue';
   import RegionsSelect from '@/components/RegionsSelect/index.vue';
-  import { addUser, updateUser, checkExistence } from '@/api/system/user';
-  import { pageUsers } from '@/api/system/user';
+  import { getNotBoundAccount } from '@/api/system/user';
+  import { getUserDetail , saveOrUpdateUser } from '@/api/system/organization'
   export default {
     components: { OrgSelect, RoleSelect , RegionsSelect },
     props: {
@@ -186,7 +203,6 @@
         // 表单验证规则
         rules: {
           name: [{ required: true, message: '请输入姓名',trigger: 'blur'}],
-          accountId: [{ required: true, message: '请选择用户账号',trigger: 'blur'}],
           sex: [{required: true, message: '请选择性别',trigger: 'blur'}],
           email: [ { pattern: emailReg,message: '邮箱格式不正确',trigger: 'blur'}],
           phone: [ { pattern: phoneReg,message: '手机号格式不正确',trigger: 'blur'}],
@@ -197,7 +213,7 @@
         loading: false,
         // 是否是修改
         isUpdate: false,
-        city: [],
+        city: '',
         statusOptions:[
           {value:1,label:'全职'},
           {value:2,label:'兼职'},
@@ -217,12 +233,8 @@
     },
     methods: {
       getAccountList(){
-        const params = {
-           pageNum:1,
-           size:99999999
-        }
-        pageUsers(params).then(res=>{
-            this.accountList = res.list
+        getNotBoundAccount().then(res=>{
+            this.accountList = res
         })
       },
       /* 保存编辑 */
@@ -232,13 +244,15 @@
             return false;
           }
           this.loading = true;
+          this.form.addressId = this.city?this.city[this.city.length-1]:''
           const data = {
             ...this.form,
           };
-          console.log('data',data)
-          return
-          const saveOrUpdate = this.isUpdate ? updateUser : addUser;
-          saveOrUpdate(data)
+          if(!this.isUpdate){
+            delete data.id
+          }
+
+          saveOrUpdateUser(data)
             .then((msg) => {
               this.loading = false;
               this.$message.success(msg);
@@ -261,20 +275,26 @@
         if (visible) {
           this.getAccountList()
           if (this.data) {
+            getUserDetail(this.data.id).then(res=>{
+               this.form = {...res}
+               this.city = res.addressId?res.addressId.toString():null
+               this.isUpdate = true;
+            })
             // this.$util.assignObject(this.form, {
             //   ...this.data,
             //   password: ''
             // });
-            this.form = {...this.data}
+            // this.form = {...this.data}
             // this.form.address = ["130000","130300","130304"]
-             this.form.address = "130304"
-            console.log('this.form',this.form)
-            this.isUpdate = true;
+             // this.form.address = "130304"
+            // console.log('this.form',this.form)
           } else {
+            this.city = null
             this.form.groupId = this.organizationId;
             this.isUpdate = false;
           }
         } else {
+          this.city = null
           this.$refs.form.clearValidate();
           this.form = { ...this.defaultForm };
         }

+ 9 - 2
ele-admin-template/src/views/system/organization/components/org-user-list.vue

@@ -82,7 +82,7 @@
 <script>
   import OrgUserSearch from './org-user-search.vue';
   import OrgUserEdit from './org-user-edit.vue';
-  import { getUserPage } from '@/api/system/organization';
+  import { getUserPage , removePersonnel } from '@/api/system/organization';
 
   export default {
     components: { OrgUserSearch, OrgUserEdit },
@@ -111,6 +111,13 @@
             showOverflowTooltip: true,
             minWidth: 110
           },
+          {
+            prop: 'jobNumber',
+            label: '工号',
+            sortable: 'custom',
+            showOverflowTooltip: true,
+            minWidth: 110
+          },
           {
             prop: 'loginName',
             label: '用户账号',
@@ -198,7 +205,7 @@
       /* 删除 */
       remove(row) {
         const loading = this.$loading({ lock: true });
-        removeUser(row.userId)
+        removePersonnel([row.id])
           .then((msg) => {
             loading.close();
             this.$message.success(msg);