支持通过用户账号邀请加入租户

pull/8722/head
JEECG 2025-08-12 18:18:34 +08:00
parent 3d9f59c69b
commit c5150baa69
4 changed files with 79 additions and 29 deletions

View File

@ -19,21 +19,43 @@ export default defineComponent({
const title = ref<string>('邀请成员');
const [registerForm, { resetFields, validate }] = useForm({
schemas: [
{
label: '邀请方式',
field: 'invitedMode',
component: 'RadioButtonGroup',
defaultValue: 1,
componentProps: {
options: [
{ label: '手机号', value: 1 },
{ label: '用户账号', value: 2 },
],
},
},
{
label: '手机号',
field: 'phone',
component: 'Input',
dynamicRules: () => {
return [
{ required: true, message: '请填写手机号' },
{ pattern: /^1[3456789]\d{9}$/, message: '手机号码格式有误' },
];
ifShow: ({ values }) => values.invitedMode === 1,
dynamicRules: ({ values }) => {
return values.invitedMode === 1
? [
{ required: true, message: '请填写手机号' },
{ pattern: /^1[3456789]\d{9}$/, message: '手机号码格式有误' },
]
: [{ pattern: /^1[3456789]\d{9}$/, message: '手机号码格式有误' }];
},
},
{
field: 'user',
component: 'Input',
label: '用户账号',
ifShow: ({ values }) => values.invitedMode === 2,
dynamicRules: ({ values }) => {
return values.invitedMode === 2 ? [{ required: true, message: '请输入用户账号' }] : [];
},
},
],
showActionButtonGroup: false,
labelCol: { span: 24 },
wrapperCol: { span: 24 },
});
//
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
@ -47,7 +69,7 @@ export default defineComponent({
*/
async function handleSubmit() {
let values = await validate();
emit('inviteOk',values.phone);
emit('inviteOk', values.phone, values.user);
closeModal();
}

View File

@ -156,12 +156,16 @@
/**
* 用户选择回调事件
* @param options
* @param value
* @param phone
* @param userSelectId
*/
async function handleInviteUserOk(value) {
async function handleInviteUserOk(phone, username) {
//update-begin---author:wangshuai ---date:20230314 forQQYUN-4605------------
if (value) {
await invitationUserJoin({ ids: selectedRowKeys.value.join(','), phone: value });
if (phone) {
await invitationUserJoin({ ids: selectedRowKeys.value.join(','), phone: phone });
}
if (username) {
await invitationUserJoin({ ids: selectedRowKeys.value.join(','), username: username });
}
//update-end---author:wangshuai ---date:20230314 forQQYUN-4605------------
}

View File

@ -1,6 +1,6 @@
<template>
<div>
<BasicTable @register="registerTable" :rowSelection="rowSelection">
<BasicTable @register="registerTable" :rowSelection="rowSelection" @fetch-success="onFetchSuccess">
<template #tableTitle>
<a-button
preIcon="ant-design:user-add-outlined"
@ -67,7 +67,7 @@
fixed: 'right',
},
rowSelection:{
type: "radio"
type: "radio",
},
beforeFetch: (params) => {
return Object.assign(params, { userTenantStatus: '1,3,4' });
@ -76,6 +76,26 @@
});
const [registerTable, { reload }, { rowSelection, selectedRowKeys, selectedRows }] = tableContext;
//
function onFetchSuccess(data) {
let items = data.items;
console.log('items:', items);
// ID
let loginTenantId = getTenantId();
console.log('loginTenantId:', loginTenantId);
// ID
if (items && items.length > 0 && loginTenantId) {
for (let i = 0; i < items.length; i++) {
if (items[i].id == loginTenantId) {
console.log('items[i].id:', items[i].id);
selectedRowKeys.value = [items[i].id];
selectedRows.value = [items[i]];
return;
}
}
}
}
/**
* 操作列定义
* @param record
@ -99,11 +119,15 @@
/**
* 用户选择回调事件
* @param options
* @param value
* @param phone
* @param userSelectId
*/
async function handleInviteUserOk(value) {
if (value) {
await invitationUserJoin({ ids: selectedRowKeys.value.join(','), phone: value });
async function handleInviteUserOk(phone, username) {
if (phone) {
await invitationUserJoin({ ids: selectedRowKeys.value.join(','), phone: phone });
}
if (username) {
await invitationUserJoin({ ids: selectedRowKeys.value.join(','), username: username });
}
}

View File

@ -40,19 +40,19 @@ export const columns: BasicColumn[] = [
title: '门牌号',
width: 100,
},
{
dataIndex: 'position_dictText',
title: '职级',
width: 150
},
{
dataIndex: 'department_dictText',
title: '部门',
width: 150
},
// {
// dataIndex: 'position_dictText',
// title: '',
// width: 150
// },
// {
// dataIndex: 'department_dictText',
// title: '',
// width: 150
// },
{
dataIndex: 'createBy_dictText',
title: '创建者(拥有)',
title: '创建者(拥有)',
width: 150
},
/* {