From 3f91f973b97e5f435c0ace9b9247c33e559dc83e Mon Sep 17 00:00:00 2001 From: H0nGzA1 <2505811377@qq.com> Date: Tue, 14 Mar 2023 21:15:43 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E2=9C=A8=20=E9=85=8D=E7=BD=AE=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=9F=BA=E7=A1=80=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/package.json | 1 + web/src/utils/message.ts | 17 + web/src/views/system/config/api.ts | 53 ++ .../system/config/components/addContent.vue | 156 ++++++ .../system/config/components/addTabs.vue | 60 +++ .../components/associationTable.vue | 104 ++++ .../system/config/components/formContent.vue | 505 ++++++++++++++++++ web/src/views/system/config/index.vue | 82 +++ web/yarn.lock | 5 + 9 files changed, 983 insertions(+) create mode 100644 web/src/utils/message.ts create mode 100644 web/src/views/system/config/api.ts create mode 100644 web/src/views/system/config/components/addContent.vue create mode 100644 web/src/views/system/config/components/addTabs.vue create mode 100644 web/src/views/system/config/components/components/associationTable.vue create mode 100644 web/src/views/system/config/components/formContent.vue create mode 100644 web/src/views/system/config/index.vue diff --git a/web/package.json b/web/package.json index 011b00b..65f946d 100644 --- a/web/package.json +++ b/web/package.json @@ -44,6 +44,7 @@ "vue-grid-layout": "^3.0.0-beta1", "vue-i18n": "^9.2.2", "vue-router": "^4.1.6", + "vxe-table": "^4.3.10", "xe-utils": "^3.5.7" }, "devDependencies": { diff --git a/web/src/utils/message.ts b/web/src/utils/message.ts new file mode 100644 index 0000000..0e3bc4b --- /dev/null +++ b/web/src/utils/message.ts @@ -0,0 +1,17 @@ +import { ElMessage, MessageOptions } from 'element-plus'; + +export function message(message: string, option?: MessageOptions) { + ElMessage({ message, ...option }); +} +export function successMessage(message: string, option?: MessageOptions) { + ElMessage({ message, ...option, type: 'success' }); +} +export function warningMessage(message: string, option?: MessageOptions) { + ElMessage({ message, ...option, type: 'warning' }); +} +export function errorMessage(message: string, option?: MessageOptions) { + ElMessage({ message, ...option, type: 'error' }); +} +export function infoMessage(message: string, option?: MessageOptions) { + ElMessage({ message, ...option, type: 'info' }); +} diff --git a/web/src/views/system/config/api.ts b/web/src/views/system/config/api.ts new file mode 100644 index 0000000..e8909e6 --- /dev/null +++ b/web/src/views/system/config/api.ts @@ -0,0 +1,53 @@ +import { request } from '/@/utils/service'; +import { PageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; +import XEUtils from 'xe-utils'; + +export const apiPrefix = '/api/system/system_config/'; +export function GetList(query: PageQuery) { + return request({ + url: apiPrefix, + method: 'get', + params: query, + }); +} +export function GetObj(id: InfoReq) { + return request({ + url: apiPrefix + id, + method: 'get', + }); +} + +export function AddObj(obj: AddReq) { + return request({ + url: apiPrefix, + method: 'post', + data: obj, + }); +} + +export function UpdateObj(obj: EditReq) { + return request({ + url: apiPrefix + obj.id + '/', + method: 'put', + data: obj, + }); +} + +export function DelObj(id: DelReq) { + return request({ + url: apiPrefix + id + '/', + method: 'delete', + data: { id }, + }); +} + +/* +获取所有的model及字段信息 + */ +export function GetAssociationTable() { + return request({ + url: apiPrefix + 'get_association_table/', + method: 'get', + params: {}, + }); +} diff --git a/web/src/views/system/config/components/addContent.vue b/web/src/views/system/config/components/addContent.vue new file mode 100644 index 0000000..6284a18 --- /dev/null +++ b/web/src/views/system/config/components/addContent.vue @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 立即创建 + + + + + + + + diff --git a/web/src/views/system/config/components/addTabs.vue b/web/src/views/system/config/components/addTabs.vue new file mode 100644 index 0000000..024595d --- /dev/null +++ b/web/src/views/system/config/components/addTabs.vue @@ -0,0 +1,60 @@ + + + + + + + + + + + 立即创建 + 取消 + + + + + + + + diff --git a/web/src/views/system/config/components/components/associationTable.vue b/web/src/views/system/config/components/components/associationTable.vue new file mode 100644 index 0000000..32af76b --- /dev/null +++ b/web/src/views/system/config/components/components/associationTable.vue @@ -0,0 +1,104 @@ + + + + + + + {{ item.tableName }} + {{ item.table }} + + + + + + + {{ item.field }} + {{ item.title }} + + + + + + + {{ item.field }} + {{ item.title }} + + + + + + + {{ item.field }} + {{ item.title }} + + + + + + + + + + diff --git a/web/src/views/system/config/components/formContent.vue b/web/src/views/system/config/components/formContent.vue new file mode 100644 index 0000000..9ebc0e5 --- /dev/null +++ b/web/src/views/system/config/components/formContent.vue @@ -0,0 +1,505 @@ + + + + 变量标题 + 变量值 + 变量名 + 是否前端配置 + 操作 + + + + + + {{ item.title }} + + + + + + + + + + + + + + + + + {{ item.label }} + + + + + + {{ item.label }} + + + + + + + + + + 选取图片后,需手动上传到服务器,并且只能上传jpg/png文件 + + + + + + + + + + 选取图片后,需手动上传到服务器,并且只能上传jpg/png文件 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 删除后无法恢复,确定删除吗? + + 取消 + 确定 + + 删除 + + + + + + 追加 + + + + + + + {{ editableTabsItem.key }} + + + {{ editableTabsItem.key }}.{{ item.key }} + + + + + + + + + + + + + + 确定 + + + + + + + + diff --git a/web/src/views/system/config/index.vue b/web/src/views/system/config/index.vue new file mode 100644 index 0000000..cb66dc2 --- /dev/null +++ b/web/src/views/system/config/index.vue @@ -0,0 +1,82 @@ + + + + + + + 系统配置:您可以对您的网站进行自定义配置 + + + + 添加分组 + 添加内容 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web/yarn.lock b/web/yarn.lock index 280c629..48cc723 100644 --- a/web/yarn.lock +++ b/web/yarn.lock @@ -3956,6 +3956,11 @@ vuedraggable-es@^4.1.1: dependencies: sortablejs "1.14.0" +vxe-table@^4.3.10: + version "4.3.10" + resolved "https://registry.npmjs.org/vxe-table/-/vxe-table-4.3.10.tgz#4156d9542d61997d07c29a06e89208a3adc4825a" + integrity sha512-qxLhA3hiAfxsm8+dbN1n7+FrRwMEzUB/676x67gEb3H63WFWulRvTc88LCe0itMcuYcpy7uZHn5ruRsz0KnorQ== + wangeditor@^4.7.5: version "4.7.15" resolved "https://registry.npmjs.org/wangeditor/-/wangeditor-4.7.15.tgz#38c5e279a79d0428e4fd77ae5be46367e9c819e5"
删除后无法恢复,确定删除吗?