From e76236be62f528a99e9d98c680612fc31f6d3cd8 Mon Sep 17 00:00:00 2001 From: lanyuanxiaoyao Date: Tue, 26 Nov 2024 10:40:58 +0800 Subject: [PATCH] =?UTF-8?q?feat(web):=20=E7=BB=9F=E4=B8=80=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E6=98=BE=E7=A4=BA=E5=92=8C=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gringotts-frontend/components/constants.js | 16 ++++++++++++++++ gringotts-frontend/pages/index/main.js | 7 ++++--- gringotts-frontend/pages/index/tab-check.js | 12 ++++++++++++ gringotts-frontend/pages/index/tab-data.js | 8 ++++++-- gringotts-frontend/pages/index/tab-settings.js | 4 +++- gringotts-frontend/pages/index/tab-user.js | 3 ++- 6 files changed, 43 insertions(+), 7 deletions(-) create mode 100644 gringotts-frontend/pages/index/tab-check.js diff --git a/gringotts-frontend/components/constants.js b/gringotts-frontend/components/constants.js index 16876dc..ecb6bc2 100644 --- a/gringotts-frontend/components/constants.js +++ b/gringotts-frontend/components/constants.js @@ -187,3 +187,19 @@ export function apiGet(url) { export function apiPost(url) { return api('post', url) } + +export function roleCheck(roles) { + return `\${ARRAYINCLUDES(['${roles.join("','")}'], role)}` +} + +export const role = { + administrator: 'ADMINISTRATOR', + checker: 'CHECKER', + provider: 'PROVIDER', + customer: 'CUSTOMER', +} + +export const administratorOnly = roleCheck([role.administrator]) +export const checkerOnly = roleCheck([role.administrator, role.checker]) +export const userOnly = roleCheck([role.administrator, role.provider, role.customer]) + diff --git a/gringotts-frontend/pages/index/main.js b/gringotts-frontend/pages/index/main.js index 3a27415..f42bb4e 100644 --- a/gringotts-frontend/pages/index/main.js +++ b/gringotts-frontend/pages/index/main.js @@ -1,9 +1,9 @@ import {apiGet, useAmis} from '../../components/constants.js' import {userChangePasswordDialog} from "../../components/user/dialog-user-change-password.js"; import {tabUser} from "./tab-user.js"; -import {tabMarket} from "./tab-market.js"; import {tabData} from "./tab-data.js"; import {tabSettings} from "./tab-settings.js"; +import {tabCheck} from "./tab-check.js"; useAmis(information => { return { @@ -56,9 +56,10 @@ useAmis(information => { type: 'tabs', tabsMode: 'vertical', tabs: [ - tabData(), // tabOverview(), - tabMarket(), + // tabMarket(), + tabData(), + tabCheck(), tabUser(), tabSettings(), ] diff --git a/gringotts-frontend/pages/index/tab-check.js b/gringotts-frontend/pages/index/tab-check.js new file mode 100644 index 0000000..7584aa5 --- /dev/null +++ b/gringotts-frontend/pages/index/tab-check.js @@ -0,0 +1,12 @@ +import {checkerOnly} from "../../components/constants.js"; + +export function tabCheck() { + return { + visibleOn: checkerOnly, + title: '审核审查', + icon: 'fa fa-shield-halved', + body: [ + 'hello world' + ] + } +} \ No newline at end of file diff --git a/gringotts-frontend/pages/index/tab-data.js b/gringotts-frontend/pages/index/tab-data.js index d92644a..ddaae4a 100644 --- a/gringotts-frontend/pages/index/tab-data.js +++ b/gringotts-frontend/pages/index/tab-data.js @@ -3,10 +3,11 @@ import { resourceDetailDialog, resourceEditeDialog } from "../../components/resource/dialog-resource.js"; -import {apiGet, apiPost, crudCommonOptions} from "../../components/constants.js"; +import {apiGet, apiPost, crudCommonOptions, userOnly} from "../../components/constants.js"; export function tabData() { return { + visibleOn: userOnly, title: '数据资源', icon: 'fa fa-database', body: [ @@ -20,7 +21,7 @@ export function tabData() { 'reload', { type: 'action', - label: '新增数据资源', + label: '', icon: 'fa fa-plus', ...resourceAddDialog() }, @@ -52,18 +53,21 @@ export function tabData() { { type: 'action', label: '查看', + icon: 'fa fa-eye', level: 'link', ...resourceDetailDialog(), }, { type: 'action', label: '编辑', + icon: 'fa fa-pen-fancy', level: 'link', ...resourceEditeDialog(), }, { type: 'action', label: '删除', + icon: 'fa fa-remove', level: 'link', className: 'text-danger', confirmTitle: '确认删除', diff --git a/gringotts-frontend/pages/index/tab-settings.js b/gringotts-frontend/pages/index/tab-settings.js index fa1d1f3..360dd93 100644 --- a/gringotts-frontend/pages/index/tab-settings.js +++ b/gringotts-frontend/pages/index/tab-settings.js @@ -1,6 +1,8 @@ +import {administratorOnly} from "../../components/constants.js"; + export function tabSettings() { return { - visibleOn: '${role === "ADMINISTRATOR"}', + visibleOn: administratorOnly, title: '系统管理', icon: 'fa fa-gear', body: [ diff --git a/gringotts-frontend/pages/index/tab-user.js b/gringotts-frontend/pages/index/tab-user.js index ac3f27e..683ec50 100644 --- a/gringotts-frontend/pages/index/tab-user.js +++ b/gringotts-frontend/pages/index/tab-user.js @@ -1,4 +1,5 @@ import { + administratorOnly, apiGet, copyField, crudCommonOptions, @@ -11,7 +12,7 @@ import {userAdministratorRegisterDialog} from "../../components/user/dialog-user export function tabUser() { return { - visibleOn: '${role === "ADMINISTRATOR"}', + visibleOn: administratorOnly, title: '用户管理', icon: 'fa fa-user', body: [