Parcourir la source

2022/10/13 完善功能

Cheng il y a 3 ans
Parent
commit
2a4554923c
3 fichiers modifiés avec 131 ajouts et 44 suppressions
  1. 2 2
      src/api/admin.js
  2. 125 41
      src/views/role/index.vue
  3. 4 1
      src/views/user/index.vue

+ 2 - 2
src/api/admin.js

@@ -223,8 +223,8 @@ export default {
     /**
      * 查询人员
      */
-    getPersonnelList(params) {
-        return axios.get('/permission/api/personnel/queryPageList', {params})
+    getPersonnelList(data) {
+        return axios.post('/permission/api/personnel/queryPageList', data)
     },
     /**
      * 编辑人员

+ 125 - 41
src/views/role/index.vue

@@ -182,45 +182,67 @@
       <el-container class="project-form">
         <el-main class="project-form-main">
 
-          <el-form label-width="110px" label-position="left">
+          <el-form label-width="98px" label-position="left">
             <el-form-item label="角色名称">
               <el-input v-model="distributionParam.roleName" placeholder="请输入专题库名称" :disabled="true"></el-input>
             </el-form-item>
-            <el-form-item label="人员名称">
-              <el-input placeholder="请输入人员名称" style="width: 50%"></el-input>
-            </el-form-item>
-            <el-form-item label="租户">
-              <el-select v-model="queryParams.tenant" @change="getList2" clearable placeholder="根据租户查询">
-                <el-option
-                    v-for="item in tenantList"
-                    :key="item.id"
-                    :label="item.name"
-                    :value="item.id">
-                </el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="部门">
-              <el-cascader
-                  placeholder="请选择部门"
-              >
-              </el-cascader>
-            </el-form-item>
-            <el-form-item label="职位">
-              <el-select
-                  filterable
-                  placeholder="请选择职位"
-              >
-                <el-option
-                    v-for="item in positionList"
-                    :key="item.name"
-                    :label="item.position"
-                    :value="item.id"
-                ></el-option>
-              </el-select>
-            </el-form-item>
+            
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="人员名称">
+                  <el-input placeholder="请输入人员名称" v-model="personnel.name" @change="getPerList" style="width: 217.5px"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="租户名称" style="margin-left: 16.2%">
+                  <el-select v-model="personnel.tenant" @change="getPerList" clearable placeholder="根据租户查询">
+                    <el-option
+                        v-for="item in tenantList"
+                        :key="item.id"
+                        :label="item.name"
+                        :value="item.id">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="部门名称">
+                  <el-cascader
+                    placeholder="请选择部门"
+                    :options="department"
+                    v-model="name"
+                    :props="{value:'id',label:'name',multiple:true,checkStrictly: true}"
+                    @change="getPerList()"
+                  >
+                  </el-cascader>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="职位名称" style="margin-left: 16.2%">
+                  <el-select
+                    filterable
+                    multiple
+                    v-model="personnel.positionIds"
+                    placeholder="请选择职位"
+                    @change="getPerList()"
+                  >
+                    <el-option
+                      v-for="item in positionList"
+                      :key="item.name"
+                      :label="item.position"
+                      :value="item.id"
+                    ></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            
+            
           </el-form>
 
-          <el-table v-loading="loading" :data="personnelTableData" @selection-change="handleSelectionChange">
+          <el-table v-loading="load" :data="personnelTableData" @selection-change="handleSelectionChange">
             <el-table-column type="selection" width="55">
             </el-table-column>
             <el-table-column label="人员名称" prop="name" align="center" show-overflow-tooltip>
@@ -241,7 +263,7 @@
             <el-table-column label="备注" prop="remark" align="center" show-overflow-tooltip></el-table-column>
           </el-table>
           <div class="pagination">
-            <el-pagination :current-page.sync="queryParams.current" :page-size="queryParams.size" :total="total"
+            <el-pagination :current-page.sync="personnel.current" :page-size="personnel.size" :total="personnelTotal"
                            @current-change="getPerList" layout="total, prev, pager, next, jumper"
                            background></el-pagination>
           </div>
@@ -285,9 +307,11 @@ export default {
       checked: true,
       visible: false,
       loading: false,
+      load: false,
       btnLoading: false,
       permissVisible: false,
       total: 0,
+      personnelTotal: 0,
       tableData: [],
       tenantList: [],
       title: '',
@@ -298,11 +322,22 @@ export default {
       multipleSelection: [],
       expands: [],
       disabled: false,
+      department: [],
+      name: [],
+      positionList: [],
+      position:{
+        positionIds: [],
+      },
       queryParams: {
         size: 10,
         current: 1,
         name: ''
       },
+      personnel: {
+        size: 10,
+        current: 1,
+        name: '',
+      },
       ruleForm: {
         function: []
       },
@@ -333,6 +368,20 @@ export default {
   //   }
   // },
   methods: {
+    // getCheckedNodes()
+
+    a() {
+      console.log(this.personnel.position)
+
+    },
+    b() {
+      console.log(this.name)
+      this.personnel.departmentIds=[]
+      this.name.forEach(item => {
+        this.personnel.departmentIds.push(item[item.length-1])
+      })
+      // console.log(this.personnel)
+    },
     getPremissData(id, name, data) {
       // console.log(id, name, data)
       this.pdata = {
@@ -528,6 +577,18 @@ export default {
         this.loading = false
       })
     },
+    getclient() {
+      this.$api.getAllDepartmentList().then(response => {
+        this.department = response.data
+        console.log(this.department)
+      })
+    },
+    getPositionList() {
+      this.$api.getAllPositionList().then(response => {
+        this.positionList = response.data
+        console.log(this.positionList)
+      })
+    },
     submit() {
       this.$refs.ruleForm.validate((valid) => {
         if (valid) {
@@ -577,22 +638,45 @@ export default {
       })
     },
     getPerList() {
-      this.loading = true
-      this.$api.getPersonnelList(this.queryParams).then(response => {
+      this.load = true
+      this.personnel.departmentIds=[]
+      this.name.forEach(item => {
+        this.personnel.departmentIds.push(item[item.length-1])
+      })
+      this.$api.getPersonnelList(this.personnel).then(response => {
         this.personnelTableData = response.data
-        this.total = response.pageColumn.total
-        this.loading = false
+        console.log(response)
+        this.personnelTotal = response.pageColumn.total
+        this.load = false
       }).catch(error => {
-        this.loading = false
+        this.load = false
       })
     },
+    // getPerListCheck() {
+    //   this.load = true
+    //   // this.personnel.positionIds = []
+    //   // console.log(this.position.positionIds)
+    //   // this.position.positionIds.forEach(item => {
+    //   //   // console.log(item)
+    //   //   this.personnel.positionIds .push(item)
+    //   // })
+    //   this.$api.getPersonnelList(this.personnel).then(response => {
+    //     this.personnelTableData = response.data
+    //     this.personnelTotal = response.pageColumn.total
+    //     this.load = false
+    //   }).catch(error => {
+    //     this.load = false
+    //   })
+    // },
     distributionPersonnel(row) {
       this.drawer = true
       this.distributionParam.roleName = row.name
       this.distributionParam.description = row.remark
       this.distributionParam.id = row.id
-      console.log(this.distributionParam)
+      // console.log(this.distributionParam)
       this.getPerList()
+      this.getclient()
+      this.getPositionList()
     },
     closeDrawer() {
       this.drawer = false

+ 4 - 1
src/views/user/index.vue

@@ -515,6 +515,8 @@ import ret from "bluebird/js/release/util";
 					size: 10,
 					current: 1,
 					// username: '',
+          departmentIds: [],
+          positionIds:[],
 					name: "",
 					tenant:''
 				},
@@ -752,7 +754,8 @@ import ret from "bluebird/js/release/util";
 				this.$api
 					.getPersonnelList(this.queryParams)
 					.then((response) => {
-						this.tableData = response.data;
+            this.tableData = response.data;
+            console.log(response)
 						this.total = response.pageColumn.total;
 						this.loading = false;
 					})