|
@@ -16,34 +16,37 @@
|
|
|
<CzrFormColumn
|
|
|
required
|
|
|
:span="12"
|
|
|
- label="用户名称"
|
|
|
+ label="租户名称"
|
|
|
v-model:param="state.form.name"
|
|
|
/>
|
|
|
<CzrFormColumn
|
|
|
required
|
|
|
:span="12"
|
|
|
label="租户状态"
|
|
|
- v-model:param="state.form.name"
|
|
|
+ v-model:param="state.form.enabled"
|
|
|
link="switch"
|
|
|
+ :options="DictionaryStore.trueFalseStatus"
|
|
|
/>
|
|
|
<CzrFormColumn
|
|
|
:span="12"
|
|
|
label="用户配额"
|
|
|
- v-model:param="state.form.name"
|
|
|
+ v-model:param="state.form.userQuota"
|
|
|
+ link="number"
|
|
|
/>
|
|
|
<CzrFormColumn
|
|
|
+ v-if="state.form.id"
|
|
|
:span="12"
|
|
|
label="租户启用时间"
|
|
|
- v-model:param="state.form.name"
|
|
|
- link="date"
|
|
|
+ v-model:param="state.form.startDate"
|
|
|
+ link="datetime"
|
|
|
:disabled="true"
|
|
|
/>
|
|
|
<CzrFormColumn
|
|
|
required
|
|
|
:span="12"
|
|
|
label="租户停用时间"
|
|
|
- v-model:param="state.form.name"
|
|
|
- link="date"
|
|
|
+ v-model:param="state.form.endDate"
|
|
|
+ link="datetime"
|
|
|
/>
|
|
|
</el-row>
|
|
|
</el-col>
|
|
@@ -62,25 +65,27 @@
|
|
|
/>
|
|
|
</el-row>
|
|
|
</el-col>
|
|
|
- <div class="__czr-title_1">
|
|
|
- 管理员账号
|
|
|
- <CzrButton
|
|
|
- type="normal"
|
|
|
- title="新增"
|
|
|
- class="ml-auto"
|
|
|
- @click="onInvite"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <div class="mt-4 w-full">
|
|
|
- <CzrTable
|
|
|
- :data="state.admins.data"
|
|
|
- :head="state.admins.head"
|
|
|
- :full="true"
|
|
|
- no-foot
|
|
|
- maxHeight="300px"
|
|
|
- >
|
|
|
- </CzrTable>
|
|
|
- </div>
|
|
|
+ <template v-if="state.form.id">
|
|
|
+ <div class="__czr-title_1">
|
|
|
+ 管理员账号
|
|
|
+ <CzrButton
|
|
|
+ type="normal"
|
|
|
+ title="新增"
|
|
|
+ class="ml-auto"
|
|
|
+ @click="onInvite"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="mt-4 w-full">
|
|
|
+ <CzrTable
|
|
|
+ :data="state.form.userTenants || []"
|
|
|
+ :head="state.admins.head"
|
|
|
+ :full="true"
|
|
|
+ no-foot
|
|
|
+ maxHeight="300px"
|
|
|
+ >
|
|
|
+ </CzrTable>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
</CzrForm>
|
|
|
</div>
|
|
|
<CzrDialog
|
|
@@ -130,6 +135,12 @@ import { useAppStore, useDialogStore, useDictionaryStore } from '@/stores'
|
|
|
import { useRouter } from 'vue-router'
|
|
|
import { CopyDocument } from '@element-plus/icons-vue'
|
|
|
import { copy } from '@/utils/czr-util'
|
|
|
+import {
|
|
|
+ tenantsAdd,
|
|
|
+ tenantsDetail,
|
|
|
+ tenantsEdit,
|
|
|
+} from '@/api/modules/center/tenant'
|
|
|
+import { accountGenerateFriendlyCode } from '@/api/modules/global/invite'
|
|
|
|
|
|
const router = useRouter()
|
|
|
const AppStore = useAppStore()
|
|
@@ -147,9 +158,9 @@ const state: any = reactive({
|
|
|
file: [],
|
|
|
admins: {
|
|
|
head: [
|
|
|
- { value: 'name', label: '账号', show: true },
|
|
|
+ { value: 'loginId', label: '账号', show: true },
|
|
|
{ value: 'name', label: '用户名', show: true },
|
|
|
- { value: 'name', label: '状态', show: true },
|
|
|
+ { value: 'status', label: '状态', show: true },
|
|
|
{
|
|
|
value: 'caozuo',
|
|
|
label: '操作',
|
|
@@ -188,7 +199,7 @@ watch(
|
|
|
(n) => {
|
|
|
if (n) {
|
|
|
initDictionary()
|
|
|
- state.form = {}
|
|
|
+ state.form = { enabled: true }
|
|
|
state.file = []
|
|
|
if (props.transfer.mode !== 'add') {
|
|
|
initData()
|
|
@@ -201,16 +212,15 @@ watch(
|
|
|
)
|
|
|
const initDictionary = () => {}
|
|
|
const initData = () => {
|
|
|
- // state.loading = true
|
|
|
- // datasetsDetail(props.transfer.id)
|
|
|
- // .then(({ data }: any) => {
|
|
|
- // state.form = data
|
|
|
- // ref_modelConfig.value.init(data)
|
|
|
- // })
|
|
|
- // .catch(() => {})
|
|
|
- // .finally(() => {
|
|
|
- // state.loading = false
|
|
|
- // })
|
|
|
+ state.loading = true
|
|
|
+ tenantsDetail(props.transfer.id)
|
|
|
+ .then(({ data }: any) => {
|
|
|
+ state.form = data
|
|
|
+ })
|
|
|
+ .catch(() => {})
|
|
|
+ .finally(() => {
|
|
|
+ state.loading = false
|
|
|
+ })
|
|
|
}
|
|
|
const onSubmit = (isImport) => {
|
|
|
ref_form.value
|
|
@@ -219,46 +229,34 @@ const onSubmit = (isImport) => {
|
|
|
DialogStore.confirm({
|
|
|
content: `请确认是否${titleCpt.value}?${isImport ? '创建成功后将自动跳转至文档上传页面!' : ''}`,
|
|
|
onSubmit: () => {
|
|
|
- // state.loading = true
|
|
|
- // if (props.transfer.mode === 'add') {
|
|
|
- // datasetsCreate({
|
|
|
- // ...state.form,
|
|
|
- // ...ref_modelConfig.value.getData(),
|
|
|
- // })
|
|
|
- // .then(({ data }: any) => {
|
|
|
- // ElMessage.success(`${titleCpt.value}成功!`)
|
|
|
- // if (isImport) {
|
|
|
- // router.push({
|
|
|
- // name: '18e6009c-a72c-4359-864b-e7725fccca69',
|
|
|
- // params: {
|
|
|
- // id: data.id,
|
|
|
- // },
|
|
|
- // })
|
|
|
- // } else {
|
|
|
- // emit('update:show', false)
|
|
|
- // emit('refresh')
|
|
|
- // }
|
|
|
- // })
|
|
|
- // .catch(() => {})
|
|
|
- // .finally(() => {
|
|
|
- // state.loading = false
|
|
|
- // })
|
|
|
- // } else {
|
|
|
- // datasetsUpdate({
|
|
|
- // ...state.form,
|
|
|
- // ...ref_modelConfig.value.getData(),
|
|
|
- // tenantId: AppStore.tenantInfo?.id,
|
|
|
- // })
|
|
|
- // .then(({ data }: any) => {
|
|
|
- // ElMessage.success(`${titleCpt.value}成功!`)
|
|
|
- // emit('update:show', false)
|
|
|
- // emit('refresh')
|
|
|
- // })
|
|
|
- // .catch(() => {})
|
|
|
- // .finally(() => {
|
|
|
- // state.loading = false
|
|
|
- // })
|
|
|
- // }
|
|
|
+ if (state.file[0]) {
|
|
|
+ state.form.picture = state.file[0].url
|
|
|
+ }
|
|
|
+ state.loading = true
|
|
|
+ if (props.transfer.mode === 'add') {
|
|
|
+ tenantsAdd(state.form)
|
|
|
+ .then(({ data }: any) => {
|
|
|
+ ElMessage.success(`${titleCpt.value}成功!`)
|
|
|
+
|
|
|
+ emit('update:show', false)
|
|
|
+ emit('refresh')
|
|
|
+ })
|
|
|
+ .catch(() => {})
|
|
|
+ .finally(() => {
|
|
|
+ state.loading = false
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ tenantsEdit(state.form)
|
|
|
+ .then(({ data }: any) => {
|
|
|
+ ElMessage.success(`${titleCpt.value}成功!`)
|
|
|
+ emit('update:show', false)
|
|
|
+ emit('refresh')
|
|
|
+ })
|
|
|
+ .catch(() => {})
|
|
|
+ .finally(() => {
|
|
|
+ state.loading = false
|
|
|
+ })
|
|
|
+ }
|
|
|
},
|
|
|
})
|
|
|
})
|
|
@@ -271,8 +269,22 @@ const onSubmit = (isImport) => {
|
|
|
})
|
|
|
}
|
|
|
const onInvite = () => {
|
|
|
- state.invite.url = 'https://cn.element-plus.org/zh-CN/component/input.html'
|
|
|
- state.invite.show = true
|
|
|
+ accountGenerateFriendlyCode({
|
|
|
+ userId: AppStore.userInfo?.id,
|
|
|
+ tenantId: state.form.id,
|
|
|
+ })
|
|
|
+ .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)
|