|
@@ -137,8 +137,9 @@
|
|
|
label="角色"
|
|
|
v-model:param="state.invite.roles"
|
|
|
link="select"
|
|
|
- :options="[]"
|
|
|
+ :options="state.invite.roleOptions"
|
|
|
:multiple="true"
|
|
|
+ @change="onInvite"
|
|
|
/>
|
|
|
<div class="__czr-title_1 mb-2">
|
|
|
邀请链接
|
|
@@ -167,6 +168,7 @@
|
|
|
import {
|
|
|
computed,
|
|
|
getCurrentInstance,
|
|
|
+ nextTick,
|
|
|
onMounted,
|
|
|
reactive,
|
|
|
ref,
|
|
@@ -181,6 +183,7 @@ import { userDel, userPage } from '@/api/modules/center/user'
|
|
|
import { copy } from '@/utils/czr-util'
|
|
|
import { useRouter } from 'vue-router'
|
|
|
import { accountGenerateFriendlyCode } from '@/api/modules/global/invite'
|
|
|
+import { rolesPage } from '@/api/modules/center/role'
|
|
|
|
|
|
const AppStore = useAppStore()
|
|
|
const DialogStore = useDialogStore()
|
|
@@ -244,6 +247,7 @@ const state: any = reactive({
|
|
|
transfer: {},
|
|
|
},
|
|
|
invite: {
|
|
|
+ roleOptions: [],
|
|
|
show: false,
|
|
|
url: '',
|
|
|
roles: [],
|
|
@@ -361,24 +365,26 @@ const onDel = (row: any) => {
|
|
|
}
|
|
|
|
|
|
const onInvite = () => {
|
|
|
- accountGenerateFriendlyCode({
|
|
|
- userId: AppStore.userInfo?.id,
|
|
|
- tenantId: AppStore.tenantInfo?.id,
|
|
|
- type: 1,
|
|
|
- })
|
|
|
- .then(({ data }: any) => {
|
|
|
- const routerUrl = router.resolve({
|
|
|
- name: 'invite',
|
|
|
- query: {
|
|
|
- inviteCode: data,
|
|
|
- },
|
|
|
- })
|
|
|
- state.invite.url = location.origin + routerUrl.href
|
|
|
- state.invite.roles = []
|
|
|
- state.invite.show = true
|
|
|
+ nextTick(() => {
|
|
|
+ accountGenerateFriendlyCode({
|
|
|
+ userId: AppStore.userInfo?.id,
|
|
|
+ tenantId: AppStore.tenantInfo?.id,
|
|
|
+ type: 1,
|
|
|
+ roleId: state.invite.roles.join(','),
|
|
|
})
|
|
|
- .catch(() => {})
|
|
|
- .finally(() => {})
|
|
|
+ .then(({ data }: any) => {
|
|
|
+ const routerUrl = router.resolve({
|
|
|
+ name: 'invite',
|
|
|
+ query: {
|
|
|
+ inviteCode: data,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ state.invite.url = location.origin + routerUrl.href
|
|
|
+ state.invite.show = true
|
|
|
+ })
|
|
|
+ .catch(() => {})
|
|
|
+ .finally(() => {})
|
|
|
+ })
|
|
|
}
|
|
|
const onCopy = (str) => {
|
|
|
copy(str)
|
|
@@ -390,6 +396,11 @@ onMounted(() => {
|
|
|
})
|
|
|
const initDictionary = () => {
|
|
|
DictionaryStore.initTenants()
|
|
|
+ state.invite.roleOptions = []
|
|
|
+ rolesPage({ page: 1, size: 100000 }).then(({ data }: any) => {
|
|
|
+ state.invite.roleOptions =
|
|
|
+ data.content?.map((v) => ({ label: v.roleName, value: v.id })) || []
|
|
|
+ })
|
|
|
}
|
|
|
</script>
|
|
|
|