From 9285f3809b38a7909619d6c3af2a23df9ba140fe Mon Sep 17 00:00:00 2001 From: gexinzhineng/gxzn27 <1348660141@qq.com> Date: Wed, 8 Mar 2023 10:42:57 +0800 Subject: [PATCH 01/40] =?UTF-8?q?=E6=B5=8F=E8=A7=88=E5=99=A8=E7=BC=A9?= =?UTF-8?q?=E6=94=BE=E4=BC=9A=E5=AF=BC=E8=87=B4=E4=BF=9D=E5=AD=98=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E8=A2=AB=E4=B8=8B=E9=9D=A2=E7=9A=84bpmnjs=E5=9B=BE?= =?UTF-8?q?=E6=8C=A1=E4=BD=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bpmnProcessDesigner/package/designer/ProcessDesigner.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue b/src/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue index e16857ecb..60430c253 100644 --- a/src/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue +++ b/src/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue @@ -1,6 +1,6 @@ diff --git a/src/views/infra/file/index.vue b/src/views/infra/file/index.vue new file mode 100644 index 000000000..77beb3e5c --- /dev/null +++ b/src/views/infra/file/index.vue @@ -0,0 +1,162 @@ + + diff --git a/src/views/infra/fileList/fileList.data.ts b/src/views/infra/fileList/fileList.data.ts deleted file mode 100644 index 29be6dae4..000000000 --- a/src/views/infra/fileList/fileList.data.ts +++ /dev/null @@ -1,52 +0,0 @@ -import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' -const { t } = useI18n() // 国际化 - -// CrudSchema -const crudSchemas = reactive({ - primaryKey: 'id', - primaryType: 'seq', - action: true, - columns: [ - { - title: '文件名', - field: 'name' - }, - { - title: '文件路径', - field: 'path', - isSearch: true - }, - { - title: 'URL', - field: 'url', - table: { - cellRender: { - name: 'XPreview' - } - } - }, - { - title: '文件大小', - field: 'size', - formatter: 'formatSize' - }, - { - title: '文件类型', - field: 'type', - isSearch: true - }, - { - title: t('common.createTime'), - field: 'createTime', - formatter: 'formatDate', - isForm: false, - search: { - show: true, - itemRender: { - name: 'XDataTimePicker' - } - } - } - ] -}) -export const { allSchemas } = useVxeCrudSchemas(crudSchemas) diff --git a/src/views/infra/fileList/index.vue b/src/views/infra/fileList/index.vue deleted file mode 100644 index cda8b68dd..000000000 --- a/src/views/infra/fileList/index.vue +++ /dev/null @@ -1,173 +0,0 @@ - - From fee8245f4ed758fa42a0ef39ca7f65a7b4b59f3f Mon Sep 17 00:00:00 2001 From: dlarmor <121919810@qq.com> Date: Tue, 14 Mar 2023 11:45:37 +0800 Subject: [PATCH 11/40] =?UTF-8?q?=E9=87=8D=E6=9E=84=EF=BC=9A=E5=9F=BA?= =?UTF-8?q?=E7=A1=80=E8=AE=BE=E6=96=BD=20->=20=E6=96=87=E4=BB=B6=E7=AE=A1?= =?UTF-8?q?=E7=90=86=20=E6=96=87=E4=BB=B6=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/infra/fileConfig/fileConfig.data.ts | 77 ---- src/views/infra/fileConfig/form.vue | 195 ++++++++ src/views/infra/fileConfig/index.vue | 433 +++++++----------- 3 files changed, 365 insertions(+), 340 deletions(-) delete mode 100644 src/views/infra/fileConfig/fileConfig.data.ts create mode 100644 src/views/infra/fileConfig/form.vue diff --git a/src/views/infra/fileConfig/fileConfig.data.ts b/src/views/infra/fileConfig/fileConfig.data.ts deleted file mode 100644 index d0f648699..000000000 --- a/src/views/infra/fileConfig/fileConfig.data.ts +++ /dev/null @@ -1,77 +0,0 @@ -import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' -const { t } = useI18n() // 国际化 - -// 表单校验 -export const rules = reactive({ - name: [required], - storage: [required], - config: { - basePath: [required], - host: [required], - port: [required], - username: [required], - password: [required], - mode: [required], - endpoint: [required], - bucket: [required], - accessKey: [required], - accessSecret: [required], - domain: [required] - } -}) - -// CrudSchema -const crudSchemas = reactive({ - primaryKey: 'id', - primaryType: 'seq', - primaryTitle: '配置编号', - action: true, - actionWidth: '400px', - columns: [ - { - title: '配置名', - field: 'name', - isSearch: true - }, - { - title: '存储器', - field: 'storage', - dictType: DICT_TYPE.INFRA_FILE_STORAGE, - dictClass: 'number', - isSearch: true - }, - { - title: '主配置', - field: 'master', - dictType: DICT_TYPE.INFRA_BOOLEAN_STRING, - dictClass: 'boolean' - }, - { - title: t('form.remark'), - field: 'remark', - form: { - component: 'Input', - componentProps: { - type: 'textarea', - rows: 4 - }, - colProps: { - span: 24 - } - } - }, - { - title: t('common.createTime'), - field: 'createTime', - formatter: 'formatDate', - isForm: false, - search: { - show: true, - itemRender: { - name: 'XDataTimePicker' - } - } - } - ] -}) -export const { allSchemas } = useVxeCrudSchemas(crudSchemas) diff --git a/src/views/infra/fileConfig/form.vue b/src/views/infra/fileConfig/form.vue new file mode 100644 index 000000000..ee7bd2387 --- /dev/null +++ b/src/views/infra/fileConfig/form.vue @@ -0,0 +1,195 @@ + + diff --git a/src/views/infra/fileConfig/index.vue b/src/views/infra/fileConfig/index.vue index 9d796a659..4416b094b 100644 --- a/src/views/infra/fileConfig/index.vue +++ b/src/views/infra/fileConfig/index.vue @@ -1,294 +1,201 @@ - From fe2fa21d44c93b419dbe55bc0b1cd6172aaaccc0 Mon Sep 17 00:00:00 2001 From: dlarmor <121919810@qq.com> Date: Tue, 14 Mar 2023 11:48:35 +0800 Subject: [PATCH 12/40] =?UTF-8?q?=E9=87=8D=E6=9E=84=EF=BC=9A=E5=9F=BA?= =?UTF-8?q?=E7=A1=80=E8=AE=BE=E6=96=BD=20->=20=E6=96=87=E4=BB=B6=E7=AE=A1?= =?UTF-8?q?=E7=90=86=20=E6=8E=A5=E5=8F=A3=E6=96=87=E4=BB=B6=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/infra/{fileList => file}/index.ts | 15 ++------------- src/api/infra/fileConfig/index.ts | 14 +++++++------- src/views/infra/fileConfig/form.vue | 6 +++--- src/views/infra/fileConfig/index.vue | 8 ++++---- 4 files changed, 16 insertions(+), 27 deletions(-) rename src/api/infra/{fileList => file}/index.ts (54%) diff --git a/src/api/infra/fileList/index.ts b/src/api/infra/file/index.ts similarity index 54% rename from src/api/infra/fileList/index.ts rename to src/api/infra/file/index.ts index 48b3c9917..f64bc0d69 100644 --- a/src/api/infra/fileList/index.ts +++ b/src/api/infra/file/index.ts @@ -1,16 +1,5 @@ import request from '@/config/axios' -export interface FileVO { - id: number - configId: number - path: string - name: string - url: string - size: string - type: string - createTime: Date -} - export interface FilePageReqVO extends PageParam { path?: string type?: string @@ -18,11 +7,11 @@ export interface FilePageReqVO extends PageParam { } // 查询文件列表 -export const getFilePageApi = (params: FilePageReqVO) => { +export const getFilePage = (params: FilePageReqVO) => { return request.get({ url: '/infra/file/page', params }) } // 删除文件 -export const deleteFileApi = (id: number) => { +export const deleteFile = (id: number) => { return request.delete({ url: '/infra/file/delete?id=' + id }) } diff --git a/src/api/infra/fileConfig/index.ts b/src/api/infra/fileConfig/index.ts index 2151141cd..2f0967063 100644 --- a/src/api/infra/fileConfig/index.ts +++ b/src/api/infra/fileConfig/index.ts @@ -31,36 +31,36 @@ export interface FileConfigPageReqVO extends PageParam { } // 查询文件配置列表 -export const getFileConfigPageApi = (params: FileConfigPageReqVO) => { +export const getFileConfigPage = (params: FileConfigPageReqVO) => { return request.get({ url: '/infra/file-config/page', params }) } // 查询文件配置详情 -export const getFileConfigApi = (id: number) => { +export const getFileConfig = (id: number) => { return request.get({ url: '/infra/file-config/get?id=' + id }) } // 更新文件配置为主配置 -export const updateFileConfigMasterApi = (id: number) => { +export const updateFileConfigMaster = (id: number) => { return request.put({ url: '/infra/file-config/update-master?id=' + id }) } // 新增文件配置 -export const createFileConfigApi = (data: FileConfigVO) => { +export const createFileConfig = (data: FileConfigVO) => { return request.post({ url: '/infra/file-config/create', data }) } // 修改文件配置 -export const updateFileConfigApi = (data: FileConfigVO) => { +export const updateFileConfig = (data: FileConfigVO) => { return request.put({ url: '/infra/file-config/update', data }) } // 删除文件配置 -export const deleteFileConfigApi = (id: number) => { +export const deleteFileConfig = (id: number) => { return request.delete({ url: '/infra/file-config/delete?id=' + id }) } // 测试文件配置 -export const testFileConfigApi = (id: number) => { +export const testFileConfig = (id: number) => { return request.get({ url: '/infra/file-config/test?id=' + id }) } diff --git a/src/views/infra/fileConfig/form.vue b/src/views/infra/fileConfig/form.vue index ee7bd2387..a23aac9f0 100644 --- a/src/views/infra/fileConfig/form.vue +++ b/src/views/infra/fileConfig/form.vue @@ -147,7 +147,7 @@ const openModal = async (type: string, id?: number) => { if (id) { formLoading.value = true try { - formData.value = await FileConfigApi.getFileConfigApi(id) + formData.value = await FileConfigApi.getFileConfig(id) } finally { formLoading.value = false } @@ -167,10 +167,10 @@ const submitForm = async () => { try { const data = formData.value as unknown as FileConfigApi.FileConfigVO if (formType.value === 'create') { - await FileConfigApi.createFileConfigApi(data) + await FileConfigApi.createFileConfig(data) message.success(t('common.createSuccess')) } else { - await FileConfigApi.updateFileConfigApi(data) + await FileConfigApi.updateFileConfig(data) message.success(t('common.updateSuccess')) } modelVisible.value = false diff --git a/src/views/infra/fileConfig/index.vue b/src/views/infra/fileConfig/index.vue index 4416b094b..3b683e4ed 100644 --- a/src/views/infra/fileConfig/index.vue +++ b/src/views/infra/fileConfig/index.vue @@ -135,7 +135,7 @@ const queryFormRef = ref() // 搜索的表单 const getList = async () => { loading.value = true try { - const data = await FileConfigApi.getFileConfigPageApi(queryParams) + const data = await FileConfigApi.getFileConfigPage(queryParams) list.value = data.list total.value = data.total } finally { @@ -167,7 +167,7 @@ const handleDelete = async (id: number) => { // 删除的二次确认 await message.delConfirm() // 发起删除 - await FileConfigApi.deleteFileConfigApi(id) + await FileConfigApi.deleteFileConfig(id) message.success(t('common.delSuccess')) // 刷新列表 await getList() @@ -178,7 +178,7 @@ const handleMaster = (id) => { message .confirm('是否确认修改配置编号为"' + id + '"的数据项为主配置?') .then(function () { - return FileConfigApi.updateFileConfigMasterApi(id) + return FileConfigApi.updateFileConfigMaster(id) }) .then(() => { getList() @@ -188,7 +188,7 @@ const handleMaster = (id) => { } /** 测试按钮操作 */ const handleTest = (id) => { - FileConfigApi.testFileConfigApi(id) + FileConfigApi.testFileConfig(id) .then((response) => { message.alert('测试通过,上传文件成功!访问地址:' + response) }) From 1a7f89a8e23a41a0f313afd5e0b9c81bd2dbb7bb Mon Sep 17 00:00:00 2001 From: dlarmor <121919810@qq.com> Date: Tue, 14 Mar 2023 11:50:31 +0800 Subject: [PATCH 13/40] =?UTF-8?q?=E9=87=8D=E6=9E=84=EF=BC=9A=E5=9F=BA?= =?UTF-8?q?=E7=A1=80=E8=AE=BE=E6=96=BD=20->=20=E6=96=87=E4=BB=B6=E7=AE=A1?= =?UTF-8?q?=E7=90=86=20=E6=8E=A5=E5=8F=A3=E6=96=87=E4=BB=B6=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/infra/file/index.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/views/infra/file/index.vue b/src/views/infra/file/index.vue index 77beb3e5c..0f63ea288 100644 --- a/src/views/infra/file/index.vue +++ b/src/views/infra/file/index.vue @@ -87,7 +87,7 @@ - - diff --git a/src/views/infra/file/index.vue b/src/views/infra/file/index.vue index 0f63ea288..7c88ffb00 100644 --- a/src/views/infra/file/index.vue +++ b/src/views/infra/file/index.vue @@ -147,6 +147,7 @@ const handleDelete = async (id: number) => { } catch {} } +// TODO 写到 utils/index.ts 中 const sizeFormat = (row) => { const unitArr = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] const srcSize = parseFloat(row.size) @@ -155,6 +156,7 @@ const sizeFormat = (row) => { const sizeStr = size.toFixed(2) //保留的小数位数 return sizeStr + ' ' + unitArr[index] } + /** 初始化 **/ onMounted(() => { getList() diff --git a/src/views/infra/fileConfig/index.vue b/src/views/infra/fileConfig/index.vue index 3b683e4ed..4145d7a03 100644 --- a/src/views/infra/fileConfig/index.vue +++ b/src/views/infra/fileConfig/index.vue @@ -68,7 +68,7 @@ width="180" :formatter="dateFormatter" /> - + diff --git a/src/views/system/sms/smsChannel/sms.channel.data.ts b/src/views/system/sms/smsChannel/sms.channel.data.ts deleted file mode 100644 index d3a807edb..000000000 --- a/src/views/system/sms/smsChannel/sms.channel.data.ts +++ /dev/null @@ -1,63 +0,0 @@ -import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' -const { t } = useI18n() // 国际化 - -// 表单校验 -export const rules = reactive({ - signature: [required], - code: [required], - apiKey: [required], - status: [required] -}) - -// CrudSchema -const crudSchemas = reactive({ - primaryKey: 'id', - primaryType: 'id', - primaryTitle: '渠道编号', - action: true, - columns: [ - { - title: '短信签名', - field: 'signature', - isSearch: true - }, - { - title: '渠道编码', - field: 'code', - dictType: DICT_TYPE.SYSTEM_SMS_CHANNEL_CODE, - isSearch: true - }, - { - title: t('common.status'), - field: 'status', - dictType: DICT_TYPE.COMMON_STATUS, - dictClass: 'number', - isSearch: true - }, - { - title: '短信 API 的账号', - field: 'apiKey' - }, - { - title: '短信 API 的密钥', - field: 'apiSecret' - }, - { - title: '短信发送回调 URL', - field: 'callbackUrl' - }, - { - title: t('common.createTime'), - field: 'createTime', - formatter: 'formatDate', - isForm: false, - search: { - show: true, - itemRender: { - name: 'XDataTimePicker' - } - } - } - ] -}) -export const { allSchemas } = useVxeCrudSchemas(crudSchemas) From a94172d7a5cccbd7f79e4f41102eaca2a37f7842 Mon Sep 17 00:00:00 2001 From: xiaobai <2511883673@qq.com> Date: Wed, 15 Mar 2023 22:20:28 +0800 Subject: [PATCH 21/40] =?UTF-8?q?=E7=9F=AD=E4=BF=A1=E6=B8=A0=E9=81=93?= =?UTF-8?q?=E7=BF=BB=E5=86=99vue2->vue3=2020230315?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/system/sms/smsChannel/form.vue | 137 +++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 src/views/system/sms/smsChannel/form.vue diff --git a/src/views/system/sms/smsChannel/form.vue b/src/views/system/sms/smsChannel/form.vue new file mode 100644 index 000000000..7c20a90dd --- /dev/null +++ b/src/views/system/sms/smsChannel/form.vue @@ -0,0 +1,137 @@ + + From f1a80fe558ea459f37af552487e4c8cb40488e30 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Fri, 17 Mar 2023 00:02:45 +0800 Subject: [PATCH 22/40] =?UTF-8?q?vue3=20=E9=87=8D=E6=9E=84=EF=BC=9A?= =?UTF-8?q?=E9=82=AE=E4=BB=B6=E8=B4=A6=E5=8F=B7=E7=9A=84=E5=88=97=E8=A1=A8?= =?UTF-8?q?=20+=20=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/system/mail/account/account.data.ts | 102 +++++------ src/views/system/mail/account/index.vue | 167 +++--------------- 2 files changed, 77 insertions(+), 192 deletions(-) diff --git a/src/views/system/mail/account/account.data.ts b/src/views/system/mail/account/account.data.ts index bd05ce4fb..8555a7e38 100644 --- a/src/views/system/mail/account/account.data.ts +++ b/src/views/system/mail/account/account.data.ts @@ -1,10 +1,12 @@ -import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' +import { CrudSchema, useCrudSchemas } from '@/hooks/web/useCrudSchemas' +import { DictTag } from '@/components/DictTag' +import { TableColumn } from '@/types/table' +import { dateFormatter } from '@/utils/formatTime' const { t } = useI18n() // 国际化 // 表单校验 export const rules = reactive({ - // mail: [required], mail: [ { required: true, message: t('profile.rules.mail'), trigger: 'blur' }, { @@ -21,55 +23,49 @@ export const rules = reactive({ }) // CrudSchema -const crudSchemas = reactive({ - primaryKey: 'id', // 默认的主键 ID - primaryTitle: '编号', - primaryType: 'id', - action: true, - actionWidth: '200', // 3 个按钮默认 200,如有删减对应增减即可 - columns: [ - { - title: '邮箱', - field: 'mail', - isSearch: true - }, - { - title: '用户名', - field: 'username', - isSearch: true - }, - { - title: '密码', - field: 'password', - isTable: false - }, - { - title: 'SMTP 服务器域名', - field: 'host' - }, - { - title: 'SMTP 服务器端口', - field: 'port', - form: { - component: 'InputNumber', - value: 465 - } - }, - { - title: '是否开启 SSL', - field: 'sslEnable', - dictType: DICT_TYPE.INFRA_BOOLEAN_STRING, - dictClass: 'boolean' - }, - { - title: '创建时间', - field: 'createTime', - isForm: false, - formatter: 'formatDate', - table: { - width: 180 - } +const crudSchemas = reactive([ + { + label: '邮箱', + field: 'mail', + isSearch: true + }, + { + label: '用户名', + field: 'username', + isSearch: true + }, + { + label: '密码', + field: 'password', + isTable: false + }, + { + label: 'SMTP 服务器域名', + field: 'host' + }, + { + label: 'SMTP 服务器端口', + field: 'port', + form: { + component: 'InputNumber', + value: 465 } - ] -}) -export const { allSchemas } = useVxeCrudSchemas(crudSchemas) + }, + { + label: '是否开启 SSL', + field: 'sslEnable', + formatter: (_: Recordable, __: TableColumn, cellValue: boolean) => { + return h(DictTag, { + type: DICT_TYPE.INFRA_BOOLEAN_STRING, + value: cellValue + }) + } + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + formatter: dateFormatter + } +]) +export const { allSchemas } = useCrudSchemas(crudSchemas) diff --git a/src/views/system/mail/account/index.vue b/src/views/system/mail/account/index.vue index 7c4ad0f9d..821c7c736 100644 --- a/src/views/system/mail/account/index.vue +++ b/src/views/system/mail/account/index.vue @@ -1,151 +1,40 @@ From 262874a117b05d0057950b493eb72b91ac12e71b Mon Sep 17 00:00:00 2001 From: YunaiV Date: Fri, 17 Mar 2023 01:35:38 +0800 Subject: [PATCH 23/40] =?UTF-8?q?vue3=20=E9=87=8D=E6=9E=84=EF=BC=9A?= =?UTF-8?q?=E9=82=AE=E4=BB=B6=E8=B4=A6=E5=8F=B7=E7=9A=84=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=20+=20=E4=BF=AE=E6=94=B9=20+=20=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system/mail/account/index.ts | 7 +- src/views/system/mail/account/account.data.ts | 15 ++++ src/views/system/mail/account/form.vue | 68 +++++++++++++++++++ src/views/system/mail/account/index.vue | 44 ++++++++++-- 4 files changed, 124 insertions(+), 10 deletions(-) create mode 100644 src/views/system/mail/account/form.vue diff --git a/src/api/system/mail/account/index.ts b/src/api/system/mail/account/index.ts index 8b662a701..7f3b53827 100644 --- a/src/api/system/mail/account/index.ts +++ b/src/api/system/mail/account/index.ts @@ -10,13 +10,8 @@ export interface MailAccountVO { sslEnable: boolean } -export interface MailAccountPageReqVO extends PageParam { - mail?: string - username?: string -} - // 查询邮箱账号列表 -export const getMailAccountPageApi = async (params: MailAccountPageReqVO) => { +export const getMailAccountPageApi = async (params: PageParam) => { return await request.get({ url: '/system/mail-account/page', params }) } diff --git a/src/views/system/mail/account/account.data.ts b/src/views/system/mail/account/account.data.ts index 8555a7e38..5d018cb9c 100644 --- a/src/views/system/mail/account/account.data.ts +++ b/src/views/system/mail/account/account.data.ts @@ -2,6 +2,7 @@ import { CrudSchema, useCrudSchemas } from '@/hooks/web/useCrudSchemas' import { DictTag } from '@/components/DictTag' import { TableColumn } from '@/types/table' import { dateFormatter } from '@/utils/formatTime' +import { getBoolDictOptions } from '@/utils/dict' const { t } = useI18n() // 国际化 @@ -59,6 +60,12 @@ const crudSchemas = reactive([ type: DICT_TYPE.INFRA_BOOLEAN_STRING, value: cellValue }) + }, + form: { + component: 'Radio', + componentProps: { + options: getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING) + } } }, { @@ -66,6 +73,14 @@ const crudSchemas = reactive([ field: 'createTime', isForm: false, formatter: dateFormatter + }, + { + label: '操作', + field: 'action', + width: '260px', + form: { + show: false + } } ]) export const { allSchemas } = useCrudSchemas(crudSchemas) diff --git a/src/views/system/mail/account/form.vue b/src/views/system/mail/account/form.vue new file mode 100644 index 000000000..ba6a31d8e --- /dev/null +++ b/src/views/system/mail/account/form.vue @@ -0,0 +1,68 @@ + + diff --git a/src/views/system/mail/account/index.vue b/src/views/system/mail/account/index.vue index 821c7c736..8bc29f6d7 100644 --- a/src/views/system/mail/account/index.vue +++ b/src/views/system/mail/account/index.vue @@ -1,8 +1,17 @@ From 714dd661c40e0aafb91f51223695d646affe29af Mon Sep 17 00:00:00 2001 From: YunaiV Date: Fri, 17 Mar 2023 21:48:00 +0800 Subject: [PATCH 24/40] =?UTF-8?q?Search=20=E7=BB=84=E4=BB=B6=EF=BC=9A1?= =?UTF-8?q?=EF=BC=89=E4=BF=AE=E6=94=B9=20search=20=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E7=9A=84=E6=A0=B7=E5=BC=8F=EF=BC=9B2=EF=BC=89=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=20search=20=E6=8C=89=E9=92=AE=E5=90=8E=E7=9A=84=20act?= =?UTF-8?q?ionMore=20slot=EF=BC=9B3=EF=BC=89=E4=BF=AE=E6=94=B9=20Form=20?= =?UTF-8?q?=E5=90=91=E4=B8=8B=E5=87=8F=E5=B0=91=2015px=20=E9=97=B4?= =?UTF-8?q?=E8=B7=9D=EF=BC=8C=E6=9B=B4=E7=B4=A7=E5=87=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Search/src/Search.vue | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/components/Search/src/Search.vue b/src/components/Search/src/Search.vue index 80f2b37cf..cb3d5dea1 100644 --- a/src/components/Search/src/Search.vue +++ b/src/components/Search/src/Search.vue @@ -98,6 +98,7 @@ const setVisible = () => { From 96e0ce98663eb69e854d1c1d2895a5ac34701521 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Fri, 17 Mar 2023 22:32:25 +0800 Subject: [PATCH 25/40] =?UTF-8?q?Table=20=E7=BB=84=E4=BB=B6=EF=BC=9A1?= =?UTF-8?q?=EF=BC=89=E5=A2=9E=E5=8A=A0=20tableMethods=20=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=EF=BC=8C=E6=8F=90=E5=8D=87=E4=BB=A3=E7=A0=81=E7=9A=84=E5=8F=AF?= =?UTF-8?q?=E9=98=85=E8=AF=BB=E6=80=A7=EF=BC=9B2=EF=BC=89Table=20=E5=92=8C?= =?UTF-8?q?=20Pagination=20=E7=BB=84=E4=BB=B6=E7=9A=84=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E7=BB=9F=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Pagination/index.vue | 2 +- src/components/Table/src/Table.vue | 6 ++++-- src/hooks/web/useTable.ts | 4 +++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/components/Pagination/index.vue b/src/components/Pagination/index.vue index 9fc350686..788809a5b 100644 --- a/src/components/Pagination/index.vue +++ b/src/components/Pagination/index.vue @@ -5,7 +5,7 @@ class="float-right mt-15px mb-15px" :background="true" layout="total, sizes, prev, pager, next, jumper" - :page-sizes="[10, 20, 30, 50]" + :page-sizes="[10, 20, 30, 50, 100]" v-model:current-page="currentPage" v-model:page-size="pageSize" :pager-count="pagerCount" diff --git a/src/components/Table/src/Table.vue b/src/components/Table/src/Table.vue index 66969c99f..8ca596845 100644 --- a/src/components/Table/src/Table.vue +++ b/src/components/Table/src/Table.vue @@ -104,11 +104,12 @@ export default defineComponent({ }) const pagination = computed(() => { + // update by 芋艿:保持和 Pagination 组件的逻辑一致 return Object.assign( { small: false, background: true, - pagerCount: 5, + pagerCount: document.body.clientWidth < 992 ? 5 : 7, layout: 'total, sizes, prev, pager, next, jumper', pageSizes: [10, 20, 30, 50, 100], disabled: false, @@ -283,10 +284,11 @@ export default defineComponent({ }} {unref(getProps).pagination ? ( + // update by 芋艿:保持和 Pagination 组件一致 ) : undefined} diff --git a/src/hooks/web/useTable.ts b/src/hooks/web/useTable.ts index 7a9b1afea..3f0d5055e 100644 --- a/src/hooks/web/useTable.ts +++ b/src/hooks/web/useTable.ts @@ -218,6 +218,8 @@ export const useTable = (config?: UseTableConfig) => { register, elTableRef, tableObject, - methods + methods, + // add by 芋艿:返回 tableMethods 属性,和 tableObject 更统一 + tableMethods: methods } } From 3f2a77f2d239f3e4d43818fe651f25cb0a5d55b7 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Fri, 17 Mar 2023 22:33:30 +0800 Subject: [PATCH 26/40] =?UTF-8?q?Vue3=20=E9=87=8D=E6=9E=84=EF=BC=9A?= =?UTF-8?q?=E9=82=AE=E4=BB=B6=E8=B4=A6=E5=8F=B7=E7=9A=84=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E9=83=A8=E5=88=86=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system/mail/account/index.ts | 12 ++-- src/views/system/mail/account/account.data.ts | 1 - src/views/system/mail/account/form.vue | 6 +- src/views/system/mail/account/index.vue | 61 +++++++++++-------- src/views/system/mail/log/index.vue | 2 +- src/views/system/mail/template/index.vue | 2 +- 6 files changed, 46 insertions(+), 38 deletions(-) diff --git a/src/api/system/mail/account/index.ts b/src/api/system/mail/account/index.ts index 7f3b53827..9e10c92a1 100644 --- a/src/api/system/mail/account/index.ts +++ b/src/api/system/mail/account/index.ts @@ -11,31 +11,31 @@ export interface MailAccountVO { } // 查询邮箱账号列表 -export const getMailAccountPageApi = async (params: PageParam) => { +export const getMailAccountPage = async (params: PageParam) => { return await request.get({ url: '/system/mail-account/page', params }) } // 查询邮箱账号详情 -export const getMailAccountApi = async (id: number) => { +export const getMailAccount = async (id: number) => { return await request.get({ url: '/system/mail-account/get?id=' + id }) } // 新增邮箱账号 -export const createMailAccountApi = async (data: MailAccountVO) => { +export const createMailAccount = async (data: MailAccountVO) => { return await request.post({ url: '/system/mail-account/create', data }) } // 修改邮箱账号 -export const updateMailAccountApi = async (data: MailAccountVO) => { +export const updateMailAccount = async (data: MailAccountVO) => { return await request.put({ url: '/system/mail-account/update', data }) } // 删除邮箱账号 -export const deleteMailAccountApi = async (id: number) => { +export const deleteMailAccount = async (id: number) => { return await request.delete({ url: '/system/mail-account/delete?id=' + id }) } // 获得邮箱账号精简列表 -export const getSimpleMailAccounts = async () => { +export const getSimpleMailAccountList = async () => { return request.get({ url: '/system/mail-account/list-all-simple' }) } diff --git a/src/views/system/mail/account/account.data.ts b/src/views/system/mail/account/account.data.ts index 5d018cb9c..24017dc04 100644 --- a/src/views/system/mail/account/account.data.ts +++ b/src/views/system/mail/account/account.data.ts @@ -77,7 +77,6 @@ const crudSchemas = reactive([ { label: '操作', field: 'action', - width: '260px', form: { show: false } diff --git a/src/views/system/mail/account/form.vue b/src/views/system/mail/account/form.vue index ba6a31d8e..6160dd98a 100644 --- a/src/views/system/mail/account/form.vue +++ b/src/views/system/mail/account/form.vue @@ -31,7 +31,7 @@ const openModal = async (type: string, id?: number) => { if (id) { formLoading.value = true try { - const data = await MailAccountApi.getMailAccountApi(id) + const data = await MailAccountApi.getMailAccount(id) formRef.value.setValues(data) } finally { formLoading.value = false @@ -52,10 +52,10 @@ const submitForm = async () => { try { const data = formRef.value.formModel as MailAccountApi.MailAccountVO if (formType.value === 'create') { - await MailAccountApi.createMailAccountApi(data) + await MailAccountApi.createMailAccount(data) message.success(t('common.createSuccess')) } else { - await MailAccountApi.updateMailAccountApi(data) + await MailAccountApi.updateMailAccount(data) message.success(t('common.updateSuccess')) } modelVisible.value = false diff --git a/src/views/system/mail/account/index.vue b/src/views/system/mail/account/index.vue index 8bc29f6d7..ec88d60b8 100644 --- a/src/views/system/mail/account/index.vue +++ b/src/views/system/mail/account/index.vue @@ -1,28 +1,31 @@ diff --git a/src/views/system/mail/template/template.data.ts b/src/views/system/mail/template/template.data.ts index 32522e33c..0f4c75f72 100644 --- a/src/views/system/mail/template/template.data.ts +++ b/src/views/system/mail/template/template.data.ts @@ -1,98 +1,106 @@ -import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import { TableColumn } from '@/types/table' +import { DictTag } from '@/components/DictTag' +import * as MailAccountApi from '@/api/system/mail/account' + +const accounts = await MailAccountApi.getSimpleMailAccountList() // 表单校验 export const rules = reactive({ name: [required], code: [required], accountId: [required], - title: [required], + label: [required], content: [required], params: [required], status: [required] }) -// CrudSchema -const crudSchemas = reactive({ - primaryKey: 'id', // 默认的主键ID - primaryTitle: '编号', // 默认显示的值 - primaryType: null, - action: true, - actionWidth: '260', - columns: [ - { - title: '模板编码', - field: 'code', - isSearch: true - }, - { - title: '模板名称', - field: 'name', - isSearch: true - }, - { - title: '模板标题', - field: 'title' - }, - { - title: '模板内容', - field: 'content', - form: { - component: 'Editor', - colProps: { - span: 24 - }, - componentProps: { - valueHtml: '' - } - } - }, - { - title: '邮箱账号', - field: 'accountId', - isSearch: true, - table: { - width: 200, - slots: { - default: 'accountId_default' - } +// CrudSchema:https://kailong110120130.gitee.io/vue-element-plus-admin-doc/hooks/useCrudSchemas.html +const crudSchemas = reactive([ + { + label: '模板编码', + field: 'code', + isSearch: true + }, + { + label: '模板名称', + field: 'name', + isSearch: true + }, + { + label: '模板标题', + field: 'title' + }, + { + label: '模板内容', + field: 'content', + form: { + component: 'Editor', + colProps: { + span: 24 }, - search: { - slots: { - default: 'accountId_search' - } + componentProps: { + valueHtml: '' } + } + }, + { + label: '邮箱账号', + field: 'accountId', + isSearch: true, + width: '200px', + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return accounts.find((account) => account.id === cellValue)?.mail }, - { - title: '发送人名称', - field: 'nickname' - }, - { - title: '开启状态', - field: 'status', - isSearch: true, - dictType: DICT_TYPE.COMMON_STATUS, - dictClass: 'number' - }, - { - title: '备注', - field: 'remark', - isTable: false - }, - { - title: '创建时间', - field: 'createTime', - isForm: false, - formatter: 'formatDate', - table: { - width: 180 + search: { + show: true, + component: 'Select', + api: () => { + return accounts }, - search: { - show: true, - itemRender: { - name: 'XDataTimePicker' + componentProps: { + optionsAlias: { + labelField: 'mail', + valueField: 'id' } } } - ] -}) -export const { allSchemas } = useVxeCrudSchemas(crudSchemas) + }, + { + label: '发送人名称', + field: 'nickname' + }, + { + label: '开启状态', + field: 'status', + isSearch: true, + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return h(DictTag, { + type: DICT_TYPE.COMMON_STATUS, + value: cellValue + }) + }, + dictType: DICT_TYPE.COMMON_STATUS, + dictClass: 'number' + }, + { + label: '备注', + field: 'remark', + isTable: false + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + formatter: dateFormatter, + search: { + show: true, + itemRender: { + name: 'XDataTimePicker' + } + } + } +]) +export const { allSchemas } = useCrudSchemas(crudSchemas) From 4d03e46142ea2712b01f0a628d458c14cd9b11d2 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 18 Mar 2023 01:23:07 +0800 Subject: [PATCH 31/40] =?UTF-8?q?Vue3=20=E9=87=8D=E6=9E=84=EF=BC=9A?= =?UTF-8?q?=E9=82=AE=E4=BB=B6=E6=A8=A1=E7=89=88=E7=9A=84=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/infra/config/index.vue | 1 - src/views/infra/file/index.vue | 1 - src/views/infra/fileConfig/index.vue | 1 - src/views/system/mail/template/template.data.ts | 7 +++++-- src/views/system/sms/smsChannel/index.vue | 3 +-- 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/views/infra/config/index.vue b/src/views/infra/config/index.vue index 4c35d4854..0136a9d51 100644 --- a/src/views/infra/config/index.vue +++ b/src/views/infra/config/index.vue @@ -33,7 +33,6 @@ v-model="queryParams.createTime" value-format="YYYY-MM-DD HH:mm:ss" type="daterange" - range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" diff --git a/src/views/infra/file/index.vue b/src/views/infra/file/index.vue index 5137ec3e3..adf9d3a4c 100644 --- a/src/views/infra/file/index.vue +++ b/src/views/infra/file/index.vue @@ -23,7 +23,6 @@ v-model="queryParams.createTime" value-format="YYYY-MM-DD HH:mm:ss" type="daterange" - range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" diff --git a/src/views/infra/fileConfig/index.vue b/src/views/infra/fileConfig/index.vue index e38e3a502..ed0cfed70 100644 --- a/src/views/infra/fileConfig/index.vue +++ b/src/views/infra/fileConfig/index.vue @@ -25,7 +25,6 @@ v-model="queryParams.createTime" value-format="YYYY-MM-DD HH:mm:ss" type="daterange" - range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" diff --git a/src/views/system/mail/template/template.data.ts b/src/views/system/mail/template/template.data.ts index 0f4c75f72..aec8c4015 100644 --- a/src/views/system/mail/template/template.data.ts +++ b/src/views/system/mail/template/template.data.ts @@ -97,8 +97,11 @@ const crudSchemas = reactive([ formatter: dateFormatter, search: { show: true, - itemRender: { - name: 'XDataTimePicker' + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] } } } diff --git a/src/views/system/sms/smsChannel/index.vue b/src/views/system/sms/smsChannel/index.vue index 94a46b7d9..bac94f25a 100644 --- a/src/views/system/sms/smsChannel/index.vue +++ b/src/views/system/sms/smsChannel/index.vue @@ -22,9 +22,8 @@ Date: Sat, 18 Mar 2023 10:39:19 +0800 Subject: [PATCH 32/40] =?UTF-8?q?Vue3=20=E9=87=8D=E6=9E=84=EF=BC=9A?= =?UTF-8?q?=E9=82=AE=E4=BB=B6=E6=A8=A1=E7=89=88=E7=9A=84=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=92=8C=E4=BF=AE=E6=94=B9=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system/mail/template/index.ts | 20 ++---- src/views/system/mail/account/form.vue | 1 - src/views/system/mail/template/form.vue | 66 +++++++++++++++++++ src/views/system/mail/template/index.vue | 16 ++--- .../system/mail/template/template.data.ts | 23 +++++-- 5 files changed, 98 insertions(+), 28 deletions(-) create mode 100644 src/views/system/mail/template/form.vue diff --git a/src/api/system/mail/template/index.ts b/src/api/system/mail/template/index.ts index c044ddd4e..fb7ce5ea7 100644 --- a/src/api/system/mail/template/index.ts +++ b/src/api/system/mail/template/index.ts @@ -13,14 +13,6 @@ export interface MailTemplateVO { remark: string } -export interface MailTemplatePageReqVO extends PageParam { - name?: string - code?: string - accountId?: number - status?: number - createTime?: Date[] -} - export interface MailSendReqVO { mail: string templateCode: string @@ -28,31 +20,31 @@ export interface MailSendReqVO { } // 查询邮件模版列表 -export const getMailTemplatePageApi = async (params: MailTemplatePageReqVO) => { +export const getMailTemplatePage = async (params: PageParam) => { return await request.get({ url: '/system/mail-template/page', params }) } // 查询邮件模版详情 -export const getMailTemplateApi = async (id: number) => { +export const getMailTemplate = async (id: number) => { return await request.get({ url: '/system/mail-template/get?id=' + id }) } // 新增邮件模版 -export const createMailTemplateApi = async (data: MailTemplateVO) => { +export const createMailTemplate = async (data: MailTemplateVO) => { return await request.post({ url: '/system/mail-template/create', data }) } // 修改邮件模版 -export const updateMailTemplateApi = async (data: MailTemplateVO) => { +export const updateMailTemplate = async (data: MailTemplateVO) => { return await request.put({ url: '/system/mail-template/update', data }) } // 删除邮件模版 -export const deleteMailTemplateApi = async (id: number) => { +export const deleteMailTemplate = async (id: number) => { return await request.delete({ url: '/system/mail-template/delete?id=' + id }) } // 发送邮件 -export const sendMailApi = (data: MailSendReqVO) => { +export const sendMail = (data: MailSendReqVO) => { return request.post({ url: '/system/mail-template/send-mail', data }) } diff --git a/src/views/system/mail/account/form.vue b/src/views/system/mail/account/form.vue index 706838306..78d7cf0da 100644 --- a/src/views/system/mail/account/form.vue +++ b/src/views/system/mail/account/form.vue @@ -25,7 +25,6 @@ const openModal = async (type: string, id?: number) => { modelVisible.value = true modelTitle.value = t('action.' + type) formType.value = type - // resetForm() // 修改时,设置数据 if (id) { formLoading.value = true diff --git a/src/views/system/mail/template/form.vue b/src/views/system/mail/template/form.vue new file mode 100644 index 000000000..92f3c5c12 --- /dev/null +++ b/src/views/system/mail/template/form.vue @@ -0,0 +1,66 @@ + + diff --git a/src/views/system/mail/template/index.vue b/src/views/system/mail/template/index.vue index d9684e86b..ef8d800d3 100644 --- a/src/views/system/mail/template/index.vue +++ b/src/views/system/mail/template/index.vue @@ -49,28 +49,28 @@ - + diff --git a/src/views/system/mail/template/template.data.ts b/src/views/system/mail/template/template.data.ts index 129fa4e50..bfdd5cad7 100644 --- a/src/views/system/mail/template/template.data.ts +++ b/src/views/system/mail/template/template.data.ts @@ -1,7 +1,6 @@ import type { CrudSchema } from '@/hooks/web/useCrudSchemas' import { dateFormatter } from '@/utils/formatTime' import { TableColumn } from '@/types/table' -import { DictTag } from '@/components/DictTag' import * as MailAccountApi from '@/api/system/mail/account' const accounts = await MailAccountApi.getSimpleMailAccountList() @@ -38,9 +37,6 @@ const crudSchemas = reactive([ field: 'content', form: { component: 'Editor', - colProps: { - span: 24 - }, componentProps: { valueHtml: '', height: 200 @@ -84,12 +80,6 @@ const crudSchemas = reactive([ label: '开启状态', field: 'status', isSearch: true, - formatter: (_: Recordable, __: TableColumn, cellValue: number) => { - return h(DictTag, { - type: DICT_TYPE.COMMON_STATUS, - value: cellValue - }) - }, dictType: DICT_TYPE.COMMON_STATUS, dictClass: 'number' }, From 3c75d6065ddd91180c7b5de0100dc3738ca64448 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 18 Mar 2023 12:24:21 +0800 Subject: [PATCH 35/40] =?UTF-8?q?Vue3=20=E9=87=8D=E6=9E=84=EF=BC=9A?= =?UTF-8?q?=E9=82=AE=E4=BB=B6=E6=97=A5=E5=BF=97=E7=9A=84=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/system/mail/log/index.vue | 127 ++++----- src/views/system/mail/log/log.data.ts | 242 +++++++++--------- .../system/mail/template/template.data.ts | 1 + 3 files changed, 169 insertions(+), 201 deletions(-) diff --git a/src/views/system/mail/log/index.vue b/src/views/system/mail/log/index.vue index bbc0ba005..a8b0c6c1a 100644 --- a/src/views/system/mail/log/index.vue +++ b/src/views/system/mail/log/index.vue @@ -1,98 +1,59 @@ From e669dffddc29e335300dd0953cc2580b0e0ec796 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 18 Mar 2023 20:09:30 +0800 Subject: [PATCH 38/40] =?UTF-8?q?Vue3=20=E9=87=8D=E6=9E=84=EF=BC=9A?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E6=97=A5=E5=BF=97=E7=9A=84=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/formatTime.ts | 52 +-------- src/views/system/mail/log/index.vue | 6 +- src/views/system/operatelog/detail.vue | 80 +++++++++++++ src/views/system/operatelog/index.vue | 19 ++-- .../system/operatelog/operatelog.data.ts | 106 ------------------ 5 files changed, 95 insertions(+), 168 deletions(-) create mode 100644 src/views/system/operatelog/detail.vue delete mode 100644 src/views/system/operatelog/operatelog.data.ts diff --git a/src/utils/formatTime.ts b/src/utils/formatTime.ts index 396712790..2582beeed 100644 --- a/src/utils/formatTime.ts +++ b/src/utils/formatTime.ts @@ -12,57 +12,7 @@ import dayjs from 'dayjs' * @returns 返回拼接后的时间字符串 */ export function formatDate(date: Date, format: string): string { - const we = date.getDay() // 星期 - const z = getWeek(date) // 周 - const qut = Math.floor((date.getMonth() + 3) / 3).toString() // 季度 - const opt: { [key: string]: string } = { - 'Y+': date.getFullYear().toString(), // 年 - 'm+': (date.getMonth() + 1).toString(), // 月(月份从0开始,要+1) - 'd+': date.getDate().toString(), // 日 - 'H+': date.getHours().toString(), // 时 - 'M+': date.getMinutes().toString(), // 分 - 'S+': date.getSeconds().toString(), // 秒 - 'q+': qut // 季度 - } - // 中文数字 (星期) - const week: { [key: string]: string } = { - '0': '日', - '1': '一', - '2': '二', - '3': '三', - '4': '四', - '5': '五', - '6': '六' - } - // 中文数字(季度) - const quarter: { [key: string]: string } = { - '1': '一', - '2': '二', - '3': '三', - '4': '四' - } - if (/(W+)/.test(format)) - format = format.replace( - RegExp.$1, - RegExp.$1.length > 1 ? (RegExp.$1.length > 2 ? '星期' + week[we] : '周' + week[we]) : week[we] - ) - if (/(Q+)/.test(format)) - format = format.replace( - RegExp.$1, - RegExp.$1.length == 4 ? '第' + quarter[qut] + '季度' : quarter[qut] - ) - if (/(Z+)/.test(format)) - format = format.replace(RegExp.$1, RegExp.$1.length == 3 ? '第' + z + '周' : z + '') - for (const k in opt) { - const r = new RegExp('(' + k + ')').exec(format) - // 若输入的长度不为1,则前面补零 - if (r) - format = format.replace( - r[1], - RegExp.$1.length == 1 ? opt[k] : opt[k].padStart(RegExp.$1.length, '0') - ) - } - return format + return dayjs(date).format(format) } /** diff --git a/src/views/system/mail/log/index.vue b/src/views/system/mail/log/index.vue index f8d98b833..5373b71d2 100644 --- a/src/views/system/mail/log/index.vue +++ b/src/views/system/mail/log/index.vue @@ -29,8 +29,8 @@ - - + + diff --git a/src/views/system/operatelog/index.vue b/src/views/system/operatelog/index.vue index f4de18a2a..f96679124 100644 --- a/src/views/system/operatelog/index.vue +++ b/src/views/system/operatelog/index.vue @@ -21,7 +21,7 @@ 详情 @@ -110,13 +110,16 @@ @pagination="getList" /> + + + From 2cf384d7abfeb0d30adf6b0b7a5a02bd9baace21 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 18 Mar 2023 22:29:08 +0800 Subject: [PATCH 40/40] =?UTF-8?q?Vue3=20=E9=87=8D=E6=9E=84=EF=BC=9A?= =?UTF-8?q?=E5=9C=B0=E5=8C=BA=E6=8E=A5=E5=85=A5=20TableV2=20=E9=AB=98?= =?UTF-8?q?=E6=80=A7=E8=83=BD=E8=A1=A8=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system/area/index.ts | 2 +- src/types/auto-components.d.ts | 1 + src/views/system/area/form.vue | 71 +++++++++++++++++++++++++++++++++ src/views/system/area/index.vue | 57 ++++++++++++++++++-------- 4 files changed, 114 insertions(+), 17 deletions(-) create mode 100644 src/views/system/area/form.vue diff --git a/src/api/system/area/index.ts b/src/api/system/area/index.ts index f77ce0d10..e91a4997c 100644 --- a/src/api/system/area/index.ts +++ b/src/api/system/area/index.ts @@ -6,6 +6,6 @@ export const getAreaTree = async () => { } // 获得 IP 对应的地区名 -export const getDeptApi = async (ip: string) => { +export const getAreaByIp = async (ip: string) => { return await request.get({ url: '/system/area/get-by-ip?ip=' + ip }) } diff --git a/src/types/auto-components.d.ts b/src/types/auto-components.d.ts index 7b10d6797..be71517ca 100644 --- a/src/types/auto-components.d.ts +++ b/src/types/auto-components.d.ts @@ -73,6 +73,7 @@ declare module '@vue/runtime-core' { ElSwitch: typeof import('element-plus/es')['ElSwitch'] ElTable: typeof import('element-plus/es')['ElTable'] ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] + ElTableV2: typeof import('element-plus/es')['ElTableV2'] ElTabPane: typeof import('element-plus/es')['ElTabPane'] ElTabs: typeof import('element-plus/es')['ElTabs'] ElTag: typeof import('element-plus/es')['ElTag'] diff --git a/src/views/system/area/form.vue b/src/views/system/area/form.vue new file mode 100644 index 000000000..4e61fe322 --- /dev/null +++ b/src/views/system/area/form.vue @@ -0,0 +1,71 @@ + + diff --git a/src/views/system/area/index.vue b/src/views/system/area/index.vue index dcb659c3e..f9d4c57de 100644 --- a/src/views/system/area/index.vue +++ b/src/views/system/area/index.vue @@ -1,46 +1,71 @@ -