1
0

feat(web): 增加授权相关界面

This commit is contained in:
2024-12-02 19:07:22 +08:00
parent e7918f9039
commit 1ec345e18d
11 changed files with 308 additions and 36 deletions

View File

@@ -98,6 +98,7 @@ export function inputFileFormItemCommonOptions(accept = '*', maxSize = size5MB)
accept: accept,
maxSize: maxSize,
autoUpload: false,
drag: true,
startChunkApi: apiPost('${base}/upload/start'),
chunkApi: apiPost('${base}/upload/slice'),
finishChunkApi: apiPost('${base}/upload/finish'),
@@ -197,7 +198,7 @@ export function stringField(field, label, width = undefined, wrap = false) {
if (width) {
data['width'] = width
}
if (wrap) {
if (!wrap) {
data['className'] = 'nowrap'
}
return data
@@ -247,10 +248,11 @@ export const userStateMapping = [
mappingItem('禁用', 'DISABLED', 'bg-danger'),
]
export const confirmationStateMapping = [
export const permissionStateMapping = [
mappingItem('未确权', 'NONE'),
mappingItem('草稿', 'DRAFT', 'bg-primary'),
mappingItem('审查中', 'CHECKING', 'bg-warning'),
mappingItem('用户审查中', 'USER_CHECKING', 'bg-warning'),
mappingItem('通过', 'NORMAL', 'bg-success'),
mappingItem('驳回', 'REJECT', 'bg-danger'),
]

View File

@@ -12,8 +12,12 @@ import {
import {resourceList} from "../../pages/index/tab-data.js";
import {resourceDetailDialog} from "../resource/dialog-resource.js";
const CONFIRMATION_TYPE = 'confirmation'
const AUTHENTICATION_TYPE = 'authentication'
function detailForm(showCreatedUserAndModifiedUser = false) {
return {
debug: true,
id: 'permission_form',
type: 'form',
...horizontalFormOptions(),
@@ -70,12 +74,38 @@ function detailForm(showCreatedUserAndModifiedUser = false) {
joinValues: false,
...inputFileFormItemCommonOptions(undefined, size100MB),
},
{
visibleOn: `\${${AUTHENTICATION_TYPE}}`,
type: 'input-datetime-range',
name: 'activeTime',
extraName: 'expiredTime',
label: '授权时间',
required: true,
format: 'YYYY-MM-DD HH:mm:ss',
shortcuts: [
'7dayslater',
'14dayslater',
'30dayslater',
'180dayslater',
'365dayslater',
]
},
...(showCreatedUserAndModifiedUser ? formCreatedUserAndModifiedUser() : [])
]
}
}
export function permissionAddDialog() {
export function confirmationAddDialog() {
return permissionAddDialog(CONFIRMATION_TYPE)
}
export function authenticationAddDialog() {
return permissionAddDialog(AUTHENTICATION_TYPE)
}
function permissionAddDialog(type) {
let data = {add: true}
data[type] = true
return {
actionType: 'dialog',
dialog: {
@@ -94,16 +124,24 @@ export function permissionAddDialog() {
],
body: {
...detailForm(),
api: apiPost('${base}/confirmation/save'),
data: {
add: true,
},
api: apiPost(`\${base}/${type}/save`),
data: data,
}
}
}
}
export function permissionDetailDialog(field = 'id', actions = []) {
export function confirmationDetailDialog(field = 'id', actions = []) {
return permissionDetailDialog(CONFIRMATION_TYPE, field, actions)
}
export function authenticationDetailDialog(field = 'id', actions = []) {
return permissionDetailDialog(AUTHENTICATION_TYPE, field, actions)
}
function permissionDetailDialog(type, field = 'id', actions = []) {
let data = {detail: true}
data[type] = true
return {
actionType: 'dialog',
dialog: {
@@ -112,17 +150,25 @@ export function permissionDetailDialog(field = 'id', actions = []) {
actions: actions,
body: {
...detailForm(true),
initApi: apiGet(`\${base}/confirmation/detail/\${${field}}`),
initApi: apiGet(`\${base}/${type}/detail/\${${field}}`),
static: true,
data: {
detail: true,
},
data: data,
}
}
}
}
export function permissionEditeDialog(field = 'id') {
export function confirmationEditeDialog(field = 'id') {
return permissionEditeDialog(CONFIRMATION_TYPE, field)
}
export function authenticationEditeDialog(field = 'id') {
return permissionEditeDialog(CONFIRMATION_TYPE, field)
}
function permissionEditeDialog(type, field = 'id') {
let data = {edit: true}
data[type] = true
return {
actionType: 'dialog',
dialog: {
@@ -141,11 +187,9 @@ export function permissionEditeDialog(field = 'id') {
],
body: {
...detailForm(),
api: apiPost('${base}/confirmation/save'),
initApi: apiGet(`\${base}/confirmation/detail/\${${field}}`),
data: {
edit: true,
}
api: apiPost(`\${base}/${type}/save`),
initApi: apiGet(`\${base}/${type}/detail/\${${field}}`),
data: data,
},
}
}

View File

@@ -59,9 +59,9 @@ useAmis(information => {
tabs: [
// tabOverview(),
// tabMarket(),
tabPermissions(),
tabCheck(),
tabData(),
tabPermissions(),
tabUser(),
tabSettings(),
]

View File

@@ -9,7 +9,7 @@ import {
stringField,
timeField,
} from "../../components/constants.js";
import {permissionDetailDialog} from "../../components/permission/dialog-permission.js";
import {confirmationDetailDialog} from "../../components/permission/dialog-permission.js";
export function tabCheck() {
return {
@@ -40,7 +40,7 @@ export function tabCheck() {
type: 'action',
label: '处理',
level: 'link',
...permissionDetailDialog(
...confirmationDetailDialog(
'parameters.confirmationId',
[
{
@@ -67,7 +67,7 @@ export function tabCheck() {
type: 'action',
label: '查看',
level: 'link',
...permissionDetailDialog('parameters.confirmationId'),
...confirmationDetailDialog('parameters.confirmationId'),
},
]),
],

View File

@@ -8,10 +8,10 @@ import {
arrayInCheck,
arrayOutCheck,
confirmationState,
confirmationStateMapping,
crudCommonOptions,
mappingField,
operationField,
permissionStateMapping,
timeField,
userOnly
} from "../../components/constants.js";
@@ -40,7 +40,7 @@ export function resourceList() {
label: '描述',
name: 'description',
},
mappingField('confirmationState', '确权状态', confirmationStateMapping),
mappingField('confirmationState', '确权状态', permissionStateMapping),
timeField('createdTime', '创建时间'),
operationField('操作', undefined, [
{

View File

@@ -1,9 +1,10 @@
import {
apiGet,
confirmationStateMapping,
crudCommonOptions,
customerOnly,
mappingField,
operationField,
permissionStateMapping,
providerOnly,
stringField,
stringWrapField,
@@ -11,9 +12,12 @@ import {
userOnly,
} from "../../components/constants.js";
import {
permissionAddDialog,
permissionDetailDialog,
permissionEditeDialog,
authenticationAddDialog,
authenticationDetailDialog,
authenticationEditeDialog,
confirmationAddDialog,
confirmationDetailDialog,
confirmationEditeDialog,
} from "../../components/permission/dialog-permission.js";
export function tabPermissions() {
@@ -25,6 +29,85 @@ export function tabPermissions() {
body: {
type: 'tabs',
tabs: [
{
visibleOn: customerOnly,
title: '授权管理',
body: {
type: 'crud',
api: {
...apiGet('${base}/authentication/list')
},
...crudCommonOptions(),
headerToolbar: [
'reload',
{
type: 'action',
label: '',
icon: 'fa fa-plus',
...authenticationAddDialog()
},
],
columns: [
stringField('name', '名称', 200),
stringWrapField('description', '描述'),
mappingField('state', '状态', permissionStateMapping),
timeField('createdTime', '创建时间'),
operationField('操作', undefined, [
{
type: 'action',
label: '查看',
level: 'link',
...authenticationDetailDialog(),
},
{
visibleOn: "${state === 'CHECKING'}",
type: 'action',
label: '撤销',
level: 'link',
confirmTitle: '确认撤销',
confirmText: '确认撤销名称为「${name}」的确权申请吗?',
actionType: 'ajax',
api: apiGet('${base}/authentication/retract/${id}'),
},
{
visibleOn: "${state === 'DRAFT' || state === 'REJECT'}",
type: 'action',
label: '提交',
level: 'link',
confirmTitle: '确认提交',
confirmText: '确认提交名称为「${name}」的确权申请吗?',
actionType: 'ajax',
api: apiGet('${base}/authentication/submit/${id}'),
},
{
type: 'dropdown-button',
level: 'link',
icon: 'fa fa-ellipsis-h',
hideCaret: true,
trigger: 'hover',
buttons: [
{
disabledOn: "${state !== 'DRAFT'}",
type: 'action',
label: '编辑',
level: 'link',
...authenticationEditeDialog(),
},
{
disabledOn: "${state === 'CHECKING'}",
type: 'action',
label: "删除",
confirmTitle: '确认删除',
confirmText: '确认删除名称为「${name}」的确权申请吗?删除后对应的数据资源处于未确权状态。',
actionType: 'ajax',
api: apiGet('${base}/authentication/remove/${id}'),
},
]
},
]),
]
}
},
{
visibleOn: providerOnly,
title: '确权管理',
@@ -40,20 +123,20 @@ export function tabPermissions() {
type: 'action',
label: '',
icon: 'fa fa-plus',
...permissionAddDialog()
...confirmationAddDialog()
},
],
columns: [
stringField('name', '名称', 200),
stringWrapField('description', '描述'),
mappingField('state', '状态', confirmationStateMapping),
mappingField('state', '状态', permissionStateMapping),
timeField('createdTime', '创建时间'),
operationField('操作', undefined, [
{
type: 'action',
label: '查看',
level: 'link',
...permissionDetailDialog(),
...confirmationDetailDialog(),
},
{
visibleOn: "${state === 'CHECKING'}",
@@ -87,7 +170,7 @@ export function tabPermissions() {
type: 'action',
label: '编辑',
level: 'link',
...permissionEditeDialog(),
...confirmationEditeDialog(),
},
{
disabledOn: "${state === 'CHECKING'}",
@@ -104,10 +187,6 @@ export function tabPermissions() {
]
}
},
{
title: '授权管理',
body: []
}
]
}
}