vue3:review 租户列表、租户套餐、用户管理
parent
7e5c44b0db
commit
ae8795df8e
|
@ -13,7 +13,7 @@ export const rules = reactive({
|
|||
phone: [
|
||||
{
|
||||
pattern:
|
||||
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/,
|
||||
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/, // TODO @星语:前端只校验长度,格式交给后端;因为号码格式不断在变的
|
||||
trigger: 'blur',
|
||||
message: '请输入正确的手机号码'
|
||||
}
|
||||
|
|
|
@ -204,7 +204,7 @@ const handleDelete = async (rowId: number) => {
|
|||
}
|
||||
|
||||
const userNicknameFormat = (row) => {
|
||||
if (!row || !row.leaderUserId || row.leaderUserId == null) {
|
||||
if (!row || !row.leaderUserId) {
|
||||
return '未设置'
|
||||
}
|
||||
for (const user of userOption.value) {
|
||||
|
|
|
@ -36,6 +36,7 @@ export const rules = reactive({
|
|||
// CrudSchema.
|
||||
const crudSchemas = reactive<VxeCrudSchema>({
|
||||
primaryKey: 'id',
|
||||
primaryTitle: '租户编号',
|
||||
primaryType: 'seq',
|
||||
action: true,
|
||||
columns: [
|
||||
|
@ -121,7 +122,7 @@ const crudSchemas = reactive<VxeCrudSchema>({
|
|||
{
|
||||
title: t('table.createTime'),
|
||||
field: 'createTime',
|
||||
formatter: 'formatDate',
|
||||
formatter: 'formatDate', // TODO 星语:要不给 formatter = formatDate 的时候,设置一个它的默认宽度,避免缩进
|
||||
isForm: false
|
||||
}
|
||||
]
|
||||
|
|
|
@ -19,6 +19,7 @@ export const rules = reactive({
|
|||
const crudSchemas = reactive<VxeCrudSchema>({
|
||||
primaryKey: 'id',
|
||||
primaryType: 'seq',
|
||||
primaryTitle: '套餐编号',
|
||||
action: true,
|
||||
columns: [
|
||||
{
|
||||
|
@ -35,7 +36,7 @@ const crudSchemas = reactive<VxeCrudSchema>({
|
|||
},
|
||||
{
|
||||
title: '菜单权限',
|
||||
field: 'menuIds',
|
||||
field: 'menuIds', // TODO 星语:菜单权限,表单可以搞大点哇?
|
||||
isTable: false
|
||||
},
|
||||
{
|
||||
|
|
|
@ -28,8 +28,8 @@
|
|||
</template>
|
||||
<!-- 列表 -->
|
||||
<vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar">
|
||||
<!-- 操作:新增 -->
|
||||
<template #toolbar_buttons>
|
||||
<!-- 操作:新增 -->
|
||||
<XButton
|
||||
type="primary"
|
||||
preIcon="ep:zoom-in"
|
||||
|
@ -37,6 +37,7 @@
|
|||
v-hasPermi="['system:user:create']"
|
||||
@click="handleCreate()"
|
||||
/>
|
||||
<!-- 操作:导入用户 -->
|
||||
<XButton
|
||||
type="warning"
|
||||
preIcon="ep:upload"
|
||||
|
@ -44,6 +45,7 @@
|
|||
v-hasPermi="['system:user:import']"
|
||||
@click="importDialogVisible = true"
|
||||
/>
|
||||
<!-- 操作:导出用户 -->
|
||||
<XButton
|
||||
type="warning"
|
||||
preIcon="ep:download"
|
||||
|
@ -52,6 +54,7 @@
|
|||
@click="exportList('用户数据.xls')"
|
||||
/>
|
||||
</template>
|
||||
<!-- TODO @星语:貌似没生效? -->
|
||||
<template #status="{ row }">
|
||||
<el-switch
|
||||
v-model="row.status"
|
||||
|
@ -61,6 +64,7 @@
|
|||
/>
|
||||
</template>
|
||||
<template #actionbtns_default="{ row }">
|
||||
<!-- 操作:编辑 -->
|
||||
<XTextButton
|
||||
preIcon="ep:edit"
|
||||
:title="t('action.edit')"
|
||||
|
@ -74,12 +78,15 @@
|
|||
v-hasPermi="['system:user:update']"
|
||||
@click="handleDetail(row.id)"
|
||||
/>
|
||||
<!-- TODO 芋艿:可以重置角色、密码收起来么,形成【更多】 -->
|
||||
<!-- 操作:重置密码 -->
|
||||
<XTextButton
|
||||
preIcon="ep:key"
|
||||
title="重置密码"
|
||||
v-hasPermi="['system:user:update-password']"
|
||||
@click="handleResetPwd(row)"
|
||||
/>
|
||||
<!-- 操作:分配角色 -->
|
||||
<XTextButton
|
||||
preIcon="ep:key"
|
||||
title="分配角色"
|
||||
|
@ -349,6 +356,7 @@ const handleCreate = async () => {
|
|||
deptId.value = null
|
||||
postIds.value = []
|
||||
await nextTick()
|
||||
// TODO 星语:要不要这个放到新增里?这样和 handleUpdate 统一一点
|
||||
if (allSchemas.formSchema[0].field !== 'username') {
|
||||
unref(formRef)?.addSchema(
|
||||
{
|
||||
|
@ -371,7 +379,7 @@ const handleCreate = async () => {
|
|||
|
||||
// 修改操作
|
||||
const handleUpdate = async (rowId: number) => {
|
||||
setDialogTile('update')
|
||||
setDialogTile('update') // TODO @星语:有警告
|
||||
await nextTick()
|
||||
unref(formRef)?.delSchema('username')
|
||||
unref(formRef)?.delSchema('password')
|
||||
|
@ -475,6 +483,7 @@ const submitRole = async () => {
|
|||
roleDialogVisible.value = false
|
||||
}
|
||||
// ========== 导入相关 ==========
|
||||
// TODO @星语:这个要不要把导入用户,封装成一个小组件?可选哈
|
||||
const importDialogVisible = ref(false)
|
||||
const uploadDisabled = ref(false)
|
||||
const importDialogTitle = ref('用户导入')
|
||||
|
|
|
@ -14,7 +14,7 @@ export const rules = reactive({
|
|||
mobile: [
|
||||
{
|
||||
pattern:
|
||||
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/,
|
||||
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/, // TODO @星语:前端只校验长度,格式交给后端;因为号码格式不断在变的
|
||||
trigger: 'blur',
|
||||
message: '请输入正确的手机号码'
|
||||
}
|
||||
|
@ -24,6 +24,7 @@ export const rules = reactive({
|
|||
const crudSchemas = reactive<VxeCrudSchema>({
|
||||
primaryKey: 'id',
|
||||
primaryType: 'seq',
|
||||
primaryTitle: '用户编号',
|
||||
action: true,
|
||||
actionWidth: '400px',
|
||||
columns: [
|
||||
|
@ -56,12 +57,12 @@ const crudSchemas = reactive<VxeCrudSchema>({
|
|||
},
|
||||
{
|
||||
title: '部门',
|
||||
field: 'deptId',
|
||||
field: 'deptId', // TODO 星语:详情的部门没展示
|
||||
isTable: false
|
||||
},
|
||||
{
|
||||
title: '岗位',
|
||||
field: 'postIds',
|
||||
field: 'postIds', // TODO 星语:岗位为空的时候,要不要不展示
|
||||
isTable: false
|
||||
},
|
||||
{
|
||||
|
@ -74,7 +75,7 @@ const crudSchemas = reactive<VxeCrudSchema>({
|
|||
{
|
||||
title: '最后登录时间',
|
||||
field: 'loginDate',
|
||||
formatter: 'formatDate',
|
||||
formatter: 'formatDate', // TODO 星语:未登录的时候,不要展示 Invalid Date
|
||||
isForm: false
|
||||
},
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue