2213980799@qq.com vor 1 Jahr
Ursprung
Commit
e9800704dd

+ 1 - 1
src/views/system/organization/components/org-user-edit.vue

@@ -35,7 +35,7 @@
               placeholder="请选择负责部门"
               placeholder="请选择负责部门"
               :props="defaultProps"
               :props="defaultProps"
               ref="deptRef"
               ref="deptRef"
-              :show-all-levels="false"
+              :show-all-levels="true"
               @change="handleChange"
               @change="handleChange"
               :disabled="!!form.loginName"
               :disabled="!!form.loginName"
               v-model="form.deptIds"
               v-model="form.deptIds"

+ 3 - 2
src/views/system/organization/components/org-user-list.vue

@@ -111,7 +111,7 @@
       @done="reload"
       @done="reload"
       ref="userEditRef"
       ref="userEditRef"
     />
     />
-    <addUsers :visible.sync="showEdit1" :data="null" ref="userEdit" />
+    <addUsers :visible.sync="showEdit1" @done="reload" :data="null" ref="userEdit" :organizationList="organizationList" />
     <importDialog
     <importDialog
       :defModule="moudleName"
       :defModule="moudleName"
       ref="importDialogRef"
       ref="importDialogRef"
@@ -346,7 +346,7 @@ export default {
   },
   },
   methods: {
   methods: {
     async addUsers(row) {
     async addUsers(row) {
-      this.userRow = null;
+      // this.userRow = null;
       this.currentRow = row;
       this.currentRow = row;
       this.dialogVisible = true;
       this.dialogVisible = true;
     },
     },
@@ -367,6 +367,7 @@ export default {
       this.userShow = false;
       this.userShow = false;
       this.showEdit1 = true;
       this.showEdit1 = true;
       this.$refs.userEdit.getByData(this.userRow, this.currentRow);
       this.$refs.userEdit.getByData(this.userRow, this.currentRow);
+
     },
     },
 
 
     /* 表格数据源 */
     /* 表格数据源 */

+ 41 - 6
src/views/system/user/components/user-edit.vue

@@ -1,7 +1,7 @@
 <!-- 用户编辑弹窗 -->
 <!-- 用户编辑弹窗 -->
 <template>
 <template>
   <ele-modal
   <ele-modal
-    width="720px"
+    width="820px"
     :visible="visible"
     :visible="visible"
     :append-to-body="true"
     :append-to-body="true"
     :close-on-click-modal="false"
     :close-on-click-modal="false"
@@ -64,14 +64,24 @@
               prop="groupName"
               prop="groupName"
               label="组织机构"
               label="组织机构"
               align="center"
               align="center"
-              width="200"
+              width="320"
             >
             >
+              <template slot-scope="scope">
+                <el-cascader
+                  class="ele-block organizationList"
+                  :options="organizationList"
+                  placeholder=" "
+                  :props="defaultProps"
+                  ref="deptRef"
+                  :show-all-levels="true"
+                  :disabled="true"
+                  v-model="scope.row.groupId"
+                ></el-cascader>
+              </template>
             </el-table-column>
             </el-table-column>
             <el-table-column prop="roleIds" label="角色" align="center">
             <el-table-column prop="roleIds" label="角色" align="center">
               <template slot-scope="scope">
               <template slot-scope="scope">
-                <el-form-item label="角色:">
-                  <role-select v-model="scope.row.roleIds" />
-                </el-form-item>
+                <role-select v-model="scope.row.roleIds" />
               </template>
               </template>
             </el-table-column>
             </el-table-column>
           </el-table>
           </el-table>
@@ -112,7 +122,13 @@ export default {
     // 弹窗是否打开
     // 弹窗是否打开
     visible: Boolean,
     visible: Boolean,
     // 修改回显的数据
     // 修改回显的数据
-    data: Object
+    data: Object,
+    organizationList: {
+      type: Array,
+      default: () => {
+        return [];
+      }
+    }
   },
   },
   data() {
   data() {
     const defaultForm = {
     const defaultForm = {
@@ -128,6 +144,14 @@ export default {
     };
     };
     return {
     return {
       defaultForm,
       defaultForm,
+      defaultProps: {
+        multiple: true,
+        checkStrictly: true,
+        emitPath: false,
+        children: 'children',
+        value: 'id',
+        label: 'name'
+      },
       // 表单数据
       // 表单数据
       form: { ...defaultForm },
       form: { ...defaultForm },
       // 表单验证规则
       // 表单验证规则
@@ -279,4 +303,15 @@ export default {
     margin-bottom: 0;
     margin-bottom: 0;
   }
   }
 }
 }
+:deep(.organizationList .el-input__inner) {
+  border: 0;
+  background: none;
+}
+:deep(.organizationList .el-input__suffix) {
+  display: none;
+}
+:deep(.organizationList .el-tag) {
+  background: none;
+}
+
 </style>
 </style>

+ 65 - 11
src/views/system/user/index.vue

@@ -64,7 +64,6 @@
         </template>
         </template>
         <!-- 状态列 -->
         <!-- 状态列 -->
         <template v-slot:enable="{ row }">
         <template v-slot:enable="{ row }">
-
           <el-switch
           <el-switch
             v-if="$hasPermission('sys:account:update')"
             v-if="$hasPermission('sys:account:update')"
             v-model="row.enable"
             v-model="row.enable"
@@ -75,7 +74,7 @@
             @change="changeEnable(row)"
             @change="changeEnable(row)"
           >
           >
           </el-switch>
           </el-switch>
-          <span v-else>{{row.enable?'开启':'停用'}}</span>
+          <span v-else>{{ row.enable ? '开启' : '停用' }}</span>
         </template>
         </template>
         <!-- 操作列 -->
         <!-- 操作列 -->
         <template v-slot:action="{ row }">
         <template v-slot:action="{ row }">
@@ -97,13 +96,31 @@
           >
           >
             重置密码
             重置密码
           </el-link>
           </el-link>
+          <el-popconfirm
+            class="ele-action"
+            title="确定要解除绑定吗?"
+            @confirm="toUnBind(row)"
+            v-if="$hasPermission('sys:account:unBind') && row.name"
+          >
+            <!-- v-if="$hasPermission('sys:account:unBind')" -->
+            <template v-slot:reference>
+              <el-link type="primary" icon="el-icon-unlock" :underline="false">
+                解绑
+              </el-link>
+            </template>
+          </el-popconfirm>
           <el-popconfirm
           <el-popconfirm
             class="ele-action"
             class="ele-action"
             title="确定要删除此用户吗?"
             title="确定要删除此用户吗?"
             @confirm="remove(row)"
             @confirm="remove(row)"
           >
           >
             <template v-slot:reference>
             <template v-slot:reference>
-              <el-link type="danger"  v-if="$hasPermission('sys:account:delete')" :underline="false" icon="el-icon-delete">
+              <el-link
+                type="danger"
+                v-if="$hasPermission('sys:account:delete')"
+                :underline="false"
+                icon="el-icon-delete"
+              >
                 删除
                 删除
               </el-link>
               </el-link>
             </template>
             </template>
@@ -117,6 +134,7 @@
       :data="current"
       :data="current"
       @done="reload"
       @done="reload"
       ref="userEdit"
       ref="userEdit"
+      :organizationList="organizationList"
     />
     />
     <!-- 导入弹窗 -->
     <!-- 导入弹窗 -->
     <user-import :visible.sync="showImport" @done="reload" />
     <user-import :visible.sync="showImport" @done="reload" />
@@ -133,6 +151,7 @@ import {
   deleteUsers,
   deleteUsers,
   resetPassword
   resetPassword
 } from '@/api/system/user';
 } from '@/api/system/user';
+import { unbindLoginName, listOrganizations } from '@/api/system/organization';
 
 
 export default {
 export default {
   name: 'SystemUser',
   name: 'SystemUser',
@@ -196,12 +215,12 @@ export default {
           showOverflowTooltip: true,
           showOverflowTooltip: true,
           minWidth: 110,
           minWidth: 110,
           formatter: (_row, _column, cellValue) => {
           formatter: (_row, _column, cellValue) => {
-            let names=[]
-            _row.groupRoleList.forEach(item=>{
-              names.push(...item.roleVOList.map(val=>val.name))
-            })
-            console.log(cellValue,'cellValue')
-            return names.toString()
+            let names = [];
+            _row.groupRoleList.forEach((item) => {
+              names.push(...item.roleVOList.map((val) => val.name));
+            });
+            console.log(cellValue, 'cellValue');
+            return names.toString();
           }
           }
         },
         },
         {
         {
@@ -227,7 +246,7 @@ export default {
         {
         {
           columnKey: 'action',
           columnKey: 'action',
           label: '操作',
           label: '操作',
-          width: 220,
+          width: 280,
           align: 'center',
           align: 'center',
           resizable: false,
           resizable: false,
           slot: 'action',
           slot: 'action',
@@ -241,14 +260,35 @@ export default {
       // 是否显示编辑弹窗
       // 是否显示编辑弹窗
       showEdit: false,
       showEdit: false,
       // 是否显示导入弹窗
       // 是否显示导入弹窗
-      showImport: false
+      showImport: false,
+      organizationList: []
     };
     };
   },
   },
+  created() {
+    this.query();
+  },
   methods: {
   methods: {
     /* 表格数据源 */
     /* 表格数据源 */
     datasource({ page, limit, where, order }) {
     datasource({ page, limit, where, order }) {
       return pageUsers({ ...where, ...order, pageNum: page, size: limit });
       return pageUsers({ ...where, ...order, pageNum: page, size: limit });
     },
     },
+    /* 查询 */
+    query() {
+      listOrganizations()
+        .then((list) => {
+          let _list = list.filter((i) => i.name != '超级管理员');
+
+          this.organizationList = this.$util.toTreeData({
+            data: _list,
+            idField: 'id',
+            parentIdField: 'parentId'
+          });
+        })
+        .catch((e) => {
+          this.loading = false;
+          // this.$message.error(e.message);
+        });
+    },
     async changeEnable(row) {
     async changeEnable(row) {
       let params = { ...row };
       let params = { ...row };
       params.roleId = row.roleList.map((d) => d.id);
       params.roleId = row.roleList.map((d) => d.id);
@@ -274,6 +314,20 @@ export default {
       this.$refs.userEdit.$refs.form &&
       this.$refs.userEdit.$refs.form &&
         this.$refs.userEdit.$refs.form.clearValidate();
         this.$refs.userEdit.$refs.form.clearValidate();
     },
     },
+    // 解除绑定
+    toUnBind(row) {
+      const loading = this.$loading({ lock: true });
+      unbindLoginName(row.mainUserId)
+        .then((res) => {
+          loading.close();
+          this.$message.success('解绑成功');
+          this.reload();
+        })
+        .catch((e) => {
+          loading.close();
+          // this.$message.error(e.message);
+        });
+    },
     /* 打开导入弹窗 */
     /* 打开导入弹窗 */
     openImport() {
     openImport() {
       this.showImport = true;
       this.showImport = true;