From 64920403797a80149ac1ba2cd2426ad5db044bec Mon Sep 17 00:00:00 2001
From: zhangxiao <898441624@qq.com>
Date: 星期一, 26 八月 2024 14:58:01 +0800
Subject: [PATCH] fix: 修改settings 备注
---
src/views/authority/users/index.vue | 461 +++++++++++++++++++--------------------------------------
1 files changed, 153 insertions(+), 308 deletions(-)
diff --git a/src/views/authority/users/index.vue b/src/views/authority/users/index.vue
index 6d76315..d6110cc 100644
--- a/src/views/authority/users/index.vue
+++ b/src/views/authority/users/index.vue
@@ -77,9 +77,6 @@
<template #index="{ rowIndex }">
{{ rowIndex + 1 + (pagination.current - 1) * pagination.pageSize }}
</template>
- <template #dept="{ record }">{{
- record.dept ? record.dept.deptName : ''
- }}</template>
<template #status="{ record }">
<a-switch
checked-value="1"
@@ -100,7 +97,7 @@
>缂栬緫</a-button
>
<a-popconfirm
- content="Are you sure you want to delete?"
+ content="璇风‘璁ゆ槸鍚﹀垹闄わ紵"
type="success"
@ok="operation(3, record)"
>
@@ -110,7 +107,7 @@
type="dashed"
status="warning"
@click="operation(4, record)"
- >鏉冮檺閰嶇疆</a-button
+ >鏌ョ湅鏉冮檺</a-button
>
<a-button status="success" @click="operation(5, record)"
>閮ㄩ棬閰嶇疆</a-button
@@ -124,17 +121,52 @@
:title="save"
@cancel="handleCancel(1)"
@ok="editHandleOk"
+ width="48%"
>
- <a-form :model="editform">
- <a-form-item field="email" label="鐢ㄦ埛鍚�">
- <a-input v-model="editform.email" />
- </a-form-item>
- <a-form-item field="name" label="鏄电О">
- <a-input v-model="editform.nickName" />
- </a-form-item>
- <a-form-item field="phoneNumber" label="鎵嬫満鍙�">
- <a-input v-model="editform.phoneNumber" />
- </a-form-item>
+ <a-form ref="formRef" :model="editform">
+ <a-row :gutter="20">
+ <a-col :span="10">
+ <a-form-item field="loginName" label="鐢ㄦ埛鍚�" :rules="[{required:true,message:'鐢ㄦ埛鍚嶅繀濉�'},{maxLength:50,message:'闀垮害涓嶈秴杩�50'}]"
+ >
+ <a-input v-model="editform.loginName" />
+ </a-form-item>
+ </a-col>
+ <a-col :span="10">
+ <a-form-item field="userName" label="濮撳悕">
+ <a-input v-model="editform.userName" />
+ </a-form-item>
+ </a-col>
+ </a-row>
+ <a-row :gutter="20">
+ <a-col :span="10">
+ <a-form-item field="phoneNumber" label="鎵嬫満鍙�">
+ <a-input v-model="editform.phoneNumber" />
+ </a-form-item>
+ </a-col>
+ <a-col :span="10">
+ <a-form-item required field="email" label="閭" :rules="[{required:true,message:'閭蹇呭~'},{maxLength:50,message:'闀垮害涓嶈秴杩�50'}]" >
+ <a-input v-model="editform.email" />
+ </a-form-item>
+ </a-col>
+ </a-row>
+ <a-row :gutter="20">
+ <a-col :span="10">
+ <a-form-item field="psw" label="瀵嗙爜">
+ <a-input v-model="editform.psw" />
+ </a-form-item>
+ </a-col>
+ <a-col :span="10">
+ <a-form-item required field="role" label="瑙掕壊" :rules="[{required:true,message:'瑙掕壊蹇呴��'}]" >
+ <a-select
+ v-model="editform.role"
+ :options="roles"
+ :field-names="fieldNames"
+ @change="roleChange"
+ >
+ </a-select>
+ </a-form-item>
+ </a-col>
+ </a-row>
</a-form>
</a-modal>
<a-modal
@@ -163,7 +195,6 @@
title: 'deptName',
children: 'children',
}"
- :check-strictly="checkStrictly"
>
</a-tree>
</a-card>
@@ -184,142 +215,16 @@
width="50%"
v-model:visible="resourcevisible"
v-if="resourcevisible"
- title="鏉冮檺閰嶇疆"
- @cancel="handleCancel(3)"
- @ok="editResourceHandleOk"
+ title="鐢ㄦ埛鎵�鏈夋潈闄�"
+ okText="鍏抽棴"
+ hide-Cancel="true"
+ @ok="handleCancel(3)"
>
<div :style="{ 'display': 'flex', 'flex-direction': 'column' }">
- <a-tabs
- :style="{ 'width': '100%', 'height': '500px', 'overflow-y': 'auto' }"
- >
- <a-tab-pane key="1">
- <template #title>
- <icon-calendar />
- 鑿滃崟
- </template>
- <a-tree
- class="tree-demo-box"
- v-model:checked-keys="checkedKeysMenu"
- v-model:expanded-keys="expandKdysMenu"
- :checkable="true"
- :data="treeDataMenu"
- :show-line="showLineMenu"
- @check="onCheckMenu"
- :fieldNames="{
- key: 'menuId',
- title: 'menuName',
- children: 'children',
- }"
- :check-strictly="checkStrictlyMenu"
- >
- <!-- <template #extra="nodeData">
- <div :class="{ 'custom-class': nodeData.menuType == 1 }">
- <span>
- {{ nodeData.menuName }}
- </span>
- </div>
- </template> -->
- </a-tree>
- <!-- <a-space class="space_select_all">
- <a-button type="primary">鍏ㄩ��</a-button>
- <a-button>鍙栨秷鍏ㄩ��</a-button>
- </a-space>
-
- <div class="table_box" v-if="treeDataMenu[0].children">
- <div class="table_row1">
- <div
- class="row1_list"
- v-for="(item, index) in treeDataMenu[0].children"
- :key="item.menuId"
- >
- <div class="row1_clo">
- <a-checkbox
- :checked="item.menuId"
- @change="onCheckChange(item, $event)"
- >
- {{ item.menuName }}
- </a-checkbox>
- </div>
- <div v-if="item.children" class="row1_clo2">
- <div
- class="row2_clo2_1"
- v-for="(item2, index2) in item.children"
- :key="item2.menuId"
- >
- <div class="row1_clo2_1">
- <a-checkbox
- :checked="item2.menuId"
- @change="onCheckChange(item2, $event)"
- >
- {{ item2.menuName }}
- </a-checkbox>
- </div>
- <div v-if="item2.children" class="row1_clo2_2">
- <div
- v-for="(item3, index3) in item2.children"
- :key="item3.menuId"
- >
- <a-checkbox
- :checked="item3.menuId"
- @change="onCheckChange(item3, $event)"
- >
- {{ item3.menuName }}</a-checkbox
- >
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div> -->
- </a-tab-pane>
- <a-tab-pane key="2">
- <template #title>
- <icon-clock-circle />
- 鐭ヨ瘑搴�
- </template>
- <a-space direction="vertical" size="large">
- <a-checkbox-group
- v-model="checkedKeysKnowledge"
- direction="vertical"
- @change="onCheckKnowledge"
- >
- <a-checkbox
- v-for="(knowledg, index) of knowledgeList"
- :value="knowledg.id"
- :lable="knowledg.name"
- @change="onCheckKnowledge"
- >
- {{ knowledg.name }}
- </a-checkbox>
- </a-checkbox-group>
- </a-space>
- </a-tab-pane>
- <a-tab-pane key="3">
- <template #title>
- <icon-user />
- 鏅鸿兘浣�
- </template>
- <a-checkbox-group
- v-model="checkedKeysDialog"
- direction="vertical"
- @change="onCheckDialog"
- >
- <a-checkbox
- v-for="(dialog, index) of DialogsList"
- :value="dialog.id"
- :lable="dialog.name"
- @change="onCheckDialog"
- >
- {{ dialog.name }}
- </a-checkbox>
- </a-checkbox-group>
- </a-tab-pane>
- </a-tabs>
<a-card
:style="{
'width': '100%',
- 'height': '200px',
+ 'height': '40%',
'overflow-y': 'auto',
'margin': '1px',
}"
@@ -332,7 +237,6 @@
<a-tag
v-for="(tag, index) of checkStrictlyMenu"
:key="tag.menuId"
- @close="handleMenuRemove(tag)"
>
{{ tag.menuName }}
</a-tag>
@@ -343,7 +247,6 @@
<a-tag
v-for="(tag, index) of checkStrictlyKnowledge"
:key="tag.knowledgeId"
- @close="handleKnowledgeRemove(tag)"
>
{{ tag.knowledgeName }}
</a-tag>
@@ -354,9 +257,14 @@
<a-tag
v-for="(tag, index) of checkStrictlyDialog"
:key="tag.dialogId"
- @close="handleDialogRemove(tag)"
>
{{ tag.dialogName }}
+ </a-tag>
+ <a-tag
+ v-for="(tag, index) of checkStrictlyAgent"
+ :key="tag.agentId"
+ >
+ {{ tag.agentName }}
</a-tag>
</a-space>
</a-card>
@@ -375,37 +283,32 @@
DialogList,
KnowledgeList,
OrganizationList,
- ResourceList,
+ ResourceList, Role, RoleList,
User,
UserAdd,
UserChangePwd,
UserDelete,
UserEdit,
UserList,
- Userstatus,
- } from '@/api/authority';
+ Userstatus
+ } from "@/api/authority";
import { Modal } from '@arco-design/web-vue';
import Authheader from '@/views/authority/components/authheader.vue';
import { create } from 'lodash';
+ import { queryCanvasList } from "@/api/Agent";
+
+ const fieldNames = { value: 'roleId', label: 'roleName' };
+ const roles = ref([]);
let treeData = ref([]);
let checkedKeys = ref([]);
let expandKdys = ref([]);
let checkStrictly = ref([]);
-
- let treeDataMenu = ref<any>([]);
- let checkedKeysMenu = ref([]);
- let expandKdysMenu = ref([]);
let checkStrictlyMenu = ref([]);
-
- let checkedKeysKnowledge = ref([]);
let checkStrictlyKnowledge = ref([]);
-
- let checkedKeysDialog = ref([]);
let checkStrictlyDialog = ref([]);
-
- let knowledgeList = ref([]);
- let DialogsList = ref([]);
+ let checkStrictlyAgent = ref([]);
+ let formRef = ref();
let menuTips = ref(['鏉冮檺绠$悊', '璐﹀彿']);
type SizeProps = 'mini' | 'small' | 'medium' | 'large';
@@ -430,7 +333,10 @@
phoneNumber: '',
status: '',
userId: '',
+ loginName:'',
userName: '',
+ psw:'',
+ role:'',
});
let size = ref<SizeProps>('medium');
@@ -438,12 +344,15 @@
let deptvisible = ref(false);
let resourcevisible = ref(false);
let selectUser = ref({});
- // const treeDataList = ref([]);
- const checked1 = ref(false);
- //琛ㄦ牸澶嶉�夋閫夋嫨
- const onCheckChange = (checkedKeysValue: (string | number)[], e: any) => {
- console.log('onCheckChange', checkedKeysValue, e);
+ const loadRole=async () => {
+ await RoleList(null).then((res) => {
+ roles.value = res.rows;
+ });
+ }
+
+ const roleChange = (val) => {
+ editform.value.role = val;
};
const onCheck = (newCheckedKeys, event) => {
@@ -459,74 +368,6 @@
}
});
}
- };
- const onCheckMenu = (newCheckedKeys, event) => {
- let o = { menuId: event.node.menuId, menuName: event.node.menuName };
- if (event.checked) {
- checkStrictlyMenu.value.push(o);
- } else {
- checkStrictlyMenu.value.forEach((val, idx, array) => {
- // val: 褰撳墠鍊�
- if (val.menuId == event.node.menuId) {
- checkStrictlyMenu.value.splice(idx, 1);
- return true;
- }
- });
- }
- };
- const onCheckKnowledge = (newCheckedKeys, event) => {
- let o = {
- knowledgeId: event.target.value,
- knowledgeName: event.target.labels[0].innerText,
- };
- if (event.target.checked) {
- checkStrictlyKnowledge.value.push(o);
- } else {
- checkStrictlyKnowledge.value.forEach((val, idx, array) => {
- // val: 褰撳墠鍊�
- if (val.knowledgeId == event.target.value) {
- checkStrictlyKnowledge.value.splice(idx, 1);
- return true;
- }
- });
- }
- };
-
- const onCheckDialog = (newCheckedKeys, event) => {
- let o = {
- dialogId: event.target.value,
- dialogName: event.target.labels[0].innerText,
- };
- if (event.target.checked) {
- checkStrictlyDialog.value.push(o);
- } else {
- checkStrictlyDialog.value.forEach((val, idx, array) => {
- // val: 褰撳墠鍊�
- if (val.dialogId == event.target.value) {
- checkStrictlyDialog.value.splice(idx, 1);
- return true;
- }
- });
- }
- };
-
- const handleRemove = (key) => {
- checkStrictly.value = checkStrictly.value.filter((tag) => tag !== key);
- };
- const handleMenuRemove = (key) => {
- checkStrictlyMenu.value = checkStrictlyMenu.value.filter(
- (tag) => tag !== key
- );
- };
- const handleKnowledgeRemove = (key) => {
- checkStrictlyKnowledge.value = checkStrictlyKnowledge.value.filter(
- (tag) => tag !== key
- );
- };
- const handleDialogRemove = (key) => {
- checkStrictlyDialog.value = checkStrictlyDialog.value.filter(
- (tag) => tag !== key
- );
};
const basePagination: Pagination = {
@@ -563,11 +404,11 @@
},
{
title: t('鐢ㄦ埛鍚�'),
- dataIndex: 'email',
+ dataIndex: 'loginName',
},
{
- title: t('鍒涘缓鏃堕棿'),
- dataIndex: 'createTime',
+ title: t('瑙掕壊'),
+ dataIndex: 'roleName',
},
{
title: t('鎵�灞為儴闂�'),
@@ -597,9 +438,6 @@
if (type == 2) {
deptvisible.value = false;
}
- if (type == 2) {
- resourcevisible.value = false;
- }
};
const editDeptHandleOk = async () => {
@@ -614,45 +452,29 @@
});
};
- const editResourceHandleOk = async () => {
- let resources: Array = [],
- dialogs: Array = [],
- Knowledges: Array = [],
- user: User = { userId: selectUser.value.userId };
- checkStrictlyMenu.value.forEach((val) => {
- resources.push(val.menuId);
- });
- user.resources = resources;
- checkStrictlyKnowledge.value.forEach((val) => {
- Knowledges.push(val.knowledgeId);
- });
- user.knowledges = Knowledges;
-
- checkStrictlyDialog.value.forEach((val) => {
- dialogs.push(val.dialogId);
- });
- user.dialogs = dialogs;
-
- await UserEdit(user).then((res) => {
- fetchData();
- });
- };
-
- const editHandleOk = async () => {
- if (editform.value.userId.length > 0) {
- await UserEdit({
- ...editform.value,
- } as unknown as User).then((res) => {
- fetchData();
- });
+ const cb = async (err) => {
+ if (err) {
+ visible.value = true;
} else {
- await UserAdd({
- ...editform.value,
- } as unknown as User).then((res) => {
- fetchData();
- });
+ if (editform.value.userId.length > 0) {
+ await UserEdit({
+ ...editform.value
+ } as unknown as User).then((res) => {
+ fetchData();
+ });
+ } else {
+ await UserAdd({
+ ...editform.value
+ } as unknown as User).then((res) => {
+ fetchData();
+ });
+ }
}
+
+ };
+ const editHandleOk = () => {
+ formRef.value.validate(cb);
};
const operation = async (t, record) => {
if (t == 0) {
@@ -660,9 +482,11 @@
visible.value = true;
editform.value.userId = '';
editform.value.userName = '';
+ editform.value.loginName = '';
editform.value.nickName = '';
editform.value.email = '';
editform.value.phoneNumber = '';
+ editform.value.role = '';
}
//閲嶇疆瀵嗙爜
if (t == 1) {
@@ -686,9 +510,12 @@
save.value = '缂栬緫';
editform.value.userId = record.userId;
editform.value.userName = record.userName;
- editform.value.nickName = record.nickName;
+ editform.value.loginName = record.loginName;
editform.value.email = record.email;
editform.value.phoneNumber = record.phoneNumber;
+ if (record.roles?.length>0) {
+ editform.value.role = record.roles[0].roleId;
+ }
}
//鍒犻櫎
if (t == 3) {
@@ -701,40 +528,63 @@
//鏉冮檺
if (t == 4) {
resourcevisible.value = true;
- checkedKeysMenu.value = [];
- expandKdysMenu.value = [];
checkStrictlyMenu.value = [];
checkStrictlyKnowledge.value = [];
- checkedKeysKnowledge.value = [];
checkStrictlyDialog.value = [];
- checkedKeysDialog.value = [];
+ checkStrictlyAgent.value = [];
selectUser.value = record;
- if (record.resources) {
- record.resources.forEach((val) => {
+
+ let agents;
+ if (record.agents){
+ agents=record.agents
+ }else{
+ agents = record.roles ? record.roles[0].agents : null;
+ }
+ if (agents) {
+ agents.forEach((val) => {
+ checkStrictlyAgent.value.push({
+ agentId: val.id,
+ agentName: val.title,
+ });
+
+ });
+ }
+ let resources;
+ if (record.resources){
+ resources=record.resources
+ }else{
+ resources = record.roles ? record.roles[0].resources : null;
+ }
+ if (resources) {
+ resources.forEach((val) => {
checkStrictlyMenu.value.push({
menuId: val.menuId,
menuName: val.menuName,
});
- checkedKeysMenu.value.push(val.menuId);
- expandKdysMenu.value.push(val.menuId);
+
});
}
+ let knowledges;
if (record.knowledges) {
- record.knowledges.forEach((val) => {
+ knowledges = record.knowledges;
+ } else {
+ knowledges = record.roles ? record.roles[0].knowledges : null;
+ }
+ if (knowledges) {
+ knowledges.forEach((val) => {
checkStrictlyKnowledge.value.push({
knowledgeId: val.id,
knowledgeName: val.name,
});
- checkedKeysKnowledge.value.push(val.id);
});
}
- if (record.dialogs) {
- record.dialogs.forEach((val) => {
+ let dialogs = record.roles ? record.roles[0].dialogs : null;
+ if (dialogs) {
+ dialogs.forEach((val) => {
checkStrictlyDialog.value.push({
dialogId: val.id,
dialogName: val.name,
});
- checkedKeysDialog.value.push(val.id);
});
}
}
@@ -775,6 +625,15 @@
}
}
}
+ if (user.roles) {
+ for (const r of user.roles) {
+ if (user.roleName) {
+ user.roleName += r.roleName + ",";
+ } else {
+ user.roleName = r.roleName + ",";
+ }
+ }
+ }
}
renderData.value = res.rows;
console.log(renderData);
@@ -804,25 +663,11 @@
treeData.value = [...res.rows];
});
};
- const objArr = ref<any>([]);
- const MenuData = async (key) => {
- await ResourceList(key).then((res) => {
- treeDataMenu.value = [...res.rows];
- // addClassToLeafNodes(treeDataMenu.value);
- treeDataList.value = res.rows;
- });
- };
- KnowledgeList().then((res) => {
- knowledgeList.value = res.rows;
- });
- DialogList().then((res) => {
- DialogsList.value = res.rows;
- });
fetchData();
OrganizationData('');
- MenuData();
+ loadRole()
const reset = () => {
formModel.value = generateFormModel();
--
Gitblit v1.8.0