1
0

feat(web): 增加确权信息新增、查看接口和适配

This commit is contained in:
2024-11-27 00:11:16 +08:00
parent 7584ca3736
commit d781e137d8
6 changed files with 165 additions and 72 deletions

View File

@@ -1,9 +1,30 @@
import './dialog-permission.css'
import {apiPost, horizontalFormOptions} from "../constants.js";
import {apiGet, apiPost, horizontalFormOptions, inputFileFormItemCommonOptions, size100MB} from "../constants.js";
import {resourceList} from "../../pages/index/tab-data.js";
function inputFileFormItemUpdateFieldOptions(target) {
let value = {}
value[target] = '${event.data.value}'
return {
onEvent: {
success: {
actions: [
// {
// actionType: 'setValue',
// componentId: 'permission_form',
// args: {
// value: value
// }
// }
]
}
}
}
}
function detailForm() {
return {
id: 'resource_data_form',
id: 'permission_form',
type: 'form',
...horizontalFormOptions(),
horizontal: {
@@ -14,10 +35,33 @@ function detailForm() {
type: 'hidden',
name: 'id',
},
{
type: 'picker',
name: 'targetId',
label: '数据资源',
required: true,
multiple: false,
size: 'lg',
valueField: 'id',
labelField: 'name',
source: apiGet('${base}/data_resource/list'),
pickerSchema: {
...resourceList(),
}
},
{
type: 'textarea',
label: '确权说明',
name: 'description',
},
{
type: 'input-file',
label: '相关材料',
name: 'evidenceIds',
multiple: true,
required: true,
extractValue: true,
...inputFileFormItemCommonOptions(undefined, size100MB),
}
]
}
@@ -51,3 +95,23 @@ export function permissionAddDialog() {
}
}
}
export function permissionDetailDialog() {
return {
actionType: 'dialog',
dialog: {
title: '新增确权申请',
size: 'md',
actions: [],
body: {
debug: true,
...detailForm(),
initApi: apiGet('${base}/confirmation/detail/${id}'),
static: true,
data: {
detail: true,
},
}
}
}
}

View File

