diff --git a/src/pages/integrated/notice/detail.vue b/src/pages/integrated/notice/detail.vue
index 6f836d6..3c4cf33 100644
--- a/src/pages/integrated/notice/detail.vue
+++ b/src/pages/integrated/notice/detail.vue
@@ -60,9 +60,36 @@ const getActDetail = async () => {
const goGetCoupon = () => {
uni.navigateTo({ url: `/pages/merchant/merchant-activity?actId=${actDetail.value.actId}&actType=${actDetail.value.actType}` })
}
+const normalizeRichText = (html: string) => {
+ const origin = "https://stgl.pj.gov.cn"
+ return html.replace(/
]*>/gi, (imgTag) => {
+ let next = imgTag
+
+ next = next.replace(/\bsrc\s*=\s*(['"])(.*?)\1/i, (_m, quote: string, src: string) => {
+ let resolved = src
+ if (resolved?.startsWith("/api")) resolved = `${origin}${resolved}`
+ if (resolved?.startsWith("//")) resolved = `https:${resolved}`
+ return `src=${quote}${resolved}${quote}`
+ })
+
+ const styleMatch = next.match(/\bstyle\s*=\s*(['"])([\s\S]*?)\1/i)
+ const required = "max-width: 100%; height: auto; display: block;"
+ if (styleMatch) {
+ const quote = styleMatch[1]
+ const styleValue = styleMatch[2] ?? ""
+ if (styleValue.includes("max-width") || styleValue.includes("width")) return next
+ const merged = styleValue.trim().length ? `${styleValue.replace(/;?\s*$/, "; ")}${required}` : required
+ return next.replace(/\bstyle\s*=\s*(['"])([\s\S]*?)\1/i, `style=${quote}${merged}${quote}`)
+ }
+
+ return next.replace(/
{
- return detail.value.description?.replaceAll(`
{
-
+
-
+
-
+
订单信息
@@ -141,10 +139,8 @@ const doCancelRefund = async () => {
-
+
@@ -179,7 +175,8 @@ const doCancelRefund = async () => {
{{ state.refundDetail.applyDescription }}
-
+
审核人:
{{ state.refundDetail.auditUsername }}
@@ -197,18 +194,14 @@ const doCancelRefund = async () => {
-
+ @tap="doCancelRefund">
取消申请
-
+ @tap="router.jump('/pages/refund/apply', { id: state.detailId }, 2)">
重新申请
@@ -224,18 +217,18 @@ const doCancelRefund = async () => {
margin-top: 15rpx;
}
- & > view {
+ &>view {
color: #999;
font-size: 28rpx;
font-weight: 500;
line-height: 1.4em;
}
- & > view:nth-child(1) {
+ &>view:nth-child(1) {
width: 130rpx;
}
- & > view:nth-child(2) {
+ &>view:nth-child(2) {
flex: 1;
}
}
diff --git a/src/pages/tabbar/~individualOrder.vue b/src/pages/tabbar/~individualOrder.vue
index 8767494..d0adcc8 100644
--- a/src/pages/tabbar/~individualOrder.vue
+++ b/src/pages/tabbar/~individualOrder.vue
@@ -1,57 +1,42 @@
-
+
-
+
筛选
-
-
+
+
-
+
-
+
{{ v.merchantName }}
-
+
未支付
@@ -60,7 +45,7 @@
已核销
已取消(智能柜)
-
+
@@ -74,80 +59,82 @@
{{ v.username }}
{{ v.userMobile }}
- {{ hooks.useEnum("hardwareRefundStatusEnum", v.refundStatus) }}
+ {{ hooks.useEnum("hardwareRefundStatusEnum",
+ v.refundStatus) }}
+
-
+
商品
3物品
-
+
日期
- {{ hooks.useTime(v.createTime, "{y}-{m}-{d} {h}:{i}:{s}") }}
+ {{ hooks.useTime(v.createTime, "{y}-{m}-{d}
+ { h }: { i }: { s }") }}
-
+
下单时间
- {{ hooks.useTime(v.createTime, "{y}-{m}-{d} {h}:{i}:{s}") }}
+ {{ hooks.useTime(v.createTime, "{y}-{m}-{d} {h}:{i}:{s}")
+ }}
+
+ ¥ {{
+ hooks.useMoney(v.totalPrice) }}
- ¥ {{ hooks.useMoney(v.totalPrice) }}
{{ v.productDesc }}
-
-
-
-
-
- 未支付
- 已支付
- 售后
- 已核销
- 已取消(智能柜)
-
- ¥ {{ hooks.useMoney(v.totalPrice) }}
+
+
+
+
+
+ 未支付
+ 已支付
+ 售后
+ 已核销
+ 已取消(智能柜)
-
+ ¥ {{ hooks.useMoney(v.totalPrice) }}
+
+
+
- 售后详情
-
+ 售后详情
+
+
申请退款
-
+
-
+ }" @change="refundTabChange" />
-
+
{{ state.curOrder.merchantName }}
-
+
未支付
已支付
@@ -190,12 +177,16 @@
- {{ hooks.useEnum("hardwareRefundStatusEnum", state.curOrder.refundStatus) }}
+ {{ hooks.useEnum("hardwareRefundStatusEnum",
+ state.curOrder.refundStatus) }}
-
+
共 {{ state.curOrder.carList.length }} 件
- ¥ {{ hooks.useMoney(state.curOrder.totalPrice) }}
+ ¥ {{ hooks.useMoney(state.curOrder.totalPrice)
+ }}
+
@@ -234,7 +225,8 @@
{{ state.refundDetail.applyDescription }}
-
+
审核人:
{{ state.refundDetail.auditUsername }}
@@ -256,24 +248,12 @@
-
+
同意退款
-
+
拒绝退款
diff --git a/src/sheep/utils/request.ts b/src/sheep/utils/request.ts
index b69201f..383949c 100644
--- a/src/sheep/utils/request.ts
+++ b/src/sheep/utils/request.ts
@@ -226,8 +226,7 @@ const autoLogin = async (): Promise => {
function isZzdNeedSmsVerify(data: unknown): data is { needSmsVerify: true; bindSessionId: string; displayName?: string } {
if (!data || typeof data !== "object") return false
const o = data as Record
- const need =
- o.needSmsVerify === true || o.needSmsVerify === "true" || o.needSmsVerify === 1 || o.needSmsVerify === "1"
+ const need = o.needSmsVerify === true || o.needSmsVerify === "true" || o.needSmsVerify === 1 || o.needSmsVerify === "1"
const sid = o.bindSessionId
const sidStr = typeof sid === "string" ? sid : sid != null ? String(sid) : ""
return need && sidStr.length > 0