CzRger hace 1 semana
padre
commit
6ee517e083
Se han modificado 1 ficheros con 29 adiciones y 18 borrados
  1. 29 18
      src/views/manage/center/user/index.vue

+ 29 - 18
src/views/manage/center/user/index.vue

@@ -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>