From 7381a330b2b999e1c20758b93608ba1884400fa4 Mon Sep 17 00:00:00 2001 From: chenhao Date: Mon, 25 May 2026 15:41:09 +0800 Subject: [PATCH] =?UTF-8?q?fix:=205.23=E6=96=87=E6=A1=A3=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 50 +++++ package.json | 1 + public/img/PointMall_Active.png | Bin 0 -> 3690 bytes public/img/PointMall_Inactive.png | Bin 0 -> 5706 bytes public/img/address.png | Bin 0 -> 1034 bytes src/App.vue | 20 +- src/components/BaseList.vue | 47 +++++ src/components/BasePage.vue | 7 +- src/router.js | 20 +- src/styles/ch.less | 81 ++++---- src/styles/public.less | 27 +++ src/utils/html2image.js | 108 ++++------ src/views/Account/Login.vue | 145 ++++++------- src/views/Account/ResetPwd.vue | 15 -- src/views/Account/WxCallback.vue | 20 ++ src/views/Cashout/CashoutAccount.vue | 45 ++-- src/views/Cashout/CashoutRecord.vue | 2 +- src/views/Goods/GoodsDetail.vue | 5 +- src/views/Index.vue | 32 +-- src/views/Merchant/Merchant.vue | 4 +- src/views/Platform/Business_School.vue | 25 ++- src/views/Platform/Column.vue | 20 +- src/views/Platform/ColumnDetail.vue | 12 ++ src/views/Platform/School_Detail.vue | 17 +- src/views/Tabbars/Gift.vue | 58 +++--- src/views/Tabbars/Home.vue | 9 +- src/views/Trade/TradeDetail.vue | 21 ++ src/views/Trade/Tradelist.vue | 215 ++++++++++---------- src/views/User/Invite.vue | 21 +- src/views/User/My.vue | 56 +++-- src/views/User/Team.vue | 5 +- src/views/User/Wallet/CV.vue | 4 +- src/views/User/Wallet/CertificateRecord.vue | 2 +- src/views/User/Wallet/Transfer.vue | 13 +- 34 files changed, 668 insertions(+), 439 deletions(-) create mode 100644 public/img/PointMall_Active.png create mode 100644 public/img/PointMall_Inactive.png create mode 100644 public/img/address.png create mode 100644 src/views/Account/WxCallback.vue diff --git a/package-lock.json b/package-lock.json index 748fcbd..51155e8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "@vant/area-data": "^2.1.0", "@zxing/library": "^0.21.3", "html-to-image": "^1.11.13", + "html2canvas": "^1.4.1", "image-conversion": "^2.1.1", "pinia": "^3.0.4", "postcss-px-to-viewport-8-plugin": "^1.2.5", @@ -665,6 +666,15 @@ "node": ">=0.4.0" } }, + "node_modules/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/birpc": { "version": "2.9.0", "resolved": "https://registry.npmmirror.com/birpc/-/birpc-2.9.0.tgz", @@ -711,6 +721,15 @@ "url": "https://github.com/sponsors/mesqueeb" } }, + "node_modules/css-line-break": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz", + "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "license": "MIT", + "dependencies": { + "utrie": "^1.0.2" + } + }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.2.3.tgz", @@ -829,6 +848,19 @@ "integrity": "sha512-cuOPoI7WApyhBElTTb9oqsawRvZ0rHhaHwghRLlTuffoD1B2aDemlCruLeZrUIIdvG7gs9xeELEPm6PhuASqrg==", "license": "MIT" }, + "node_modules/html2canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz", + "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "license": "MIT", + "dependencies": { + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -1643,6 +1675,15 @@ "url": "https://github.com/sponsors/mesqueeb" } }, + "node_modules/text-segmentation": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz", + "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "license": "MIT", + "dependencies": { + "utrie": "^1.0.2" + } + }, "node_modules/tinyglobby": { "version": "0.2.16", "resolved": "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.16.tgz", @@ -1825,6 +1866,15 @@ "node": "^20.19.0 || >=22.12.0" } }, + "node_modules/utrie": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz", + "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", + "license": "MIT", + "dependencies": { + "base64-arraybuffer": "^1.0.2" + } + }, "node_modules/vant": { "version": "4.9.24", "resolved": "https://registry.npmmirror.com/vant/-/vant-4.9.24.tgz", diff --git a/package.json b/package.json index b397e3f..1e505ff 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "@vant/area-data": "^2.1.0", "@zxing/library": "^0.21.3", "html-to-image": "^1.11.13", + "html2canvas": "^1.4.1", "image-conversion": "^2.1.1", "pinia": "^3.0.4", "postcss-px-to-viewport-8-plugin": "^1.2.5", diff --git a/public/img/PointMall_Active.png b/public/img/PointMall_Active.png new file mode 100644 index 0000000000000000000000000000000000000000..328d83c77eafb3f533aeed7b8fbd88cd82a0c7e7 GIT binary patch literal 3690 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 literal 0 HcmV?d00001 diff --git a/public/img/address.png b/public/img/address.png new file mode 100644 index 0000000000000000000000000000000000000000..99a35aaaee6316ab342db8a64e62580a6bf313e5 GIT binary patch literal 1034 zcmV+l1oiugP)pkGnx5*-&!MGpoo}+b8shit*_VP9sGb6 zlW-VzuljXZip81v(N;kbF%?hL2sYw9+=G`h^Oqsp@i-C}SH~veZ_LWf=X*gBu@^qZ zF8B@SW#$V#yD{uwU@!wL8U5A&L#5wUNFgOA}K z9I*)mkMu-yY5l(=Gd~#e`Z=Y>*qmvj<$bJCx9+ey>8XxrCSY%@#mha8tW=Wd;9*5( z{)XSN+hABZBH`91UZz}kV5rZBt9Dl^~1?REHgM4Vb7SJ|8Z=XcGGhy!Xw zKMs^e2$%PGM5&t_lr3Bt5f3SCW*p8M-8_fnH0+FTN1CRYj5lx~F38MfeYA*JP@$AW zIVm$&_1KOmontEI3^MZ%rLe}~+A*Snn{aP^Zk1x}lerc0Wo9ndwym~pHBIwt(==_< zGz&Jp>-#lLb4|6~&@|1t9r}ZsrunPdoY=PQ7RSVy%5gnEB90v^tjt`f90x6yM8pN7 zwrnCE#tvA9Rcv`4tycDb1WP00(5=93P_l7*JQfkNs_GFOfv<7#rmo&~XLuFIDm!l}bd$tJt5&Ts-=!*+NxA`ah5WLGOmGPy$j!l|PnouJHY zl|%3qOu@SmF=LE~cEbL3xIszzmxk>+?{%XVxffT|1s=@I%ZBvFD3{0G@eNMS%ul=4 z8WU6(yHGh*;X};H%+Dg?eq5p?!`n5IwSDVs6;xrzVX<=N{D`lV%!2v2FEiJSwZ=Aq zDr^^}+UF{X@;2sW=IU*kzs;Zu8z>k4gK>A?wX9421*M6U01+ZYpa1{>07*qoM6N<$ Ef=w~{m;e9( literal 0 HcmV?d00001 diff --git a/src/App.vue b/src/App.vue index 87ed26e..04934c3 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,3 +1,19 @@ \ No newline at end of file + + + + + + + + \ No newline at end of file diff --git a/src/components/BaseList.vue b/src/components/BaseList.vue index 37c1473..dac65c7 100644 --- a/src/components/BaseList.vue +++ b/src/components/BaseList.vue @@ -25,6 +25,7 @@ export default { pageSize: { type: Number, default: 10 }, finishedText: { type: String, default: '没有更多了' }, parseData: { type: Function, default: (res) => res.data.items }, + cacheKey: { type: String, default: '' }, }, data() { return { @@ -34,6 +35,8 @@ export default { page: 1, requestId: 0, observer: null, + _cacheKey: null, + _dataCache: null, } }, emits: ['update:list', 'load', 'refresh'], @@ -50,6 +53,19 @@ export default { deep: true } }, + created() { + if (this.cacheKey) { + const cached = sessionStorage.getItem(this.cacheKey) + if (cached) { + try { + const { list, page, finished, params } = JSON.parse(cached) + if (JSON.stringify(this.params) === JSON.stringify(params)) { + this._dataCache = { list, page, finished } + } + } catch (e) { } + } + } + }, mounted() { this.$nextTick(() => { this.observer = new IntersectionObserver((entries) => { @@ -66,6 +82,14 @@ export default { beforeUnmount() { this.observer?.disconnect() window.removeEventListener('scroll', this.onWindowScroll) + if (this.cacheKey && this.list.length > 0) { + sessionStorage.setItem(this.cacheKey, JSON.stringify({ + list: this.list, + page: this.page, + finished: this.finished, + params: this.params + })) + } }, methods: { onWindowScroll() { @@ -79,6 +103,13 @@ export default { }, loadMore() { if (this.loading) return + if (this._dataCache && this._dataCache.params && JSON.stringify(this.params) === JSON.stringify(this._dataCache.params)) { + this.list = this._dataCache.list + this.page = this._dataCache.page + this.finished = this._dataCache.finished + this.loading = false + return + } const currentRequestId = this.requestId this.loading = true const request = this.method === 'get' ? this.$get : this.$post @@ -123,6 +154,8 @@ export default {