From 09eb91d4b4bcc38ddc3210c199b24f9c4637a020 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=BA=A2=E4=B8=BD?= <1181930680@qq.com> Date: Sat, 13 Jul 2024 15:59:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/file/fileTemplate.ts | 60 ++++++ src/components/Upload/file.vue | 222 ++++++++++++++++++++ src/utils/auth.ts | 28 ++- src/views/data/notice/edit.vue | 27 +-- src/views/file/fileTemplate/columns.ts | 24 +++ src/views/file/fileTemplate/edit.vue | 125 +++++++++++ src/views/file/fileTemplate/index.vue | 158 ++++++++++++++ src/views/file/fileTemplate/querySchemas.ts | 11 + 8 files changed, 642 insertions(+), 13 deletions(-) create mode 100644 src/api/file/fileTemplate.ts create mode 100644 src/components/Upload/file.vue create mode 100644 src/views/file/fileTemplate/columns.ts create mode 100644 src/views/file/fileTemplate/edit.vue create mode 100644 src/views/file/fileTemplate/index.vue create mode 100644 src/views/file/fileTemplate/querySchemas.ts diff --git a/src/api/file/fileTemplate.ts b/src/api/file/fileTemplate.ts new file mode 100644 index 0000000..350e587 --- /dev/null +++ b/src/api/file/fileTemplate.ts @@ -0,0 +1,60 @@ +import { http } from '@/utils/http/axios'; + +/** + * @description: 列表 + */ +export function getFileTemplateList(params?) { + return http.request({ + url: '/file/template/page', + method: 'GET', + params, + }); +} +/** + * @description: 根据ID获取详情 + */ +export function getFileTemplateDetail(id) { + return http.request({ + url: '/file/template/detail/'+id, + method: 'get', + }); +} +/** + * @description: 添加 + */ +export function fileTemplateAdd(data:any) { + return http.request({ + url: '/file/template/add', + method: 'POST', + data, + }); +} +/** + * @description: 更新 + */ +export function fileTemplateUpdate(data:any) { + return http.request({ + url: '/file/template/update', + method: 'PUT', + data + }); +} +/** + * @description: 删除 + */ +export function fileTemplateDelete(id) { + return http.request({ + url: '/file/template/delete/'+id, + method: 'DELETE', + }); +} +/** + * @description: 批量删除 + */ +export function fileTemplateBatchDelete(data:any) { + return http.request({ + url: '/file/template/batchDelete', + method: 'DELETE', + data + }); +} \ No newline at end of file diff --git a/src/components/Upload/file.vue b/src/components/Upload/file.vue new file mode 100644 index 0000000..ab2da4f --- /dev/null +++ b/src/components/Upload/file.vue @@ -0,0 +1,222 @@ + + + + diff --git a/src/utils/auth.ts b/src/utils/auth.ts index 8b058dc..2366f58 100644 --- a/src/utils/auth.ts +++ b/src/utils/auth.ts @@ -211,7 +211,33 @@ export function filterDatetime(value: any, format: string = "yyyy-MM-dd") { } } - +export function generateUUID() { + if (typeof crypto === "object") { + if (typeof crypto.randomUUID === "function") { + return crypto.randomUUID(); + } + if (typeof crypto.getRandomValues === "function" && typeof Uint8Array === "function") { + const callback = (c: any) => { + const num = Number(c); + return (num ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (num / 4)))).toString(16); + }; + return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, callback); + } + } + let timestamp = new Date().getTime(); + let performanceNow = (typeof performance !== "undefined" && performance.now && performance.now() * 1000) || 0; + return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => { + let random = Math.random() * 16; + if (timestamp > 0) { + random = (timestamp + random) % 16 | 0; + timestamp = Math.floor(timestamp / 16); + } else { + random = (performanceNow + random) % 16 | 0; + performanceNow = Math.floor(performanceNow / 16); + } + return (c === "x" ? random : (random & 0x3) | 0x8).toString(16); + }); +} function dateFtt(fmt, date) { //author: meizz var o = { "M+": date.getMonth() + 1, //月份 diff --git a/src/views/data/notice/edit.vue b/src/views/data/notice/edit.vue index 295ac6a..646b439 100644 --- a/src/views/data/notice/edit.vue +++ b/src/views/data/notice/edit.vue @@ -1,8 +1,9 @@ diff --git a/src/views/file/fileTemplate/columns.ts b/src/views/file/fileTemplate/columns.ts new file mode 100644 index 0000000..4a5950c --- /dev/null +++ b/src/views/file/fileTemplate/columns.ts @@ -0,0 +1,24 @@ +import { h } from 'vue'; +import { ElTag } from 'element-plus'; + +export const columns = [ + { + type: 'selection', + }, + { + label: '模板名称', + prop: 'name', + }, + { + label: '模板编码', + prop: 'code', + }, + { + label: '创建人', + prop: 'createUser', + }, + { + label: '创建时间', + prop: 'createTime', + }, +]; diff --git a/src/views/file/fileTemplate/edit.vue b/src/views/file/fileTemplate/edit.vue new file mode 100644 index 0000000..45dabb6 --- /dev/null +++ b/src/views/file/fileTemplate/edit.vue @@ -0,0 +1,125 @@ + + + diff --git a/src/views/file/fileTemplate/index.vue b/src/views/file/fileTemplate/index.vue new file mode 100644 index 0000000..f71cdfe --- /dev/null +++ b/src/views/file/fileTemplate/index.vue @@ -0,0 +1,158 @@ + + + + + diff --git a/src/views/file/fileTemplate/querySchemas.ts b/src/views/file/fileTemplate/querySchemas.ts new file mode 100644 index 0000000..83e37e0 --- /dev/null +++ b/src/views/file/fileTemplate/querySchemas.ts @@ -0,0 +1,11 @@ +import { FormSchema } from '@/components/Form/index'; +export const schemas: FormSchema[] = [ + { + field: 'name', + component: 'Input', + label: '模板名称', + componentProps: { + placeholder: '请输入模板名称', + }, + } +];