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 @@
+
+
+
+ {{ tipText }}
+ 收起
+
+
+
+
+
+
+ 当前环境不支持半屏扫码,请使用输入框或系统扫码
+
+
+
+
+
+
+
+
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 @@