@@ -5,57 +5,57 @@ import {
} from "../../components/resource/dialog-resource.js";
import {apiGet, crudCommonOptions, userOnly} from "../../components/constants.js";
export function tabData() {
export function resourceList() {
return {
visibleOn: userOnly,
title: '数据资源',
icon: 'fa fa-database',
body: [
type: 'crud',
api: apiGet('${base}/data_resource/list'),
...crudCommonOptions(),
headerToolbar: [
'reload',
{
type: 'crud',
api: {
...apiGet('${base}/data_resource/list')
},
...crudCommonOptions(),
headerToolbar: [
'reload',
type: 'action',
label: '',
icon: 'fa fa-plus',
...resourceAddDialog()
},
],
columns: [
{
label: '名称',
name: 'name',
width: 200,
},
{
label: '描述',
name: 'description',
},
{
label: '创建时间',
width: 150,
align: 'center',
type: 'tpl',
tpl: "${IF(createdTime, DATETOSTR(createdTime), '-')}"
},
{
label: '操作',
width: 100,
type: 'operation',
fixed: 'right',
className: 'nowrap',
buttons: [
{
type: 'action',
label: '',
icon: 'fa fa-plus',
...resourceAddDialog()
},
],
columns: [
{
label: '名称',
name: 'name',
width: 200,
label: '详情',
level: 'link',
...resourceDetailDialog(),
},
{
label: '描述',
name: 'description',
},
{
label: '创建时间',
width: 150,
align: 'center',
type: 'tpl',
tpl: "${IF(createdTime, DATETOSTR(createdTime), '-')}"
},
{
label: '操作',
width: 100,
type: 'operation',
fixed: 'right',
className: 'nowrap',
type: 'dropdown-button',
level: 'link',
icon: 'fa fa-ellipsis-h',
hideCaret: true,
trigger: 'hover',
buttons: [
{
type: 'action',
label: '查看',
level: 'link',
...resourceDetailDialog(),
},
{
type: 'action',
label: '编辑',
@@ -63,31 +63,26 @@ export function tabData() {
...resourceEditeDialog(),
},
{
type: 'dropdown-button',
level: 'link',
icon: 'fa fa-ellipsis-h',
hideCaret: true,
trigger: 'hover',
buttons: [
{
type: 'action',
label: '申请确权',
level: 'link',
},
{
type: 'action',
label: '删除',
confirmTitle: '确认删除',
confirmText: '确认删除名称为「${name}」的数据资源吗?',
actionType: 'ajax',
api: apiGet('${base}/data_resource/remove/${id}')
},
]
type: 'action',
label: '删除',
confirmTitle: '确认删除',
confirmText: '确认删除名称为「${name}」的数据资源吗?',
actionType: 'ajax',
api: apiGet('${base}/data_resource/remove/${id}')
},
]
},
]
}
},
]
}
}
export function tabData() {
return {
visibleOn: userOnly,
title: '数据资源',
icon: 'fa fa-database',
body: resourceList(),
}
}

View File

@@ -1,5 +1,5 @@
import {apiGet, crudCommonOptions, providerOnly, userOnly} from "../../components/constants.js";
import {permissionAddDialog} from "../../components/permission/dialog-permission.js";
import {permissionAddDialog, permissionDetailDialog} from "../../components/permission/dialog-permission.js";
export function tabPermissions() {
return {
@@ -55,6 +55,7 @@ export function tabPermissions() {
type: 'action',
label: '查看',
level: 'link',
...permissionDetailDialog(),
},
{
type: 'action',

View File

@@ -0,0 +1,16 @@
package com.eshore.gringotts.web.domain.base.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public final class FileInfo {
private Long id;
private String name;
private String filename;
private Long value;
private String state;
}

View File

@@ -1,12 +1,13 @@
package com.eshore.gringotts.web.domain.confirmation.controller;
import com.eshore.gringotts.web.domain.base.controller.SimpleController;
import com.eshore.gringotts.web.domain.base.entity.FileInfo;
import com.eshore.gringotts.web.domain.base.entity.SimpleDetailItem;
import com.eshore.gringotts.web.domain.base.entity.SimpleListItem;
import com.eshore.gringotts.web.domain.base.entity.SimpleSaveItem;
import com.eshore.gringotts.web.domain.confirmation.entity.Confirmation;
import com.eshore.gringotts.web.domain.confirmation.service.ConfirmationService;
import com.eshore.gringotts.web.domain.resource.service.DataResourceService;
import com.eshore.gringotts.web.domain.upload.entity.DataFile;
import com.eshore.gringotts.web.domain.upload.service.DataFileService;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -76,11 +77,27 @@ public class ConfirmationController extends SimpleController<Confirmation, Confi
@Data
@EqualsAndHashCode(callSuper = true)
public static final class DetailItem extends SaveItem {
public static final class DetailItem extends SimpleDetailItem<Confirmation> {
private Long targetId;
private String targetName;
private String description;
private ImmutableSet<FileInfo> evidenceIds;
public DetailItem(Confirmation confirmation) {
this.setId(confirmation.getId());
this.setTargetId(confirmation.getTarget().getId());
this.setTargetName(confirmation.getTarget().getName());
this.setDescription(confirmation.getDescription());
this.setEvidenceIds(Sets.immutable.ofAll(confirmation.getEvidences()).collect(DataFile::getId));
this.setEvidenceIds(
Sets.immutable.ofAll(confirmation.getEvidences())
.collect(file -> new FileInfo(
file.getId(),
file.getFilename(),
file.getFilename(),
file.getId(),
"uploaded"
))
);
}
}
}

View File

@@ -34,4 +34,4 @@ logging:
EventSubscribeImp: error
gringotts:
upload:
upload-path: /Users/lanyuanxiaoyao/Project/IdeaProjects/gringotts/gringotts-web/target/upload
upload-path: C:\Users\lanyuanxiaoyao\Projects\gringotts\gringotts-web\target