fix: 权限管理

This commit is contained in:
easy 2023-03-13 16:03:14 +08:00
parent 5c65ca9c50
commit 4b63114795
3 changed files with 38 additions and 24 deletions

View File

@ -45,8 +45,8 @@
label="名称" label="名称"
name="name" name="name"
:rules="[ :rules="[
{ required: true, message: '请输入名称' }, { required: true, message: '请输入名称',trigger: 'change', },
{ max: 64, message: '最多可输入64个字符' }, { max: 64, message: '最多可输入64个字符', trigger: 'change', },
]" ]"
> >
<j-input v-model:value="form.data.name" /> <j-input v-model:value="form.data.name" />
@ -57,8 +57,8 @@
label="编码" label="编码"
name="code" name="code"
:rules="[ :rules="[
{ required: true, message: '' }, { required: true, message: '请输入编码', trigger: 'change', },
{ max: 64, message: '' }, { max: 64, message: '最多可输入64个字符', trigger: 'change', },
{ {
validator: form.checkCode, validator: form.checkCode,
trigger: 'blur', trigger: 'blur',

View File

@ -12,7 +12,16 @@
<j-form-item <j-form-item
name="id" name="id"
:rules="[ :rules="[
{ required: true, message: '请输入标识(ID)' }, {
required: true,
message: '请输入标识(ID)',
trigger: 'change',
},
{
max: 64,
message: '最多可输入64个字符',
trigger: 'change',
},
{ validator: form.rules.idCheck, trigger: 'blur' }, { validator: form.rules.idCheck, trigger: 'blur' },
]" ]"
class="question-item" class="question-item"
@ -33,19 +42,23 @@
<j-input <j-input
v-model:value="form.data.id" v-model:value="form.data.id"
placeholder="请输入标识(ID)" placeholder="请输入标识(ID)"
:maxlength="64"
:disabled="dialogTitle === '编辑'" :disabled="dialogTitle === '编辑'"
/> />
</j-form-item> </j-form-item>
<j-form-item <j-form-item
name="name" name="name"
label="名称" label="名称"
:rules="[{ required: true, message: '请输入名称' }]" :rules="[
{ required: true, message: '请输入名称' },
{
max: 64,
message: '最多可输入64个字符',
},
]"
> >
<j-input <j-input
v-model:value="form.data.name" v-model:value="form.data.name"
placeholder="请输入名称" placeholder="请输入名称"
:maxlength="64"
/> />
</j-form-item> </j-form-item>
</j-form> </j-form>
@ -146,16 +159,17 @@ const form = reactive({
}, },
rules: { rules: {
// //
idCheck: (_rule: Rule, id: string, cb: Function) => { idCheck: async (_rule: Rule, id: string): Promise<any> => {
if (props.data.id) return cb(); if (!id) return Promise.reject('请输入标识(ID)');
else if (!id) return cb('请输入标识(ID)'); else if (id.length > 64)
checkId_api({ id }) return Promise.reject('最多可输入64个字符');
.then((resp: any) => { else if (props.data.id && props.data.id === form.data.id)
if (resp.status === 200 && !resp.result.passed) return Promise.resolve();
cb(resp.result.reason); else {
else cb(); const resp: any = await checkId_api({ id });
}) if (resp.result.passed) return Promise.resolve();
.catch(() => cb('验证失败')); else return Promise.reject(resp.result.reason);
}
}, },
}, },
submit: () => { submit: () => {

View File

@ -17,7 +17,7 @@
<template #headerTitle> <template #headerTitle>
<PermissionButton <PermissionButton
type="primary" type="primary"
:uhasPermission="`${permission}:add`" :hasPermission="`${permission}:add`"
@click="table.openDialog(undefined)" @click="table.openDialog(undefined)"
> >
<AIcon type="PlusOutlined" />新增 <AIcon type="PlusOutlined" />新增
@ -27,7 +27,7 @@
<template #overlay> <template #overlay>
<j-menu> <j-menu>
<j-menu-item> <j-menu-item>
<j-upload <a-upload
name="file" name="file"
action="#" action="#"
accept=".json" accept=".json"
@ -44,11 +44,11 @@
> >
导入 导入
</PermissionButton> </PermissionButton>
</j-upload> </a-upload>
</j-menu-item> </j-menu-item>
<j-menu-item> <j-menu-item>
<PermissionButton <PermissionButton
:uhasPermission="`${permission}:export`" :hasPermission="`${permission}:export`"
:popConfirm="{ :popConfirm="{
title: `确认导出?`, title: `确认导出?`,
onConfirm: () => onConfirm: () =>
@ -86,7 +86,7 @@
</PermissionButton> </PermissionButton>
<PermissionButton <PermissionButton
:uhasPermission="`${permission}:action`" :hasPermission="`${permission}:action`"
type="link" type="link"
:popConfirm="{ :popConfirm="{
title: `确定要${ title: `确定要${
@ -108,7 +108,7 @@
</PermissionButton> </PermissionButton>
<PermissionButton <PermissionButton
:uhasPermission="`${permission}:delete`" :hasPermission="`${permission}:delete`"
type="link" type="link"
:tooltip="{ :tooltip="{
title: slotProps.status title: slotProps.status