Ver código fonte

feat:用户管理中,新增、编辑用户时可选用户组

hanyang 1 ano atrás
pai
commit
e721588198

+ 1 - 0
public/i18n/lang-en.json

@@ -314,6 +314,7 @@
     },
     "account": {
       "new_user": "New User",
+      "edit_user": "Edit User",
       "reset_password": "Reset Password",
       "view_permission": "View Permission",
       "dept_config": "Department Configuration",

+ 1 - 0
public/i18n/lang-zh.json

@@ -310,6 +310,7 @@
     },
     "account": {
       "new_user": "新建用户",
+      "edit_user": "编辑用户",
       "reset_password": "重置密码",
       "reset_password_success": "该用户密码重置为basic123456",
       "view_permission": "查看权限",

+ 12 - 0
src/apis/permission/common.js

@@ -12,6 +12,18 @@ export function QueryAllRoleList() {
     params
   });
 }
+// 用户组列表
+export function QueryAllGroupList() {
+  const params = {
+    current: 1,
+    pageSize: 999
+  };
+  return request({
+    url: '/api/group/list',
+    method: 'get',
+    params
+  });
+}
 
 // 部门列表
 export function QueryDeptTree() {

+ 10 - 0
src/apis/rgflow-dify.js

@@ -23,6 +23,16 @@ export function deleteDify(id) {
     method: 'delete'
   });
 }
+/**
+ * 编辑dify智能体
+ * */
+export function updateDify(id, data) {
+  return request({
+    url: `/console/api/apps/${id}`,
+    method: 'put',
+    data
+  });
+}
 
 // 创建rgflow智能体
 export function createRgFlow(data) {

+ 23 - 3
src/modules/permission/account/AccountForm.vue

@@ -43,6 +43,20 @@
         </a-form-item>
       </a-col>
     </a-row>
+    <a-row :gutter="24" class="flex-row">
+      <a-col :span="12" class="flex-col">
+        <a-form-item field="groups" label="用户组">
+          <a-select
+            multiple
+            v-model="edit_form.groups"
+            :options="group_list"
+            :field-names="{ value: 'groupId', label: 'groupName' }"
+            @change="groupChange"
+          >
+          </a-select>
+        </a-form-item>
+      </a-col>
+    </a-row>
   </a-form>
 </template>
 
@@ -52,7 +66,8 @@ import { toRefs } from 'vue';
 const props = defineProps({
   edit_form: Object,
   is_edit_mode: Boolean,
-  role_list: Array
+  role_list: Array,
+  group_list: Array
 });
 
 const rules = {
@@ -71,14 +86,19 @@ const rules = {
       }
     }
   ],
-  roles: [{ required: true, message: '角色必选' }]
+  roles: [{ required: true, message: '角色必选' }],
+  groups: [{ required: true, message: '用户组必选' }]
 };
-const { edit_form, is_edit_mode, role_list } = toRefs(props);
+const { edit_form, is_edit_mode, role_list, group_list } = toRefs(props);
 
 // 角色变化处理
 const roleChange = (selectedRoles) => {
   edit_form.role = selectedRoles;
 };
+// 用户组变化处理
+const groupChange = (selectedGroups) => {
+  edit_form.group = selectedGroups;
+};
 </script>
 
 <style lang="css" scoped>

+ 18 - 4
src/modules/permission/account/index.vue

@@ -58,9 +58,15 @@
     :visible.sync="edit_visible"
     @ok="modalSave"
     @cancel="handleEdit(null, false)"
-    :title="is_edit_mode ? $t('permission.account.edit') : $t('permission.account.new_user')"
+    :title="is_edit_mode ? $t('permission.account.edit_user') : $t('permission.account.new_user')"
   >
-    <AccountForm ref="accountForm" :edit_form="edit_form" :is_edit_mode="is_edit_mode" :role_list="role_list" />
+    <AccountForm
+      ref="accountForm"
+      :edit_form="edit_form"
+      :is_edit_mode="is_edit_mode"
+      :role_list="role_list"
+      :group_list="group_list"
+    />
   </Modal>
 
   <ViewPermission
@@ -109,7 +115,7 @@ import {
   DeleteUser
 } from '../../../apis/permission/account';
 import { asycData } from '../../../apis/login.js';
-import { QueryAllRoleList, QueryDeptTree } from '../../../apis/permission/common';
+import { QueryAllRoleList, QueryDeptTree, QueryAllGroupList } from '../../../apis/permission/common';
 import { useI18n } from 'vue-i18n';
 
 const router = useRouter();
@@ -168,9 +174,11 @@ const edit_form = reactive({
   phone: '',
   email: '',
   pwd: '',
-  roles: []
+  roles: [],
+  groups: []
 });
 const role_list = ref([]);
+const group_list = ref([]);
 // 查看权限相关
 const view_permission_visible = ref(false);
 const menu_permissions_list = ref([]);
@@ -237,6 +245,7 @@ const createClick = () => {
   edit_form.email = '';
   edit_form.pwd = '';
   edit_form.roles = [];
+  edit_form.groups = [];
   is_edit_mode.value = false;
 
   handleEdit(null, true);
@@ -280,6 +289,10 @@ const handleEdit = async (record, visible) => {
     if (code === 200) {
       role_list.value = data.rows;
     }
+    const res = await QueryAllGroupList();
+    if (res.code / 1 === 200) {
+      group_list.value = res.data.items;
+    }
   }
 
   if (record) {
@@ -290,6 +303,7 @@ const handleEdit = async (record, visible) => {
     edit_form.email = record.email;
     edit_form.pwd = record.pwd;
     edit_form.roles = record.roles.map((role) => role.roleId);
+    edit_form.groups = record.groups.map((group) => group.groupId);
 
     is_edit_mode.value = true;
   }