Skip to content

Commit 7c92735

Browse files
committed
Vue3 重构:REVIEW 租户管理
1 parent 3db7b26 commit 7c92735

File tree

4 files changed

+114
-326
lines changed

4 files changed

+114
-326
lines changed

src/api/system/tenant/index.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,31 +32,31 @@ export interface TenantExportReqVO {
3232
}
3333

3434
// 查询租户列表
35-
export const getTenantPageApi = (params: TenantPageReqVO) => {
35+
export const getTenantPage = (params: TenantPageReqVO) => {
3636
return request.get({ url: '/system/tenant/page', params })
3737
}
3838

3939
// 查询租户详情
40-
export const getTenantApi = (id: number) => {
40+
export const getTenant = (id: number) => {
4141
return request.get({ url: '/system/tenant/get?id=' + id })
4242
}
4343

4444
// 新增租户
45-
export const createTenantApi = (data: TenantVO) => {
45+
export const createTenant = (data: TenantVO) => {
4646
return request.post({ url: '/system/tenant/create', data })
4747
}
4848

4949
// 修改租户
50-
export const updateTenantApi = (data: TenantVO) => {
50+
export const updateTenant = (data: TenantVO) => {
5151
return request.put({ url: '/system/tenant/update', data })
5252
}
5353

5454
// 删除租户
55-
export const deleteTenantApi = (id: number) => {
55+
export const deleteTenant = (id: number) => {
5656
return request.delete({ url: '/system/tenant/delete?id=' + id })
5757
}
5858

5959
// 导出租户
60-
export const exportTenantApi = (params: TenantExportReqVO) => {
60+
export const exportTenant = (params: TenantExportReqVO) => {
6161
return request.download({ url: '/system/tenant/export-excel', params })
6262
}

src/views/system/tenant/form.vue

Lines changed: 69 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -7,96 +7,67 @@
77
label-width="80px"
88
v-loading="formLoading"
99
>
10-
<el-row>
11-
<el-col :span="10">
12-
<el-form-item label="租户名" prop="name">
13-
<el-input v-model="formData.name" placeholder="请输入租户名" />
14-
</el-form-item>
15-
</el-col>
16-
<el-col :span="10" :offset="2">
17-
<el-form-item label="租户套餐" prop="packageId">
18-
<el-select v-model="formData.packageId" placeholder="请选择租户套餐" clearable>
19-
<el-option
20-
v-for="item in packageList"
21-
:key="item.id"
22-
:label="item.name"
23-
:value="item.id"
24-
/>
25-
</el-select>
26-
</el-form-item>
27-
</el-col>
28-
</el-row>
29-
<el-row>
30-
<el-col :span="10">
31-
<el-form-item label="联系人" prop="contactName">
32-
<el-input v-model="formData.contactName" placeholder="请输入联系人" />
33-
</el-form-item>
34-
</el-col>
35-
<el-col :span="10" :offset="2">
36-
<el-form-item label="联系手机" prop="contactMobile">
37-
<el-input v-model="formData.contactMobile" placeholder="请输入联系手机" />
38-
</el-form-item>
39-
</el-col>
40-
</el-row>
41-
<el-row>
42-
<el-col :span="10">
43-
<el-form-item v-if="formData.id === undefined" label="用户名称" prop="username">
44-
<el-input v-model="formData.username" placeholder="请输入用户名称" />
45-
</el-form-item>
46-
</el-col>
47-
<el-col :span="10" :offset="2">
48-
<el-form-item v-if="formData.id === undefined" label="用户密码" prop="password">
49-
<el-input
50-
v-model="formData.password"
51-
placeholder="请输入用户密码"
52-
type="password"
53-
show-password
54-
/>
55-
</el-form-item>
56-
</el-col>
57-
</el-row>
58-
<el-row>
59-
<el-col :span="10">
60-
<el-form-item label="账号额度" prop="accountCount">
61-
<el-input-number
62-
v-model="formData.accountCount"
63-
placeholder="请输入账号额度"
64-
controls-position="right"
65-
:min="0"
66-
/>
67-
</el-form-item>
68-
</el-col>
69-
<el-col :span="10" :offset="2">
70-
<el-form-item label="过期时间" prop="expireTime">
71-
<el-date-picker
72-
clearable
73-
v-model="formData.expireTime"
74-
type="date"
75-
value-format="x"
76-
placeholder="请选择过期时间"
77-
/>
78-
</el-form-item>
79-
</el-col>
80-
</el-row>
81-
<el-row>
82-
<el-col :span="10">
83-
<el-form-item label="绑定域名" prop="domain">
84-
<el-input v-model="formData.domain" placeholder="请输入绑定域名" />
85-
</el-form-item>
86-
</el-col>
87-
<el-col :span="10" :offset="2">
88-
<el-form-item label="租户状态" prop="status">
89-
<el-radio-group v-model="formData.status">
90-
<el-radio
91-
v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"
92-
:key="dict.value"
93-
:label="dict.value"
94-
>{{ dict.label }}
95-
</el-radio>
96-
</el-radio-group>
97-
</el-form-item>
98-
</el-col>
99-
</el-row>
10+
<el-form-item label="租户名" prop="name">
11+
<el-input v-model="formData.name" placeholder="请输入租户名" />
12+
</el-form-item>
13+
<el-form-item label="租户套餐" prop="packageId">
14+
<el-select v-model="formData.packageId" placeholder="请选择租户套餐" clearable>
15+
<el-option
16+
v-for="item in packageList"
17+
:key="item.id"
18+
:label="item.name"
19+
:value="item.id"
20+
/>
21+
</el-select>
22+
</el-form-item>
23+
<el-form-item label="联系人" prop="contactName">
24+
<el-input v-model="formData.contactName" placeholder="请输入联系人" />
25+
</el-form-item>
26+
<el-form-item label="联系手机" prop="contactMobile">
27+
<el-input v-model="formData.contactMobile" placeholder="请输入联系手机" />
28+
</el-form-item>
29+
<el-form-item v-if="formData.id === undefined" label="用户名称" prop="username">
30+
<el-input v-model="formData.username" placeholder="请输入用户名称" />
31+
</el-form-item>
32+
<el-form-item v-if="formData.id === undefined" label="用户密码" prop="password">
33+
<el-input
34+
v-model="formData.password"
35+
placeholder="请输入用户密码"
36+
type="password"
37+
show-password
38+
/>
39+
</el-form-item>
40+
<el-form-item label="账号额度" prop="accountCount">
41+
<el-input-number
42+
v-model="formData.accountCount"
43+
placeholder="请输入账号额度"
44+
controls-position="right"
45+
:min="0"
46+
/>
47+
</el-form-item>
48+
<el-form-item label="过期时间" prop="expireTime">
49+
<el-date-picker
50+
clearable
51+
v-model="formData.expireTime"
52+
type="date"
53+
value-format="x"
54+
placeholder="请选择过期时间"
55+
/>
56+
</el-form-item>
57+
<el-form-item label="绑定域名" prop="domain">
58+
<el-input v-model="formData.domain" placeholder="请输入绑定域名" />
59+
</el-form-item>
60+
<el-form-item label="租户状态" prop="status">
61+
<el-radio-group v-model="formData.status">
62+
<el-radio
63+
v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"
64+
:key="dict.value"
65+
:label="dict.value"
66+
>
67+
{{ dict.label }}
68+
</el-radio>
69+
</el-radio-group>
70+
</el-form-item>
10071
</el-form>
10172
<template #footer>
10273
<div class="dialog-footer">
@@ -110,7 +81,7 @@
11081
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
11182
import * as TenantApi from '@/api/system/tenant'
11283
import { CommonStatusEnum } from '@/utils/constants'
113-
import { getTenantPackageList as getTenantPackageListApi } from '@/api/system/tenantPackage'
84+
import * as TenantPackageApi from '@/api/system/tenantPackage'
11485
11586
const { t } = useI18n() // 国际化
11687
const message = useMessage() // 消息弹窗
@@ -142,7 +113,7 @@ const formRef = ref() // 表单 Ref
142113
const packageList = ref([]) // 租户套餐
143114
144115
/** 打开弹窗 */
145-
const openModal = async (type: string, id?: number) => {
116+
const open = async (type: string, id?: number) => {
146117
modelVisible.value = true
147118
modelTitle.value = t('action.' + type)
148119
formType.value = type
@@ -151,14 +122,15 @@ const openModal = async (type: string, id?: number) => {
151122
if (id) {
152123
formLoading.value = true
153124
try {
154-
formData.value = await TenantApi.getTenantApi(id)
125+
formData.value = await TenantApi.getTenant(id)
155126
} finally {
156127
formLoading.value = false
157128
}
158129
}
159-
packageList.value = await getTenantPackageListApi()
130+
// 加载套餐列表
131+
packageList.value = await TenantPackageApi.getTenantPackageList()
160132
}
161-
defineExpose({ openModal }) // 提供 openModal 方法,用于打开弹窗
133+
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
162134
163135
/** 提交表单 */
164136
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
@@ -172,10 +144,10 @@ const submitForm = async () => {
172144
try {
173145
const data = formData.value as unknown as TenantApi.TenantVO
174146
if (formType.value === 'create') {
175-
await TenantApi.createTenantApi(data)
147+
await TenantApi.createTenant(data)
176148
message.success(t('common.createSuccess'))
177149
} else {
178-
await TenantApi.updateTenantApi(data)
150+
await TenantApi.updateTenant(data)
179151
message.success(t('common.updateSuccess'))
180152
}
181153
modelVisible.value = false

0 commit comments

Comments
 (0)