diff --git a/jeecgboot-vue3/src/views/system/tenant/TenantUserList.vue b/jeecgboot-vue3/src/views/system/tenant/TenantUserList.vue index d95b7658a..39b2f51d2 100644 --- a/jeecgboot-vue3/src/views/system/tenant/TenantUserList.vue +++ b/jeecgboot-vue3/src/views/system/tenant/TenantUserList.vue @@ -4,10 +4,20 @@ @@ -31,14 +52,13 @@ import { BasicTable, TableAction, ActionItem } from '/@/components/Table'; import UserDrawer from '../user/UserDrawer.vue'; import JThirdAppButton from '/@/components/jeecg/thirdApp/JThirdAppButton.vue'; - import UserQuitAgentModal from '../user/UserQuitAgentModal.vue'; import UserQuitModal from '../user/UserQuitModal.vue'; import { useDrawer } from '/@/components/Drawer'; import { useListPage } from '/@/hooks/system/useListPage'; import { useModal } from '/@/components/Modal'; import { useMessage } from '/@/hooks/web/useMessage'; import { columns, searchFormSchema } from '../user/user.data'; - import { list , deleteUser, batchDeleteUser, getImportUrl, getExportUrl, frozenBatch , getUserTenantPageList, updateUserTenantStatus } from '../user/user.api'; + import { list , deleteUser, batchDeleteUser, getImportUrl, getExportUrl, frozenBatch, getUserTenantPageList, updateUserTenantStatus } from '../user/user.api'; // import { usePermission } from '/@/hooks/web/usePermission' // const { hasPermission } = usePermission(); import { userTenantColumns, userTenantFormSchema } from '../user/user.data'; @@ -46,9 +66,11 @@ import UserSelectModal from '/@/components/Form/src/jeecg/components/modal/UserSelectModal.vue'; import { getTenantId } from "/@/utils/auth"; import { changeOwenUserTenant } from "/@/views/system/usersetting/UserSetting.api"; - import { getLoginTenantName } from "/@/views/system/tenant/tenant.api"; + import {getLoginTenantName, invitationUserJoin, leaveTenant} from "/@/views/system/tenant/tenant.api"; import TenantUserDrawer from './components/TenantUserDrawer.vue'; - import { tenantSaasMessage } from "@/utils/common/compUtils"; + import { sameDay, tenantSaasMessage } from "@/utils/common/compUtils"; + import TenantPackAllotModal from './components/TenantPackAllotModal.vue' + import TenantInviteUserModal from "@/views/system/tenant/components/TenantInviteUserModal.vue"; const { createMessage, createConfirm } = useMessage(); @@ -58,8 +80,12 @@ const [registerQuitAgentModal, { openModal: openQuitAgentModal }] = useModal(); //离职用户列表model const [registerQuitModal, { openModal: openQuitModal }] = useModal(); + //分配套餐弹窗 + const [registerPackAllotModal, { openModal: openPackAllotModal }] = useModal(); const userStore = useUserStore(); const createBy = userStore.getUserInfo.username; + //弹窗提示显示 + const tipShow = ref(false); // 列表页面公共参数、方法 const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({ @@ -153,22 +179,23 @@ function getDropDownAction(record): ActionItem[] { return [ { - label: '详情', + label: '查看详情', onClick: handleDetail.bind(null, record), }, { - label: '离职', - //update-begin---author:wangshuai---date:2023-10-25---for:【QQYUN-6822】9.离职交接人选的是自己,完成之后数据没了--- - onClick: handleQuit.bind(null,record.username, record.id), - //update-end---author:wangshuai---date:2023-10-25---for:【QQYUN-6822】9.离职交接人选的是自己,完成之后数据没了--- - //update-begin---author:wangshuai ---date:20230130 for:[QQYUN-3974]租户的创建人 不应该有离职按钮------------ - ifShow: () =>{ - return record.status === '1' && record.username!== record.createBy; - } - //update-end---author:wangshuai ---date:20230130 for:[QQYUN-3974]租户的创建人 不应该有离职按钮------------ + label: '移除用户', + onClick: handleLeave.bind(null, record.id), }, { - label: '交接', + label: '删除用户', + popConfirm: { + title: '是否确认删除该用户', + confirm: handleDeleteUser.bind(null, record), + }, + ifShow: () => record.username!== userStore.getUserInfo?.username && sameDay(record.createTime), + }, + { + label: '变更拥有者', onClick: handleHandover.bind(null, record), ifShow: () =>{ return record.username === record.createBy; @@ -191,19 +218,13 @@ return record.status === '3' && record.createBy === createBy; }, }, + { + label: '用户套餐', + onClick: handleAllotPack.bind(null, record), + } ]; } - /** - * 离职 - * @param userName - * @param userId - */ - function handleQuit(userName, userId) { - //打开离职代理人弹窗 - openQuitAgentModal(true, { userName, userId }); - } - /** * 更新用户租户状态 * @param id @@ -228,6 +249,8 @@ const excludeUserIdList = ref([]); //离职代理人model const [registerUserModal, { openModal: openUserModal }] = useModal(); + //邀请用户加入弹窗 + const [registerSelUserModal, { openModal: userOpenModal }] = useModal(); const handOverUserName = ref(''); /** @@ -277,21 +300,59 @@ loginTenantName.value = await getLoginTenantName(); } //update-end---author:wangshuai ---date:20230710 for:【QQYUN-5723】4、显示当前登录租户------------ + /** - * 离职成功之后需要判断一下是否为当前用户,当前用户需要刷新浏览器 - * @param userName + * 分配套餐 + * + * @param record */ - function handleQuitSuccess(userName) { - //判断如果当前离职的是当前登录用户,需要刷新页面,便将租户id设置成null - let username = userStore.getUserInfo.username; - if (username && userName === username) { - userStore.setTenant(null); - window.location.reload(); - }else{ + function handleAllotPack(record) { + openPackAllotModal(true,{ + record + }) + } + + /** + * 删除用户 + */ + function handleDeleteUser(record) { + deleteUser({ id: record.id }, reload); + } + + /** + * 邀请用户加入租户 + */ + function handleInvitation() { + userOpenModal(true, {}); + } + + /** + * 用户选择回调事件 + * @param username + * @param phone + * @param userSelectId + */ + async function handleInviteUserOk(phone, username) { + let tId = getTenantId(); + if (phone) { + await invitationUserJoin({ ids: tId, phone: phone }); + reload(); + } + if (username) { + await invitationUserJoin({ ids: tId, username: username }); reload(); } } + + /** + * 请离 + * @param id + */ + async function handleLeave(id) { + await leaveTenant({ userIds: id, tenantId: getTenantId() }, reload) + } + onMounted(()=>{ tenantSaasMessage('租户用户') @@ -304,4 +365,11 @@ margin: 5px; font-size: 15px; } + .user-tenant-tip{ + margin: 20px; + background-color: #f8f9fb; + color: #99a1a9; + border-radius: 4px; + padding: 12px; + } diff --git a/jeecgboot-vue3/src/views/system/tenant/components/TenantPackAllotModal.vue b/jeecgboot-vue3/src/views/system/tenant/components/TenantPackAllotModal.vue new file mode 100644 index 000000000..01daf7bb2 --- /dev/null +++ b/jeecgboot-vue3/src/views/system/tenant/components/TenantPackAllotModal.vue @@ -0,0 +1,77 @@ + + + + + + diff --git a/jeecgboot-vue3/src/views/system/tenant/components/TenantUserRightList.vue b/jeecgboot-vue3/src/views/system/tenant/components/TenantUserRightList.vue new file mode 100644 index 000000000..e61d23ed2 --- /dev/null +++ b/jeecgboot-vue3/src/views/system/tenant/components/TenantUserRightList.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/jeecgboot-vue3/src/views/system/tenant/my/MyTenantDetail.vue b/jeecgboot-vue3/src/views/system/tenant/my/MyTenantDetail.vue new file mode 100644 index 000000000..6aea5817a --- /dev/null +++ b/jeecgboot-vue3/src/views/system/tenant/my/MyTenantDetail.vue @@ -0,0 +1,296 @@ + + + + diff --git a/jeecgboot-vue3/src/views/system/tenant/my/MyTenantList.vue b/jeecgboot-vue3/src/views/system/tenant/my/MyTenantList.vue index b4b8c1612..1a526f34b 100644 --- a/jeecgboot-vue3/src/views/system/tenant/my/MyTenantList.vue +++ b/jeecgboot-vue3/src/views/system/tenant/my/MyTenantList.vue @@ -10,14 +10,14 @@ :disabled="selectedRowKeys.length === 0" >邀请用户加入 - 套餐 + >-->