From c0067e3b8925ef0141d667224d765eab5e50722f Mon Sep 17 00:00:00 2001 From: HongxuanG <1359774872@qq.com> Date: Tue, 10 Nov 2026 08:27:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8D=8A=E5=B1=8F=E8=BF=9E=E7=BB=AD?= =?UTF-8?q?=E6=89=AB=E4=B8=8E=E4=BF=AE=E6=94=B9=E5=AF=86=E7=A0=81=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E5=B9=B6=E5=8D=87=E8=87=B31.1.25?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/http.api.js | 2 +- src/common/http.interceptor.js | 29 +- src/components/common/PlusBarcodePanel.vue | 259 ++++++++++++++++++ .../storefabric/FabricOutScanBar.vue | 25 ++ src/manifest.json | 4 +- .../storefabric/storeFabricBusinessOutAdd.vue | 10 + .../storeFabricBusinessOutEdit.vue | 10 + .../storeFabricBusinessOutMixin.js | 26 +- src/pages/storefabric/storeFabricManualIn.vue | 54 +++- src/pages/sys/user/index.vue | 2 +- src/pages/sys/user/modify.vue | 45 ++- src/pages/sys/user/pwd.vue | 47 ++-- 12 files changed, 439 insertions(+), 74 deletions(-) create mode 100644 src/components/common/PlusBarcodePanel.vue diff --git a/src/common/http.api.js b/src/common/http.api.js index 6a5d096..8f5e402 100644 --- a/src/common/http.api.js +++ b/src/common/http.api.js @@ -114,7 +114,7 @@ const install = (Vue, vm) => { // 个人信息修改 user: { saveUserInfo: (params = {}) => vm.$u.post(config.productionApiUrl+'/mobile/user/saveUserInfo', params), - infoSavePwd: (params = {}) => vm.$u.put(config.productionApiUrl+'/system/user/profile/updatePwd', params), + infoSavePwd: (params = {}) => vm.$u.put('/system/user/profile/updatePwd', params), infoSavePqa: (params = {}) => vm.$u.post(config.productionApiUrl+'/sys/user/infoSavePqa', params), }, diff --git a/src/common/http.interceptor.js b/src/common/http.interceptor.js index d57d510..f5072a0 100644 --- a/src/common/http.interceptor.js +++ b/src/common/http.interceptor.js @@ -73,18 +73,33 @@ const install = (Vue, vm) => { return false; } console.log('res',res) - if (!(res.data)){ + const rejectWithMessage = (message) => { + const text = String(message || '请求失败').trim() || '请求失败'; + vm.$u.toast(text); + return Promise.reject(new Error(text)); + }; + // HTTP 非 200(如 404)时直接报错,避免把字符串/HTML 当业务 data 解析 + if (res.statusCode && res.statusCode !== 200) { + let message = `请求失败(${res.statusCode})`; + if (typeof res.data === 'string' && res.data.trim()) { + message = res.data.trim().slice(0, 120); + } else if (res.data && typeof res.data === 'object') { + message = res.data.msg || res.data.message || message; + } + return rejectWithMessage(message); + } + if (res.data === undefined || res.data === null || res.data === '') { const errMsg = String((res && res.errMsg) || ''); const isNetworkError = res.statusCode === -1 || /Unable to resolve host|Failed to connect|request:fail|timeout|网络/i.test(errMsg); const message = isNetworkError ? '当前没有网络,请检查网络后重试' : '未连接到服务器'; - vm.$u.toast(message) - return Promise.reject(new Error(message)); + return rejectWithMessage(message); } - - if(res.data.code !== 0) { - vm.$u.toast(res.data.msg) - return Promise.reject(new Error(res.data.msg)) + if (typeof res.data !== 'object') { + return rejectWithMessage(String(res.data).slice(0, 120)); + } + if (res.data.code !== 0) { + return rejectWithMessage(res.data.msg || res.data.message || '请求失败'); } let data = res.data.data; console.log('data',data) diff --git a/src/components/common/PlusBarcodePanel.vue b/src/components/common/PlusBarcodePanel.vue new file mode 100644 index 0000000..582dab9 --- /dev/null +++ b/src/components/common/PlusBarcodePanel.vue @@ -0,0 +1,259 @@ + + + + + diff --git a/src/components/storefabric/FabricOutScanBar.vue b/src/components/storefabric/FabricOutScanBar.vue index e681f77..877f50c 100644 --- a/src/components/storefabric/FabricOutScanBar.vue +++ b/src/components/storefabric/FabricOutScanBar.vue @@ -11,6 +11,14 @@ @confirm="$emit('scan')" /> + 关闭扫码 + + @@ -35,12 +43,14 @@ export default { deleteMode: { type: Boolean, default: false }, message: { type: String, default: '' }, disabledTip: { type: String, default: '当前状态不可扫码' }, + scanning: { type: Boolean, default: false }, }, }; diff --git a/src/manifest.json b/src/manifest.json index 17e8e6d..1ad7219 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -2,8 +2,8 @@ "name" : "浩拓织厂", "appid" : "__UNI__F79F300", "description" : "周尚-浩拓织厂", - "versionName" : "1.1.24", - "versionCode" : 124, + "versionName" : "1.1.25", + "versionCode" : 125, "transformPx" : false, "app-plus" : { "optimization" : { diff --git a/src/pages/storefabric/storeFabricBusinessOutAdd.vue b/src/pages/storefabric/storeFabricBusinessOutAdd.vue index 5ec9abf..8e19873 100644 --- a/src/pages/storefabric/storeFabricBusinessOutAdd.vue +++ b/src/pages/storefabric/storeFabricBusinessOutAdd.vue @@ -42,12 +42,20 @@ + + { - this.QRBarCode = String(scanResult || '').trim().replace(/[\r\n]/g, ''); - return this.handleScan(); - }, - }); + if (!this.canScan) { + this.showError('请先提交保存后再扫码'); + return; + } + this.phoneScanPanelOpen = !this.phoneScanPanelOpen; + }, + closePhoneScanPanel() { + this.phoneScanPanelOpen = false; + }, + onPlusBarcodeSuccess(scanResult) { + this.QRBarCode = String(scanResult || '').trim().replace(/[\r\n]/g, ''); + return this.handleScan(); }, registerOrderScanBroadcast() { this.registerScanBroadcast((scanResult) => { @@ -141,6 +146,7 @@ export default { const nextCanScan = this.isEditable && canScanAtStatus(status); if (this.canScan && !nextCanScan) { this.unregisterScanBroadcast(); + this.closePhoneScanPanel(); } this.canScan = nextCanScan; }, diff --git a/src/pages/storefabric/storeFabricManualIn.vue b/src/pages/storefabric/storeFabricManualIn.vue index 713aa55..6e42a78 100644 --- a/src/pages/storefabric/storeFabricManualIn.vue +++ b/src/pages/storefabric/storeFabricManualIn.vue @@ -57,6 +57,14 @@ + + + 关闭扫码 + + @@ -133,6 +149,7 @@