From d84283821bb08d81d887f20a7118caf25b8b2714 Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期二, 27 八月 2024 18:29:10 +0800
Subject: [PATCH] 判断接口返回值是否是字符串,然后解析

---
 pages/modal/3037_2.vue |  124 +++++++++++++++++++++++++++++++++++------
 1 files changed, 105 insertions(+), 19 deletions(-)

diff --git a/pages/modal/3037_2.vue b/pages/modal/3037_2.vue
index ad44580..ad6c857 100644
--- a/pages/modal/3037_2.vue
+++ b/pages/modal/3037_2.vue
@@ -213,10 +213,10 @@
 		<view class="view-floor">
 			<button type="default" @tap="cancel" class="btn_cancel"
 				v-if="param.Sub_Cls.Can_Add_Delete == true">{{translateSys('cancel')}}</button>
-			<button type="default" @tap="sava" class="btn_add"
-				v-if="param.Sub_Cls.Can_Add_Delete == true">{{title}}</button>
-			<button type="default" @tap="sava" class="btn_sava"
-				v-else-if="param.Sub_Cls.Can_Add_Delete == false">{{title}}</button>
+			<button type="default" @tap="sava" class="btn_add" v-if="param.Sub_Cls.Can_Add_Delete == true"
+				:class="saving?'btn_disabled':''" :disabled="saving">{{title}}</button>
+			<button type="default" @tap="sava" class="btn_sava" v-else-if="param.Sub_Cls.Can_Add_Delete == false"
+				:class="saving?'btn_disabled':''" :disabled="saving">{{title}}</button>
 		</view>
 		<!-- 鏅�寮圭獥 top bottom center left right -->
 		<view>
@@ -279,6 +279,7 @@
 				detail1_styledef: {},
 				detail1StyleDefList: [],
 				activelist: [],
