From bc5df9b14309a91a61a5a19f09a9fd6162335dd4 Mon Sep 17 00:00:00 2001 From: Theo Date: Tue, 7 Mar 2023 18:44:21 +0800 Subject: [PATCH 001/119] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=88=96=E4=BF=AE=E6=94=B9=E8=8F=9C=E5=8D=95=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E9=80=89=E6=8B=A9=E8=8F=9C=E5=8D=95=E5=9B=BE?= =?UTF-8?q?=E6=A0=87=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Icon/src/IconSelect.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Icon/src/IconSelect.vue b/src/components/Icon/src/IconSelect.vue index 97a3e384..d7bf6ae4 100644 --- a/src/components/Icon/src/IconSelect.vue +++ b/src/components/Icon/src/IconSelect.vue @@ -90,7 +90,7 @@ watch( return props.modelValue }, () => { - if (props.modelValue) { + if (props.modelValue && props.modelValue.contains(':')) { currentActiveType.value = props.modelValue.substring(0, props.modelValue.indexOf(':') + 1) icon.value = props.modelValue.substring(props.modelValue.indexOf(':') + 1) } From a692674b24a4e9ad9133b5f8b7b27767c5f6ef7d Mon Sep 17 00:00:00 2001 From: dhb52 Date: Sun, 9 Apr 2023 17:14:31 +0800 Subject: [PATCH 002/119] =?UTF-8?q?fix:=20=E5=88=A0=E9=99=A4=E6=9C=AA?= =?UTF-8?q?=E5=BC=95=E5=85=A5=E7=9A=84formatDate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/mp/components/wx-material-select/main.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/src/views/mp/components/wx-material-select/main.vue b/src/views/mp/components/wx-material-select/main.vue index 7f565823..4c2d46f3 100644 --- a/src/views/mp/components/wx-material-select/main.vue +++ b/src/views/mp/components/wx-material-select/main.vue @@ -238,7 +238,6 @@ export default defineComponent({ selectMaterialFun, getMaterialPageFun, getPage, - formatDate, queryParams, objDataRef, list, From c33e4de5a8d506f08618c2b63977be3d85e88e6d Mon Sep 17 00:00:00 2001 From: dhb52 Date: Mon, 10 Apr 2023 00:18:56 +0800 Subject: [PATCH 003/119] =?UTF-8?q?refactor:=20=E6=8A=BD=E7=A6=BB=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E3=80=90=E5=85=AC=E4=BC=97=E5=8F=B7=E4=B8=8B=E6=8B=89?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mp/components/wx-account-select/main.vue | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/views/mp/components/wx-account-select/main.vue diff --git a/src/views/mp/components/wx-account-select/main.vue b/src/views/mp/components/wx-account-select/main.vue new file mode 100644 index 00000000..f75bc7d6 --- /dev/null +++ b/src/views/mp/components/wx-account-select/main.vue @@ -0,0 +1,44 @@ + + + From e035eb261881184e25612cfa0a4654d8c12f9f89 Mon Sep 17 00:00:00 2001 From: dhb52 Date: Mon, 10 Apr 2023 00:25:45 +0800 Subject: [PATCH 004/119] =?UTF-8?q?refactor:=20=E3=80=90=E8=8D=89=E7=A8=BF?= =?UTF-8?q?=EF=BC=8C=E7=B4=A0=E6=9D=90=E3=80=91=E5=BA=94=E7=94=A8=E3=80=90?= =?UTF-8?q?=E5=85=AC=E4=BC=97=E5=8F=B7=E9=80=89=E6=8B=A9=E5=99=A8=E3=80=91?= =?UTF-8?q?=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/mp/draft/index.vue | 72 +++----------- src/views/mp/material/index.vue | 160 ++++++++++++++------------------ 2 files changed, 85 insertions(+), 147 deletions(-) diff --git a/src/views/mp/draft/index.vue b/src/views/mp/draft/index.vue index ab5d5218..0f2aa254 100644 --- a/src/views/mp/draft/index.vue +++ b/src/views/mp/draft/index.vue @@ -3,31 +3,13 @@ - - - - - - - - 搜索 - 重置 + + + @@ -35,7 +17,7 @@
- + @@ -145,7 +130,7 @@
新建视频 @@ -212,16 +197,22 @@ - + - diff --git a/src/views/pay/order/order.data.ts b/src/views/pay/order/order.data.ts deleted file mode 100644 index 7b993088..00000000 --- a/src/views/pay/order/order.data.ts +++ /dev/null @@ -1,152 +0,0 @@ -import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' -const { t } = useI18n() // 国际化 - -// 表单校验 -export const rules = reactive({ - merchantId: [required], - appId: [required], - merchantOrderId: [required], - subject: [required], - body: [required], - notifyUrl: [required], - notifyStatus: [required], - amount: [required], - status: [required], - userIp: [required], - expireTime: [required], - refundStatus: [required], - refundTimes: [required], - refundAmount: [required] -}) -// CrudSchema -const crudSchemas = reactive({ - primaryKey: 'id', - primaryType: 'seq', - primaryTitle: '岗位编号', - action: true, - columns: [ - { - title: '商户编号', - field: 'merchantId', - isSearch: true - }, - { - title: '应用编号', - field: 'appId', - isSearch: true - }, - { - title: '渠道编号', - field: 'channelId' - }, - { - title: '渠道编码', - field: 'channelCode', - isSearch: true - }, - { - title: '渠道订单号', - field: 'merchantOrderId', - isSearch: true - }, - { - title: '商品标题', - field: 'subject' - }, - { - title: '商品描述', - field: 'body' - }, - { - title: '异步通知地址', - field: 'notifyUrl' - }, - { - title: '回调状态', - field: 'notifyStatus', - dictType: DICT_TYPE.PAY_ORDER_NOTIFY_STATUS, - dictClass: 'number' - }, - { - title: '支付金额', - field: 'amount', - isSearch: true - }, - { - title: '渠道手续费', - field: 'channelFeeRate', - isSearch: true - }, - { - title: '渠道手续金额', - field: 'channelFeeAmount', - isSearch: true - }, - { - title: '支付状态', - field: 'status', - dictType: DICT_TYPE.PAY_ORDER_STATUS, - dictClass: 'number', - isSearch: true - }, - { - title: '用户 IP', - field: 'userIp' - }, - { - title: '订单失效时间', - field: 'expireTime', - formatter: 'formatDate' - }, - { - title: '支付时间', - field: 'successTime', - formatter: 'formatDate' - }, - { - title: '支付通知时间', - field: 'notifyTime', - formatter: 'formatDate' - }, - { - title: '拓展编号', - field: 'successExtensionId' - }, - { - title: '退款状态', - field: 'refundStatus', - dictType: DICT_TYPE.PAY_ORDER_REFUND_STATUS, - dictClass: 'number', - isSearch: true - }, - { - title: '退款次数', - field: 'refundTimes' - }, - { - title: '退款总金额', - field: 'refundAmount' - }, - { - title: '渠道用户编号', - field: 'channelUserId' - }, - { - title: '渠道订单号', - field: 'channelOrderNo' - }, - { - title: t('common.createTime'), - field: 'createTime', - formatter: 'formatDate', - isForm: false, - search: { - show: true, - itemRender: { - name: 'XDataTimePicker' - } - } - } - ] -}) -export const { allSchemas } = useVxeCrudSchemas(crudSchemas) diff --git a/src/views/pay/order/orderForm.vue b/src/views/pay/order/orderForm.vue new file mode 100644 index 00000000..f9625085 --- /dev/null +++ b/src/views/pay/order/orderForm.vue @@ -0,0 +1,152 @@ + + + diff --git a/src/views/pay/refund/index.vue b/src/views/pay/refund/index.vue index ec8bf12c..b8a949e7 100644 --- a/src/views/pay/refund/index.vue +++ b/src/views/pay/refund/index.vue @@ -1,59 +1,359 @@ - + + diff --git a/src/views/pay/refund/refund.data.ts b/src/views/pay/refund/refund.data.ts deleted file mode 100644 index 456f441d..00000000 --- a/src/views/pay/refund/refund.data.ts +++ /dev/null @@ -1,173 +0,0 @@ -import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' -const { t } = useI18n() // 国际化 - -// CrudSchema -const crudSchemas = reactive({ - primaryKey: 'id', - primaryType: 'seq', - primaryTitle: '序号', - action: true, - columns: [ - { - title: '商户编号', - field: 'merchantId', - isSearch: true - }, - { - title: '应用编号', - field: 'appId', - isSearch: true - }, - { - title: '渠道编号', - field: 'channelId', - isSearch: true - }, - { - title: '渠道编码', - field: 'channelCode', - dictType: DICT_TYPE.PAY_CHANNEL_CODE_TYPE, - dictClass: 'number', - isSearch: true - }, - { - title: '支付订单编号', - field: 'orderId', - isSearch: true - }, - { - title: '交易订单号', - field: 'tradeNo', - isSearch: true - }, - { - title: '商户订单号', - field: 'merchantOrderId', - isSearch: true - }, - { - title: '商户退款单号', - field: 'merchantRefundNo', - isSearch: true - }, - { - title: '回调地址', - field: 'notifyUrl', - isSearch: true - }, - { - title: '回调状态', - field: 'notifyStatus', - dictType: DICT_TYPE.PAY_ORDER_NOTIFY_STATUS, - dictClass: 'number', - isSearch: true - }, - { - title: '退款类型', - field: 'type', - dictType: DICT_TYPE.PAY_REFUND_ORDER_TYPE, - dictClass: 'number', - isSearch: true - }, - { - title: t('common.status'), - field: 'status', - dictType: DICT_TYPE.PAY_REFUND_ORDER_STATUS, - dictClass: 'number', - isSearch: true - }, - { - title: '支付金额', - field: 'payAmount', - formatter: 'formatAmount', - isSearch: true - }, - { - title: '退款金额', - field: 'refundAmount', - formatter: 'formatAmount', - isSearch: true - }, - { - title: '退款原因', - field: 'reason', - isSearch: true - }, - { - title: '用户IP', - field: 'userIp', - isSearch: true - }, - { - title: '渠道订单号', - field: 'channelOrderNo', - isSearch: true - }, - { - title: '渠道退款单号', - field: 'channelRefundNo', - isSearch: true - }, - { - title: '渠道调用报错时', - field: 'channelErrorCode' - }, - { - title: '渠道调用报错时', - field: 'channelErrorMsg' - }, - { - title: '支付渠道的额外参数', - field: 'channelExtras' - }, - { - title: '退款失效时间', - field: 'expireTime', - formatter: 'formatDate', - isForm: false, - search: { - show: true, - itemRender: { - name: 'XDataTimePicker' - } - } - }, - { - title: '退款成功时间', - field: 'successTime', - formatter: 'formatDate', - isForm: false, - search: { - show: true, - itemRender: { - name: 'XDataTimePicker' - } - } - }, - { - title: '退款通知时间', - field: 'notifyTime', - formatter: 'formatDate', - isForm: false, - search: { - show: true, - itemRender: { - name: 'XDataTimePicker' - } - } - }, - { - title: t('common.createTime'), - field: 'createTime', - formatter: 'formatDate', - isForm: false, - search: { - show: true, - itemRender: { - name: 'XDataTimePicker' - } - } - } - ] -}) -export const { allSchemas } = useVxeCrudSchemas(crudSchemas) diff --git a/src/views/pay/refund/refundForm.vue b/src/views/pay/refund/refundForm.vue new file mode 100644 index 00000000..cc9d8726 --- /dev/null +++ b/src/views/pay/refund/refundForm.vue @@ -0,0 +1,154 @@ + + + + From fcb830b93eefcf3a1373ef2875c2d36ed44fccef Mon Sep 17 00:00:00 2001 From: puhui999 Date: Mon, 10 Apr 2023 23:53:26 +0800 Subject: [PATCH 016/119] =?UTF-8?q?=E4=BC=98=E5=8C=96vscode=E4=BB=A3?= =?UTF-8?q?=E7=A0=81debugger=E8=B0=83=E8=AF=95=EF=BC=8C=E4=BD=BF=E7=94=A8v?= =?UTF-8?q?scode=E8=87=AA=E5=B8=A6=E7=9A=84=E5=8A=9F=E8=83=BD=EF=BC=8C?= =?UTF-8?q?=E4=B8=8D=E4=BD=BF=E7=94=A8=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/launch.json | 12 ++++++++++++ package.json | 3 +-- 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 .vscode/launch.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..ec531026 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,12 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Launch debug", + "request": "launch", + "type": "chrome", + "url": "http://localhost", + "webRoot": "${workspaceFolder}/src" + } + ] +} diff --git a/package.json b/package.json index 25e6a139..84e420d1 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,6 @@ "steady-xml": "^0.1.0", "url": "^0.11.0", "video.js": "^8.0.4", - "vite-plugin-vue-setup-extend-plus": "^0.1.0", "vue": "3.2.47", "vue-i18n": "9.2.2", "vue-router": "^4.1.6", @@ -127,7 +126,7 @@ "vite-plugin-purge-icons": "^0.9.2", "vite-plugin-svg-icons": "^2.0.1", "vite-plugin-top-level-await": "^1.3.0", - "vite-plugin-vue-setup-extend": "^0.4.0", + "vite-plugin-vue-setup-extend-plus": "^0.1.0", "vite-plugin-windicss": "^1.8.10", "vue-tsc": "^1.2.0", "windicss": "^3.5.6" From c7b296a8e5ea472d1573af84c88b690ada7868ef Mon Sep 17 00:00:00 2001 From: dhb52 Date: Tue, 11 Apr 2023 11:13:46 +0800 Subject: [PATCH 017/119] =?UTF-8?q?refactor:=20=E6=8A=BD=E7=A6=BBWxMpSelec?= =?UTF-8?q?t=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/mp/components/WxMpSelect.vue | 39 ++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/views/mp/components/WxMpSelect.vue diff --git a/src/views/mp/components/WxMpSelect.vue b/src/views/mp/components/WxMpSelect.vue new file mode 100644 index 00000000..6dc6809b --- /dev/null +++ b/src/views/mp/components/WxMpSelect.vue @@ -0,0 +1,39 @@ + + + From 139776749236440ca9fd2339631785676d6bf848 Mon Sep 17 00:00:00 2001 From: dhb52 Date: Tue, 11 Apr 2023 11:14:20 +0800 Subject: [PATCH 018/119] =?UTF-8?q?refactor:=20=E3=80=90MP=E7=B4=A0?= =?UTF-8?q?=E6=9D=90=E7=AE=A1=E7=90=86=E3=80=91=E4=BD=BF=E7=94=A8=E3=80=90?= =?UTF-8?q?WxMpSelect=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/mp/material/index.vue | 130 ++++++++++++++++++-------------- 1 file changed, 74 insertions(+), 56 deletions(-) diff --git a/src/views/mp/material/index.vue b/src/views/mp/material/index.vue index 954d0fac..ec9077f1 100644 --- a/src/views/mp/material/index.vue +++ b/src/views/mp/material/index.vue @@ -2,7 +2,14 @@ - + + + + + + + + @@ -14,7 +21,7 @@
{{ item.name }}
- +
+ + @@ -143,7 +152,7 @@ v-loading="addMaterialLoading" > + @@ -237,24 +249,41 @@ - + diff --git a/src/views/pay/order/index.vue b/src/views/pay/order/index.vue index f70801d3..ba04d0d9 100644 --- a/src/views/pay/order/index.vue +++ b/src/views/pay/order/index.vue @@ -5,24 +5,14 @@ :model="queryParams" ref="queryFormRef" :inline="true" - label-width="120px" + label-width="100px" > - + @@ -42,14 +37,10 @@ v-model="queryParams.channelCode" placeholder="请输入渠道编码" clearable - @clear=" - () => { - queryParams.channelCode = null - } - " + class="!w-240px" > @@ -70,25 +62,36 @@ placeholder="请输入渠道订单号" clearable @keyup.enter="handleQuery" + class="!w-240px" /> - + - + @@ -97,12 +100,13 @@ v-model="queryParams.notifyStatus" placeholder="请选择订单回调商户状态" clearable + class="!w-240px" > @@ -118,14 +122,8 @@ /> - - - 搜索 - - - - 重置 - + 搜索 + 重置 - - 导出 + 导出 - + + @@ -151,17 +149,17 @@ - + @@ -195,35 +193,29 @@ label="创建时间" align="center" prop="createTime" - width="100" + width="180" :formatter="dateFormatter" /> - + - - + - + - - diff --git a/src/views/pay/refund/index.vue b/src/views/pay/refund/index.vue index b8a949e7..a17f5552 100644 --- a/src/views/pay/refund/index.vue +++ b/src/views/pay/refund/index.vue @@ -227,7 +227,7 @@ - + - + From 30cf8008ce967dc9f14b09ce7cc7b2d814552c4b Mon Sep 17 00:00:00 2001 From: YunaiV Date: Tue, 11 Apr 2023 23:01:51 +0800 Subject: [PATCH 020/119] =?UTF-8?q?REVIEW=20=E9=80=80=E6=AC=BE=E8=AE=A2?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/pay/order/index.vue | 4 +- src/views/pay/refund/RefundDetail.vue | 115 +++++++++ src/views/pay/refund/index.vue | 338 ++++++++++++-------------- src/views/pay/refund/refundForm.vue | 154 ------------ 4 files changed, 277 insertions(+), 334 deletions(-) create mode 100644 src/views/pay/refund/RefundDetail.vue delete mode 100644 src/views/pay/refund/refundForm.vue diff --git a/src/views/pay/order/index.vue b/src/views/pay/order/index.vue index ba04d0d9..72e5128b 100644 --- a/src/views/pay/order/index.vue +++ b/src/views/pay/order/index.vue @@ -233,7 +233,7 @@ import { DICT_TYPE, getIntDictOptions, getStrDictOptions } from '@/utils/dict' import { dateFormatter } from '@/utils/formatTime' import * as MerchantApi from '@/api/pay/merchant' import * as OrderApi from '@/api/pay/order' -import OrderDetail from '@/views/pay/order/OrderDetail.vue' +import OrderDetail from './OrderDetail.vue' const message = useMessage() // 消息弹窗 import download from '@/utils/download' @@ -314,7 +314,7 @@ const handleExport = async () => { /** 预览详情 */ const detailRef = ref() -const openDetail = (id?: number) => { +const openDetail = (id: number) => { detailRef.value.open(id) } diff --git a/src/views/pay/refund/RefundDetail.vue b/src/views/pay/refund/RefundDetail.vue new file mode 100644 index 00000000..8a47c6f6 --- /dev/null +++ b/src/views/pay/refund/RefundDetail.vue @@ -0,0 +1,115 @@ + + + diff --git a/src/views/pay/refund/index.vue b/src/views/pay/refund/index.vue index a17f5552..17ca2a0d 100644 --- a/src/views/pay/refund/index.vue +++ b/src/views/pay/refund/index.vue @@ -1,10 +1,10 @@ - diff --git a/src/views/pay/refund/refundForm.vue b/src/views/pay/refund/refundForm.vue deleted file mode 100644 index cc9d8726..00000000 --- a/src/views/pay/refund/refundForm.vue +++ /dev/null @@ -1,154 +0,0 @@ - - - - From fd447dc7a3c3ce4b582cd254d563ef2d2acef984 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Tue, 11 Apr 2023 23:28:59 +0800 Subject: [PATCH 021/119] =?UTF-8?q?REVIEW=20=E5=85=AC=E4=BC=97=E5=8F=B7?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E7=9A=84=E4=B8=8B=E6=8B=89=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.front | 2 +- .vscode/launch.json | 2 +- src/views/mp/autoReply/index.vue | 3 ++- src/views/mp/components/WxMpSelect.vue | 5 ++--- src/views/mp/components/wx-account-select/main.vue | 6 +++--- src/views/mp/draft/index.vue | 3 ++- src/views/mp/freePublish/index.vue | 1 + src/views/mp/material/index.vue | 5 +---- src/views/mp/menu/index.vue | 3 ++- src/views/mp/tag/index.vue | 3 ++- src/views/mp/user/index.vue | 1 + 11 files changed, 18 insertions(+), 16 deletions(-) diff --git a/.env.front b/.env.front index a63b6379..1629ff9f 100644 --- a/.env.front +++ b/.env.front @@ -19,7 +19,7 @@ VITE_API_URL=/admin-api VITE_BASE_PATH=/ # 项目本地运行端口号, 与.vscode/launch.json配合 -VITE_PORT=5173 +VITE_PORT=80 # 是否删除debugger VITE_DROP_DEBUGGER=false diff --git a/.vscode/launch.json b/.vscode/launch.json index e4093b3a..f43edc03 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -8,7 +8,7 @@ "type": "msedge", "request": "launch", "name": "Launch Edge against localhost", - "url": "http://localhost:5173", + "url": "http://localhost", "webRoot": "${workspaceFolder}/src", "sourceMaps": true } diff --git a/src/views/mp/autoReply/index.vue b/src/views/mp/autoReply/index.vue index 4877ec76..9208d1e7 100644 --- a/src/views/mp/autoReply/index.vue +++ b/src/views/mp/autoReply/index.vue @@ -3,7 +3,8 @@ - + + diff --git a/src/views/mp/components/WxMpSelect.vue b/src/views/mp/components/WxMpSelect.vue index 6dc6809b..e39bbf96 100644 --- a/src/views/mp/components/WxMpSelect.vue +++ b/src/views/mp/components/WxMpSelect.vue @@ -19,13 +19,12 @@ const emit = defineEmits<{ (e: 'change', id: number | undefined): void }>() -onMounted(async () => { +onMounted(() => { handleQuery() }) const handleQuery = async () => { - const data = await MpAccountApi.getSimpleAccountList() - accountList.value = data + accountList.value = await MpAccountApi.getSimpleAccountList() // 默认选中第一个 if (accountList.value.length > 0) { accountId.value = accountList.value[0].id diff --git a/src/views/mp/components/wx-account-select/main.vue b/src/views/mp/components/wx-account-select/main.vue index f75bc7d6..4eb99615 100644 --- a/src/views/mp/components/wx-account-select/main.vue +++ b/src/views/mp/components/wx-account-select/main.vue @@ -1,6 +1,7 @@ - diff --git a/src/views/pay/order/orderForm.vue b/src/views/pay/order/orderForm.vue new file mode 100644 index 00000000..f9625085 --- /dev/null +++ b/src/views/pay/order/orderForm.vue @@ -0,0 +1,152 @@ + + + diff --git a/src/views/pay/refund/refundForm.vue b/src/views/pay/refund/refundForm.vue new file mode 100644 index 00000000..cc9d8726 --- /dev/null +++ b/src/views/pay/refund/refundForm.vue @@ -0,0 +1,154 @@ + + + + From fbbf4131f67706d77042744813a865b0c16e29e7 Mon Sep 17 00:00:00 2001 From: dhb52 Date: Wed, 12 Apr 2023 14:05:21 +0800 Subject: [PATCH 024/119] =?UTF-8?q?fix:=20=E5=8E=BB=E9=99=A4WxLocation?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E5=A4=9A=E4=BD=99Location=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/mp/components/wx-location/main.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/mp/components/wx-location/main.vue b/src/views/mp/components/wx-location/main.vue index 47eab571..17598136 100644 --- a/src/views/mp/components/wx-location/main.vue +++ b/src/views/mp/components/wx-location/main.vue @@ -31,7 +31,6 @@ />
- {{ label }} @@ -39,6 +38,7 @@
+ + diff --git a/src/views/mp/draft/index.vue b/src/views/mp/draft/index.vue index 844d01b2..d9a44076 100644 --- a/src/views/mp/draft/index.vue +++ b/src/views/mp/draft/index.vue @@ -252,7 +252,6 @@ import * as MpFreePublishApi from '@/api/mp/freePublish' import type { UploadFiles, UploadProps, UploadRawFile } from 'element-plus' // 可以用改本地数据模拟,避免API调用超限 // import drafts from './mock' - const message = useMessage() // 消息 const loading = ref(true) // 列表的加载中 @@ -362,7 +361,7 @@ const submitForm = async () => { } finally { dialogNewsVisible.value = false addMaterialLoading.value = false - getList() + await getList() } } diff --git a/src/views/mp/material/index.vue b/src/views/mp/material/index.vue index 4d4017d4..81d8fb08 100644 --- a/src/views/mp/material/index.vue +++ b/src/views/mp/material/index.vue @@ -277,14 +277,11 @@ const uploadRules: FormRules = { } // 素材类型 -type MatertialType = 'image' | 'voice' | 'video' -const type = ref('image') -// 遮罩层 -const loading = ref(false) -// 总条数 -// 数据列表 -const list = ref([]) -const total = ref(0) +type MaterialType = 'image' | 'voice' | 'video' +const type = ref('image') +const loading = ref(false) // 遮罩层 +const list = ref([]) // 总条数 +const total = ref(0) // 数据列表 // 查询参数 interface QueryParams { pageNo: number @@ -302,7 +299,7 @@ const queryParams: QueryParams = reactive({ const fileList = ref([]) interface UploadData { - type: MatertialType + type: MaterialType title: string introduction: string } @@ -346,7 +343,7 @@ const handleQuery = () => { const onTabChange = (tabName: TabPaneName) => { // 设置 type - uploadData.type = tabName as MatertialType + uploadData.type = tabName as MaterialType // 提前情况数据,避免tab切换后显示垃圾数据 list.value = [] diff --git a/src/views/mp/tag/index.vue b/src/views/mp/tag/index.vue index 6dc0d11a..125c8702 100644 --- a/src/views/mp/tag/index.vue +++ b/src/views/mp/tag/index.vue @@ -71,11 +71,10 @@ diff --git a/src/views/pay/order/orderForm.vue b/src/views/pay/order/orderForm.vue deleted file mode 100644 index f9625085..00000000 --- a/src/views/pay/order/orderForm.vue +++ /dev/null @@ -1,152 +0,0 @@ - - - diff --git a/src/views/pay/refund/refundForm.vue b/src/views/pay/refund/refundForm.vue deleted file mode 100644 index cc9d8726..00000000 --- a/src/views/pay/refund/refundForm.vue +++ /dev/null @@ -1,154 +0,0 @@ - - - - From 813e7d2776dc2f9bde7baa06ecac83cab8d2ff53 Mon Sep 17 00:00:00 2001 From: dhb52 Date: Fri, 14 Apr 2023 14:49:19 +0800 Subject: [PATCH 031/119] =?UTF-8?q?refactor:=20=E4=BD=BF=E7=94=A8Editor?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E6=9B=BF=E6=8D=A2WxEditor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Editor/src/Editor.vue | 3 +- .../mp/components/wx-editor/WxEditor.vue | 104 ---- .../mp/components/wx-editor/quill-options.js | 45 -- src/views/mp/draft/editor-config.ts | 72 +++ src/views/mp/draft/index.vue | 458 +++++++++--------- 5 files changed, 307 insertions(+), 375 deletions(-) delete mode 100644 src/views/mp/components/wx-editor/WxEditor.vue delete mode 100644 src/views/mp/components/wx-editor/quill-options.js create mode 100644 src/views/mp/draft/editor-config.ts diff --git a/src/components/Editor/src/Editor.vue b/src/components/Editor/src/Editor.vue index 4d8e7dde..2d723922 100644 --- a/src/components/Editor/src/Editor.vue +++ b/src/components/Editor/src/Editor.vue @@ -20,7 +20,7 @@ const props = defineProps({ editorId: propTypes.string.def('wangeEditor-1'), height: propTypes.oneOfType([Number, String]).def('500px'), editorConfig: { - type: Object as PropType, + type: Object as PropType>, default: () => undefined }, readonly: propTypes.bool.def(false), @@ -147,6 +147,7 @@ const editorConfig = computed((): IEditorConfig => { props.editorConfig || {} ) }) + const editorStyle = computed(() => { return { height: isNumber(props.height) ? `${props.height}px` : props.height diff --git a/src/views/mp/components/wx-editor/WxEditor.vue b/src/views/mp/components/wx-editor/WxEditor.vue deleted file mode 100644 index d2220e10..00000000 --- a/src/views/mp/components/wx-editor/WxEditor.vue +++ /dev/null @@ -1,104 +0,0 @@ - - - diff --git a/src/views/mp/components/wx-editor/quill-options.js b/src/views/mp/components/wx-editor/quill-options.js deleted file mode 100644 index 5ec211ae..00000000 --- a/src/views/mp/components/wx-editor/quill-options.js +++ /dev/null @@ -1,45 +0,0 @@ -const toolbarOptions = [ - ['bold', 'italic', 'underline', 'strike'], // 加粗 斜体 下划线 删除线 - ['blockquote', 'code-block'], // 引用 代码块 - [{ header: 1 }, { header: 2 }], // 1、2 级标题 - [{ list: 'ordered' }, { list: 'bullet' }], // 有序、无序列表 - [{ script: 'sub' }, { script: 'super' }], // 上标/下标 - [{ indent: '-1' }, { indent: '+1' }], // 缩进 - // [{'direction': 'rtl'}], // 文本方向 - [{ size: ['small', false, 'large', 'huge'] }], // 字体大小 - [{ header: [1, 2, 3, 4, 5, 6, false] }], // 标题 - [{ color: [] }, { background: [] }], // 字体颜色、字体背景颜色 - [{ font: [] }], // 字体种类 - [{ align: [] }], // 对齐方式 - ['clean'], // 清除文本格式 - ['link', 'image', 'video'] // 链接、图片、视频 -] - -export default { - theme: 'snow', - placeholder: '请输入文章内容', - modules: { - toolbar: { - container: toolbarOptions, - // container: "#toolbar", - handlers: { - image: function (value) { - if (value) { - // 触发input框选择图片文件 - document.querySelector('.avatar-uploader input').click() - } else { - this.quill.format('image', false) - } - }, - link: function (value) { - if (value) { - const href = prompt('注意!只支持公众号图文链接') - this.quill.format('link', href) - } else { - this.quill.format('link', false) - } - } - } - } - } -} diff --git a/src/views/mp/draft/editor-config.ts b/src/views/mp/draft/editor-config.ts new file mode 100644 index 00000000..26c723c9 --- /dev/null +++ b/src/views/mp/draft/editor-config.ts @@ -0,0 +1,72 @@ +import { IEditorConfig } from '@wangeditor/editor' +import { getAccessToken, getTenantId } from '@/utils/auth' + +const message = useMessage() + +type InsertFnType = (url: string, alt: string, href: string) => void + +export const createEditorConfig = ( + server: string, + accountId: number | undefined +): Partial => { + return { + MENU_CONF: { + ['uploadImage']: { + server, + // 单个文件的最大体积限制,默认为 2M + maxFileSize: 5 * 1024 * 1024, + // 最多可上传几个文件,默认为 100 + maxNumberOfFiles: 10, + // 选择文件时的类型限制,默认为 ['image/*'] 。如不想限制,则设置为 [] + allowedFileTypes: ['image/*'], + + // 自定义上传参数,例如传递验证的 token 等。参数会被添加到 formData 中,一起上传到服务端。 + meta: { accountId: accountId }, + // 将 meta 拼接到 url 参数中,默认 false + metaWithUrl: true, + + // 自定义增加 http header + headers: { + Accept: '*', + Authorization: 'Bearer ' + getAccessToken(), + 'tenant-id': getTenantId() + }, + + // 跨域是否传递 cookie ,默认为 false + withCredentials: true, + + // 超时时间,默认为 10 秒 + timeout: 5 * 1000, // 5 秒 + + // form-data fieldName,后端接口参数名称,默认值wangeditor-uploaded-image + fieldName: 'file', + + // 上传之前触发 + onBeforeUpload(file: File) { + console.log(file) + return file + }, + // 上传进度的回调函数 + onProgress(progress: number) { + // progress 是 0-100 的数字 + console.log('progress', progress) + }, + onSuccess(file: File, res: any) { + console.log('onSuccess', file, res) + }, + onFailed(file: File, res: any) { + message.alertError(res.message) + console.log('onFailed', file, res) + }, + onError(file: File, err: any, res: any) { + message.alertError(err.message) + console.error('onError', file, err, res) + }, + // 自定义插入图片 + customInsert(res: any, insertFn: InsertFnType) { + insertFn(res.data, 'image', res.data) + } + } + } + } +} diff --git a/src/views/mp/draft/index.vue b/src/views/mp/draft/index.vue index d9a44076..0cc70507 100644 --- a/src/views/mp/draft/index.vue +++ b/src/views/mp/draft/index.vue @@ -71,168 +71,182 @@ -
-
-
-
-
- -
{{ news.title }}
-
-
- 下移 - 删除 - -
-
-
-
-
{{ news.title }}
-
- + + +
+
+
+
+ +
{{ news.title }}
+
+
+ 下移 + 删除 +
-
- 下移 - - 上移 - 删除 - +
+
+
{{ news.title }}
+
+ +
+
+
+ 下移 + + 上移 + 删除 + +
-
- - - - - -
-
-
-
-
-
-
- - - - - -
封面和摘要:
-
-
- - -
- + - - 素材库选择 - - -
- - - + + +
- -
- - - - -
+ + +
+ + + + + + + + + +

封面:

+
+ + +
+ + + 素材库选择 + + +
+ + + +
+
+ +

摘要:

+ +
+
+ + + + +
+
+ @@ -535,6 +554,13 @@ const handleDelete = async (item: any) => { padding-top: 5px; } +.el-row { + margin-bottom: 20px; +} +.el-row:last-child { + margin-bottom: 0; +} + .item-name { font-size: 12px; overflow: hidden; @@ -548,35 +574,33 @@ const handleDelete = async (item: any) => { } /*新增图文*/ -.left { - display: inline-block; - width: 35%; - vertical-align: top; - margin-top: 200px; -} +// .left { +// display: inline-block; +// vertical-align: top; +// margin-top: 200px; +// } -.right { - display: inline-block; - width: 60%; - margin-top: -40px; -} +// .right { +// display: inline-block; +// width: 100%; +// } -.avatar-uploader { - width: 20%; - display: inline-block; -} +// .avatar-uploader { +// width: 20%; +// display: inline-block; +// } -.avatar-uploader .el-upload { - border-radius: 6px; - cursor: pointer; - position: relative; - overflow: hidden; - text-align: unset !important; -} +// .avatar-uploader .el-upload { +// border-radius: 6px; +// cursor: pointer; +// position: relative; +// overflow: hidden; +// text-align: unset !important; +// } -.avatar-uploader .el-upload:hover { - border-color: #165dff; -} +// .avatar-uploader .el-upload:hover { +// border-color: #165dff; +// } .avatar-uploader-icon { border: 1px solid #d9d9d9; @@ -599,7 +623,7 @@ const handleDelete = async (item: any) => { } .digest { - width: 60%; + width: 100%; display: inline-block; vertical-align: top; } @@ -620,28 +644,16 @@ const handleDelete = async (item: any) => { border: 1px solid #eaeaea; } -p { - line-height: 30px; -} - @media (min-width: 992px) and (max-width: 1300px) { .waterfall { column-count: 3; } - - p { - color: red; - } } @media (min-width: 768px) and (max-width: 991px) { .waterfall { column-count: 2; } - - p { - color: orange; - } } @media (max-width: 767px) { @@ -707,10 +719,6 @@ p { background-color: #acadae; } -.input-tt { - padding: 5px; -} - .activeAddNews { border: 5px solid #2bb673; } @@ -747,7 +755,7 @@ p { .thumb-div { display: inline-block; - width: 30%; + width: 100%; text-align: center; } From 92da7e341b3f80ed78dbec903aebd13a965ac4d3 Mon Sep 17 00:00:00 2001 From: dhb52 Date: Fri, 14 Apr 2023 15:08:58 +0800 Subject: [PATCH 032/119] =?UTF-8?q?fix:=20=E4=BD=BF=E7=94=A8ElDialog:destr?= =?UTF-8?q?oy-on-close=E5=B1=9E=E6=80=A7=E8=A7=A3=E5=86=B3=E5=AF=B9?= =?UTF-8?q?=E8=AF=9D=E6=A1=86=E9=87=8D=E6=96=B0=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/mp/autoReply/index.vue | 21 ++++----------------- src/views/mp/message/index.vue | 6 +++--- 2 files changed, 7 insertions(+), 20 deletions(-) diff --git a/src/views/mp/autoReply/index.vue b/src/views/mp/autoReply/index.vue index 4c8eb388..77bcf6f7 100644 --- a/src/views/mp/autoReply/index.vue +++ b/src/views/mp/autoReply/index.vue @@ -140,7 +140,7 @@ - + @@ -167,7 +167,7 @@ - + @@ -262,6 +261,7 @@ const handleQuery = () => { /** 重置按钮操作 */ const resetQuery = async () => { + // 暂存accountId,并在reset后恢复 const accountId = queryParams.accountId queryFormRef.value?.resetFields() queryParams.accountId = accountId From dc32b9242d0819081126a48698c966341f066bb6 Mon Sep 17 00:00:00 2001 From: dhb52 Date: Fri, 14 Apr 2023 15:15:01 +0800 Subject: [PATCH 033/119] =?UTF-8?q?refactor:=20=E5=88=A0=E9=99=A4WxAccount?= =?UTF-8?q?Select?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/mp/components/WxMpSelect.vue | 36 ---------------- .../mp/components/wx-account-select/main.vue | 42 ++++++++----------- src/views/mp/message/index.vue | 4 +- 3 files changed, 19 insertions(+), 63 deletions(-) delete mode 100644 src/views/mp/components/WxMpSelect.vue diff --git a/src/views/mp/components/WxMpSelect.vue b/src/views/mp/components/WxMpSelect.vue deleted file mode 100644 index 615745de..00000000 --- a/src/views/mp/components/WxMpSelect.vue +++ /dev/null @@ -1,36 +0,0 @@ - - - diff --git a/src/views/mp/components/wx-account-select/main.vue b/src/views/mp/components/wx-account-select/main.vue index 4eb99615..61963cb8 100644 --- a/src/views/mp/components/wx-account-select/main.vue +++ b/src/views/mp/components/wx-account-select/main.vue @@ -1,29 +1,21 @@ - diff --git a/src/views/mp/message/index.vue b/src/views/mp/message/index.vue index 60191db8..4ab19fda 100644 --- a/src/views/mp/message/index.vue +++ b/src/views/mp/message/index.vue @@ -9,7 +9,7 @@ label-width="68px" > - + @@ -203,7 +203,7 @@ import WxMsg from '@/views/mp/components/wx-msg/main.vue' import WxLocation from '@/views/mp/components/wx-location/main.vue' import WxMusic from '@/views/mp/components/wx-music/main.vue' import WxNews from '@/views/mp/components/wx-news/main.vue' -import WxMpSelect from '@/views/mp/components/WxMpSelect.vue' +import WxAccountSelect from '@/views/mp/components/wx-account-select/main.vue' import * as MpMessageApi from '@/api/mp/message' import { DICT_TYPE, getStrDictOptions } from '@/utils/dict' import { dateFormatter } from '@/utils/formatTime' From 1aae769562d42b459362f43a156eb6891863c726 Mon Sep 17 00:00:00 2001 From: dhb52 Date: Fri, 14 Apr 2023 15:15:35 +0800 Subject: [PATCH 034/119] =?UTF-8?q?feat:=20=E5=9C=A8vscode=E4=B8=AD?= =?UTF-8?q?=E6=8A=98=E5=8F=A0=E6=96=87=E4=BB=B6=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 38cc3052..3036ebf1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -40,5 +40,15 @@ "i18n-ally.displayLanguage": "zh-CN", "i18n-ally.enabledFrameworks": ["vue", "react"], "god.tsconfig": "./tsconfig.json", - "vue-i18n.i18nPaths": "src/locales" + "vue-i18n.i18nPaths": "src/locales", + "explorer.fileNesting.enabled": true, + "explorer.fileNesting.expand": false, + "explorer.fileNesting.patterns": { + "*.ts": "$(capture).test.ts, $(capture).test.tsx", + "*.tsx": "$(capture).test.ts, $(capture).test.tsx", + "*.env": "$(capture).env.*", + "CHANGELOG.md": "CHANGELOG*", + "package.json": "pnpm-lock.yaml,pnpm-workspace.yaml,LICENSE,.gitattributes,.gitignore,.gitpod.yml,CNAME,README*,.npmrc,.browserslistrc,vite.config.*,windi.*,tailwind.*,tsconfig.*,postcss*", + ".eslintrc.js": ".eslintignore,.eslintrc-*,.prettierignore,.stylelintignore,.commitlintrc.js,.prettierrc.js,.stylelint*,stylelint*,prettier.*,.editorconfig" + } } From bb49c6bbda5c13e78fef8f5b9feae1132fd0520b Mon Sep 17 00:00:00 2001 From: dhb52 Date: Fri, 14 Apr 2023 15:16:50 +0800 Subject: [PATCH 035/119] =?UTF-8?q?fix:=20=E5=88=A0=E9=99=A4=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E7=94=9F=E6=88=90=E7=9A=84auto-*.d.ts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/types/.gitignore | 1 + src/types/auto-components.d.ts | 128 --------------------------------- src/types/auto-imports.d.ts | 76 -------------------- 3 files changed, 1 insertion(+), 204 deletions(-) create mode 100644 src/types/.gitignore delete mode 100644 src/types/auto-components.d.ts delete mode 100644 src/types/auto-imports.d.ts diff --git a/src/types/.gitignore b/src/types/.gitignore new file mode 100644 index 00000000..a00fe5dd --- /dev/null +++ b/src/types/.gitignore @@ -0,0 +1 @@ +auto-*.d.ts diff --git a/src/types/auto-components.d.ts b/src/types/auto-components.d.ts deleted file mode 100644 index a3afbb94..00000000 --- a/src/types/auto-components.d.ts +++ /dev/null @@ -1,128 +0,0 @@ -/* eslint-disable */ -/* prettier-ignore */ -// @ts-nocheck -// Generated by unplugin-vue-components -// Read more: https://github.com/vuejs/core/pull/3399 -import '@vue/runtime-core' - -export {} - -declare module '@vue/runtime-core' { - export interface GlobalComponents { - Backtop: typeof import('./../components/Backtop/src/Backtop.vue')['default'] - ConfigGlobal: typeof import('./../components/ConfigGlobal/src/ConfigGlobal.vue')['default'] - ContentDetailWrap: typeof import('./../components/ContentDetailWrap/src/ContentDetailWrap.vue')['default'] - ContentWrap: typeof import('./../components/ContentWrap/src/ContentWrap.vue')['default'] - CopperModal: typeof import('./../components/Cropper/src/CopperModal.vue')['default'] - CountTo: typeof import('./../components/CountTo/src/CountTo.vue')['default'] - Crontab: typeof import('./../components/Crontab/src/Crontab.vue')['default'] - Cropper: typeof import('./../components/Cropper/src/Cropper.vue')['default'] - CropperAvatar: typeof import('./../components/Cropper/src/CropperAvatar.vue')['default'] - Descriptions: typeof import('./../components/Descriptions/src/Descriptions.vue')['default'] - Dialog: typeof import('./../components/Dialog/src/Dialog.vue')['default'] - DictTag: typeof import('./../components/DictTag/src/DictTag.vue')['default'] - DocAlert: typeof import('./../components/DocAlert/index.vue')['default'] - Echart: typeof import('./../components/Echart/src/Echart.vue')['default'] - Editor: typeof import('./../components/Editor/src/Editor.vue')['default'] - ElAlert: typeof import('element-plus/es')['ElAlert'] - 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'] - 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'] - 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'] - ElDivider: typeof import('element-plus/es')['ElDivider'] - ElDrawer: typeof import('element-plus/es')['ElDrawer'] - ElDropdown: typeof import('element-plus/es')['ElDropdown'] - ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem'] - ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu'] - ElementBaseInfo: typeof import('./../components/bpmnProcessDesigner/package/penal/base/ElementBaseInfo.vue')['default'] - ElementForm: typeof import('./../components/bpmnProcessDesigner/package/penal/form/ElementForm.vue')['default'] - ElementListeners: typeof import('./../components/bpmnProcessDesigner/package/penal/listeners/ElementListeners.vue')['default'] - ElementMultiInstance: typeof import('./../components/bpmnProcessDesigner/package/penal/multi-instance/ElementMultiInstance.vue')['default'] - ElementOtherConfig: typeof import('./../components/bpmnProcessDesigner/package/penal/other/ElementOtherConfig.vue')['default'] - ElementProperties: typeof import('./../components/bpmnProcessDesigner/package/penal/properties/ElementProperties.vue')['default'] - ElementTask: typeof import('./../components/bpmnProcessDesigner/package/penal/task/ElementTask.vue')['default'] - 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'] - ElLink: typeof import('element-plus/es')['ElLink'] - 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'] - 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'] - FlowCondition: typeof import('./../components/bpmnProcessDesigner/package/penal/flow-condition/FlowCondition.vue')['default'] - Form: typeof import('./../components/Form/src/Form.vue')['default'] - Highlight: typeof import('./../components/Highlight/src/Highlight.vue')['default'] - Icon: typeof import('./../components/Icon/src/Icon.vue')['default'] - IconSelect: typeof import('./../components/Icon/src/IconSelect.vue')['default'] - IFrame: typeof import('./../components/IFrame/src/IFrame.vue')['default'] - ImageViewer: typeof import('./../components/ImageViewer/src/ImageViewer.vue')['default'] - Infotip: typeof import('./../components/Infotip/src/Infotip.vue')['default'] - InputPassword: typeof import('./../components/InputPassword/src/InputPassword.vue')['default'] - Pagination: typeof import('./../components/Pagination/index.vue')['default'] - ProcessDesigner: typeof import('./../components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue')['default'] - ProcessPalette: typeof import('./../components/bpmnProcessDesigner/package/palette/ProcessPalette.vue')['default'] - ProcessViewer: typeof import('./../components/bpmnProcessDesigner/package/designer/ProcessViewer.vue')['default'] - PropertiesPanel: typeof import('./../components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue')['default'] - Qrcode: typeof import('./../components/Qrcode/src/Qrcode.vue')['default'] - ReceiveTask: typeof import('./../components/bpmnProcessDesigner/package/penal/task/task-components/ReceiveTask.vue')['default'] - RouterLink: typeof import('vue-router')['RouterLink'] - RouterView: typeof import('vue-router')['RouterView'] - 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'] - 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'] - UploadFile: typeof import('./../components/UploadFile/src/UploadFile.vue')['default'] - UploadImg: typeof import('./../components/UploadFile/src/UploadImg.vue')['default'] - UploadImgs: typeof import('./../components/UploadFile/src/UploadImgs.vue')['default'] - UserTask: typeof import('./../components/bpmnProcessDesigner/package/penal/task/task-components/UserTask.vue')['default'] - UserTaskListeners: typeof import('./../components/bpmnProcessDesigner/package/penal/listeners/UserTaskListeners.vue')['default'] - Verify: typeof import('./../components/Verifition/src/Verify.vue')['default'] - VerifyPoints: typeof import('./../components/Verifition/src/Verify/VerifyPoints.vue')['default'] - VerifySlide: typeof import('./../components/Verifition/src/Verify/VerifySlide.vue')['default'] - XButton: typeof import('./../components/XButton/src/XButton.vue')['default'] - XTextButton: typeof import('./../components/XButton/src/XTextButton.vue')['default'] - } - export interface ComponentCustomProperties { - vLoading: typeof import('element-plus/es')['ElLoadingDirective'] - } -} diff --git a/src/types/auto-imports.d.ts b/src/types/auto-imports.d.ts deleted file mode 100644 index 75cf16d9..00000000 --- a/src/types/auto-imports.d.ts +++ /dev/null @@ -1,76 +0,0 @@ -/* eslint-disable */ -/* prettier-ignore */ -// @ts-nocheck -// Generated by unplugin-auto-import -export {} -declare global { - const DICT_TYPE: typeof import('@/utils/dict')['DICT_TYPE'] - const EffectScope: typeof import('vue')['EffectScope'] - const computed: typeof import('vue')['computed'] - const createApp: typeof import('vue')['createApp'] - const customRef: typeof import('vue')['customRef'] - const defineAsyncComponent: typeof import('vue')['defineAsyncComponent'] - const defineComponent: typeof import('vue')['defineComponent'] - const effectScope: typeof import('vue')['effectScope'] - const getCurrentInstance: typeof import('vue')['getCurrentInstance'] - const getCurrentScope: typeof import('vue')['getCurrentScope'] - const h: typeof import('vue')['h'] - const inject: typeof import('vue')['inject'] - const isProxy: typeof import('vue')['isProxy'] - const isReactive: typeof import('vue')['isReactive'] - const isReadonly: typeof import('vue')['isReadonly'] - const isRef: typeof import('vue')['isRef'] - const markRaw: typeof import('vue')['markRaw'] - const nextTick: typeof import('vue')['nextTick'] - const onActivated: typeof import('vue')['onActivated'] - const onBeforeMount: typeof import('vue')['onBeforeMount'] - const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave'] - const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate'] - const onBeforeUnmount: typeof import('vue')['onBeforeUnmount'] - const onBeforeUpdate: typeof import('vue')['onBeforeUpdate'] - const onDeactivated: typeof import('vue')['onDeactivated'] - const onErrorCaptured: typeof import('vue')['onErrorCaptured'] - const onMounted: typeof import('vue')['onMounted'] - const onRenderTracked: typeof import('vue')['onRenderTracked'] - const onRenderTriggered: typeof import('vue')['onRenderTriggered'] - const onScopeDispose: typeof import('vue')['onScopeDispose'] - const onServerPrefetch: typeof import('vue')['onServerPrefetch'] - const onUnmounted: typeof import('vue')['onUnmounted'] - const onUpdated: typeof import('vue')['onUpdated'] - const provide: typeof import('vue')['provide'] - const reactive: typeof import('vue')['reactive'] - const readonly: typeof import('vue')['readonly'] - const ref: typeof import('vue')['ref'] - const required: typeof import('@/utils/formRules')['required'] - const resolveComponent: typeof import('vue')['resolveComponent'] - const shallowReactive: typeof import('vue')['shallowReactive'] - const shallowReadonly: typeof import('vue')['shallowReadonly'] - const shallowRef: typeof import('vue')['shallowRef'] - const toRaw: typeof import('vue')['toRaw'] - const toRef: typeof import('vue')['toRef'] - const toRefs: typeof import('vue')['toRefs'] - const triggerRef: typeof import('vue')['triggerRef'] - const unref: typeof import('vue')['unref'] - const useAttrs: typeof import('vue')['useAttrs'] - const useCrudSchemas: typeof import('@/hooks/web/useCrudSchemas')['useCrudSchemas'] - const useCssModule: typeof import('vue')['useCssModule'] - const useCssVars: typeof import('vue')['useCssVars'] - const useI18n: typeof import('@/hooks/web/useI18n')['useI18n'] - const useLink: typeof import('vue-router')['useLink'] - const useMessage: typeof import('@/hooks/web/useMessage')['useMessage'] - const useRoute: typeof import('vue-router')['useRoute'] - const useRouter: typeof import('vue-router')['useRouter'] - const useSlots: typeof import('vue')['useSlots'] - const useTable: typeof import('@/hooks/web/useTable')['useTable'] - const useVxeCrudSchemas: typeof import('@/hooks/web/useVxeCrudSchemas')['useVxeCrudSchemas'] - const useXTable: typeof import('@/hooks/web/useXTable')['useXTable'] - const watch: typeof import('vue')['watch'] - const watchEffect: typeof import('vue')['watchEffect'] - const watchPostEffect: typeof import('vue')['watchPostEffect'] - const watchSyncEffect: typeof import('vue')['watchSyncEffect'] -} -// for type re-export -declare global { - // @ts-ignore - export type { Component, ComponentPublicInstance, ComputedRef, InjectionKey, PropType, Ref, VNode } from 'vue' -} From 4f3e7ecaac25db502ed06fc9f0021cb708b63a38 Mon Sep 17 00:00:00 2001 From: dhb52 Date: Fri, 14 Apr 2023 15:22:23 +0800 Subject: [PATCH 036/119] fix: WxMpSelect => WxAccountSelect --- src/views/mp/autoReply/index.vue | 4 ++-- src/views/mp/draft/index.vue | 4 ++-- src/views/mp/freePublish/index.vue | 4 ++-- src/views/mp/material/index.vue | 4 ++-- src/views/mp/menu/index.vue | 4 ++-- src/views/mp/tag/index.vue | 4 ++-- src/views/mp/user/index.vue | 4 ++-- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/views/mp/autoReply/index.vue b/src/views/mp/autoReply/index.vue index 77bcf6f7..0fd6001d 100644 --- a/src/views/mp/autoReply/index.vue +++ b/src/views/mp/autoReply/index.vue @@ -5,7 +5,7 @@ - + @@ -183,7 +183,7 @@ import WxVoicePlayer from '@/views/mp/components/wx-voice-play/main.vue' import WxMusic from '@/views/mp/components/wx-music/main.vue' import WxNews from '@/views/mp/components/wx-news/main.vue' import WxReplySelect from '@/views/mp/components/wx-reply/main.vue' -import WxMpSelect from '@/views/mp/components/WxMpSelect.vue' +import WxAccountSelect from '@/views/mp/components/wx-account-select/main.vue' import * as MpAutoReplyApi from '@/api/mp/autoReply' import { DICT_TYPE, getDictOptions } from '@/utils/dict' import { dateFormatter } from '@/utils/formatTime' diff --git a/src/views/mp/draft/index.vue b/src/views/mp/draft/index.vue index 0cc70507..bd9e5b74 100644 --- a/src/views/mp/draft/index.vue +++ b/src/views/mp/draft/index.vue @@ -11,7 +11,7 @@ label-width="68px" > - + @@ -259,7 +259,7 @@ import { Editor } from '@/components/Editor' import WxNews from '@/views/mp/components/wx-news/main.vue' import WxMaterialSelect from '@/views/mp/components/wx-material-select/main.vue' -import WxMpSelect from '@/views/mp/components/WxMpSelect.vue' +import WxAccountSelect from '@/views/mp/components/wx-account-select/main.vue' import { getAccessToken } from '@/utils/auth' import * as MpDraftApi from '@/api/mp/draft' import * as MpFreePublishApi from '@/api/mp/freePublish' diff --git a/src/views/mp/freePublish/index.vue b/src/views/mp/freePublish/index.vue index 7a15b31f..0a473f1d 100644 --- a/src/views/mp/freePublish/index.vue +++ b/src/views/mp/freePublish/index.vue @@ -11,7 +11,7 @@ label-width="68px" > - + @@ -51,7 +51,7 @@ + + diff --git a/src/views/mp/message/index.vue b/src/views/mp/message/index.vue index 4ab19fda..ca7e0d7e 100644 --- a/src/views/mp/message/index.vue +++ b/src/views/mp/message/index.vue @@ -58,124 +58,7 @@ - - - - - - - - - - - - - - - + - - - - - + + + + + From 5f1aa869120be878c3aca03648b799b02e95b18c Mon Sep 17 00:00:00 2001 From: dhb52 Date: Fri, 14 Apr 2023 19:43:50 +0800 Subject: [PATCH 039/119] =?UTF-8?q?chore:=20=E7=A7=BB=E9=99=A4quill?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 1d020d6d..1401347d 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,6 @@ "@form-create/element-ui": "^3.1.17", "@iconify/iconify": "^3.1.0", "@videojs-player/vue": "^1.0.0", - "@vueup/vue-quill": "^1.1.1", "@vueuse/core": "^9.13.0", "@wangeditor/editor": "^5.1.23", "@wangeditor/editor-for-vue": "^5.1.10", From b93491579c8afb85852faf5649976e8dcbc48642 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Fri, 14 Apr 2023 21:32:11 +0800 Subject: [PATCH 040/119] =?UTF-8?q?=E7=BB=99=E6=89=80=E6=9C=89=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E6=B7=BB=E5=8A=A0name=E5=B1=9E=E6=80=A7=E9=A2=84?= =?UTF-8?q?=E9=98=B2=E6=9C=AA=E7=9F=A5bug!!!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 4 +- src/components/Backtop/src/Backtop.vue | 2 +- .../ConfigGlobal/src/ConfigGlobal.vue | 4 +- .../src/ContentDetailWrap.vue | 10 +- .../ContentWrap/src/ContentWrap.vue | 4 +- src/components/CountTo/src/CountTo.vue | 2 +- src/components/Crontab/src/Crontab.vue | 102 ++++++++-------- src/components/Cropper/src/CopperModal.vue | 51 ++++---- src/components/Cropper/src/Cropper.vue | 4 +- src/components/Cropper/src/CropperAvatar.vue | 14 ++- .../Descriptions/src/Descriptions.vue | 10 +- src/components/Dialog/src/Dialog.vue | 18 +-- src/components/Echart/src/Echart.vue | 2 +- src/components/Editor/src/Editor.vue | 6 +- src/components/Error/src/Error.vue | 4 +- src/components/IFrame/src/IFrame.vue | 6 +- src/components/Icon/src/Icon.vue | 4 +- src/components/Icon/src/IconSelect.vue | 22 ++-- .../ImageViewer/src/ImageViewer.vue | 2 +- src/components/Infotip/src/Infotip.vue | 6 +- .../InputPassword/src/InputPassword.vue | 8 +- src/components/Pagination/index.vue | 10 +- src/components/Qrcode/src/Qrcode.vue | 9 +- src/components/Search/src/Search.vue | 24 ++-- src/components/Sticky/src/Sticky.vue | 5 +- src/components/Tooltip/src/Tooltip.vue | 3 +- src/components/Verifition/src/Verify.vue | 42 ++++--- .../Verifition/src/Verify/VerifyPoints.vue | 14 +-- .../Verifition/src/Verify/VerifySlide.vue | 22 ++-- src/components/XButton/src/XButton.vue | 7 +- src/components/XButton/src/XTextButton.vue | 7 +- src/layout/components/AppView.vue | 2 +- .../components/Collapse/src/Collapse.vue | 6 +- .../ContextMenu/src/ContextMenu.vue | 11 +- src/layout/components/Footer/src/Footer.vue | 2 +- .../LocaleDropdown/src/LocaleDropdown.vue | 8 +- src/layout/components/Logo/src/Logo.vue | 6 +- src/layout/components/Message/src/Message.vue | 19 ++- .../components/Screenfull/src/Screenfull.vue | 6 +- src/layout/components/Setting/src/Setting.vue | 16 +-- .../src/components/ColorRadioPicker.vue | 6 +- .../src/components/InterfaceDisplay.vue | 2 +- .../src/components/LayoutRadioPicker.vue | 2 +- .../SizeDropdown/src/SizeDropdown.vue | 4 +- .../components/TagsView/src/TagsView.vue | 39 ++++--- .../ThemeSwitch/src/ThemeSwitch.vue | 10 +- .../components/UserInfo/src/UserInfo.vue | 2 +- src/views/Error/403.vue | 2 +- src/views/Error/404.vue | 2 +- src/views/Error/500.vue | 2 +- src/views/Home/Index2.vue | 109 +++++++++--------- src/views/Login/Login.vue | 2 +- src/views/Login/components/LoginForm.vue | 42 +++---- src/views/Login/components/LoginFormTitle.vue | 2 +- src/views/Login/components/MobileForm.vue | 30 ++--- src/views/Login/components/QrCodeForm.vue | 8 +- src/views/Login/components/RegisterForm.vue | 20 ++-- src/views/Profile/components/BasicInfo.vue | 6 +- src/views/Profile/components/ProfileUser.vue | 31 +++-- src/views/Profile/components/ResetPwd.vue | 8 +- src/views/Profile/components/UserAvatar.vue | 11 +- src/views/bpm/form/editor/index.vue | 11 +- src/views/bpm/group/UserGroupForm.vue | 10 +- src/views/bpm/model/ModelForm.vue | 33 +++--- src/views/bpm/model/ModelImportForm.vue | 29 ++--- src/views/bpm/oa/leave/create.vue | 21 ++-- src/views/bpm/oa/leave/detail.vue | 6 +- .../detail/ProcessInstanceBpmnViewer.vue | 10 +- .../detail/ProcessInstanceTaskList.vue | 10 +- .../detail/TaskUpdateAssigneeForm.vue | 8 +- src/views/bpm/task/done/TaskDetail.vue | 6 +- .../bpm/taskAssignRule/TaskAssignRuleForm.vue | 39 ++++--- .../infra/apiAccessLog/ApiAccessLogDetail.vue | 10 +- .../infra/apiErrorLog/ApiErrorLogDetail.vue | 18 +-- src/views/infra/codegen/EditTable.vue | 5 +- src/views/infra/codegen/ImportTable.vue | 43 ++++--- src/views/infra/codegen/PreviewCode.vue | 29 ++--- .../codegen/components/BasicInfoForm.vue | 14 +-- .../codegen/components/ColumInfoForm.vue | 28 ++--- .../codegen/components/GenerateInfoForm.vue | 18 +-- src/views/infra/config/ConfigForm.vue | 10 +- .../dataSourceConfig/DataSourceConfigForm.vue | 8 +- src/views/infra/file/FileForm.vue | 29 ++--- src/views/infra/fileConfig/FileConfigForm.vue | 13 ++- src/views/infra/job/JobDetail.vue | 6 +- src/views/infra/job/logger/JobLogDetail.vue | 6 +- src/views/infra/webSocket/index.vue | 14 +-- .../mall/product/property/PropertyForm.vue | 11 +- .../mall/product/property/value/ValueForm.vue | 11 +- src/views/mp/account/AccountForm.vue | 11 +- .../mp/components/wx-editor/WxEditor.vue | 22 ++-- src/views/mp/components/wx-news/main.vue | 18 ++- src/views/mp/tag/TagForm.vue | 9 +- src/views/mp/user/UserForm.vue | 11 +- src/views/pay/app/AppForm.vue | 9 +- src/views/pay/merchant/MerchantForm.vue | 11 +- src/views/pay/order/OrderDetail.vue | 6 +- src/views/pay/refund/RefundDetail.vue | 6 +- src/views/system/area/AreaForm.vue | 11 +- src/views/system/dept/DeptForm.vue | 23 ++-- src/views/system/dict/DictTypeForm.vue | 13 ++- src/views/system/dict/data/DictDataForm.vue | 15 +-- src/views/system/errorCode/ErrorCodeForm.vue | 16 +-- src/views/system/loginlog/LoginLogDetail.vue | 6 +- .../system/mail/account/MailAccountDetail.vue | 6 +- .../system/mail/account/MailAccountForm.vue | 11 +- src/views/system/mail/log/MailLogDetail.vue | 6 +- .../system/mail/template/MailTemplateForm.vue | 13 ++- .../mail/template/MailTemplateSendForm.vue | 11 +- src/views/system/menu/MenuForm.vue | 67 +++++------ src/views/system/notice/NoticeForm.vue | 15 +-- .../notify/message/NotifyMessageDetail.vue | 6 +- .../notify/my/MyNotifyMessageDetail.vue | 8 +- src/views/system/oauth2/client/ClientForm.vue | 33 +++--- .../system/operatelog/OperateLogDetail.vue | 14 +-- src/views/system/post/PostForm.vue | 12 +- src/views/system/role/RoleAssignMenuForm.vue | 21 ++-- .../system/role/RoleDataPermissionForm.vue | 29 ++--- src/views/system/role/RoleForm.vue | 13 ++- src/views/system/role/index.vue | 101 ++++++++-------- .../sensitiveWord/SensitiveWordForm.vue | 13 ++- .../sensitiveWord/SensitiveWordTestForm.vue | 15 +-- src/views/system/sensitiveWord/index.vue | 90 ++++++++------- .../system/sms/channel/SmsChannelForm.vue | 11 +- src/views/system/sms/log/SmsLogDetail.vue | 6 +- .../system/sms/template/SmsTemplateForm.vue | 15 +-- .../sms/template/SmsTemplateSendForm.vue | 11 +- src/views/system/tenant/TenantForm.vue | 20 ++-- .../tenantPackage/TenantPackageForm.vue | 19 +-- src/views/system/user/DeptTree.vue | 10 +- src/views/system/user/UserAssignRoleForm.vue | 9 +- src/views/system/user/UserForm.vue | 19 +-- src/views/system/user/UserImportForm.vue | 28 ++--- 133 files changed, 1126 insertions(+), 993 deletions(-) diff --git a/src/App.vue b/src/App.vue index a7867a1c..75edd24f 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,4 +1,4 @@ - - 格式支持 mp3/wma/wav/amr,文件大小不超过 2M,播放长度不超过 60s - - + @@ -71,7 +71,6 @@ > - @@ -85,21 +84,18 @@ - - - From ae74af59fc2db7c7340d911cbe1a5d818ddb3a7e Mon Sep 17 00:00:00 2001 From: dhb52 Date: Sat, 15 Apr 2023 16:54:36 +0800 Subject: [PATCH 057/119] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A0=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/mp/material/components/UploadFile.vue | 5 +++-- src/views/mp/material/components/UploadVideo.vue | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/views/mp/material/components/UploadFile.vue b/src/views/mp/material/components/UploadFile.vue index 3ab62224..93e6dd41 100644 --- a/src/views/mp/material/components/UploadFile.vue +++ b/src/views/mp/material/components/UploadFile.vue @@ -7,6 +7,7 @@ :file-list="fileList" :data="uploadData" :on-progress="() => (uploading = true)" + :on-error="(err: Error) => message.error(`上传失败: ${err.message}`)" :before-upload="beforeUpload" :on-success="handleUploadSuccess" > @@ -33,7 +34,7 @@ import { const message = useMessage() -const props = defineProps<{ type: boolean }>() +const props = defineProps<{ type: MaterialType }>() const fileList = ref([]) const emit = defineEmits<{ @@ -47,7 +48,7 @@ const uploadData: UploadData = reactive({ }) const uploading = ref(false) -const beforeUpload = props.type == MaterialType.Image ? beforeImageUpload : beforeVoiceUpload +const beforeUpload = props.type === MaterialType.Image ? beforeImageUpload : beforeVoiceUpload const handleUploadSuccess: UploadProps['onSuccess'] = (res: any) => { if (res.code !== 0) { diff --git a/src/views/mp/material/components/UploadVideo.vue b/src/views/mp/material/components/UploadVideo.vue index 816711d1..1221273b 100644 --- a/src/views/mp/material/components/UploadVideo.vue +++ b/src/views/mp/material/components/UploadVideo.vue @@ -9,6 +9,7 @@ :data="uploadData" :before-upload="beforeVideoUpload" :on-progress="() => (uploading = true)" + :on-error="(err: Error) => message.error(`上传失败: ${err.message}`)" :on-success="handleUploadSuccess" ref="uploadVideoRef" :auto-upload="false" From e3660e0b20f4515e1c524b079cfc8f6937e288ef Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 15 Apr 2023 17:07:41 +0800 Subject: [PATCH 058/119] =?UTF-8?q?REVIEW=20=E7=AB=99=E5=86=85=E4=BF=A1?= =?UTF-8?q?=E6=A8=A1=E7=89=88=E7=9A=84=E5=8F=91=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system/notify/template/index.ts | 23 ++-- .../notify/template/NotifyTemplateForm.vue | 13 +- .../template/NotifyTemplateSendForm.vue | 127 ++++++++++++++++++ src/views/system/notify/template/index.vue | 117 ++-------------- 4 files changed, 152 insertions(+), 128 deletions(-) create mode 100644 src/views/system/notify/template/NotifyTemplateSendForm.vue diff --git a/src/api/system/notify/template/index.ts b/src/api/system/notify/template/index.ts index f2bf5d27..50196e85 100644 --- a/src/api/system/notify/template/index.ts +++ b/src/api/system/notify/template/index.ts @@ -1,24 +1,17 @@ import request from '@/config/axios' export interface NotifyTemplateVO { - id: number | null + id?: number name: string nickname: string code: string content: string - type: number | null + type: number params: string - status: number | null + status: number remark: string } -export interface NotifyTemplatePageReqVO extends PageParam { - name?: string - code?: string - status?: number - createTime?: Date[] -} - export interface NotifySendReqVO { userId: number | null templateCode: string @@ -26,22 +19,22 @@ export interface NotifySendReqVO { } // 查询站内信模板列表 -export const getNotifyTemplatePageApi = async (params: NotifyTemplatePageReqVO) => { +export const getNotifyTemplatePage = async (params: PageParam) => { return await request.get({ url: '/system/notify-template/page', params }) } // 查询站内信模板详情 -export const getNotifyTemplateApi = async (id: number) => { +export const getNotifyTemplate = async (id: number) => { return await request.get({ url: '/system/notify-template/get?id=' + id }) } // 新增站内信模板 -export const createNotifyTemplateApi = async (data: NotifyTemplateVO) => { +export const createNotifyTemplate = async (data: NotifyTemplateVO) => { return await request.post({ url: '/system/notify-template/create', data }) } // 修改站内信模板 -export const updateNotifyTemplateApi = async (data: NotifyTemplateVO) => { +export const updateNotifyTemplate = async (data: NotifyTemplateVO) => { return await request.put({ url: '/system/notify-template/update', data }) } @@ -51,6 +44,6 @@ export const deleteNotifyTemplateApi = async (id: number) => { } // 发送站内信 -export const sendNotifyApi = (data: NotifySendReqVO) => { +export const sendNotify = (data: NotifySendReqVO) => { return request.post({ url: '/system/notify-template/send-notify', data }) } diff --git a/src/views/system/notify/template/NotifyTemplateForm.vue b/src/views/system/notify/template/NotifyTemplateForm.vue index d600a59c..55e51ebd 100644 --- a/src/views/system/notify/template/NotifyTemplateForm.vue +++ b/src/views/system/notify/template/NotifyTemplateForm.vue @@ -25,7 +25,7 @@ v-for="dict in getIntDictOptions(DICT_TYPE.SYSTEM_NOTIFY_TEMPLATE_TYPE)" :key="dict.value" :label="dict.label" - :value="parseInt(dict.value)" + :value="dict.value" /> @@ -34,7 +34,7 @@ {{ dict.label }} @@ -81,6 +81,7 @@ const formRules = reactive({ }) const formRef = ref() // 表单 Ref +/** 打开弹窗 */ const open = async (type: string, id?: number) => { dialogVisible.value = true dialogTitle.value = type @@ -90,7 +91,7 @@ const open = async (type: string, id?: number) => { if (id) { formLoading.value = true try { - formData.value = await NotifyTemplateApi.getNotifyTemplateApi(id) + formData.value = await NotifyTemplateApi.getNotifyTemplate(id) } finally { formLoading.value = false } @@ -107,12 +108,12 @@ const submitForm = async () => { if (!valid) return formLoading.value = true try { - const data = formData.value as NotifyTemplateApi.NotifyTemplateVO + const data = formData.value as unknown as NotifyTemplateApi.NotifyTemplateVO if (formType.value === 'create') { - await NotifyTemplateApi.createNotifyTemplateApi(data) + await NotifyTemplateApi.createNotifyTemplate(data) message.success('新增成功') } else { - await NotifyTemplateApi.updateNotifyTemplateApi(data) + await NotifyTemplateApi.updateNotifyTemplate(data) message.success('修改成功') } dialogVisible.value = false diff --git a/src/views/system/notify/template/NotifyTemplateSendForm.vue b/src/views/system/notify/template/NotifyTemplateSendForm.vue new file mode 100644 index 00000000..9e292a8d --- /dev/null +++ b/src/views/system/notify/template/NotifyTemplateSendForm.vue @@ -0,0 +1,127 @@ + + diff --git a/src/views/system/notify/template/index.vue b/src/views/system/notify/template/index.vue index 9d37befb..6d1938ad 100644 --- a/src/views/system/notify/template/index.vue +++ b/src/views/system/notify/template/index.vue @@ -1,8 +1,8 @@ @@ -231,12 +231,8 @@ const sendMsg = async () => { list.value = [...list.value, ...[data]] scrollToBottom() - //ts检查的時候会判断这个组件可能是空的,所以需要进行断言。 - //避免 tab 的数据未清理 - const deleteObj = replySelectRef.value?.deleteObj - if (deleteObj) { - deleteObj() - } + // 发送后清空数据 + replySelectRef.value?.clear() } const loadingMore = () => { @@ -333,6 +329,7 @@ const scrollToBottom = () => { .send-but { float: right; - margin-top: 8px !important; + margin-top: 8px; + margin-bottom: 8px; } diff --git a/src/views/mp/components/wx-reply/components/TabImage.vue b/src/views/mp/components/wx-reply/components/TabImage.vue new file mode 100644 index 00000000..827ef11c --- /dev/null +++ b/src/views/mp/components/wx-reply/components/TabImage.vue @@ -0,0 +1,172 @@ + + + + + diff --git a/src/views/mp/components/wx-reply/components/TabMusic.vue b/src/views/mp/components/wx-reply/components/TabMusic.vue new file mode 100644 index 00000000..5a50cbf0 --- /dev/null +++ b/src/views/mp/components/wx-reply/components/TabMusic.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/src/views/mp/components/wx-reply/components/TabNews.vue b/src/views/mp/components/wx-reply/components/TabNews.vue new file mode 100644 index 00000000..13ae9570 --- /dev/null +++ b/src/views/mp/components/wx-reply/components/TabNews.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/src/views/mp/components/wx-reply/components/TabText.vue b/src/views/mp/components/wx-reply/components/TabText.vue new file mode 100644 index 00000000..f6981a73 --- /dev/null +++ b/src/views/mp/components/wx-reply/components/TabText.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/src/views/mp/components/wx-reply/components/TabVideo.vue b/src/views/mp/components/wx-reply/components/TabVideo.vue new file mode 100644 index 00000000..c924bc2a --- /dev/null +++ b/src/views/mp/components/wx-reply/components/TabVideo.vue @@ -0,0 +1,132 @@ + + + + + diff --git a/src/views/mp/components/wx-reply/components/TabVoice.vue b/src/views/mp/components/wx-reply/components/TabVoice.vue new file mode 100644 index 00000000..7bcefced --- /dev/null +++ b/src/views/mp/components/wx-reply/components/TabVoice.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/src/views/mp/components/wx-reply/components/types.ts b/src/views/mp/components/wx-reply/components/types.ts new file mode 100644 index 00000000..d5273334 --- /dev/null +++ b/src/views/mp/components/wx-reply/components/types.ts @@ -0,0 +1,25 @@ +type ReplyType = '' | 'news' | 'image' | 'voice' | 'video' | 'music' | 'text' + +interface ObjData { + accountId: number + type: ReplyType + name: string | null + content: string | null + mediaId: string | null + url: string | null + title: string | null + description: string | null + thumbMediaId: string | null + thumbMediaUrl: string | null + musicUrl: string | null + hqMusicUrl: string | null + introduction: string | null + articles: any[] +} + +enum NewsType { + Published = '1', + Draft = '2' +} + +export { ObjData, NewsType } diff --git a/src/views/mp/components/wx-reply/main.vue b/src/views/mp/components/wx-reply/main.vue index 8e8b3eee..da523b6c 100644 --- a/src/views/mp/components/wx-reply/main.vue +++ b/src/views/mp/components/wx-reply/main.vue @@ -8,519 +8,63 @@ ④ 支持发送【视频】消息时,支持新建视频 --> - diff --git a/src/views/mp/autoReply/components/types.ts b/src/views/mp/autoReply/components/types.ts index d4d79ca4..0d78fd85 100644 --- a/src/views/mp/autoReply/components/types.ts +++ b/src/views/mp/autoReply/components/types.ts @@ -1,5 +1,5 @@ // 消息类型(Follow: 关注时回复;Message: 消息回复;Keyword: 关键词回复) -// 作为tab.name,enum的数字不能随意修改,与api参数相关 +// 作为 tab.name,enum 的数字不能随意修改,与 api 参数相关 export enum MsgType { Follow = 1, Message = 2, @@ -31,6 +31,7 @@ export interface ReplyForm { responseHqMusicUrl?: string } +// TODO @Dhb52:ObjData 这个类名可以在看看,ObjData 有点通用 export interface ObjData { type: ReplyType accountId?: number diff --git a/src/views/mp/autoReply/index.vue b/src/views/mp/autoReply/index.vue index a28d23d5..2d9b492d 100644 --- a/src/views/mp/autoReply/index.vue +++ b/src/views/mp/autoReply/index.vue @@ -49,11 +49,12 @@ :loading="loading" :list="list" :msg-type="msgType" - @on-update="(id) => onUpdate(id)" - @on-delete="(id) => onDelete(id)" + @on-update="onUpdate" + @on-delete="onDelete" /> + @@ -70,7 +71,7 @@ (MsgType.Keyword) -// 允许选择的请求消息类型 -const RequestMessageTypes = ['text', 'image', 'voice', 'video', 'shortvideo', 'location', 'link'] -// 遮罩层 -const loading = ref(true) -// 总条数 -const total = ref(0) -// 自动回复列表 -const list = ref([]) - +const msgType = ref(MsgType.Keyword) // 消息类型 +const RequestMessageTypes = ['text', 'image', 'voice', 'video', 'shortvideo', 'location', 'link'] // 允许选择的请求消息类型 +const loading = ref(true) // 遮罩层 +const total = ref(0) // 总条数 +const list = ref([]) // 自动回复列表 +const formRef = ref() // 表单 ref // 查询参数 interface QueryParams { pageNo: number @@ -127,13 +121,9 @@ const queryParams: QueryParams = reactive({ accountId: undefined }) -// 弹出层标题 -const dialogTitle = ref('') -// 是否显示弹出层 -const showFormDialog = ref(false) -// 表单参数 - -const replyForm = ref({}) +const dialogTitle = ref('') // 弹出层标题 +const showFormDialog = ref(false) // 是否显示弹出层 +const replyForm = ref({}) // 表单参数 // 回复消息 const objData = ref({ type: 'text', From 7997614a3ce423a5f8618ff726ea35e8cc83695e Mon Sep 17 00:00:00 2001 From: YunaiV Date: Wed, 19 Apr 2023 19:16:14 +0800 Subject: [PATCH 081/119] =?UTF-8?q?REVIEW=20=E5=85=AC=E4=BC=97=E5=8F=B7?= =?UTF-8?q?=E7=9A=84=E6=B6=88=E6=81=AF=E5=9B=9E=E5=A4=8D=E5=BC=B9=E7=AA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/mp/components/wx-reply/components/TabImage.vue | 1 - src/views/mp/components/wx-reply/components/TabMusic.vue | 2 -- src/views/mp/components/wx-reply/components/TabNews.vue | 2 +- src/views/mp/components/wx-reply/components/TabText.vue | 2 -- src/views/mp/components/wx-reply/components/TabVoice.vue | 2 -- src/views/mp/components/wx-reply/main.vue | 1 + 6 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/views/mp/components/wx-reply/components/TabImage.vue b/src/views/mp/components/wx-reply/components/TabImage.vue index 827ef11c..eecc24cb 100644 --- a/src/views/mp/components/wx-reply/components/TabImage.vue +++ b/src/views/mp/components/wx-reply/components/TabImage.vue @@ -60,7 +60,6 @@ import { MaterialType, useBeforeUpload } from '@/views/mp/hooks/useUpload' import type { UploadRawFile } from 'element-plus' import { getAccessToken } from '@/utils/auth' import { ObjData } from './types' - const message = useMessage() const UPLOAD_URL = import.meta.env.VITE_API_BASEPATH + '/admin-api/mp/material/upload-temporary' diff --git a/src/views/mp/components/wx-reply/components/TabMusic.vue b/src/views/mp/components/wx-reply/components/TabMusic.vue index 5a50cbf0..2c3b04e5 100644 --- a/src/views/mp/components/wx-reply/components/TabMusic.vue +++ b/src/views/mp/components/wx-reply/components/TabMusic.vue @@ -117,5 +117,3 @@ const selectMaterial = (item: any) => { objData.value.thumbMediaUrl = item.url } - - diff --git a/src/views/mp/components/wx-reply/components/TabNews.vue b/src/views/mp/components/wx-reply/components/TabNews.vue index 13ae9570..bb9272e7 100644 --- a/src/views/mp/components/wx-reply/components/TabNews.vue +++ b/src/views/mp/components/wx-reply/components/TabNews.vue @@ -18,7 +18,7 @@ {{ newsType === NewsType.Published ? '选择已发布图文' : '选择草稿箱图文' }} - + diff --git a/src/views/mp/components/wx-reply/components/TabText.vue b/src/views/mp/components/wx-reply/components/TabText.vue index f6981a73..bd7b0187 100644 --- a/src/views/mp/components/wx-reply/components/TabText.vue +++ b/src/views/mp/components/wx-reply/components/TabText.vue @@ -25,5 +25,3 @@ const content = computed({ } }) - - diff --git a/src/views/mp/components/wx-reply/components/TabVoice.vue b/src/views/mp/components/wx-reply/components/TabVoice.vue index 7bcefced..6d40a052 100644 --- a/src/views/mp/components/wx-reply/components/TabVoice.vue +++ b/src/views/mp/components/wx-reply/components/TabVoice.vue @@ -51,7 +51,6 @@ - diff --git a/src/views/mp/components/wx-location/main.vue b/src/views/mp/components/wx-location/main.vue index 17598136..7f1333ee 100644 --- a/src/views/mp/components/wx-location/main.vue +++ b/src/views/mp/components/wx-location/main.vue @@ -1,5 +1,5 @@ diff --git a/src/views/mp/components/wx-reply/components/TabMusic.vue b/src/views/mp/components/wx-reply/components/TabMusic.vue index 2c3b04e5..b19fb592 100644 --- a/src/views/mp/components/wx-reply/components/TabMusic.vue +++ b/src/views/mp/components/wx-reply/components/TabMusic.vue @@ -1,14 +1,11 @@ diff --git a/src/views/mp/components/wx-reply/components/TabNews.vue b/src/views/mp/components/wx-reply/components/TabNews.vue index bb9272e7..88a82a53 100644 --- a/src/views/mp/components/wx-reply/components/TabNews.vue +++ b/src/views/mp/components/wx-reply/components/TabNews.vue @@ -1,11 +1,8 @@ diff --git a/src/views/mp/components/wx-reply/components/TabText.vue b/src/views/mp/components/wx-reply/components/TabText.vue index bd7b0187..aac698e8 100644 --- a/src/views/mp/components/wx-reply/components/TabText.vue +++ b/src/views/mp/components/wx-reply/components/TabText.vue @@ -1,15 +1,10 @@ diff --git a/src/views/mp/components/wx-reply/components/TabVoice.vue b/src/views/mp/components/wx-reply/components/TabVoice.vue index 6d40a052..c4868cf8 100644 --- a/src/views/mp/components/wx-reply/components/TabVoice.vue +++ b/src/views/mp/components/wx-reply/components/TabVoice.vue @@ -1,12 +1,9 @@ diff --git a/src/views/mp/components/wx-reply/components/types.ts b/src/views/mp/components/wx-reply/components/types.ts index d5273334..3e07d6e5 100644 --- a/src/views/mp/components/wx-reply/components/types.ts +++ b/src/views/mp/components/wx-reply/components/types.ts @@ -1,25 +1,54 @@ -type ReplyType = '' | 'news' | 'image' | 'voice' | 'video' | 'music' | 'text' +enum ReplyType { + News = 'news', + Image = 'image', + Voice = 'voice', + Video = 'video', + Music = 'music', + Text = 'text' +} -interface ObjData { +interface _Reply { accountId: number type: ReplyType - name: string | null - content: string | null - mediaId: string | null - url: string | null - title: string | null - description: string | null - thumbMediaId: string | null - thumbMediaUrl: string | null - musicUrl: string | null - hqMusicUrl: string | null - introduction: string | null - articles: any[] + name?: string | null + content?: string | null + mediaId?: string | null + url?: string | null + title?: string | null + description?: string | null + thumbMediaId?: string | null + thumbMediaUrl?: string | null + musicUrl?: string | null + hqMusicUrl?: string | null + introduction?: string | null + articles?: any[] } +type Reply = _Reply //Partial<_Reply> + enum NewsType { Published = '1', Draft = '2' } -export { ObjData, NewsType } +/** 利用旧的reply[accountId, type]初始化新的Reply */ +const createEmptyReply = (old: Reply | Ref): Reply => { + return { + accountId: unref(old).accountId, + type: unref(old).type, + name: null, + content: null, + mediaId: null, + url: null, + title: null, + description: null, + thumbMediaId: null, + thumbMediaUrl: null, + musicUrl: null, + hqMusicUrl: null, + introduction: null, + articles: [] + } +} + +export { Reply, NewsType, ReplyType, createEmptyReply } diff --git a/src/views/mp/components/wx-reply/index.ts b/src/views/mp/components/wx-reply/index.ts new file mode 100644 index 00000000..d1da217e --- /dev/null +++ b/src/views/mp/components/wx-reply/index.ts @@ -0,0 +1,7 @@ +import { Reply, NewsType, ReplyType, createEmptyReply } from './components/types' + +import WxReplySelect from './main.vue' + +export type { Reply } +export { createEmptyReply, NewsType, ReplyType } +export default WxReplySelect diff --git a/src/views/mp/components/wx-reply/main.vue b/src/views/mp/components/wx-reply/main.vue index b00e4345..32a31222 100644 --- a/src/views/mp/components/wx-reply/main.vue +++ b/src/views/mp/components/wx-reply/main.vue @@ -8,24 +8,59 @@ ④ 支持发送【视频】消息时,支持新建视频 --> diff --git a/src/views/mp/components/wx-msg/card.scss b/src/views/mp/components/wx-msg/card.scss index 67ac9219..7fbbe802 100644 --- a/src/views/mp/components/wx-msg/card.scss +++ b/src/views/mp/components/wx-msg/card.scss @@ -1,25 +1,27 @@ -.avue-card{ - &__item{ +.avue-card { + &__item { margin-bottom: 16px; border: 1px solid #e8e8e8; background-color: #fff; box-sizing: border-box; - color: rgba(0,0,0,.65); + color: rgba(0, 0, 0, 0.65); font-size: 14px; font-variant: tabular-nums; line-height: 1.5; list-style: none; - font-feature-settings: "tnum"; + 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); + height: 200px; + + &:hover { + border-color: rgba(0, 0, 0, 0.09); + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.09); } - &--add{ - border:1px dashed #000; + + &--add { + border: 1px dashed #000; width: 100%; - color: rgba(0,0,0,.45); + color: rgba(0, 0, 0, 0.45); background-color: #fff; border-color: #d9d9d9; border-radius: 2px; @@ -27,74 +29,87 @@ align-items: center; justify-content: center; font-size: 16px; - i{ + + i { margin-right: 10px; } - &:hover{ + + &:hover { color: #40a9ff; background-color: #fff; border-color: #40a9ff; } } } - &__body{ + + &__body { display: flex; padding: 24px; } - &__detail{ - flex:1 + + &__detail { + flex: 1; } - &__avatar{ + + &__avatar { width: 48px; height: 48px; border-radius: 48px; overflow: hidden; margin-right: 12px; - img{ + + img { width: 100%; height: 100%; } } - &__title{ - color: rgba(0,0,0,.85); + + &__title { + color: rgba(0, 0, 0, 0.85); margin-bottom: 12px; font-size: 16px; - &:hover{ - color:#1890ff; + + &:hover { + color: #1890ff; } } - &__info{ - color: rgba(0,0,0,.45); + + &__info { + color: rgba(0, 0, 0, 0.45); display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; height: 64px; } - &__menu{ + + &__menu { display: flex; - justify-content:space-around; + justify-content: space-around; height: 50px; background: #f7f9fa; - color: rgba(0,0,0,.45); + color: rgba(0, 0, 0, 0.45); text-align: center; line-height: 50px; - &:hover{ - color:#1890ff; + + &:hover { + color: #1890ff; } } } /** joolun 额外加的 */ .avue-comment__main { - flex: unset!important; - border-radius: 5px!important; - margin: 0 8px!important; + 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 index 3f1341b2..aaeaccaf 100644 --- a/src/views/mp/components/wx-msg/comment.scss +++ b/src/views/mp/components/wx-msg/comment.scss @@ -1,27 +1,33 @@ /* 来自 https://github.com/nmxiaowei/avue/blob/master/styles/src/element-ui/comment.scss */ -.avue-comment{ +.avue-comment { margin-bottom: 30px; display: flex; align-items: flex-start; - &--reverse{ - flex-direction:row-reverse; - .avue-comment__main{ - &:before,&:after{ + + &--reverse { + flex-direction: row-reverse; + + .avue-comment__main { + &:before, + &:after { left: auto; right: -8px; border-width: 8px 0 8px 8px; } - &:before{ + + &:before { border-left-color: #dedede; } - &:after{ + + &:after { border-left-color: #f8f8f8; margin-right: 1px; margin-left: auto; } } } - &__avatar{ + + &__avatar { width: 48px; height: 48px; border-radius: 50%; @@ -29,7 +35,8 @@ box-sizing: border-box; vertical-align: middle; } - &__header{ + + &__header { padding: 5px 15px; background: #f8f8f8; border-bottom: 1px solid #eee; @@ -37,18 +44,22 @@ align-items: center; justify-content: space-between; } - &__author{ + + &__author { font-weight: 700; font-size: 14px; color: #999; } - &__main{ - flex:1; + + &__main { + flex: 1; margin: 0 20px; position: relative; border: 1px solid #dedede; border-radius: 2px; - &:before,&:after{ + + &:before, + &:after { position: absolute; top: 10px; left: -8px; @@ -56,32 +67,39 @@ width: 0; height: 0; display: block; - content: " "; + 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{ + + &:after { border-right-color: #f8f8f8; margin-left: 1px; z-index: 2; } } - &__body{ + + &__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-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; + + 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-music/main.vue b/src/views/mp/components/wx-music/main.vue index 52555f15..70f4c58b 100644 --- a/src/views/mp/components/wx-music/main.vue +++ b/src/views/mp/components/wx-music/main.vue @@ -56,5 +56,5 @@ defineExpose({ diff --git a/src/views/mp/components/wx-reply/components/TabImage.vue b/src/views/mp/components/wx-reply/components/TabImage.vue index 1a82c3aa..71950e04 100644 --- a/src/views/mp/components/wx-reply/components/TabImage.vue +++ b/src/views/mp/components/wx-reply/components/TabImage.vue @@ -123,7 +123,7 @@ const selectMaterial = (item) => { .select-item { width: 280px; padding: 10px; - margin: 0 auto 10px auto; + margin: 0 auto 10px; border: 1px solid #eaeaea; .material-img { @@ -131,11 +131,11 @@ const selectMaterial = (item) => { } .item-name { - font-size: 12px; overflow: hidden; + font-size: 12px; + text-align: center; text-overflow: ellipsis; white-space: nowrap; - text-align: center; .item-infos { width: 30%; @@ -149,18 +149,18 @@ const selectMaterial = (item) => { } .col-select { - border: 1px solid rgb(234, 234, 234); - padding: 50px 0px; - height: 160px; width: 49.5%; + height: 160px; + padding: 50px 0; + border: 1px solid rgb(234 234 234); } .col-add { - border: 1px solid rgb(234, 234, 234); - padding: 50px 0px; - height: 160px; - width: 49.5%; float: right; + width: 49.5%; + height: 160px; + padding: 50px 0; + border: 1px solid rgb(234 234 234); .el-upload__tip { line-height: 18px; diff --git a/src/views/mp/components/wx-reply/components/TabNews.vue b/src/views/mp/components/wx-reply/components/TabNews.vue index 88a82a53..ecb5026d 100644 --- a/src/views/mp/components/wx-reply/components/TabNews.vue +++ b/src/views/mp/components/wx-reply/components/TabNews.vue @@ -65,7 +65,7 @@ const onDelete = () => { .select-item { width: 280px; padding: 10px; - margin: 0 auto 10px auto; + margin: 0 auto 10px; border: 1px solid #eaeaea; .ope-row { diff --git a/src/views/mp/components/wx-reply/components/TabVoice.vue b/src/views/mp/components/wx-reply/components/TabVoice.vue index c4868cf8..5c9f64a7 100644 --- a/src/views/mp/components/wx-reply/components/TabVoice.vue +++ b/src/views/mp/components/wx-reply/components/TabVoice.vue @@ -120,15 +120,15 @@ const selectMaterial = (item: Reply) => { diff --git a/src/views/mp/freePublish/index.vue b/src/views/mp/freePublish/index.vue index 2fda5100..08a202c2 100644 --- a/src/views/mp/freePublish/index.vue +++ b/src/views/mp/freePublish/index.vue @@ -102,19 +102,45 @@ const handleDelete = async (item: any) => { } diff --git a/src/views/mp/menu/index.vue b/src/views/mp/menu/index.vue index c8ed0835..442e33b5 100644 --- a/src/views/mp/menu/index.vue +++ b/src/views/mp/menu/index.vue @@ -367,7 +367,6 @@ div { margin-left: 20px; background-color: #e8e7e7; box-sizing: border-box; - box-sizing: border-box; } } From d99f9e98fbfccba07f0582d2fa6eb4266c7da791 Mon Sep 17 00:00:00 2001 From: dhb52 Date: Fri, 21 Apr 2023 23:35:31 +0800 Subject: [PATCH 091/119] =?UTF-8?q?feat:=20mp/menu=20=E6=8B=96=E5=8A=A8?= =?UTF-8?q?=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mp/menu/components/MenuPreviewer.vue | 46 ++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/src/views/mp/menu/components/MenuPreviewer.vue b/src/views/mp/menu/components/MenuPreviewer.vue index aca1c2ae..637c8805 100644 --- a/src/views/mp/menu/components/MenuPreviewer.vue +++ b/src/views/mp/menu/components/MenuPreviewer.vue @@ -4,6 +4,9 @@