From d5b37bd03e29393a5dbc3dc9843e432d4ec31a27 Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Thu, 12 Sep 2024 16:00:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=80=9A=E7=9F=A5=E5=85=AC=E5=91=8A(?= =?UTF-8?q?=E8=A1=A8=E5=8D=95)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/api/system/notice/index.ts | 32 +++++++ .../web-antd/src/api/system/notice/model.d.ts | 11 +++ apps/web-antd/src/views/system/notice/data.ts | 60 +++++++++++++ .../src/views/system/notice/index.vue | 20 ++++- .../src/views/system/notice/notice-modal.vue | 85 +++++++++++++++++++ 5 files changed, 204 insertions(+), 4 deletions(-) create mode 100644 apps/web-antd/src/api/system/notice/index.ts create mode 100644 apps/web-antd/src/api/system/notice/model.d.ts create mode 100644 apps/web-antd/src/views/system/notice/data.ts create mode 100644 apps/web-antd/src/views/system/notice/notice-modal.vue diff --git a/apps/web-antd/src/api/system/notice/index.ts b/apps/web-antd/src/api/system/notice/index.ts new file mode 100644 index 00000000..6a8e2d15 --- /dev/null +++ b/apps/web-antd/src/api/system/notice/index.ts @@ -0,0 +1,32 @@ +import type { Notice } from './model'; + +import type { ID, IDS, PageQuery } from '#/api/common'; + +import { requestClient } from '#/api/request'; + +enum Api { + noticeList = '/system/notice/list', + root = '/system/notice', +} + +export function noticeList(params?: PageQuery) { + return requestClient.get(Api.noticeList, { params }); +} + +export function noticeInfo(noticeId: ID) { + return requestClient.get(`${Api.root}/${noticeId}`); +} + +export function noticeAdd(data: any) { + return requestClient.postWithMsg(Api.root, data); +} + +export function noticeUpdate(data: any) { + return requestClient.putWithMsg(Api.root, data); +} + +export function noticeRemove(noticeIds: IDS) { + return requestClient.deleteWithMsg( + `${Api.root}/${noticeIds.join(',')}`, + ); +} diff --git a/apps/web-antd/src/api/system/notice/model.d.ts b/apps/web-antd/src/api/system/notice/model.d.ts new file mode 100644 index 00000000..992eb4f3 --- /dev/null +++ b/apps/web-antd/src/api/system/notice/model.d.ts @@ -0,0 +1,11 @@ +export interface Notice { + noticeId: number; + noticeTitle: string; + noticeType: string; + noticeContent: string; + status: string; + remark: string; + createBy: number; + createByName: string; + createTime: string; +} diff --git a/apps/web-antd/src/views/system/notice/data.ts b/apps/web-antd/src/views/system/notice/data.ts new file mode 100644 index 00000000..85c97153 --- /dev/null +++ b/apps/web-antd/src/views/system/notice/data.ts @@ -0,0 +1,60 @@ +import type { FormSchemaGetter } from '#/adapter'; + +import { DictEnum } from '@vben/constants'; + +import { getDictOptions } from '#/utils/dict'; + +export const modalSchema: FormSchemaGetter = () => [ + { + component: 'Input', + dependencies: { + show: () => false, + triggerFields: [''], + }, + fieldName: 'noticeId', + label: '主键', + }, + { + component: 'Input', + componentProps: { + placeholder: '请输入', + }, + fieldName: 'noticeTitle', + formItemClass: 'col-span-2', + label: '公告标题', + rules: 'required', + }, + { + component: 'RadioGroup', + componentProps: { + buttonStyle: 'solid', + class: 'grid-cols-2', + options: getDictOptions(DictEnum.SYS_NOTICE_STATUS), + optionType: 'button', + }, + defaultValue: '0', + fieldName: 'status', + label: '公告状态', + rules: 'required', + }, + { + component: 'RadioGroup', + componentProps: { + buttonStyle: 'solid', + class: 'grid-cols-2', + options: getDictOptions(DictEnum.SYS_NOTICE_TYPE), + optionType: 'button', + }, + defaultValue: '1', + fieldName: 'noticeType', + label: '公告类型', + rules: 'required', + }, + { + component: 'Input', + fieldName: 'noticeContent', + formItemClass: 'col-span-2', + label: '公告内容', + rules: 'required', + }, +]; diff --git a/apps/web-antd/src/views/system/notice/index.vue b/apps/web-antd/src/views/system/notice/index.vue index 06372a15..9801070b 100644 --- a/apps/web-antd/src/views/system/notice/index.vue +++ b/apps/web-antd/src/views/system/notice/index.vue @@ -1,9 +1,21 @@ diff --git a/apps/web-antd/src/views/system/notice/notice-modal.vue b/apps/web-antd/src/views/system/notice/notice-modal.vue new file mode 100644 index 00000000..1db4e7ca --- /dev/null +++ b/apps/web-antd/src/views/system/notice/notice-modal.vue @@ -0,0 +1,85 @@ + + +