From b583be5465970411153abad0ae85661059818f14 Mon Sep 17 00:00:00 2001 From: gexinzhineng/gxzn27 <1348660141@qq.com> Date: Thu, 16 Mar 2023 13:51:54 +0800 Subject: [PATCH 01/74] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E5=9C=B0=E5=8C=BA=E7=AE=A1=E7=90=86=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system/area/index.ts | 15 ++++ src/views/system/area/area.data.ts | 23 ++++++ src/views/system/area/index.vue | 126 +++++++++++++++++++++++++++++ 3 files changed, 164 insertions(+) create mode 100644 src/api/system/area/index.ts create mode 100644 src/views/system/area/area.data.ts create mode 100644 src/views/system/area/index.vue diff --git a/src/api/system/area/index.ts b/src/api/system/area/index.ts new file mode 100644 index 00000000..7d8a9d7c --- /dev/null +++ b/src/api/system/area/index.ts @@ -0,0 +1,15 @@ +import request from '@/config/axios/request' + +// 获得地区树 +export const getAreaTree = async (content?: any) => { + return await request.get({ + url: '/system/area/tree', + params: content + }) +} +// 获得 IP 对应的地区名 +export const getAreaByIp = async (ip) => { + return await request.get({ + url: '/system/area/get-by-ip?ip=' + ip + }) +} diff --git a/src/views/system/area/area.data.ts b/src/views/system/area/area.data.ts new file mode 100644 index 00000000..008e8a41 --- /dev/null +++ b/src/views/system/area/area.data.ts @@ -0,0 +1,23 @@ +import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' + +// CrudSchema +const crudSchemas = reactive({ + primaryKey: 'id', + primaryType: null, + action: false, + columns: [ + { + title: '编号', + field: 'id', + table: { + treeNode: true, + align: 'left' + } + }, + { + title: '名字', + field: 'name' + } + ] +}) +export const { allSchemas } = useVxeCrudSchemas(crudSchemas) diff --git a/src/views/system/area/index.vue b/src/views/system/area/index.vue new file mode 100644 index 00000000..e5a6a682 --- /dev/null +++ b/src/views/system/area/index.vue @@ -0,0 +1,126 @@ + + + From 15ac1d9d8b08e17f6e282e8d493923f636004491 Mon Sep 17 00:00:00 2001 From: admin <> Date: Sun, 19 Mar 2023 13:04:59 +0800 Subject: [PATCH 02/74] =?UTF-8?q?=E9=87=87=E7=94=A8ep=E9=87=8D=E5=86=99dep?= =?UTF-8?q?t=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/types/auto-components.d.ts | 14 -- src/views/system/dept/dept.data.ts | 84 -------- src/views/system/dept/form.vue | 195 ++++++++++++++++++ src/views/system/dept/index.vue | 308 +++++++++++++++-------------- 4 files changed, 352 insertions(+), 249 deletions(-) delete mode 100644 src/views/system/dept/dept.data.ts create mode 100644 src/views/system/dept/form.vue diff --git a/src/types/auto-components.d.ts b/src/types/auto-components.d.ts index be71517c..8452fba6 100644 --- a/src/types/auto-components.d.ts +++ b/src/types/auto-components.d.ts @@ -23,8 +23,6 @@ declare module '@vue/runtime-core' { DictTag: typeof import('./../components/DictTag/src/DictTag.vue')['default'] Echart: typeof import('./../components/Echart/src/Echart.vue')['default'] Editor: typeof import('./../components/Editor/src/Editor.vue')['default'] - ElAutoResizer: typeof import('element-plus/es')['ElAutoResizer'] - ElAvatar: typeof import('element-plus/es')['ElAvatar'] ElBadge: typeof import('element-plus/es')['ElBadge'] ElButton: typeof import('element-plus/es')['ElButton'] ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup'] @@ -35,7 +33,6 @@ declare module '@vue/runtime-core' { ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem'] ElCollapseTransition: typeof import('element-plus/es')['ElCollapseTransition'] ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider'] - ElDatePicker: typeof import('element-plus/es')['ElDatePicker'] ElDescriptions: typeof import('element-plus/es')['ElDescriptions'] ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem'] ElDialog: typeof import('element-plus/es')['ElDialog'] @@ -54,7 +51,6 @@ declare module '@vue/runtime-core' { ElForm: typeof import('element-plus/es')['ElForm'] ElFormItem: typeof import('element-plus/es')['ElFormItem'] ElIcon: typeof import('element-plus/es')['ElIcon'] - ElImage: typeof import('element-plus/es')['ElImage'] ElImageViewer: typeof import('element-plus/es')['ElImageViewer'] ElInput: typeof import('element-plus/es')['ElInput'] ElInputNumber: typeof import('element-plus/es')['ElInputNumber'] @@ -62,26 +58,16 @@ declare module '@vue/runtime-core' { ElOption: typeof import('element-plus/es')['ElOption'] ElPagination: typeof import('element-plus/es')['ElPagination'] ElPopover: typeof import('element-plus/es')['ElPopover'] - ElRadio: typeof import('element-plus/es')['ElRadio'] - ElRadioButton: typeof import('element-plus/es')['ElRadioButton'] - ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] ElRow: typeof import('element-plus/es')['ElRow'] ElScrollbar: typeof import('element-plus/es')['ElScrollbar'] ElSelect: typeof import('element-plus/es')['ElSelect'] ElSkeleton: typeof import('element-plus/es')['ElSkeleton'] - ElSpace: typeof import('element-plus/es')['ElSpace'] 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'] - ElTimeline: typeof import('element-plus/es')['ElTimeline'] - ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem'] ElTooltip: typeof import('element-plus/es')['ElTooltip'] - ElTransfer: typeof import('element-plus/es')['ElTransfer'] - ElTree: typeof import('element-plus/es')['ElTree'] ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect'] ElUpload: typeof import('element-plus/es')['ElUpload'] Error: typeof import('./../components/Error/src/Error.vue')['default'] diff --git a/src/views/system/dept/dept.data.ts b/src/views/system/dept/dept.data.ts deleted file mode 100644 index c6945841..00000000 --- a/src/views/system/dept/dept.data.ts +++ /dev/null @@ -1,84 +0,0 @@ -import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' - -const { t } = useI18n() // 国际化 - -// 表单校验 -export const rules = reactive({ - name: [required], - sort: [required], - // email: [required], - email: [ - { required: true, message: t('profile.rules.mail'), trigger: 'blur' }, - { - type: 'email', - message: t('profile.rules.truemail'), - trigger: ['blur', 'change'] - } - ], - phone: [ - { - len: 11, - trigger: 'blur', - message: '请输入正确的手机号码' - } - ] -}) - -// CrudSchema -const crudSchemas = reactive({ - primaryKey: 'id', - primaryType: null, - action: true, - columns: [ - { - title: '上级部门', - field: 'parentId', - isTable: false - }, - { - title: '部门名称', - field: 'name', - isSearch: true, - table: { - treeNode: true, - align: 'left' - } - }, - { - title: '负责人', - field: 'leaderUserId', - table: { - slots: { - default: 'leaderUserId_default' - } - } - }, - { - title: '联系电话', - field: 'phone' - }, - { - title: '邮箱', - field: 'email', - isTable: false - }, - { - title: '显示排序', - field: 'sort' - }, - { - title: t('common.status'), - field: 'status', - dictType: DICT_TYPE.COMMON_STATUS, - dictClass: 'number', - isSearch: true - }, - { - title: t('common.createTime'), - field: 'createTime', - formatter: 'formatDate', - isForm: false - } - ] -}) -export const { allSchemas } = useVxeCrudSchemas(crudSchemas) diff --git a/src/views/system/dept/form.vue b/src/views/system/dept/form.vue new file mode 100644 index 00000000..fbbcab59 --- /dev/null +++ b/src/views/system/dept/form.vue @@ -0,0 +1,195 @@ + + + diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue index 3b182e2a..bfd12256 100644 --- a/src/views/system/dept/index.vue +++ b/src/views/system/dept/index.vue @@ -1,174 +1,180 @@ From 1846ba150ebbb98fa8e6db3b0439a5dcb7a93f20 Mon Sep 17 00:00:00 2001 From: admin <> Date: Sun, 19 Mar 2023 21:44:13 +0800 Subject: [PATCH 03/74] =?UTF-8?q?=E9=87=8D=E6=96=B0dept=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/system/dept/form.vue | 13 ++++--------- src/views/system/dept/index.vue | 21 +++++++++------------ 2 files changed, 13 insertions(+), 21 deletions(-) diff --git a/src/views/system/dept/form.vue b/src/views/system/dept/form.vue index fbbcab59..8d9405f3 100644 --- a/src/views/system/dept/form.vue +++ b/src/views/system/dept/form.vue @@ -33,7 +33,7 @@ style="width: 100%" > [] as UserVO[] - } -}) const formRules = reactive({ parentId: [{ required: true, message: '上级部门不能为空', trigger: 'blur' }], @@ -118,12 +113,12 @@ const formRules = reactive({ }) /** 打开弹窗 */ -const openModal = async (type: string, id?: number) => { +const openModal = async (type: string, id?: number, userOption?: UserVO[]) => { + userList.value = userOption modelVisible.value = true modelTitle.value = t('action.' + type) formType.value = type resetForm() - console.log(id) // 修改时,设置数据 if (id) { formLoading.value = true diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue index bfd12256..d5f54d19 100644 --- a/src/views/system/dept/index.vue +++ b/src/views/system/dept/index.vue @@ -85,7 +85,7 @@ - + diff --git a/src/views/system/tenant/index.vue b/src/views/system/tenant/index.vue index bb1ca1a3..08ff5228 100644 --- a/src/views/system/tenant/index.vue +++ b/src/views/system/tenant/index.vue @@ -1,197 +1,255 @@ From 33a9b5af863f2bb8ee60f72bbe277f2fe3bfff9d Mon Sep 17 00:00:00 2001 From: lour6498 Date: Tue, 21 Mar 2023 10:00:32 +0800 Subject: [PATCH 06/74] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E6=BA=90=E9=85=8D?= =?UTF-8?q?=E7=BD=AE):=20=E9=A1=B5=E9=9D=A2api=E6=9C=AA=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/infra/codegen/components/ImportTable.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/views/infra/codegen/components/ImportTable.vue b/src/views/infra/codegen/components/ImportTable.vue index 38a81541..3d56d5fc 100644 --- a/src/views/infra/codegen/components/ImportTable.vue +++ b/src/views/infra/codegen/components/ImportTable.vue @@ -52,7 +52,7 @@ import { VxeTableInstance } from 'vxe-table' import type { DatabaseTableVO } from '@/api/infra/codegen/types' import { getSchemaTableListApi, createCodegenListApi } from '@/api/infra/codegen' -import { getDataSourceConfigListApi, DataSourceConfigVO } from '@/api/infra/dataSourceConfig' +import { getDataSourceConfigList, DataSourceConfigVO } from '@/api/infra/dataSourceConfig' const { t } = useI18n() // 国际化 const message = useMessage() // 消息弹窗 @@ -63,11 +63,11 @@ const dbLoading = ref(true) const queryParams = reactive({ name: undefined, comment: undefined, - dataSourceConfigId: 0 + dataSourceConfigId: 0 as number | undefined }) const dataSourceConfigs = ref([]) const show = async () => { - const res = await getDataSourceConfigListApi() + const res = await getDataSourceConfigList() dataSourceConfigs.value = res queryParams.dataSourceConfigId = dataSourceConfigs.value[0].id visible.value = true From a7503322107ad890908c9986e23949af9c7acdd7 Mon Sep 17 00:00:00 2001 From: lour6498 Date: Tue, 21 Mar 2023 10:01:06 +0800 Subject: [PATCH 07/74] =?UTF-8?q?Vue3=20=E9=87=8D=E6=9E=84=EF=BC=9A?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system/loginLog/index.ts | 4 +- src/styles/index.scss | 6 + src/views/system/loginlog/detail.vue | 49 +++++ src/views/system/loginlog/index.vue | 213 ++++++++++++++++----- src/views/system/loginlog/loginLog.data.ts | 53 ----- 5 files changed, 225 insertions(+), 100 deletions(-) create mode 100644 src/views/system/loginlog/detail.vue delete mode 100644 src/views/system/loginlog/loginLog.data.ts diff --git a/src/api/system/loginLog/index.ts b/src/api/system/loginLog/index.ts index cadaeaf3..5b06e753 100644 --- a/src/api/system/loginLog/index.ts +++ b/src/api/system/loginLog/index.ts @@ -21,10 +21,10 @@ export interface LoginLogReqVO extends PageParam { } // 查询登录日志列表 -export const getLoginLogPageApi = (params: LoginLogReqVO) => { +export const getLoginLogPage = (params: LoginLogReqVO) => { return request.get({ url: '/system/login-log/page', params }) } // 导出登录日志 -export const exportLoginLogApi = (params: LoginLogReqVO) => { +export const exportLoginLog = (params: LoginLogReqVO) => { return request.download({ url: '/system/login-log/export', params }) } diff --git a/src/styles/index.scss b/src/styles/index.scss index 39c4c4da..02c187a5 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -26,3 +26,9 @@ border-left-color: var(--el-color-primary); } } + +// 添加表头样式 +.el-table.yudao-table { + --el-table-header-bg-color: #f8f8f9; + --el-table-header-text-color: #606266; +} diff --git a/src/views/system/loginlog/detail.vue b/src/views/system/loginlog/detail.vue new file mode 100644 index 00000000..8372d2e6 --- /dev/null +++ b/src/views/system/loginlog/detail.vue @@ -0,0 +1,49 @@ + + diff --git a/src/views/system/loginlog/index.vue b/src/views/system/loginlog/index.vue index f2bb8c67..f5a695fc 100644 --- a/src/views/system/loginlog/index.vue +++ b/src/views/system/loginlog/index.vue @@ -1,53 +1,176 @@ - diff --git a/src/views/system/loginlog/loginLog.data.ts b/src/views/system/loginlog/loginLog.data.ts deleted file mode 100644 index c0a51fbe..00000000 --- a/src/views/system/loginlog/loginLog.data.ts +++ /dev/null @@ -1,53 +0,0 @@ -import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' - -// CrudSchema -const crudSchemas = reactive({ - primaryKey: 'id', - primaryType: 'id', - primaryTitle: '日志编号', - action: true, - actionWidth: '100px', - columns: [ - { - title: '日志类型', - field: 'logType', - dictType: DICT_TYPE.SYSTEM_LOGIN_TYPE, - dictClass: 'number' - }, - { - title: '用户名称', - field: 'username', - isSearch: true - }, - { - title: '登录地址', - field: 'userIp', - isSearch: true - }, - { - title: '浏览器', - field: 'userAgent' - }, - { - title: '登陆结果', - field: 'result', - dictType: DICT_TYPE.SYSTEM_LOGIN_RESULT, - dictClass: 'number' - }, - { - title: '登录日期', - field: 'createTime', - formatter: 'formatDate', - table: { - width: 150 - }, - search: { - show: true, - itemRender: { - name: 'XDataTimePicker' - } - } - } - ] -}) -export const { allSchemas } = useVxeCrudSchemas(crudSchemas) From 7697e5c358436a1ff86b013918bff74ad99481f7 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Tue, 21 Mar 2023 16:17:44 +0800 Subject: [PATCH 08/74] =?UTF-8?q?add:=20=E6=B7=BB=E5=8A=A0=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=8C=87=E5=AE=9A=E5=AD=97=E5=85=B8=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E5=80=BC=E5=AF=B9=E5=BA=94=E7=9A=84label=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/dict.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/utils/dict.ts b/src/utils/dict.ts index 15e57ff2..4f5d63fb 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -69,7 +69,16 @@ export const getDictObj = (dictType: string, value: any) => { } }) } - +export const getDictLabel = (dictType: string, value: any) => { + const dictOptions: DictDataType[] = getDictOptions(dictType) + const dictLabel = ref('') + dictOptions.forEach((dict: DictDataType) => { + if (dict.value === value) { + dictLabel.value = dict.label + } + }) + return dictLabel.value +} export enum DICT_TYPE { USER_TYPE = 'user_type', COMMON_STATUS = 'common_status', From 9adf80c9141db8260d5f0b42b8f884d78a2954b8 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Tue, 21 Mar 2023 16:20:03 +0800 Subject: [PATCH 09/74] =?UTF-8?q?add:=20=E6=94=B9=E9=80=A0vue2=E4=B8=AD?= =?UTF-8?q?=E7=9A=84RightToolbar=E5=88=B0vue3=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/RightToolbar/index.ts | 9 ++ src/components/RightToolbar/src/index.vue | 104 ++++++++++++++++++++++ 2 files changed, 113 insertions(+) create mode 100644 src/components/RightToolbar/index.ts create mode 100644 src/components/RightToolbar/src/index.vue diff --git a/src/components/RightToolbar/index.ts b/src/components/RightToolbar/index.ts new file mode 100644 index 00000000..eb9d1112 --- /dev/null +++ b/src/components/RightToolbar/index.ts @@ -0,0 +1,9 @@ +import RightToolbar from './src/index.vue' + +export interface columnsType { + key?: number + label?: string + visible?: boolean +} + +export { RightToolbar } diff --git a/src/components/RightToolbar/src/index.vue b/src/components/RightToolbar/src/index.vue new file mode 100644 index 00000000..11e021dc --- /dev/null +++ b/src/components/RightToolbar/src/index.vue @@ -0,0 +1,104 @@ + + + From c1b1ffa46706bd2b7d3e21c78167a4eb1342bf12 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Tue, 21 Mar 2023 16:21:23 +0800 Subject: [PATCH 10/74] =?UTF-8?q?add:=20=E6=94=B9=E9=80=A0vue2=E4=B8=AD?= =?UTF-8?q?=E7=9A=84RightToolbar=E5=88=B0vue3=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/components/index.ts b/src/components/index.ts index 19b2aac6..97c2b4b0 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -9,6 +9,7 @@ import { XButton, XTextButton } from '@/components/XButton' import { DictTag } from '@/components/DictTag' import { ContentWrap } from '@/components/ContentWrap' import { Descriptions } from '@/components/Descriptions' +import { RightToolbar } from '@/components/RightToolbar' export const setupGlobCom = (app: App): void => { app.component('Icon', Icon) @@ -22,4 +23,5 @@ export const setupGlobCom = (app: App): void => { app.component('DictTag', DictTag) app.component('ContentWrap', ContentWrap) app.component('Descriptions', Descriptions) + app.component('RightToolbar', RightToolbar) } From 6e90bbe2e1b03f8f4f9c05d4256f291d21eb639a Mon Sep 17 00:00:00 2001 From: puhui999 Date: Tue, 21 Mar 2023 16:29:11 +0800 Subject: [PATCH 11/74] =?UTF-8?q?add:=20=E6=94=B9=E9=80=A0vue2=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E7=9F=AD=E4=BF=A1=E6=A8=A1=E6=9D=BF=E5=88=B0vue3?= =?UTF-8?q?=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system/sms/smsChannel/index.ts | 6 + src/api/system/sms/smsTemplate/index.ts | 22 +- src/locales/zh-CN.ts | 9 +- src/views/system/sms/smsTemplate/form.vue | 262 +++++++++ src/views/system/sms/smsTemplate/index.vue | 532 +++++++++++------- .../sms/smsTemplate/sms.template.data.ts | 107 ---- 6 files changed, 607 insertions(+), 331 deletions(-) create mode 100644 src/views/system/sms/smsTemplate/form.vue delete mode 100644 src/views/system/sms/smsTemplate/sms.template.data.ts diff --git a/src/api/system/sms/smsChannel/index.ts b/src/api/system/sms/smsChannel/index.ts index 176d075f..7c8ccea9 100644 --- a/src/api/system/sms/smsChannel/index.ts +++ b/src/api/system/sms/smsChannel/index.ts @@ -12,6 +12,12 @@ export interface SmsChannelVO { createTime: Date } +export interface SmsChannelListVO { + id: number + code: string + signature: string +} + export interface SmsChannelPageReqVO extends PageParam { signature?: string code?: string diff --git a/src/api/system/sms/smsTemplate/index.ts b/src/api/system/sms/smsTemplate/index.ts index 0433fe3a..55a61762 100644 --- a/src/api/system/sms/smsTemplate/index.ts +++ b/src/api/system/sms/smsTemplate/index.ts @@ -1,18 +1,18 @@ import request from '@/config/axios' export interface SmsTemplateVO { - id: number - type: number - status: number + id: number | null + type: number | null + status: number | null code: string name: string content: string remark: string apiTemplateId: string - channelId: number - channelCode: string - params: string[] - createTime: Date + channelId: number | null + channelCode?: string + params?: string[] + createTime?: Date } export interface SendSmsReqVO { @@ -21,13 +21,13 @@ export interface SendSmsReqVO { templateParams: Map } -export interface SmsTemplatePageReqVO { - type?: number - status?: number +export interface SmsTemplatePageReqVO extends PageParam { + type?: number | null + status?: number | null code?: string content?: string apiTemplateId?: string - channelId?: number + channelId?: number | null createTime?: Date[] } diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index 7c5742c4..985ffb7c 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -302,7 +302,14 @@ export default { dialog: { dialog: '弹窗', open: '打开', - close: '关闭' + close: '关闭', + sms: { + template: { + addTitle: '添加短信模板', + updtaeTitle: '修改短信模板', + sendSms: '发送短信' + } + } }, sys: { api: { diff --git a/src/views/system/sms/smsTemplate/form.vue b/src/views/system/sms/smsTemplate/form.vue new file mode 100644 index 00000000..193ae2e3 --- /dev/null +++ b/src/views/system/sms/smsTemplate/form.vue @@ -0,0 +1,262 @@ + + diff --git a/src/views/system/sms/smsTemplate/index.vue b/src/views/system/sms/smsTemplate/index.vue index bbc7c863..a7d6ded1 100644 --- a/src/views/system/sms/smsTemplate/index.vue +++ b/src/views/system/sms/smsTemplate/index.vue @@ -1,232 +1,340 @@ diff --git a/src/views/system/sms/smsTemplate/sms.template.data.ts b/src/views/system/sms/smsTemplate/sms.template.data.ts deleted file mode 100644 index 6178d6c2..00000000 --- a/src/views/system/sms/smsTemplate/sms.template.data.ts +++ /dev/null @@ -1,107 +0,0 @@ -import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' -import * as smsApi from '@/api/system/sms/smsChannel' -const { t } = useI18n() // 国际化 -const tenantPackageOption = [] -const getTenantPackageOptions = async () => { - const res = await smsApi.getSimpleSmsChannels() - console.log(res, 'resresres') - res.forEach((tenantPackage: TenantPackageVO) => { - tenantPackageOption.push({ - key: tenantPackage.id, - value: tenantPackage.id, - label: tenantPackage.signature - }) - }) -} -getTenantPackageOptions() -// 表单校验 -export const rules = reactive({ - type: [required], - status: [required], - code: [required], - name: [required], - content: [required], - apiTemplateId: [required], - channelId: [required] -}) - -// CrudSchema -const crudSchemas = reactive({ - primaryKey: 'id', - primaryType: 'id', - primaryTitle: '模板编号', - action: true, - actionWidth: '280', - columns: [ - { - title: '短信渠道编码', - field: 'channelId', - isSearch: false, - isForm: true, - isTable: false, - form: { - component: 'Select', - componentProps: { - options: tenantPackageOption - } - } - }, - { - title: '模板编码', - field: 'code', - isSearch: true - }, - { - title: '模板名称', - field: 'name', - isSearch: true - }, - { - title: '模板内容', - field: 'content' - }, - { - title: '短信 API 的模板编号', - field: 'apiTemplateId', - isSearch: true - }, - { - title: '短信类型', - field: 'type', - dictType: DICT_TYPE.SYSTEM_SMS_TEMPLATE_TYPE, - dictClass: 'number', - isSearch: true, - table: { - width: 80 - } - }, - { - title: t('common.status'), - field: 'status', - dictType: DICT_TYPE.COMMON_STATUS, - dictClass: 'number', - isSearch: true, - table: { - width: 80 - } - }, - { - title: t('form.remark'), - field: 'remark', - isTable: false - }, - { - title: t('common.createTime'), - field: 'createTime', - formatter: 'formatDate', - isForm: false, - search: { - show: true, - itemRender: { - name: 'XDataTimePicker' - } - } - } - ] -}) -export const { allSchemas } = useVxeCrudSchemas(crudSchemas) From 16c4bb5dca18177a2c78d0de8573df870e58aeff Mon Sep 17 00:00:00 2001 From: puhui999 Date: Tue, 21 Mar 2023 16:46:16 +0800 Subject: [PATCH 12/74] =?UTF-8?q?update:=20=E4=BF=AE=E5=A4=8D=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=9F=AD=E4=BF=A1=E5=8F=91=E9=80=81=E6=88=90=E5=8A=9F?= =?UTF-8?q?=E5=90=8E=E5=BC=B9=E7=AA=97=E4=B8=8D=E5=85=B3=E9=97=AD=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/types/auto-components.d.ts | 13 +++---------- src/types/auto-imports.d.ts | 2 +- src/views/system/sms/smsTemplate/form.vue | 11 ++++++++--- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/types/auto-components.d.ts b/src/types/auto-components.d.ts index 7b10d679..d6c922f8 100644 --- a/src/types/auto-components.d.ts +++ b/src/types/auto-components.d.ts @@ -1,7 +1,5 @@ -/* eslint-disable */ -/* prettier-ignore */ -// @ts-nocheck -// Generated by unplugin-vue-components +// generated by unplugin-vue-components +// We suggest you to commit this file into source control // Read more: https://github.com/vuejs/core/pull/3399 import '@vue/runtime-core' @@ -23,8 +21,6 @@ declare module '@vue/runtime-core' { DictTag: typeof import('./../components/DictTag/src/DictTag.vue')['default'] Echart: typeof import('./../components/Echart/src/Echart.vue')['default'] Editor: typeof import('./../components/Editor/src/Editor.vue')['default'] - ElAutoResizer: typeof import('element-plus/es')['ElAutoResizer'] - ElAvatar: typeof import('element-plus/es')['ElAvatar'] ElBadge: typeof import('element-plus/es')['ElBadge'] ElButton: typeof import('element-plus/es')['ElButton'] ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup'] @@ -54,7 +50,6 @@ declare module '@vue/runtime-core' { ElForm: typeof import('element-plus/es')['ElForm'] ElFormItem: typeof import('element-plus/es')['ElFormItem'] ElIcon: typeof import('element-plus/es')['ElIcon'] - ElImage: typeof import('element-plus/es')['ElImage'] ElImageViewer: typeof import('element-plus/es')['ElImageViewer'] ElInput: typeof import('element-plus/es')['ElInput'] ElInputNumber: typeof import('element-plus/es')['ElInputNumber'] @@ -69,15 +64,12 @@ declare module '@vue/runtime-core' { ElScrollbar: typeof import('element-plus/es')['ElScrollbar'] ElSelect: typeof import('element-plus/es')['ElSelect'] ElSkeleton: typeof import('element-plus/es')['ElSkeleton'] - ElSpace: typeof import('element-plus/es')['ElSpace'] ElSwitch: typeof import('element-plus/es')['ElSwitch'] ElTable: typeof import('element-plus/es')['ElTable'] ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] ElTabPane: typeof import('element-plus/es')['ElTabPane'] ElTabs: typeof import('element-plus/es')['ElTabs'] ElTag: typeof import('element-plus/es')['ElTag'] - ElTimeline: typeof import('element-plus/es')['ElTimeline'] - ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem'] ElTooltip: typeof import('element-plus/es')['ElTooltip'] ElTransfer: typeof import('element-plus/es')['ElTransfer'] ElTree: typeof import('element-plus/es')['ElTree'] @@ -105,6 +97,7 @@ declare module '@vue/runtime-core' { ScriptTask: typeof import('./../components/bpmnProcessDesigner/package/penal/task/task-components/ScriptTask.vue')['default'] Search: typeof import('./../components/Search/src/Search.vue')['default'] SignalAndMessage: typeof import('./../components/bpmnProcessDesigner/package/penal/signal-message/SignalAndMessage.vue')['default'] + Src: typeof import('./../components/RightToolbar/src/index.vue')['default'] Sticky: typeof import('./../components/Sticky/src/Sticky.vue')['default'] Table: typeof import('./../components/Table/src/Table.vue')['default'] Tooltip: typeof import('./../components/Tooltip/src/Tooltip.vue')['default'] diff --git a/src/types/auto-imports.d.ts b/src/types/auto-imports.d.ts index 7c9f5ff1..bd749b8e 100644 --- a/src/types/auto-imports.d.ts +++ b/src/types/auto-imports.d.ts @@ -70,5 +70,5 @@ declare global { // for type re-export declare global { // @ts-ignore - export type { Component, ComponentPublicInstance, ComputedRef, InjectionKey, PropType, Ref, VNode } from 'vue' + export type { Component,ComponentPublicInstance,ComputedRef,InjectionKey,PropType,Ref,VNode } from 'vue' } diff --git a/src/views/system/sms/smsTemplate/form.vue b/src/views/system/sms/smsTemplate/form.vue index 193ae2e3..4c9825f9 100644 --- a/src/views/system/sms/smsTemplate/form.vue +++ b/src/views/system/sms/smsTemplate/form.vue @@ -1,5 +1,6 @@ diff --git a/src/views/system/post/index.vue b/src/views/system/post/index.vue index c5a13e1e..321b5ae3 100644 --- a/src/views/system/post/index.vue +++ b/src/views/system/post/index.vue @@ -1,71 +1,192 @@ - diff --git a/src/views/system/post/post.data.ts b/src/views/system/post/post.data.ts deleted file mode 100644 index 4926bcc6..00000000 --- a/src/views/system/post/post.data.ts +++ /dev/null @@ -1,58 +0,0 @@ -import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' -const { t } = useI18n() // 国际化 - -// 表单校验 -export const rules = reactive({ - name: [required], - code: [required], - sort: [required] -}) - -// 增删改查 CrudSchema 配置 -const crudSchemas = reactive({ - primaryKey: 'id', - primaryType: 'id', - primaryTitle: '岗位编号', - action: true, - columns: [ - { - title: '岗位名称', - field: 'name', - isSearch: true - }, - { - title: '岗位编码', - field: 'code', - isSearch: true - }, - { - title: '岗位顺序', - field: 'sort', - form: { - component: 'InputNumber' - } - }, - { - title: t('common.status'), - field: 'status', - dictType: DICT_TYPE.COMMON_STATUS, - dictClass: 'number', - isSearch: true - }, - { - title: '备注', - field: 'remark', - isTable: false - }, - { - title: t('common.createTime'), - field: 'createTime', - formatter: 'formatDate', - isForm: false, - table: { - width: 180 - } - } - ] -}) -export const { allSchemas } = useVxeCrudSchemas(crudSchemas) From 25668ac558cebdff720e4b1d75995761a1a8003b Mon Sep 17 00:00:00 2001 From: puhui999 Date: Wed, 22 Mar 2023 17:47:08 +0800 Subject: [PATCH 16/74] =?UTF-8?q?add:=20=E8=BF=81=E7=A7=BBv2=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E7=9A=84=E6=97=A5=E6=9C=9F=E6=A0=BC=E5=BC=8F=E5=8C=96?= =?UTF-8?q?=E5=87=BD=E6=95=B0=E5=88=B0vue3=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/formatTime.ts | 45 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/src/utils/formatTime.ts b/src/utils/formatTime.ts index 39671279..f0cf0736 100644 --- a/src/utils/formatTime.ts +++ b/src/utils/formatTime.ts @@ -64,6 +64,51 @@ export function formatDate(date: Date, format: string): string { } return format } +// 日期格式化 +export function parseTime(time: any, pattern?: string) { + if (arguments.length === 0 || !time) { + return null + } + const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}' + let date + if (typeof time === 'object') { + date = time + } else { + if (typeof time === 'string' && /^[0-9]+$/.test(time)) { + time = parseInt(time) + } else if (typeof time === 'string') { + time = time + .replace(new RegExp(/-/gm), '/') + .replace('T', ' ') + .replace(new RegExp(/\.\d{3}/gm), '') + } + if (typeof time === 'number' && time.toString().length === 10) { + time = time * 1000 + } + date = new Date(time) + } + const formatObj = { + y: date.getFullYear(), + m: date.getMonth() + 1, + d: date.getDate(), + h: date.getHours(), + i: date.getMinutes(), + s: date.getSeconds(), + a: date.getDay() + } + const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => { + let value = formatObj[key] + // Note: getDay() returns 0 on Sunday + if (key === 'a') { + return ['日', '一', '二', '三', '四', '五', '六'][value] + } + if (result.length > 0 && value < 10) { + value = '0' + value + } + return value || 0 + }) + return time_str +} /** * 获取当前日期是第几周 From b4093ab97e257bcaa1139a097b667df1c44e6fd7 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Wed, 22 Mar 2023 17:49:52 +0800 Subject: [PATCH 17/74] =?UTF-8?q?update:=20=E4=BF=AE=E5=A4=8Dvalue-format?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E5=A4=B1=E6=95=88=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=EF=BC=8C=E5=BA=94=E5=85=A8=E9=83=A8=E9=83=BD=E7=94=A8=E5=A4=A7?= =?UTF-8?q?=E5=86=99value-format=3D"YYYY-MM-DD"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/system/sms/smsTemplate/index.vue | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/views/system/sms/smsTemplate/index.vue b/src/views/system/sms/smsTemplate/index.vue index 081f0596..ed934c0f 100644 --- a/src/views/system/sms/smsTemplate/index.vue +++ b/src/views/system/sms/smsTemplate/index.vue @@ -60,21 +60,21 @@ - 搜索 + 搜索 重置 - + From 496862e197026c863d3b96e9699c007f40dea44e Mon Sep 17 00:00:00 2001 From: puhui999 Date: Wed, 22 Mar 2023 17:50:25 +0800 Subject: [PATCH 18/74] delete --- src/views/system/sms/smsLog/sms.log.data.ts | 93 --------------------- 1 file changed, 93 deletions(-) delete mode 100644 src/views/system/sms/smsLog/sms.log.data.ts diff --git a/src/views/system/sms/smsLog/sms.log.data.ts b/src/views/system/sms/smsLog/sms.log.data.ts deleted file mode 100644 index c975bb0f..00000000 --- a/src/views/system/sms/smsLog/sms.log.data.ts +++ /dev/null @@ -1,93 +0,0 @@ -import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' -import { DICT_TYPE, getStrDictOptions } from '@/utils/dict' - -const { t } = useI18n() // 国际化 - -const authorizedGrantOptions = getStrDictOptions(DICT_TYPE.SYSTEM_SMS_CHANNEL_CODE) -// CrudSchema -const crudSchemas = reactive({ - primaryKey: 'id', - primaryType: 'id', - primaryTitle: '日志编号', - action: true, - columns: [ - { - title: '手机号', - field: 'mobile', - isSearch: true - }, - { - title: '短信内容', - field: 'templateContent' - }, - { - title: '模板编号', - field: 'templateId', - isSearch: true - }, - { - title: '短信渠道', - field: 'channelId', - // dictType: DICT_TYPE.SYSTEM_SMS_CHANNEL_CODE, - // dictClass: 'number', - isSearch: true, - // table: { - // component: 'Select', - componentProps: { - options: authorizedGrantOptions - // multiple: false, - // filterable: true - } - // } - }, - { - title: '发送状态', - field: 'sendStatus', - dictType: DICT_TYPE.SYSTEM_SMS_SEND_STATUS, - dictClass: 'number', - isSearch: true - }, - { - title: '发送时间', - field: 'sendTime', - formatter: 'formatDate', - search: { - show: true, - itemRender: { - name: 'XDataTimePicker' - } - } - }, - { - title: '短信类型', - field: 'templateType', - dictType: DICT_TYPE.SYSTEM_SMS_TEMPLATE_TYPE, - dictClass: 'number', - isSearch: true - }, - { - title: '接收状态', - field: 'receiveStatus', - dictType: DICT_TYPE.SYSTEM_SMS_RECEIVE_STATUS, - dictClass: 'number', - isSearch: true - }, - { - title: '接收时间', - field: 'receiveTime', - formatter: 'formatDate', - search: { - show: true, - itemRender: { - name: 'XDataTimePicker' - } - } - }, - { - title: t('common.createTime'), - field: 'createTime', - formatter: 'formatDate' - } - ] -}) -export const { allSchemas } = useVxeCrudSchemas(crudSchemas) From 9e2c3476c8829e1eb5488ad93726bed2048a4151 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Wed, 22 Mar 2023 17:52:06 +0800 Subject: [PATCH 19/74] =?UTF-8?q?add:=20=E7=9F=AD=E4=BF=A1=E6=97=A5?= =?UTF-8?q?=E5=BF=97vue2=E8=BF=81=E7=A7=BB=E5=88=B0vue3=EF=BC=8C=E4=BD=BF?= =?UTF-8?q?=E7=94=A8ts=E6=94=B9=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system/sms/smsLog/index.ts | 35 +- src/views/system/sms/smsLog/index.vue | 442 +++++++++++++++++++++++--- 2 files changed, 411 insertions(+), 66 deletions(-) diff --git a/src/api/system/sms/smsLog/index.ts b/src/api/system/sms/smsLog/index.ts index 863eabb6..269b609d 100644 --- a/src/api/system/sms/smsLog/index.ts +++ b/src/api/system/sms/smsLog/index.ts @@ -1,39 +1,40 @@ import request from '@/config/axios' export interface SmsLogVO { - id: number - channelId: number + id: number | null + channelId: number | null channelCode: string - templateId: number + templateId: number | null templateCode: string - templateType: number + templateType: number | null templateContent: string - templateParams: Map + templateParams: Map | null + apiTemplateId: string mobile: string - userId: number - userType: number - sendStatus: number - sendTime: Date - sendCode: number + userId: number | null + userType: number | null + sendStatus: number | null + sendTime: Date | null + sendCode: number | null sendMsg: string apiSendCode: string apiSendMsg: string apiRequestId: string apiSerialNo: string - receiveStatus: number - receiveTime: Date + receiveStatus: number | null + receiveTime: Date | null apiReceiveCode: string apiReceiveMsg: string - createTime: Date + createTime: Date | null } export interface SmsLogPageReqVO extends PageParam { - channelId?: number - templateId?: number + channelId?: number | null + templateId?: number | null mobile?: string - sendStatus?: number + sendStatus?: number | null sendTime?: Date[] - receiveStatus?: number + receiveStatus?: number | null receiveTime?: Date[] } export interface SmsLogExportReqVO { diff --git a/src/views/system/sms/smsLog/index.vue b/src/views/system/sms/smsLog/index.vue index 334da2ad..78bfd937 100644 --- a/src/views/system/sms/smsLog/index.vue +++ b/src/views/system/sms/smsLog/index.vue @@ -1,57 +1,401 @@ - From 36729f52828619082c1c21481491b30a47351177 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Wed, 22 Mar 2023 17:53:55 +0800 Subject: [PATCH 20/74] =?UTF-8?q?add:=20=E7=9F=AD=E4=BF=A1=E6=97=A5?= =?UTF-8?q?=E5=BF=97vue2=E8=BF=81=E7=A7=BB=E5=88=B0vue3=EF=BC=8C=E4=BD=BF?= =?UTF-8?q?=E7=94=A8ts=E6=94=B9=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/system/sms/smsLog/index.vue | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/views/system/sms/smsLog/index.vue b/src/views/system/sms/smsLog/index.vue index 78bfd937..2e690134 100644 --- a/src/views/system/sms/smsLog/index.vue +++ b/src/views/system/sms/smsLog/index.vue @@ -50,12 +50,11 @@ @@ -72,12 +71,11 @@ From ef3fbc5a04a0e9fb0ce0147a8c8c7f3a838225f6 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Wed, 22 Mar 2023 18:13:28 +0800 Subject: [PATCH 21/74] =?UTF-8?q?update:=20=E4=BF=AE=E5=A4=8D=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E8=AF=A6=E6=83=85=E6=8A=A5=E9=94=99=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=8C=E8=A7=A3=E5=86=B3=E8=A1=A8=E5=8D=95ref?= =?UTF-8?q?=E5=91=BD=E5=90=8D=E5=92=8C=E8=A1=A8=E5=8D=95=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=8F=98=E9=87=8F=E5=91=BD=E5=90=8D=E5=86=B2=E7=AA=81=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/system/sms/smsLog/index.vue | 53 +++++++++++++++------------ 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/src/views/system/sms/smsLog/index.vue b/src/views/system/sms/smsLog/index.vue index 2e690134..f3d17666 100644 --- a/src/views/system/sms/smsLog/index.vue +++ b/src/views/system/sms/smsLog/index.vue @@ -175,78 +175,83 @@ /> - + - {{ form.id }} + {{ formData.id }} - {{ formatChannelSignature(form.channelId) }} - + {{ formatChannelSignature(formData.channelId) }} + - {{ form.templateId }} | {{ form.templateCode }} - + {{ formData.templateId }} | {{ formData.templateCode }} + - {{ form.apiTemplateId }} + {{ formData.apiTemplateId }} {{ form.mobile }} - - ({{ form.userId }}) + >{{ formData.mobile }} + + ({{ + formData.userId + }}) - {{ form.templateContent }} + {{ formData.templateContent }} - {{ form.templateParams }} + {{ formData.templateParams }} - {{ parseTime(form.createTime) }} + {{ parseTime(formData.createTime) }} - + - {{ parseTime(form.sendTime) }} + {{ parseTime(formData.sendTime) }} {{ form.sendCode }} | {{ form.sendMsg }} + >{{ formData.sendCode }} | {{ formData.sendMsg }} {{ form.apiSendCode }} | {{ form.apiSendMsg }}{{ formData.apiSendCode }} | {{ formData.apiSendMsg }} - {{ form.apiSerialNo }} + {{ formData.apiSerialNo }} - {{ form.apiRequestId }} + {{ formData.apiRequestId }} - + - {{ parseTime(form.receiveTime) }} + {{ parseTime(formData.receiveTime) }} {{ form.apiReceiveCode }} | {{ form.apiReceiveMsg }} + >{{ formData.apiReceiveCode }} | {{ formData.apiReceiveMsg }} @@ -363,7 +368,7 @@ const getList = () => { } // ================== 详情 ==================== const open = ref(false) -const form = ref({ +const formData = ref({ id: null, channelId: null, channelCode: '', @@ -392,8 +397,8 @@ const form = ref({ }) /** 详细按钮操作 */ const handleView = (row: SmsLogApi.SmsLogVO) => { + formData.value = row open.value = true - form.value = row } getList() From 67de9fc5676f6a980ab5f9eaccfb5ebfde98ceaf Mon Sep 17 00:00:00 2001 From: YunaiV Date: Wed, 22 Mar 2023 21:50:44 +0800 Subject: [PATCH 22/74] =?UTF-8?q?Vue3=20=E9=87=8D=E6=9E=84=EF=BC=9A?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=B5=81=E5=88=86=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/bpm/userGroup/index.ts | 12 +- src/api/system/user/index.ts | 2 +- src/types/auto-components.d.ts | 1 + src/views/bpm/group/UserGroupForm.vue | 132 +++++++++ src/views/bpm/group/group.data.ts | 64 ----- src/views/bpm/group/index.vue | 314 +++++++++++---------- src/views/bpm/processInstance/detail.vue | 2 +- src/views/bpm/taskAssignRule/index.vue | 8 +- src/views/system/dept/index.vue | 4 +- src/views/system/notify/template/index.vue | 4 +- 10 files changed, 307 insertions(+), 236 deletions(-) create mode 100644 src/views/bpm/group/UserGroupForm.vue delete mode 100644 src/views/bpm/group/group.data.ts diff --git a/src/api/bpm/userGroup/index.ts b/src/api/bpm/userGroup/index.ts index 88ee9619..c3399f27 100644 --- a/src/api/bpm/userGroup/index.ts +++ b/src/api/bpm/userGroup/index.ts @@ -11,7 +11,7 @@ export type UserGroupVO = { } // 创建用户组 -export const createUserGroupApi = async (data: UserGroupVO) => { +export const createUserGroup = async (data: UserGroupVO) => { return await request.post({ url: '/bpm/user-group/create', data: data @@ -19,7 +19,7 @@ export const createUserGroupApi = async (data: UserGroupVO) => { } // 更新用户组 -export const updateUserGroupApi = async (data: UserGroupVO) => { +export const updateUserGroup = async (data: UserGroupVO) => { return await request.put({ url: '/bpm/user-group/update', data: data @@ -27,21 +27,21 @@ export const updateUserGroupApi = async (data: UserGroupVO) => { } // 删除用户组 -export const deleteUserGroupApi = async (id: number) => { +export const deleteUserGroup = async (id: number) => { return await request.delete({ url: '/bpm/user-group/delete?id=' + id }) } // 获得用户组 -export const getUserGroupApi = async (id: number) => { +export const getUserGroup = async (id: number) => { return await request.get({ url: '/bpm/user-group/get?id=' + id }) } // 获得用户组分页 -export const getUserGroupPageApi = async (params) => { +export const getUserGroupPage = async (params) => { return await request.get({ url: '/bpm/user-group/page', params }) } // 获取用户组精简信息列表 -export const listSimpleUserGroupsApi = async () => { +export const listSimpleUserGroup = async () => { return await request.get({ url: '/bpm/user-group/list-all-simple' }) } diff --git a/src/api/system/user/index.ts b/src/api/system/user/index.ts index e505921d..3cc0a84d 100644 --- a/src/api/system/user/index.ts +++ b/src/api/system/user/index.ts @@ -86,6 +86,6 @@ export const updateUserStatusApi = (id: number, status: number) => { } // 获取用户精简信息列表 -export const getListSimpleUsersApi = () => { +export const getSimpleUserList = () => { return request.get({ url: '/system/user/list-all-simple' }) } diff --git a/src/types/auto-components.d.ts b/src/types/auto-components.d.ts index be71517c..6284d4dc 100644 --- a/src/types/auto-components.d.ts +++ b/src/types/auto-components.d.ts @@ -30,6 +30,7 @@ declare module '@vue/runtime-core' { ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup'] ElCard: typeof import('element-plus/es')['ElCard'] ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] + ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup'] ElCol: typeof import('element-plus/es')['ElCol'] ElCollapse: typeof import('element-plus/es')['ElCollapse'] ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem'] diff --git a/src/views/bpm/group/UserGroupForm.vue b/src/views/bpm/group/UserGroupForm.vue new file mode 100644 index 00000000..05d646d2 --- /dev/null +++ b/src/views/bpm/group/UserGroupForm.vue @@ -0,0 +1,132 @@ + + diff --git a/src/views/bpm/group/group.data.ts b/src/views/bpm/group/group.data.ts deleted file mode 100644 index 613a7290..00000000 --- a/src/views/bpm/group/group.data.ts +++ /dev/null @@ -1,64 +0,0 @@ -import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' - -const { t } = useI18n() // 国际化 - -// 表单校验 -export const rules = reactive({ - name: [required], - description: [required], - memberUserIds: [required], - status: [required] -}) - -// CrudSchema -const crudSchemas = reactive({ - primaryKey: 'id', - primaryType: 'id', - primaryTitle: '编号', - action: true, - searchSpan: 8, - columns: [ - { - title: '组名', - field: 'name', - isSearch: true - }, - { - title: '成员', - field: 'memberUserIds', - table: { - slots: { - default: 'memberUserIds_default' - } - } - }, - { - title: '描述', - field: 'description' - }, - { - title: t('common.status'), - field: 'status', - dictType: DICT_TYPE.COMMON_STATUS, - dictClass: 'number', - isSearch: true - }, - { - title: t('common.createTime'), - field: 'createTime', - formatter: 'formatDate', - isForm: false, - isSearch: true, - search: { - show: true, - itemRender: { - name: 'XDataTimePicker' - } - }, - table: { - width: 180 - } - } - ] -}) -export const { allSchemas } = useVxeCrudSchemas(crudSchemas) diff --git a/src/views/bpm/group/index.vue b/src/views/bpm/group/index.vue index b0f08516..5829ebad 100644 --- a/src/views/bpm/group/index.vue +++ b/src/views/bpm/group/index.vue @@ -1,182 +1,184 @@ - diff --git a/src/views/bpm/processInstance/detail.vue b/src/views/bpm/processInstance/detail.vue index b6d52a4c..7d159673 100644 --- a/src/views/bpm/processInstance/detail.vue +++ b/src/views/bpm/processInstance/detail.vue @@ -378,7 +378,7 @@ onMounted(() => { // 加载详情 getDetail() // 加载用户的列表 - UserApi.getListSimpleUsersApi().then((data) => { + UserApi.getSimpleUserList().then((data) => { userOptions.value.push(...data) }) }) diff --git a/src/views/bpm/taskAssignRule/index.vue b/src/views/bpm/taskAssignRule/index.vue index 012e6f68..6e1432b6 100644 --- a/src/views/bpm/taskAssignRule/index.vue +++ b/src/views/bpm/taskAssignRule/index.vue @@ -140,8 +140,8 @@ import { FormInstance } from 'element-plus' import * as TaskAssignRuleApi from '@/api/bpm/taskAssignRule' import { listSimpleRolesApi } from '@/api/system/role' import { listSimplePostsApi } from '@/api/system/post' -import { getListSimpleUsersApi } from '@/api/system/user' -import { listSimpleUserGroupsApi } from '@/api/bpm/userGroup' +import { getSimpleUserList } from '@/api/system/user' +import { listSimpleUserGroup } from '@/api/bpm/userGroup' import { listSimpleDeptApi } from '@/api/system/dept' import { DICT_TYPE, getDictOptions } from '@/utils/dict' import { handleTree, defaultProps } from '@/utils/tree' @@ -341,12 +341,12 @@ onMounted(() => { }) // 获得用户列表 userOptions.value = [] - getListSimpleUsersApi().then((data) => { + getSimpleUserList().then((data) => { userOptions.value.push(...data) }) // 获得用户组列表 userGroupOptions.value = [] - listSimpleUserGroupsApi().then((data) => { + listSimpleUserGroup().then((data) => { userGroupOptions.value.push(...data) }) if (!isShow) { diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue index 3b182e2a..4e70070f 100644 --- a/src/views/system/dept/index.vue +++ b/src/views/system/dept/index.vue @@ -79,7 +79,7 @@ import { handleTree, defaultProps } from '@/utils/tree' import type { FormExpose } from '@/components/Form' import { allSchemas, rules } from './dept.data' import * as DeptApi from '@/api/system/dept' -import { getListSimpleUsersApi, UserVO } from '@/api/system/user' +import { getSimpleUserList, UserVO } from '@/api/system/user' const { t } = useI18n() // 国际化 const message = useMessage() // 消息弹窗 @@ -102,7 +102,7 @@ const deptOptions = ref() // 树形结构 const userOption = ref([]) const getUserList = async () => { - const res = await getListSimpleUsersApi() + const res = await getSimpleUserList() userOption.value = res } // 获取下拉框[上级]的数据 diff --git a/src/views/system/notify/template/index.vue b/src/views/system/notify/template/index.vue index 4ec16a0a..c4113924 100644 --- a/src/views/system/notify/template/index.vue +++ b/src/views/system/notify/template/index.vue @@ -119,7 +119,7 @@ import { FormExpose } from '@/components/Form' // 业务相关的 import import { rules, allSchemas } from './template.data' import * as NotifyTemplateApi from '@/api/system/notify/template' -import { getListSimpleUsersApi, UserVO } from '@/api/system/user' +import { getSimpleUserList, UserVO } from '@/api/system/user' const { t } = useI18n() // 国际化 const message = useMessage() // 消息弹窗 @@ -244,7 +244,7 @@ const sendTest = async () => { // ========== 初始化 ========== onMounted(() => { - getListSimpleUsersApi().then((data) => { + getSimpleUserList().then((data) => { userOption.value = data }) }) From c424ee76e4e5145292cb86619899e65fe27ab1ba Mon Sep 17 00:00:00 2001 From: YunaiV Date: Wed, 22 Mar 2023 22:11:03 +0800 Subject: [PATCH 23/74] =?UTF-8?q?Vue3=20=E9=87=8D=E6=9E=84=EF=BC=9AREVIEW?= =?UTF-8?q?=20=E5=B2=97=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system/post/index.ts | 26 ++----- src/views/bpm/taskAssignRule/index.vue | 4 +- .../system/post/{form.vue => PostForm.vue} | 18 +++-- src/views/system/post/index.vue | 78 ++++++++++--------- src/views/system/user/index.vue | 4 +- 5 files changed, 63 insertions(+), 67 deletions(-) rename src/views/system/post/{form.vue => PostForm.vue} (91%) diff --git a/src/api/system/post/index.ts b/src/api/system/post/index.ts index 9e2540f0..98df227f 100644 --- a/src/api/system/post/index.ts +++ b/src/api/system/post/index.ts @@ -10,49 +10,37 @@ export interface PostVO { createTime?: Date } -export interface PostPageReqVO extends PageParam { - code?: string - name?: string - status?: number -} - -export interface PostExportReqVO { - code?: string - name?: string - status?: number -} - // 查询岗位列表 -export const getPostPageApi = async (params: PostPageReqVO) => { +export const getPostPage = async (params: PageParam) => { return await request.get({ url: '/system/post/page', params }) } // 获取岗位精简信息列表 -export const listSimplePostsApi = async () => { +export const getSimplePostList = async () => { return await request.get({ url: '/system/post/list-all-simple' }) } // 查询岗位详情 -export const getPostApi = async (id: number) => { +export const getPost = async (id: number) => { return await request.get({ url: '/system/post/get?id=' + id }) } // 新增岗位 -export const createPostApi = async (data: PostVO) => { +export const createPost = async (data: PostVO) => { return await request.post({ url: '/system/post/create', data }) } // 修改岗位 -export const updatePostApi = async (data: PostVO) => { +export const updatePost = async (data: PostVO) => { return await request.put({ url: '/system/post/update', data }) } // 删除岗位 -export const deletePostApi = async (id: number) => { +export const deletePost = async (id: number) => { return await request.delete({ url: '/system/post/delete?id=' + id }) } // 导出岗位 -export const exportPostApi = async (params: PostExportReqVO) => { +export const exportPost = async (params) => { return await request.download({ url: '/system/post/export', params }) } diff --git a/src/views/bpm/taskAssignRule/index.vue b/src/views/bpm/taskAssignRule/index.vue index 6e1432b6..8db7b578 100644 --- a/src/views/bpm/taskAssignRule/index.vue +++ b/src/views/bpm/taskAssignRule/index.vue @@ -139,7 +139,7 @@ import { FormInstance } from 'element-plus' // 业务相关的 import import * as TaskAssignRuleApi from '@/api/bpm/taskAssignRule' import { listSimpleRolesApi } from '@/api/system/role' -import { listSimplePostsApi } from '@/api/system/post' +import { getSimplePostList } from '@/api/system/post' import { getSimpleUserList } from '@/api/system/user' import { listSimpleUserGroup } from '@/api/bpm/userGroup' import { listSimpleDeptApi } from '@/api/system/dept' @@ -336,7 +336,7 @@ onMounted(() => { }) // 获得岗位列表 postOptions.value = [] - listSimplePostsApi().then((data) => { + getSimplePostList().then((data) => { postOptions.value.push(...data) }) // 获得用户列表 diff --git a/src/views/system/post/form.vue b/src/views/system/post/PostForm.vue similarity index 91% rename from src/views/system/post/form.vue rename to src/views/system/post/PostForm.vue index d5d65dd1..14aa9651 100644 --- a/src/views/system/post/form.vue +++ b/src/views/system/post/PostForm.vue @@ -37,6 +37,7 @@ diff --git a/src/views/infra/apiErrorLog/index.vue b/src/views/infra/apiErrorLog/index.vue index 664546cb..1108651a 100644 --- a/src/views/infra/apiErrorLog/index.vue +++ b/src/views/infra/apiErrorLog/index.vue @@ -1,5 +1,5 @@ - - - - - - - + + + + + - + - - + - + From fa32194772b8135a138b9c4dce2669e886277a10 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 25 Mar 2023 00:41:06 +0800 Subject: [PATCH 52/74] =?UTF-8?q?Vue3=20=E9=87=8D=E6=9E=84=EF=BC=9AREVIEW?= =?UTF-8?q?=20=E7=9F=AD=E4=BF=A1=E6=B8=A0=E9=81=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system/sms/smsChannel/index.ts | 23 +---- .../channel/{form.vue => SmsChannelForm.vue} | 64 +++++++------ src/views/system/sms/channel/index.vue | 93 +++++++------------ 3 files changed, 71 insertions(+), 109 deletions(-) rename src/views/system/sms/channel/{form.vue => SmsChannelForm.vue} (64%) diff --git a/src/api/system/sms/smsChannel/index.ts b/src/api/system/sms/smsChannel/index.ts index ee0e6167..f335628f 100644 --- a/src/api/system/sms/smsChannel/index.ts +++ b/src/api/system/sms/smsChannel/index.ts @@ -12,21 +12,8 @@ export interface SmsChannelVO { createTime: Date } -export interface SmsChannelListVO { - id: number - code: string - signature: string -} - -export interface SmsChannelPageReqVO extends PageParam { - signature?: string - code?: string - status?: number - createTime?: Date[] -} - // 查询短信渠道列表 -export const getSmsChannelPageApi = (params: SmsChannelPageReqVO) => { +export const getSmsChannelPage = (params: PageParam) => { return request.get({ url: '/system/sms-channel/page', params }) } @@ -36,21 +23,21 @@ export function getSimpleSmsChannelList() { } // 查询短信渠道详情 -export const getSmsChannelApi = (id: number) => { +export const getSmsChannel = (id: number) => { return request.get({ url: '/system/sms-channel/get?id=' + id }) } // 新增短信渠道 -export const createSmsChannelApi = (data: SmsChannelVO) => { +export const createSmsChannel = (data: SmsChannelVO) => { return request.post({ url: '/system/sms-channel/create', data }) } // 修改短信渠道 -export const updateSmsChannelApi = (data: SmsChannelVO) => { +export const updateSmsChannel = (data: SmsChannelVO) => { return request.put({ url: '/system/sms-channel/update', data }) } // 删除短信渠道 -export const deleteSmsChannelApi = (id: number) => { +export const deleteSmsChannel = (id: number) => { return request.delete({ url: '/system/sms-channel/delete?id=' + id }) } diff --git a/src/views/system/sms/channel/form.vue b/src/views/system/sms/channel/SmsChannelForm.vue similarity index 64% rename from src/views/system/sms/channel/form.vue rename to src/views/system/sms/channel/SmsChannelForm.vue index 9c3881d8..3145af91 100644 --- a/src/views/system/sms/channel/form.vue +++ b/src/views/system/sms/channel/SmsChannelForm.vue @@ -1,13 +1,19 @@ diff --git a/src/views/system/dept/form.vue b/src/views/system/dept/form.vue deleted file mode 100644 index c5c600fb..00000000 --- a/src/views/system/dept/form.vue +++ /dev/null @@ -1,187 +0,0 @@ - - - diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue index 977840e2..ead319ce 100644 --- a/src/views/system/dept/index.vue +++ b/src/views/system/dept/index.vue @@ -9,50 +9,61 @@ label-width="68px" > - + - + 搜索 重置 - - - - 新增 - - - 展开/折叠 - - - + 新增 + + + 展开/折叠 + + + + + + + - + + + diff --git a/src/views/system/errorCode/index.vue b/src/views/system/errorCode/index.vue index fc152903..c95d652c 100644 --- a/src/views/system/errorCode/index.vue +++ b/src/views/system/errorCode/index.vue @@ -99,7 +99,7 @@ width="180" :formatter="dateFormatter" /> - + From 8535409d021b34b618ee31c7eecff2926e1430bd Mon Sep 17 00:00:00 2001 From: Theo Date: Sat, 25 Mar 2023 16:47:20 +0800 Subject: [PATCH 58/74] =?UTF-8?q?=E5=AE=8C=E6=88=90=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/system/menu/form.vue | 297 ++++++++++++++++++ src/views/system/menu/index.vue | 473 +++++++++-------------------- src/views/system/menu/menu.data.ts | 76 ----- 3 files changed, 442 insertions(+), 404 deletions(-) create mode 100644 src/views/system/menu/form.vue delete mode 100644 src/views/system/menu/menu.data.ts diff --git a/src/views/system/menu/form.vue b/src/views/system/menu/form.vue new file mode 100644 index 00000000..cf1583ec --- /dev/null +++ b/src/views/system/menu/form.vue @@ -0,0 +1,297 @@ + + diff --git a/src/views/system/menu/index.vue b/src/views/system/menu/index.vue index 0604aa93..41d1bd67 100644 --- a/src/views/system/menu/index.vue +++ b/src/views/system/menu/index.vue @@ -1,351 +1,168 @@ diff --git a/src/views/system/menu/menu.data.ts b/src/views/system/menu/menu.data.ts deleted file mode 100644 index 753c1211..00000000 --- a/src/views/system/menu/menu.data.ts +++ /dev/null @@ -1,76 +0,0 @@ -import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' -const { t } = useI18n() // 国际化 - -// 新增和修改的表单校验 -export const rules = reactive({ - name: [required], - sort: [required], - path: [required], - status: [required] -}) - -// CrudSchema -const crudSchemas = reactive({ - primaryKey: 'id', - primaryType: null, - action: true, - columns: [ - { - title: '上级菜单', - field: 'parentId', - isTable: false - }, - { - title: '菜单名称', - field: 'name', - isSearch: true, - table: { - treeNode: true, - align: 'left', - width: '200px', - slots: { - default: 'name_default' - } - } - }, - { - title: '菜单类型', - field: 'type', - dictType: DICT_TYPE.SYSTEM_MENU_TYPE - }, - { - title: '路由地址', - field: 'path' - }, - { - title: '组件路径', - field: 'component' - }, - { - title: '组件名字', - field: 'componentName' - }, - { - title: '权限标识', - field: 'permission' - }, - { - title: '排序', - field: 'sort' - }, - { - title: t('common.status'), - field: 'status', - dictType: DICT_TYPE.COMMON_STATUS, - dictClass: 'number', - isSearch: true - }, - { - title: t('common.createTime'), - field: 'createTime', - formatter: 'formatDate', - isTable: false - } - ] -}) -export const { allSchemas } = useVxeCrudSchemas(crudSchemas) From 9e798fb7f866084d4e05978075ce1963eeb46de4 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 25 Mar 2023 18:51:09 +0800 Subject: [PATCH 59/74] =?UTF-8?q?Vue3=20=E9=87=8D=E6=9E=84=EF=BC=9A?= =?UTF-8?q?=E5=8E=BB=E9=99=A4=20modelEditor.vue=20=E5=86=97=E4=BD=99?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/bpm/model/index.ts | 2 +- src/views/bpm/model/index.vue | 4 +- src/views/bpm/model/modelEditor.vue | 200 ++++++++-------------------- 3 files changed, 60 insertions(+), 146 deletions(-) diff --git a/src/api/bpm/model/index.ts b/src/api/bpm/model/index.ts index 0335a3db..feedd20b 100644 --- a/src/api/bpm/model/index.ts +++ b/src/api/bpm/model/index.ts @@ -29,7 +29,7 @@ export const getModelPageApi = async (params) => { return await request.get({ url: '/bpm/model/page', params }) } -export const getModelApi = async (id: number) => { +export const getModel = async (id: number) => { return await request.get({ url: '/bpm/model/get?id=' + id }) } diff --git a/src/views/bpm/model/index.vue b/src/views/bpm/model/index.vue index e88ee89e..9a4df2e8 100644 --- a/src/views/bpm/model/index.vue +++ b/src/views/bpm/model/index.vue @@ -389,7 +389,7 @@ const handleFormDetail = async (row) => { const handleBpmnDetail = (row) => { // TODO 芋艿:流程组件开发中 console.log(row) - ModelApi.getModelApi(row).then((response) => { + ModelApi.getModel(row).then((response) => { console.log(response, 'response') bpmnXML.value = response.bpmnXml // 弹窗打开 @@ -432,7 +432,7 @@ const handleUpdate = async (rowId: number) => { resetForm() await setDialogTile('edit') // 设置数据 - saveForm.value = await ModelApi.getModelApi(rowId) + saveForm.value = await ModelApi.getModel(rowId) if (saveForm.value.category == null) { saveForm.value.category = 1 } else { diff --git a/src/views/bpm/model/modelEditor.vue b/src/views/bpm/model/modelEditor.vue index 43836976..f4206f03 100644 --- a/src/views/bpm/model/modelEditor.vue +++ b/src/views/bpm/model/modelEditor.vue @@ -1,53 +1,40 @@ - From 1854b85b40e55841e9611222d3cb449305435781 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 26 Mar 2023 00:16:28 +0800 Subject: [PATCH 61/74] =?UTF-8?q?Vue3=20=E9=87=8D=E6=9E=84=EF=BC=9A?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E6=A8=A1=E5=9E=8B=E7=9A=84=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=92=8C=E6=96=B0=E5=A2=9E=E3=80=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/bpm/model/index.ts | 6 +- src/components/DictTag/src/DictTag.vue | 2 +- src/views/bpm/model/ModelForm.vue | 219 +++++++ src/views/bpm/model/editor/index.vue | 4 +- src/views/bpm/model/index.vue | 790 +++++++------------------ src/views/bpm/model/model.data.ts | 106 ---- 6 files changed, 447 insertions(+), 680 deletions(-) create mode 100644 src/views/bpm/model/ModelForm.vue delete mode 100644 src/views/bpm/model/model.data.ts diff --git a/src/api/bpm/model/index.ts b/src/api/bpm/model/index.ts index feedd20b..68a8d0e8 100644 --- a/src/api/bpm/model/index.ts +++ b/src/api/bpm/model/index.ts @@ -25,7 +25,7 @@ export type ModelVO = { bpmnXml: string } -export const getModelPageApi = async (params) => { +export const getModelPage = async (params) => { return await request.get({ url: '/bpm/model/page', params }) } @@ -33,7 +33,7 @@ export const getModel = async (id: number) => { return await request.get({ url: '/bpm/model/get?id=' + id }) } -export const updateModelApi = async (data: ModelVO) => { +export const updateModel = async (data: ModelVO) => { return await request.put({ url: '/bpm/model/update', data: data }) } @@ -46,7 +46,7 @@ export const updateModelStateApi = async (id: number, state: number) => { return await request.put({ url: '/bpm/model/update-state', data: data }) } -export const createModelApi = async (data: ModelVO) => { +export const createModel = async (data: ModelVO) => { return await request.post({ url: '/bpm/model/create', data: data }) } diff --git a/src/components/DictTag/src/DictTag.vue b/src/components/DictTag/src/DictTag.vue index ecbfedb4..e3ba78d2 100644 --- a/src/components/DictTag/src/DictTag.vue +++ b/src/components/DictTag/src/DictTag.vue @@ -34,7 +34,7 @@ export default defineComponent({ return null } // 解决自定义字典标签值为零时标签不渲染的问题 - if (props.value === undefined) { + if (props.value === undefined || props.value === null) { return null } getDictObj(props.type, props.value.toString()) diff --git a/src/views/bpm/model/ModelForm.vue b/src/views/bpm/model/ModelForm.vue new file mode 100644 index 00000000..192c5b2f --- /dev/null +++ b/src/views/bpm/model/ModelForm.vue @@ -0,0 +1,219 @@ + + diff --git a/src/views/bpm/model/editor/index.vue b/src/views/bpm/model/editor/index.vue index a59844dc..7e3d8413 100644 --- a/src/views/bpm/model/editor/index.vue +++ b/src/views/bpm/model/editor/index.vue @@ -62,10 +62,10 @@ const save = async (bpmnXml) => { } as unknown as ModelApi.ModelVO // 提交 if (data.id) { - await ModelApi.updateModelApi(data) + await ModelApi.updateModel(data) message.success('修改成功') } else { - await ModelApi.createModelApi(data) + await ModelApi.createModel(data) message.success('新增成功') } // 跳转回去 diff --git a/src/views/bpm/model/index.vue b/src/views/bpm/model/index.vue index 9a4df2e8..01e38a92 100644 --- a/src/views/bpm/model/index.vue +++ b/src/views/bpm/model/index.vue @@ -1,595 +1,249 @@ - diff --git a/src/views/bpm/model/model.data.ts b/src/views/bpm/model/model.data.ts deleted file mode 100644 index 89e886cc..00000000 --- a/src/views/bpm/model/model.data.ts +++ /dev/null @@ -1,106 +0,0 @@ -import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' - -const { t } = useI18n() // 国际化 - -// 表单校验 -export const rules = reactive({ - key: [required], - name: [required], - category: [required], - formType: [required], - formId: [required], - formCustomCreatePath: [required], - formCustomViewPath: [required] -}) - -// CrudSchema -const crudSchemas = reactive({ - primaryKey: 'key', - primaryType: null, - action: true, - actionWidth: '540px', - columns: [ - { - title: '流程标识', - field: 'key', - isSearch: true, - table: { - width: 120 - } - }, - { - title: '流程名称', - field: 'name', - isSearch: true, - table: { - width: 120, - slots: { - default: 'name_default' - } - } - }, - { - title: '流程分类', - field: 'category', - dictType: DICT_TYPE.BPM_MODEL_CATEGORY, - dictClass: 'number', - isSearch: true, - table: { - slots: { - default: 'category_default' - } - } - }, - { - title: '表单信息', - field: 'formId', - table: { - width: 180, - slots: { - default: 'formId_default' - } - } - }, - { - title: '最新部署的流程定义', - field: 'processDefinition', - isForm: false, - table: { - children: [ - { - title: '流程版本', - field: 'version', - slots: { - default: 'version_default' - }, - width: 80 - }, - { - title: '激活状态', - field: 'status', - slots: { - default: 'status_default' - }, - width: 80 - }, - { - title: '部署时间', - field: 'processDefinition.deploymentTime', - formatter: 'formatDate', - width: 180 - } - ] - } - }, - { - title: t('common.createTime'), - field: 'createTime', - isForm: false, - formatter: 'formatDate', - table: { - width: 180 - } - } - ] -}) -export const { allSchemas } = useVxeCrudSchemas(crudSchemas) From e83d5914f03392d03e52917e01befb8aaf4a1df9 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 26 Mar 2023 00:46:32 +0800 Subject: [PATCH 62/74] =?UTF-8?q?Vue3=20=E9=87=8D=E6=9E=84=EF=BC=9A?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E6=A8=A1=E5=9E=8B=E7=9A=84=E5=90=84=E7=A7=8D?= =?UTF-8?q?=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/bpm/model/index.ts | 6 +- src/views/bpm/model/ModelForm.vue | 12 +- src/views/bpm/model/ModelImportForm.vue | 153 ++++++++++++++++++++ src/views/bpm/model/index.vue | 178 +++++++++++++++++++++--- 4 files changed, 322 insertions(+), 27 deletions(-) create mode 100644 src/views/bpm/model/ModelImportForm.vue diff --git a/src/api/bpm/model/index.ts b/src/api/bpm/model/index.ts index 68a8d0e8..2e1d4e64 100644 --- a/src/api/bpm/model/index.ts +++ b/src/api/bpm/model/index.ts @@ -38,7 +38,7 @@ export const updateModel = async (data: ModelVO) => { } // 任务状态修改 -export const updateModelStateApi = async (id: number, state: number) => { +export const updateModelState = async (id: number, state: number) => { const data = { id: id, state: state @@ -50,10 +50,10 @@ export const createModel = async (data: ModelVO) => { return await request.post({ url: '/bpm/model/create', data: data }) } -export const deleteModelApi = async (id: number) => { +export const deleteModel = async (id: number) => { return await request.delete({ url: '/bpm/model/delete?id=' + id }) } -export const deployModelApi = async (id: number) => { +export const deployModel = async (id: number) => { return await request.post({ url: '/bpm/model/deploy?id=' + id }) } diff --git a/src/views/bpm/model/ModelForm.vue b/src/views/bpm/model/ModelForm.vue index 192c5b2f..ac536958 100644 --- a/src/views/bpm/model/ModelForm.vue +++ b/src/views/bpm/model/ModelForm.vue @@ -67,7 +67,12 @@ - + { @@ -161,6 +167,8 @@ const open = async (type: string, id?: number) => { formLoading.value = false } } + // 获得流程表单的下拉框的数据 + formList.value = await FormApi.getSimpleFormList() } defineExpose({ open }) // 提供 open 方法,用于打开弹窗 diff --git a/src/views/bpm/model/ModelImportForm.vue b/src/views/bpm/model/ModelImportForm.vue new file mode 100644 index 00000000..6b53d322 --- /dev/null +++ b/src/views/bpm/model/ModelImportForm.vue @@ -0,0 +1,153 @@ + + + diff --git a/src/views/bpm/model/index.vue b/src/views/bpm/model/index.vue index 01e38a92..471a00fe 100644 --- a/src/views/bpm/model/index.vue +++ b/src/views/bpm/model/index.vue @@ -144,15 +144,43 @@ > 修改流程 - - - 详情 + + 设计流程 + + + 分配规则 + + + 发布流程 + + + 流程定义 删除 @@ -171,9 +199,20 @@ - - - + + + + + + + + @@ -181,11 +220,12 @@ import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' import { dateFormatter, formatDate } from '@/utils/formatTime' import * as ModelApi from '@/api/bpm/model' +import * as FormApi from '@/api/bpm/form' import ModelForm from './ModelForm.vue' -// import { setConfAndFields2 } from '@/utils/formCreate' -// const message = useMessage() // 消息弹窗 -// const { t } = useI18n() // 国际化 -// const { push } = useRouter() // 路由 +import { setConfAndFields2 } from '@/utils/formCreate' +const message = useMessage() // 消息弹窗 +const { t } = useI18n() // 国际化 +const { push } = useRouter() // 路由 const loading = ref(true) // 列表的加载中 const total = ref(0) // 列表的总页数 @@ -230,17 +270,111 @@ const openForm = (type: string, id?: number) => { } /** 删除按钮操作 */ -// const handleDelete = async (id: number) => { -// try { -// // 删除的二次确认 -// await message.delConfirm() -// // 发起删除 -// await FormApi.deleteForm(id) -// message.success(t('common.delSuccess')) -// // 刷新列表 -// await getList() -// } catch {} -// } +const handleDelete = async (id: number) => { + try { + // 删除的二次确认 + await message.delConfirm() + // 发起删除 + await ModelApi.deleteModel(id) + message.success(t('common.delSuccess')) + // 刷新列表 + await getList() + } catch {} +} + +/** 更新状态操作 */ +const handleChangeState = async (row) => { + const state = row.processDefinition.suspensionState + try { + // 修改状态的二次确认 + const id = row.id + const statusState = state === 1 ? '激活' : '挂起' + const content = '是否确认' + statusState + '流程名字为"' + row.name + '"的数据项?' + await message.confirm(content) + // 发起修改状态 + await ModelApi.updateModelState(id, state) + // 刷新列表 + await getList() + } catch { + // 取消后,进行恢复按钮 + row.processDefinition.suspensionState = state === 1 ? 2 : 1 + } +} + +/** 设计流程 */ +const handleDesign = (row) => { + push({ + name: 'modelEditor', + query: { + modelId: row.id + } + }) +} + +/** 发布流程 */ +const handleDeploy = async (row) => { + try { + // 删除的二次确认 + await message.confirm('是否部署该流程!!') + // 发起部署 + await ModelApi.deployModel(row.id) + message.success(t('部署成功')) + // 刷新列表 + await getList() + } catch {} +} + +/** 点击任务分配按钮 */ +const handleAssignRule = (row) => { + push({ + name: 'BpmTaskAssignRuleList', + query: { + modelId: row.id + } + }) +} + +/** 跳转到指定流程定义列表 */ +const handleDefinitionList = (row) => { + push({ + name: 'BpmProcessDefinitionList', + query: { + key: row.key + } + }) +} + +/** 流程表单的详情按钮操作 */ +const formDetailVisible = ref(false) +const formDetailPreview = ref({ + rule: [], + option: {} +}) +const handleFormDetail = async (row) => { + if (row.formType == 10) { + // 设置表单 + const data = await FormApi.getForm(row.formId) + setConfAndFields2(formDetailPreview, data.conf, data.fields) + // 弹窗打开 + formDetailVisible.value = true + } else { + await push({ + path: row.formCustomCreatePath + }) + } +} + +/** 流程图的详情按钮操作 */ +const bpmnDetailVisible = ref(false) +const bpmnXML = ref(null) +const bpmnControlForm = ref({ + prefix: 'flowable' +}) +const handleBpmnDetail = async (row) => { + const data = await ModelApi.getModel(row.id) + bpmnXML.value = data.bpmnXml || '' + bpmnDetailVisible.value = true +} /** 初始化 **/ onMounted(() => { From b587d7634cd6b57b13a6491a44ca626b1978c80d Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 26 Mar 2023 01:36:27 +0800 Subject: [PATCH 63/74] =?UTF-8?q?Vue3=20=E9=87=8D=E6=9E=84=EF=BC=9A?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E6=A8=A1=E5=9E=8B=E7=9A=84=E5=90=84=E7=A7=8D?= =?UTF-8?q?=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/bpm/model/ModelImportForm.vue | 224 +++++++++++------------- src/views/bpm/model/index.vue | 14 +- 2 files changed, 116 insertions(+), 122 deletions(-) diff --git a/src/views/bpm/model/ModelImportForm.vue b/src/views/bpm/model/ModelImportForm.vue index 6b53d322..ac26ac08 100644 --- a/src/views/bpm/model/ModelImportForm.vue +++ b/src/views/bpm/model/ModelImportForm.vue @@ -1,153 +1,137 @@ - diff --git a/src/views/bpm/model/index.vue b/src/views/bpm/model/index.vue index 471a00fe..cd744986 100644 --- a/src/views/bpm/model/index.vue +++ b/src/views/bpm/model/index.vue @@ -52,7 +52,7 @@ > 新建流程 - + 导入流程 @@ -196,9 +196,12 @@ /> - + + + + @@ -222,6 +225,7 @@ import { dateFormatter, formatDate } from '@/utils/formatTime' import * as ModelApi from '@/api/bpm/model' import * as FormApi from '@/api/bpm/form' import ModelForm from './ModelForm.vue' +import ModelImportForm from '@/views/bpm/model/ModelImportForm.vue' import { setConfAndFields2 } from '@/utils/formCreate' const message = useMessage() // 消息弹窗 const { t } = useI18n() // 国际化 @@ -269,6 +273,12 @@ const openForm = (type: string, id?: number) => { formRef.value.open(type, id) } +/** 添加/修改操作 */ +const importFormRef = ref() +const openImportForm = () => { + importFormRef.value.open() +} + /** 删除按钮操作 */ const handleDelete = async (id: number) => { try { From 1134921a0ab6364dec2366999f54d67d729cfc04 Mon Sep 17 00:00:00 2001 From: wuxiran Date: Sun, 26 Mar 2023 04:25:34 +0800 Subject: [PATCH 64/74] =?UTF-8?q?1=E3=80=81=E5=BE=AE=E4=BF=A1=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E6=9B=B4=E6=96=B0vue3=EF=BC=8C=E9=83=A8=E5=88=86?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=8F=AF=E8=83=BD=E8=BF=98=E6=9C=89=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/dict.ts | 23 +- src/utils/formatTime.ts | 57 +- src/views/mp/components/img.png | Bin 0 -> 15404 bytes src/views/mp/components/wx-location/main.vue | 72 ++ src/views/mp/components/wx-msg/card.scss | 101 +++ src/views/mp/components/wx-msg/comment.scss | 88 +++ src/views/mp/components/wx-msg/main.vue | 338 ++++++++++ src/views/mp/components/wx-music/main.vue | 60 ++ src/views/mp/components/wx-news/main.vue | 107 +++ src/views/mp/components/wx-reply/main.vue | 634 ++++++++++++++++++ .../mp/components/wx-video-play/main.vue | 117 ++++ .../mp/components/wx-voice-play/main.vue | 100 +++ src/views/mp/freePublish/index.vue | 394 ++++++++++- src/views/mp/message/index.vue | 261 ++++++- 14 files changed, 2348 insertions(+), 4 deletions(-) create mode 100644 src/views/mp/components/img.png create mode 100644 src/views/mp/components/wx-location/main.vue create mode 100644 src/views/mp/components/wx-msg/card.scss create mode 100644 src/views/mp/components/wx-msg/comment.scss create mode 100644 src/views/mp/components/wx-msg/main.vue create mode 100644 src/views/mp/components/wx-music/main.vue create mode 100644 src/views/mp/components/wx-news/main.vue create mode 100644 src/views/mp/components/wx-reply/main.vue create mode 100644 src/views/mp/components/wx-video-play/main.vue create mode 100644 src/views/mp/components/wx-voice-play/main.vue diff --git a/src/utils/dict.ts b/src/utils/dict.ts index 15e57ff2..05c70dad 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -70,6 +70,23 @@ export const getDictObj = (dictType: string, value: any) => { }) } +/** + * 获得字典数据的文本展示 + * + * @param dictType 字典类型 + * @param value 字典数据的值 + */ +export const getDictLabel = (dictType: string, value: any) => { + const dictOptions: DictDataType[] = getDictOptions(dictType) + const dictLabel = ref('') + dictOptions.forEach((dict: DictDataType) => { + if (dict.value === value) { + dictLabel.value = dict.label + } + }) + return dictLabel.value +} + export enum DICT_TYPE { USER_TYPE = 'user_type', COMMON_STATUS = 'common_status', @@ -123,5 +140,9 @@ export enum DICT_TYPE { PAY_ORDER_STATUS = 'pay_order_status', // 商户支付订单状态 PAY_ORDER_REFUND_STATUS = 'pay_order_refund_status', // 商户支付订单退款状态 PAY_REFUND_ORDER_STATUS = 'pay_refund_order_status', // 退款订单状态 - PAY_REFUND_ORDER_TYPE = 'pay_refund_order_type' // 退款订单类别 + PAY_REFUND_ORDER_TYPE = 'pay_refund_order_type', // 退款订单类别 + + // ========== MP 模块 ========== + MP_AUTO_REPLY_REQUEST_MATCH = 'mp_auto_reply_request_match', // 自动回复请求匹配类型 + MP_MESSAGE_TYPE = 'mp_message_type' // 消息类型 } diff --git a/src/utils/formatTime.ts b/src/utils/formatTime.ts index 2582beee..ec7f3744 100644 --- a/src/utils/formatTime.ts +++ b/src/utils/formatTime.ts @@ -11,10 +11,65 @@ import dayjs from 'dayjs' * @description format 季度 + 星期 + 几周:"YYYY-mm-dd HH:MM:SS WWW QQQQ ZZZ" * @returns 返回拼接后的时间字符串 */ -export function formatDate(date: Date, format: string): string { +export function formatDate(date: Date, format?: string): string { + // 日期不存在,则返回空 + if (!date) { + return '' + } + // 日期存在,则进行格式化 + if (format === undefined) { + format = 'YYYY-MM-DD HH:mm:ss' + } return dayjs(date).format(format) } +// TODO 芋艿:稍后去掉 +// 日期格式化 +export function parseTime(time: any, pattern?: string) { + if (arguments.length === 0 || !time) { + return null + } + const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}' + let date + if (typeof time === 'object') { + date = time + } else { + if (typeof time === 'string' && /^[0-9]+$/.test(time)) { + time = parseInt(time) + } else if (typeof time === 'string') { + time = time + .replace(new RegExp(/-/gm), '/') + .replace('T', ' ') + .replace(new RegExp(/\.\d{3}/gm), '') + } + if (typeof time === 'number' && time.toString().length === 10) { + time = time * 1000 + } + date = new Date(time) + } + const formatObj = { + y: date.getFullYear(), + m: date.getMonth() + 1, + d: date.getDate(), + h: date.getHours(), + i: date.getMinutes(), + s: date.getSeconds(), + a: date.getDay() + } + const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => { + let value = formatObj[key] + // Note: getDay() returns 0 on Sunday + if (key === 'a') { + return ['日', '一', '二', '三', '四', '五', '六'][value] + } + if (result.length > 0 && value < 10) { + value = '0' + value + } + return value || 0 + }) + return time_str +} + /** * 获取当前日期是第几周 * @param dateTime 当前传入的日期值 diff --git a/src/views/mp/components/img.png b/src/views/mp/components/img.png new file mode 100644 index 0000000000000000000000000000000000000000..c25a6e762f3a84c5a7f05c6383de843937725fcf GIT binary patch literal 15404 zcmcJ0Wn5HU_^k>ef`9@70*a!55(CmDf*>lXv@i%F-7s{gG$I`{AnnjKz(@(wF_iSs zG2|dEeGkU#i|_y5`@0|R2S0c?bM}e7*R!6r)(&_s_k@Umn&8ZtGepmxN+_H;bG94! zM~Qz9IO2MFLGR2Np^aw}VoDCLR$$JMk$%MdhAav_g4%70lJy~Z!TIz(xzUTXy9zG; z;UB~3jfUTA1-QB_Uc>A~Jz1LDpwoAun z%(ZbQ8eg43TomPC$m6M53mbGc^RQd*ox*F_iWiQc6^~!R7PIfzB`$+lLA5W0^2VKx z_epLLoqsk-0Y?vg(v%Ln(7U#`GJ1G8S`p=-Bj~nJdvw$*Wcy}#E}AzDr6frQR=S~> z!ERpVvfIPYsadff`79rOYsuU!3puRNt{5&I{dPdqAY5-BqZ~6j{^_fh-z&CauTS{y zj{Z2W+z)NmEqD(qzfJ6tg9F+h4b8q4AbnqQo4grCSBm`6PSd(w#M}yNc zRO71if7iO8D)x87)%6H{FTY>8W@-lRYUq72NQC<@_p~i{}~QZ z3|e``!{S#L!3>f9jBK2FZ;ic}Ad0!cM@y)>jY5_{(?>~UQXi=Y|{#HWA~&cX7dpPoBT#X3TQ+~d zu}XY9RNxW@FYPI}GHbp$H}9tqMAU&P>%8iFmLVZNszjMPiq9(+Y(6P5!vt*un<-&I zcgyYb+R+mV2MuV~6#cJnOF?3_-M6+;S0ALb^VL*fpxH9K?&mzKS{f656Kx`{>AALQ zg*ztUS_LqnuHRdRN(V57=h)qT{}iFl;7(2Owv<#1?RweWx*I7T#u6RWxA#1Zyd2eh zZU=JV%#QeFzTgB1gJgw`s^?eaTgz@_vl<5!vWAVz3{HkHXjbgHR4Xxevz@mAaY|mA z1?zEAAjj?}q8K9E^ioC_7K~KN=fS$Hmu*0!#1wG>{#>OfhC016t8OH|*Y{d}p_qYO z>Mj*}{|b^Rd5|EbnB+Md5as{p1NQhT@uS;wdft4WFr71$liavgX9Qyi4Oy<#k6u_~ zqJ#iW5PaBJgkkR_+rrSpIN&JK0` z%mL^LZecwRrco*z*8d2-nLFe8Tv&0`(9S7W>TQyH^9KmqHA+l$%+k9X?m9!aQiibR z4_zV?6a2(!=h3fgqd!lT+nC>^YRlWCj*^KzR9SBssxvMd0>g8XAta4SXe%o$4NX6+ zE11}5cdGXAb{F!C7wT$LI^@fOQ*l*vK>V=iooE!VO5oa4{+D8y8^I5e(^KG~tg{Tl zoK*QxX<6J6ZcACm-5W$2F)|Mrrvi=?GhTXck7~Cop!q<Tks=}%wzzxaDOi3rS77_Jk+IEbWaWl#LCUaS7^mwWAQlb zvjPQX37mVkaaG8VA7U;VFQY8j(f5e^qXPwu1uNnYyyJOrol`bfj^%8jJ*d)@VN^u= zI-=aKf1E~agOlIZ+_-QwTYvVsgMyyaEfzj?We5pjN-dONHGlq5=jX^EL3?~*tGt|q zP&^ZsUaR7FZ>>R&l`SrELGC6Nkm%a&H2M92y#?ZSPPr!?((ZRGGbMF1QL_`FSffHXyHH-2X2J z^64r#plu|v-uy8S)A0T*@yB8BJycQMBsO^r^I)x)Ms_0!F+^kYi4P;Re0sy~`~3bJ zI{6;^KmyHm2Qcn;Hi7Z|mZpv|Mrc4VO{I0H8?esBFvL$--@9ynk1)`}@{DNmJKgL; zMuu!qPR?BM*{8UF0OKQ>jDl>6qmh~NNptT~AXmJ78`5D+6{r#u4En5^8_i6%mn~@7 z=WV&?$)Hx4@TYf3(N=%3Y6-V#_<Vs;QHT8cqujEqU{@@{xj^7H1{Gk;Ep ziI+$_m*$sASil{pz~+>FQw#kJ)ls3$64I*1WU;7fw4En1yFs(<5M1h8FI~leTed6> zX(A|1I&c2G`4vB(LgkSqrsk-M{C?=u9^KNd)gAY}HKwGagGu+X3UJ~@Dbfh5^825W z-G-4=yh)u&K#@Dbt8a;53Tn^+#c<7uY6RT;vA*WP82wXz|9aYP-r?u_rbSuKu1F`x!f>qZ07@>z1 z?ztmsX0Ix@dbO}FHupx@?~n*BLurB83(n5Bklyy%4hc4Q2&_}w*EMi zt*-=P3TgUgdo?@svIb-X8Jm!JdfJHU48-j{`hw9_k4`pAlrNHVS=ZEE`HlaOwD^!eiA=Fq-SO?j0dTwRR-RkhU%^BW*Igo+bOV@Ub>j1d5n8SckdI1cYt zV%`!Iq<~+~ih6?t++FNkzvB~k0fsn=k#Uq*bEYH?jku0NAB}d$YYXgO0M5^U|2` zn^C6p?4P`o%SM{#C>;Rr-Cb= zCXyoBB}Iil#14(K!=KBihuzwJ&QLVbFSQ&W*G|mWMndpZaJ8J zCvv#?1!82kFH|c8|Nh0dca+C>Z7^RtHX|u=cRV28TqZjrW4qtC)zMETtKGsN zyL&1mHlQg6qz+Oom*o62&!wA9z$^6dXBjTp`CZ9+0DeQ&D zhKdae>})Rdt~t13`YIpCi7#%v;3 zhy@2Oh9ZQ_Q5~8`i<3u3U-rlHT@I)WFp~6F#sG5c^Cix%8|i<2dKpYw#F`3uk8^X_ zbq`ro=6p0}G5L`pkv~Q;t)Ul|uRbzf33QoZ*KO$pP;7e0N7%W6r28-rfj2$rCH*8$ z6rrwWQ;c=iZG z?|t(s=n4pK7vS<^C_ek+hNB}sI&@l*qTaB3*2lp3wt|F7c83S#{ocA(5&KF^3YyfZ zhnajeN20KyVYk{>XQp+kQCEdyZdn~Jd`P<1Nx0@&;(hOm5w{A1bl21T>a-xu~HAUH?u&ZajWILEBFyC6S%%P@r^BM-N8x z$HW5Qqc$N^?)VOxFu-?t{j0Qp;n<6`BnjNec-bnZ@gs&rsuCt>)WP?ouZ^a za2wa*?(`2&$iGBn35;_vc1}<=SoE&4>Gq=UwSarp`w|$ITyq|p;u{aRSz*#oGkbCN zk~>hSo)>r7ul$(l3}kJ5s}@?jZFC?riw_XZ=hdZU*4_{A`Wv9q!$%!ot3A8A#Fup6 z+}4gHx50Iy)+K>3lv$aV>q&l&EK09|*#YFxF%K3x_Ya$Y1V3xUtoU$b*pR%a_(k?b zKR=*ez`vfsFn;B?s)uEdY}X};RJopl1= zqcWPg+P=O|n(?CX`|y<_;^MN;sIsG+*bZbDatb#Esa~OhlDYRT-3H#v(y=`%1x--< z7|oo$rDEZVxV!&xbj=29Z!>bVwzg%`QITVI4`6uk@j(-`iwL>xlLV^f_g~^5I6b;q zJw|yHDPoT^x{$6Z8&TUsi_jE(cdBLZUiM`$Ee#`(y|w?VX|(+l9bn&>g)*6oH$_x*zvx@ub% zZC>_Y!@`0aNej!xlCuVoXP=?+wpD_j?OFMHa2I#Y=d#vM()-m93dZQf?yPp^X~HKS zaN}OP4;6^<1}X(qL(`%xdVNU3*u1*O)O^s*V~2wZf>BV~s6Ko}1`E1*yYV$Y-_6Hw zHu{F0GKa7^{U#7D#j|t|QviYr7O5#IDS3YPxiLaLF+c$>;r`~_p7c-LYp%ItQN`GK z=L)Xltiu%geH{wfYt70V5i4>%^)lvdTx@)NidH6}@2?dz<6e49bTVA+cm5b}H;GGl z@=0#58N4R@H20{!T;H_|AXbfDZI~8+1T-s_Y>BC@%W!zhvl>^A9Csg#P4?W zQxT_w7C z_yGWRH8t?CW6_dK#feM+)P7o~jOneBiVHMd8q!V`@l3Q2F>ae>$A{eyAJV(m-J-Ao zS#yLUoWU@m>ouF&?#Hza;!3e)(Kg88*Ojk+>LkA(lh`Ul(0lF!%q^m`nfGV^5fMqNMU%i~d2!u7kSm!%7Yec$UDJli{GM3G%rJD@F$NNCJ$ zKkVq@c$E+Ibf*VaDwilv8)jJdO^pU-!9q|Vhxx$AWTm+6B<8x5p8F*!X0gNgF(_{I z>p?#hMpqMA+>q#hg+Xg4j=hIFE-|#~M!$z$Ce;Mk$?l75g8gPTwFA*%P+5}XTea-) z8tBNPiBJB(gMWXgO1$HhD_3aoRkvG_?Z@A~Qp(%&On+?TUWlb-vc0Ck@radK&-0w( z0|ajfxbAkim0~0k5tZ$-xSe$3T zam?bjo>Pjp8lN3T+5!Vwo9|9V-p;Vc278!h$*qv<-=?w1HiNZQDjRsSd|p8rIufA5 z_YAc{TNS?zhu8*BjN=Z<7b_u4`2|(aob;CHWGhzikPv3^##dwRKH|Uxf2qNh$3SO{ z3(H=8GoN_{(|AhEn=lIewx*jFg>85VGQNd-;B3A?c1j+FGmVp<+8y z$-uhCi&r3~kE{x5k>#?bDC%51#Si(GyFy0n(VaKs_D# zG&MohBvGCgr zet%@;+o2Jju{+)u8o#b9&Ijc z(X0rK%Prbs*MFUAZ_cf1V&4{bZ}$Gc&VXCVpQ`0~`&+4{WcG364wjW>y z72vxmo52j5GrmQwq}v*3`#J1ka3-YFOzV47arU?wdOv!oG;++F@aNfre277;azYxD-^m* zg7$$Iz|0Q;HF?O60H3TrRwyPVerIJT{yXwKP)AM{y!%h2IbYieK=Q|l0LT-9AJWM$ z!2Sb7d#zH%BV(1O-z0Yq;tuGc04M+V(gh$kqY`Xk?$0Ya?J;h(QI+I^UN)k#C8|<@5I2BZ&5^Xa@DMwXOB%6&`f&=)@s!CR@h@RChjW{6ordq%xDHG|;5PUGL3)&u)`swnp7euTSM#AP-tvT9JKqmUuEsw2XvR6{ z@VpCY<3B>kt1xf16;AwISSR2DDkMrpDA(7ao}V;PW7cVdT=DxMvb6k!$}h3}Y1e}} zFGTnGGk{<;_>Dy@Rgw&3(R(T(x&!J<2pjsV195?sPME~FHj1Ez${W6qY8_;}F6nVz z0~AdEbE{dm=mBM)U(=#=fb&I!0uyFHJ*44YW1X8025lo5P#_zYJTx>k{fpzf(MSPG zL3Arj^NqZCg(n^sdF#SdBhvGE*5GmW!5<+aDytu6#j4Qh&4Sju6IFQV85g0Xl~I@)jUaNZJ0q)@`NY?{2J|NX$GtKYNlLVJt|WSF&Bj0m_P%s{PxO! zx%KB*$|ZnsUWE$Ub5cv!PvQAyy#j2yu1%M!B7SMY5f5&_qRnMv1h}ZQ-^Tq==YR41Uu5r1PBGCXh8MMR4^YCig$Am!wLWRxdf=-F|%Z|4P7BY}#Q3N}@dmR3gyI#$Hk*%)t;vUz=O1&|)f~;9&83h^fx`@~B4rmjw zE|&m+?{J<$S60)A-nc8GTy{Q~=xndEqq48$)g0OvqnQ@ehD{-TdqG@5R3^mMdDX0C zZ!AAVUcotKyV@Jl5}xP^wj{%$nN1;b4Fk6h}Q$Xu>t%Gr;StYSrca#zVF^%4s&4UAsFS`v&vj< z8`s{5u2m_CVT{Eao2Zn^sP&e`r{}03LGLsJkMA}dQmSni{RI2p26pvS6lCN1>&1kf zBc==F0-QYTqq+s%dF2q2*GL}};_MF&_J{F`7UCI1_Y2Yx zT8YdS6hg3ZNYg^K_N5nh$%C8jG(TsI0NPo6>+(Mp;#K)sBPa9Ooa4uNx~snnMCzco zf-pc_e$YF-M{u2DRrdDJb_TV&h&ARwaLX97Maft+f6IrODYOtW8+XU+W|E}p{fn$jhr_Q5{sHQjKta65(qZnrQB+Gax?!*$WC;Kf|EZWrTke($C7C3QMgwig z6WE(yf(nty%<41dO_?=x;XDAxHle&d>qBXSHq|9P4oT(fnwLno}WJ0>q; zzRf!+ql>nj0~2F!sNd1lvM6Km-PPrc0OjN$D*AFR6%$|lACcO_7SzM^KkEaWoGP?$ z0aII-xmf9?Nq$*HNTcy<(3SP<=BQ;D%_Vup@OvLeZ3H!$qvT+Mk7ob|y2r{2S`i+y z&CnFW5PPJ3whf#1`@f|(u*p)qsRl-_Ebe?>p)&z;7~Om^nC z6`G3V87(EpN>}b85+=pIWPNiACZDR$v|l_tztu7afiHFOoX_*Tk=e#P0Lf(6!{z)Z zG;*RKvpCO!`}CA@zPbX9Jp#@Hf95;Ge@`3P(^siJp0??KKZ&QD_obHB47H(W@NDi) zpi_HQX8Z@Lz)bvrBlRAlH`h@y^~6@gL#o$7H1oyMwW}YkCGw5?9^e|wR})}`VuqBp zQ?;IuRN_s8ml>2`;0Bo!f^d;w=?Qp*N zvmyEAVq^bm)pvs8=Qd@}th*(#8zHLBJC74t=Q)Z;%afPCJ(>y9kn{{z`vvX4JQiYE zCv%Y+HLs?}-+-Ehg?ane zHTD8kQBiDW&2CS%+bTn(`L5-Z2n`}P;e`=xeQnkOM&E`M0HMp@Mpsh2bkh}km6Yz@(eoCABlt?%|6H~8*Eq_-xt^Q;T$g%Ud9`( zI4K6HJpcP*7*xod@rtD+S&v0@U}DFoEm|VqG@#XgpgpJ?H#zw|r>ChwHu7 zmk0|Lm&Fd@aDC2|0GK4U9rpO68vBA^xHU;*}PSvhE)OPP7d_N#g@@%Nt) zu;~IQjSO3<)0PXZoQP@HNwxSLGmwW0Dg3zTerFh{2qBu@33IC0+EKh@4 zpxItqzInCYoy~v&PNOr&$ zF3X!e)Vz}P6@4b;71Q<3r;t`1no$S#QR#$`}ps3~kXsZpWtzoR9q#3$@al+XUO1As%!Q}=n z`<7RneCVg|+fXxGvQiVHxfkX}U)PhKTJ!^|mDYKt@W&ba%Gob6=6KvcdEf}D_77y% zhW4~!~`0NHMmn@j!EU z1!s)9a--t=v-I0rI;aQ2A?48|qH8Vy7?%L@?K947X7VVp)8$c@WPM9<(mGVRxT7Kt;f)Wbss|2WpM-~F``-!!=nh;~J9fSsHB(KY zk=@|jQ8t5&$fmjK8i}R|xOLU2Cc~l`A7P8pcp&)VNgTo6&~0tTzBADsv71M>@(93{ zag0IeIaT}Zotp2TY!pTY(Cl2|qWmcD5sn*GnAZ6sm~H zpctt#Rw4FfQl5*p0U)Va243~5?QzK=SfCiK$&&7}UrzNyR0agT9ee?Mj(KpW)igQ; zD?l-dgx5)07?sv|(m*xM%_85-gK18(3xf404m=1@%5c+K3|X%P(U4~y3i7=)+*;g? zT|@f9eYaEyVJ1Njkw6CNKb@sx)6@b=HFw406~LIjRoijc?`He$_Xqk=aD`fmBlp?& zV7Kk6=b#A{yITfMW!mOqcJmAnuxI)w~AB4a!>+9x*tbJPLr)dZ8jI z+a>XJa-V5gG{qbleACp;5#d@|t-U8al3w?*V5y!HMBPj!Vq^p?##_Xk%Bi1` z(Ny}nZ8Ha9D1^(gxj=o@A?C78UNt<$F*?^^U%7O5HkkhuBw)J^OfmK-Ai97;#>-+& zviinH$%xh%a!bp!x7?t<6sQto-s>f!8uR0k-l=Hr7-zy9-~AX}3ciZD=j<*vr_s$X z!^O;E7SH|p%aTzTG@u>ozu7Mn(p={-)dv` z`Pb`aI<%Vn-9qANC3HNe1OTvZ$+t%2lSS;czff3`P#&7iYMmB{78az${S&8qEJ+xH zN>8XXS8-52{n`GfPCK|5a{E2L#YqAq{|0D`8eF+b{0|$ecNH3oBu%klGlp+r1 zmPezQsHFp1U16&QwB@HU(|o-Y*GaszL6_7rb(zJ(F8abLNt4{mTiIU`|4oAcSJLTn zF<9+zCa%Fb>(z;;r{n%)( zR>@rC>Z)!L+Q=+tHhk@=t}*k=9P`coY{)G@kT^-G!Y0%zni`Qu-YA5RKhLj{v6X{d zwa_gs=rOW&%9XQsL>7)Murlr?8S|Us3B?>S<5B{lRtf_kN+AeP{%4|6e{vXb=kjG( z$x{bG5uU5k1D^up51Fmgy`gQuwvS(Juv^~pN@9&cH$gif6%vl{eUtA)>6`kUFLfQ7 z=qtZnQd{rIMiZ>KNyA6g6n7O*T2UhmX3+nvZyMb|8J4M%@}NhV&T6z_>utFUj@_Xq z(hl9MgJ__r#4}|Zvd`<2d2`+g#M>;>*5;vt5Wapr`^ zDdmKx{U3>-~ORf=8Q!Zch$wIbU1zbKIYXRQ*jmV%npSb;f}n) zSeYKX(Z?8J(AmCPJ;XO`S<_eY zp_;utI-L#sg=9{{IOp=D%wFt6IX9(2Exb|Cy!7~-&9YTh*lL2h<1MX92Sc}8PfqWF zIU(ETV+sanKZ3#dm`^QZ_QN!G&uJ8D7e+EN?3d6g9!881dMDVhRe=bh<~L@pq%B6J z%F+)%q1@;H1m%w>-12ZF0{6Oqd6d6)xIC6TZvl12T}^!P7sM-lt4D6?-xLS|!tD5+ZQ zFe=`J4#1|1V3JRPyt_I(>jX)~c}Hk{*uOvS{>^{(cXxe7SB+MPPq?ggOPnQRv${s% zPCRq8sz!+2iSZ)e68>%+ECQt0;l1hU=`L=QU*U>h3+hXO*EG@!>~`=`qu-rhW9qC% zo0L{qDgnC~e(W47y7_BYVXn00yl93AAf<&+C62+ryqGbZ97MifRyV1NmP?xwRJ3Yc}<4G1j)lviV?*f=_MBF zc|UwD_1wn(VpECK7o61Zn&fG3W8_$C6q&0`gs-z>TCpWU>L}$v^ymn}XIn}6n|IK# z;!N{o9r7P%a?42c#N%7sEw|DI6yMw#SCe4<1@I%ld+YMHwzJ#5yZxa=S7&$baD~Nv z_e=Up$bGxKazXB+kvb6VQ1Jc@E|72g} zghrFC5avc(bq(z&Gxmdp-X*?a`)U}i1*SFYx5UX)&&C66eX=nsc{DiwsZG#c@yfzz zhfqap7j{%iSS&q9c5Hk&m_>!5caLRx^=RTktIKW6FOzqt>X0)vQ|7Ms__(-)G}Mf2 zhJ!BZ^_H%J9Sf_w+gs+*IF=D6->#3Ay1Td>s&9ZyG+JW?WBz2G>>Q@R%;40U>D#)n zHW3CTtZBE7O18i9m0sHd)B`ynR&tj&2`2xv6B+z%U4}qbv_-{7xdD9@ue9#%(>li85|m?P^R31mwp+`b}1+U z?ESYR`qB{C`?Lh8mrN+-hocSg-E~MO1{3YEXTTm$d0_|^_;rU=AcSo-nXPi&*|2E@ z>Eq5;1zCC$=y<%nJMz$FN#(QY*qU`7&17qS9rA0MekZVkm{3rfut&WcTdh;3VMvS8 z(pV)r4Of*Ms3RijYDD8_B>9(0cXzuLsr3BOV-gAh+}Q1o=3-zM@R?_i + + + diff --git a/src/views/mp/components/wx-msg/card.scss b/src/views/mp/components/wx-msg/card.scss new file mode 100644 index 00000000..67ac9219 --- /dev/null +++ b/src/views/mp/components/wx-msg/card.scss @@ -0,0 +1,101 @@ +.avue-card{ + &__item{ + margin-bottom: 16px; + border: 1px solid #e8e8e8; + background-color: #fff; + box-sizing: border-box; + color: rgba(0,0,0,.65); + font-size: 14px; + font-variant: tabular-nums; + line-height: 1.5; + list-style: none; + font-feature-settings: "tnum"; + cursor: pointer; + height:200px; + &:hover{ + border-color: rgba(0,0,0,.09); + box-shadow: 0 2px 8px rgba(0,0,0,.09); + } + &--add{ + border:1px dashed #000; + width: 100%; + color: rgba(0,0,0,.45); + background-color: #fff; + border-color: #d9d9d9; + border-radius: 2px; + display: flex; + align-items: center; + justify-content: center; + font-size: 16px; + i{ + margin-right: 10px; + } + &:hover{ + color: #40a9ff; + background-color: #fff; + border-color: #40a9ff; + } + } + } + &__body{ + display: flex; + padding: 24px; + } + &__detail{ + flex:1 + } + &__avatar{ + width: 48px; + height: 48px; + border-radius: 48px; + overflow: hidden; + margin-right: 12px; + img{ + width: 100%; + height: 100%; + } + } + &__title{ + color: rgba(0,0,0,.85); + margin-bottom: 12px; + font-size: 16px; + &:hover{ + color:#1890ff; + } + } + &__info{ + color: rgba(0,0,0,.45); + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 3; + overflow: hidden; + height: 64px; + } + &__menu{ + display: flex; + justify-content:space-around; + height: 50px; + background: #f7f9fa; + color: rgba(0,0,0,.45); + text-align: center; + line-height: 50px; + &:hover{ + color:#1890ff; + } + } +} + +/** joolun 额外加的 */ +.avue-comment__main { + flex: unset!important; + border-radius: 5px!important; + margin: 0 8px!important; +} +.avue-comment__header { + border-top-left-radius: 5px; + border-top-right-radius: 5px; +} +.avue-comment__body { + border-bottom-right-radius: 5px; + border-bottom-left-radius: 5px; +} diff --git a/src/views/mp/components/wx-msg/comment.scss b/src/views/mp/components/wx-msg/comment.scss new file mode 100644 index 00000000..3f1341b2 --- /dev/null +++ b/src/views/mp/components/wx-msg/comment.scss @@ -0,0 +1,88 @@ +/* 来自 https://github.com/nmxiaowei/avue/blob/master/styles/src/element-ui/comment.scss */ +.avue-comment{ + margin-bottom: 30px; + display: flex; + align-items: flex-start; + &--reverse{ + flex-direction:row-reverse; + .avue-comment__main{ + &:before,&:after{ + left: auto; + right: -8px; + border-width: 8px 0 8px 8px; + } + &:before{ + border-left-color: #dedede; + } + &:after{ + border-left-color: #f8f8f8; + margin-right: 1px; + margin-left: auto; + } + } + } + &__avatar{ + width: 48px; + height: 48px; + border-radius: 50%; + border: 1px solid transparent; + box-sizing: border-box; + vertical-align: middle; + } + &__header{ + padding: 5px 15px; + background: #f8f8f8; + border-bottom: 1px solid #eee; + display: flex; + align-items: center; + justify-content: space-between; + } + &__author{ + font-weight: 700; + font-size: 14px; + color: #999; + } + &__main{ + flex:1; + margin: 0 20px; + position: relative; + border: 1px solid #dedede; + border-radius: 2px; + &:before,&:after{ + position: absolute; + top: 10px; + left: -8px; + right: 100%; + width: 0; + height: 0; + display: block; + content: " "; + border-color: transparent; + border-style: solid solid outset; + border-width: 8px 8px 8px 0; + pointer-events: none; + } + &:before { + border-right-color: #dedede; + z-index: 1; + } + &:after{ + border-right-color: #f8f8f8; + margin-left: 1px; + z-index: 2; + } + } + &__body{ + padding: 15px; + overflow: hidden; + background: #fff; + font-family: Segoe UI,Lucida Grande,Helvetica,Arial,Microsoft YaHei,FreeSans,Arimo,Droid Sans,wenquanyi micro hei,Hiragino Sans GB,Hiragino Sans GB W3,FontAwesome,sans-serif;color: #333; + font-size: 14px; + } + blockquote{ + margin:0; + font-family: Georgia,Times New Roman,Times,Kai,Kaiti SC,KaiTi,BiauKai,FontAwesome,serif; + padding: 1px 0 1px 15px; + border-left: 4px solid #ddd; + } +} diff --git a/src/views/mp/components/wx-msg/main.vue b/src/views/mp/components/wx-msg/main.vue new file mode 100644 index 00000000..b514a73e --- /dev/null +++ b/src/views/mp/components/wx-msg/main.vue @@ -0,0 +1,338 @@ + + + + + diff --git a/src/views/mp/components/wx-music/main.vue b/src/views/mp/components/wx-music/main.vue new file mode 100644 index 00000000..52555f15 --- /dev/null +++ b/src/views/mp/components/wx-music/main.vue @@ -0,0 +1,60 @@ + + + + + + diff --git a/src/views/mp/components/wx-news/main.vue b/src/views/mp/components/wx-news/main.vue new file mode 100644 index 00000000..d08e2813 --- /dev/null +++ b/src/views/mp/components/wx-news/main.vue @@ -0,0 +1,107 @@ + + + + + + diff --git a/src/views/mp/components/wx-reply/main.vue b/src/views/mp/components/wx-reply/main.vue new file mode 100644 index 00000000..57a3cd84 --- /dev/null +++ b/src/views/mp/components/wx-reply/main.vue @@ -0,0 +1,634 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/views/mp/components/wx-video-play/main.vue b/src/views/mp/components/wx-video-play/main.vue new file mode 100644 index 00000000..880d10f8 --- /dev/null +++ b/src/views/mp/components/wx-video-play/main.vue @@ -0,0 +1,117 @@ + + + + diff --git a/src/views/mp/components/wx-voice-play/main.vue b/src/views/mp/components/wx-voice-play/main.vue new file mode 100644 index 00000000..f98ac681 --- /dev/null +++ b/src/views/mp/components/wx-voice-play/main.vue @@ -0,0 +1,100 @@ + + + + + + diff --git a/src/views/mp/freePublish/index.vue b/src/views/mp/freePublish/index.vue index 497f72ec..1d9b331e 100644 --- a/src/views/mp/freePublish/index.vue +++ b/src/views/mp/freePublish/index.vue @@ -1,3 +1,395 @@ + + + + diff --git a/src/views/mp/message/index.vue b/src/views/mp/message/index.vue index 497f72ec..34e64ebf 100644 --- a/src/views/mp/message/index.vue +++ b/src/views/mp/message/index.vue @@ -1,3 +1,262 @@ + + From 3c6bf378792e385147737f3a2583dd951f03c5be Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 26 Mar 2023 08:46:04 +0800 Subject: [PATCH 65/74] =?UTF-8?q?Vue3=20=E9=87=8D=E6=9E=84=EF=BC=9A?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E5=AE=9A=E4=B9=89=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/bpm/definition/index.ts | 6 +- src/views/bpm/definition/definition.data.ts | 79 ------- src/views/bpm/definition/index.vue | 235 ++++++++++++-------- src/views/bpm/model/index.vue | 15 +- src/views/bpm/processInstance/create.vue | 4 +- src/views/bpm/processInstance/detail.vue | 2 +- src/views/system/sms/template/index.vue | 1 - 7 files changed, 153 insertions(+), 189 deletions(-) delete mode 100644 src/views/bpm/definition/definition.data.ts diff --git a/src/api/bpm/definition/index.ts b/src/api/bpm/definition/index.ts index 477d6729..c0e51fab 100644 --- a/src/api/bpm/definition/index.ts +++ b/src/api/bpm/definition/index.ts @@ -1,19 +1,19 @@ import request from '@/config/axios' -export const getProcessDefinitionBpmnXMLApi = async (id: number) => { +export const getProcessDefinitionBpmnXML = async (id: number) => { return await request.get({ url: '/bpm/process-definition/get-bpmn-xml?id=' + id }) } -export const getProcessDefinitionPageApi = async (params) => { +export const getProcessDefinitionPage = async (params) => { return await request.get({ url: '/bpm/process-definition/page', params }) } -export const getProcessDefinitionListApi = async (params) => { +export const getProcessDefinitionList = async (params) => { return await request.get({ url: '/bpm/process-definition/list', params diff --git a/src/views/bpm/definition/definition.data.ts b/src/views/bpm/definition/definition.data.ts deleted file mode 100644 index 14a0c319..00000000 --- a/src/views/bpm/definition/definition.data.ts +++ /dev/null @@ -1,79 +0,0 @@ -import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' - -// CrudSchema -const crudSchemas = reactive({ - primaryKey: 'id', - primaryType: null, - action: true, - columns: [ - { - title: '定义编号', - field: 'id', - table: { - width: 360 - } - }, - { - title: '定义名称', - field: 'name', - table: { - // width: 120, - slots: { - default: 'name_default' - } - } - }, - { - title: '定义分类', - field: 'category', - // dictType: DICT_TYPE.BPM_MODEL_CATEGORY, - // dictClass: 'number', - table: { - // width: 120, - slots: { - default: 'category_default' - } - } - }, - { - title: '表单信息', - field: 'formId', - table: { - // width: 200, - slots: { - default: 'formId_default' - } - } - }, - { - title: '流程版本', - field: 'version', - table: { - // width: 80, - slots: { - default: 'version_default' - } - } - }, - { - title: '激活状态', - field: 'suspensionState', - table: { - // width: 80, - slots: { - default: 'suspensionState_default' - } - } - }, - { - title: '部署时间', - field: 'deploymentTime', - isForm: false, - formatter: 'formatDate' - // table: { - // width: 180 - // } - } - ] -}) -export const { allSchemas } = useVxeCrudSchemas(crudSchemas) diff --git a/src/views/bpm/definition/index.vue b/src/views/bpm/definition/index.vue index f2ef640c..ce643ff6 100644 --- a/src/views/bpm/definition/index.vue +++ b/src/views/bpm/definition/index.vue @@ -1,92 +1,138 @@ - diff --git a/src/views/bpm/model/index.vue b/src/views/bpm/model/index.vue index cd744986..b19ed956 100644 --- a/src/views/bpm/model/index.vue +++ b/src/views/bpm/model/index.vue @@ -62,7 +62,7 @@ - +