+				saving: false,
 			};
 		},
 		onLoad(options) {
@@ -322,6 +323,7 @@
 				//浼犲叆鍙傛暟鍊� 				if (paramValue) {
 					const attrs = paramValue.attrs || [];
+
 					(this.$data.head_styledef?.form?.items || []).forEach(async (ele, index) => {
 						if (ele.name != "Layout") {
 							attrs.forEach(async (ele2, index2) => {
@@ -365,13 +367,14 @@
 						}
 						$this.$data.head_styledef = ret.result.style_def ? JSON.parse(styledef) : {};
 						// console.log($this.$data.head_styledef);
-						$this.head_styledef.form.items.forEach(async (ele, index) => {
-							ele.show = true;
-							if (ele.useDict == true) { //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀
-								await this.DictGetInfo(ele.bind.dict, index, 'mast');
-							}
-						});
-
+						if ($this.head_styledef.form?.items) {
+							$this.head_styledef.form.items.forEach(async (ele, index) => {
+								ele.show = true;
+								if (ele.useDict == true) { //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀
+									await this.DictGetInfo(ele.bind.dict, index, 'mast');
+								}
+							});
+						}
 						if ($this.head_styledef.event?.length > 0) {
 							$this.head_styledef.event.forEach(async (a) => { //鍒ゆ柇鏄惁鏄垵濮嬪寲浜嬩欢
 								if (a.event_id == "initial") {
@@ -417,11 +420,13 @@
 						}
 						$this.$data.detail1_styledef = ret.result.style_def ? JSON.parse(styledef) : {};
 						$this.$data.detail1_styledef.SelBut_Checked = true;
-						$this.detail1_styledef.form.items.forEach(async (ele, index) => {
-							if (ele.useDict == true) { //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀
-								await this.DictGetInfo(ele.bind.dict, index, 'sub');
-							}
-						});
+						if ($this.detail1_styledef.form?.items) {
+							$this.detail1_styledef.form.items.forEach(async (ele, index) => {
+								if (ele.useDict == true) { //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀
+									await this.DictGetInfo(ele.bind.dict, index, 'sub');
+								}
+							});
+						}
 						if ($this.detail1_styledef.event?.length > 0) {
 							$detail1_styledefforEach(async (a) => { //鍒ゆ柇鏄惁鏄垵濮嬪寲浜嬩欢
 								if (a.event_id == "initial") {
@@ -512,12 +517,84 @@
 						dataType: "json",
 						success: (_res) => {
 							// console.log(_res);
-							const ret = _res.data
+							var ret = _res.data
+							if (typeof ret == 'string') {
+								try {
+									try {
+										try {
+											ret = JSON.parse(ret.replace(/\\"/g, '"'));
+										} catch (ex) {
+											ret = JSON.parse(ret.replace(/\\/g, '\\\\'))
+										}
+									} catch (ex) {
+										ret = JSON.parse(ret.replace(/\\"/g, "'").replace(/[\r\n]/g,
+											'<br>').replace(/[\t]/g, '    '));
+									}
+								} catch (ex) {
+									console.log(ret)
+									return reject('灏唃etDictInfo銆恓son string銆戣浆鎹负銆恓son object銆戝け璐�)
+								}
+							}
 							if (ret.err_code == 0) {
 								resolve(ret);
 							} else {
 								reject({
 									"errMsg": ret.err_msg
+								});
+							}
+
+							if (ret.err_code == 0) {
+								resolve(ret);
+							} else {
+								reject({
+									"errMsg": ret.err_msg
+								});
+							}
+						},
+						fail: (err) => {
+							// console.log(err);
+							reject(err);
+						}
+					})
+
+				})
+
+			},
+			getUIStyleInfo(info) { //Mobox3鏁版嵁绫荤晫闈㈡牱寮�+				const loginInfo = this.$store.getters.loginid
+				const dataSApi = this.$store.getters.getDataSApi
+				return new Promise((resolve, reject) => {
+					uni.request({
+						url: dataSApi + 'api/class/uistyle/GetInfo?sessionid=' + loginInfo.result
+							.session_id,
+						data: info,
+						method: 'POST',
+						dataType: "json",
+						success: (_res) => {
+							// console.log(_res);
+							var ret = _res.data
+							if (typeof ret == 'string') {
+								try {
+									try {
+										try {
+											ret = JSON.parse(ret.replace(/\\"/g, '"'));
+										} catch (ex) {
+											ret = JSON.parse(ret.replace(/\\/g, '\\\\'))
+										}
+									} catch (ex) {
+										ret = JSON.parse(ret.replace(/\\"/g, "'").replace(/[\r\n]/g,
+											'<br>').replace(/[\t]/g, '    '));
+									}
+								} catch (ex) {
+									console.log(ret)
+									return reject('灏唃etUIStyleInfo銆恓son string銆戣浆鎹负銆恓son object銆戝け璐�)
+								}
+							}
+							if (ret.err_code == 0) {
+								resolve(ret);
+							} else {
+								reject({
+									"errMsg": ret.err_msg || ret.errMsg
 								});
 							}
 						},
@@ -806,7 +883,7 @@
 				// console.log(e.target);
 				var $this = this;
 				console.log(item);
-				if (item.oldvalue != item.value) {
+				if (item.oldvalue != item.value && item.value.trim() != "") {
 					item.oldvalue = item.value;
 					var attr = item.fieldId;
 					$this.head_styledef.form.model[attr] = item.value;
@@ -845,7 +922,7 @@
 				console.log(item);
 				var $this = this;
 				console.log(item);
-				if (item.oldvalue != item.value) {
+				if (item.oldvalue != item.value && item.value.trim() != "") {
 					item.oldvalue = item.value;
 					var attr = item.fieldId;
 					$this.head_styledef.form.model[attr] = item.value;
@@ -1848,6 +1925,7 @@
 					}); //杩斿洖灞傛暟锛�鍒欎笂涓婇〉
 			},
 			scan_OKDataObjRunCustomEvent(eventID) {
+				this.saving = true
 				uni.showLoading({
 					title: this.translateSys("loading"),
 					mask: true
@@ -1946,6 +2024,7 @@
 								showCancel: false,
 								confirmText: this.translateSys("cancel")
 							});
+							this.saving = false
 							return false
 						} else {
 							var tip = data.info ? typeof data.info == 'string' ? data.info : data.info.join(
@@ -1976,8 +2055,10 @@
 							confirmText: this.translateSys("cancel")
 						});
 					}
+					this.saving = false
 				}).catch(ex => {
 					// console.log(ex);
+					this.saving = false
 					uni.hideLoading();
 					uni.showModal({
 						title: this.translateSys("error") + "8.1",
@@ -2278,6 +2359,11 @@
 			display: inline-block;
 		}
 
+		button.btn_disabled {
+			background-color: #ddd;
+			color: #888;
+		}
+
 		.class_attr_body .form-group {
 			margin: 20rpx 30rpx;
 			/* margin-left: -12px;

--
Gitblit v1.9.1