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/5602.vue |  372 +++++++++++++++++++++++++++++++---------------------
 1 files changed, 220 insertions(+), 152 deletions(-)

diff --git a/pages/modal/5602.vue b/pages/modal/5602.vue
index 622cfaa..5f3b6f3 100644
--- a/pages/modal/5602.vue
+++ b/pages/modal/5602.vue
@@ -17,7 +17,8 @@
 					v-model="item.value" :localdata="item.dict" @change="onEnterChange(item)" :readonly="item.disabled"
 					:clear-icon="false" :popup-title="item.label"></uni-data-picker>
 
-				<view class="input-wrapper" v-if="item.name=='Input' || item.name=='InputNumber'">
+				<view class="input-wrapper" :style="{'width':`calc(96% - ${item.labelWidth}px)`}"
+					v-if="item.name=='Input' || item.name=='InputNumber'">
 					<text v-if="item.setting.prefix" class="uni-icon" :class="[item.setting.prefix]"
 						@click="onEnterChange(item)">&#xe568;</text>
 					<input class="uni-input" :class="item.disabled?'input-disabled':''"
@@ -343,18 +344,21 @@
 						$this.$data.head_styledef = ret.result.style_def ? JSON.parse(styledef) : {};
 						// this.form = this.head_styledef.form.model;
 						// console.log($this.$data.head_styledef);
-						$this.head_styledef.form.items.forEach(async (ele, index) => {
-							if (ele.useDict == true) { //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀
-								await this.DictGetInfo(ele.bind.dict, index, 'mast');
-							}
-							if ($this.focusFieldId == "") {
-								if (ele.name == 'Input' || ele.name == 'InputNumber') {
-									$this.setData({
-										focusFieldId: ele.fieldId
-									})
+						if ($this.head_styledef.form?.items) {
+							$this.head_styledef.form.items.forEach(async (ele, index) => {
+								if (ele.useDict == true) { //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀
+									await this.DictGetInfo(ele.bind.dict, index, 'mast');
 								}
-							}
-						});
+								if ($this.focusFieldId == "") {
+									if (ele.name == 'Input' || ele.name == 'InputNumber') {
+										$this.setData({
+											focusFieldId: ele.fieldId
+										})
+									}
+								}
+							});
+
+						}
 					} else {
 						uni.showModal({
 							title: this.translateSys("error") + "1",
@@ -365,9 +369,10 @@
 					}
 				}).catch(ex => {
 					// console.log(ex);
+					let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex
 					uni.showModal({
 						title: this.translateSys("error") + "1.1",
-						content: ex.errMsg,
+						content: tip,
 						showCancel: false,
 						confirmText: this.translateSys("cancel")
 					});
@@ -398,11 +403,13 @@
 						// var aa = JSON.stringify(this.detail1_styledef);
 						// $this.$data.detail1StyleDefList.push(JSON.parse(aa));
 						// console.log($this.$data.detail1StyleDefList);
-						$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');
+								}
+							});
+						}
 					} else {
 						uni.showModal({
 							title: this.translateSys("error") + "2",
@@ -413,9 +420,10 @@
 					}
 				}).catch(ex => {
 					// console.log(ex);
+					let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex
 					uni.showModal({
 						title: this.translateSys("error") + "2.1",
-						content: ex.errMsg,
+						content: tip,
 						showCancel: false,
 						confirmText: this.translateSys("cancel")
 					});
@@ -453,9 +461,10 @@
 					}
 				}).catch(ex => {
 					// console.log(ex);
+					let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex
 					uni.showModal({
 						title: this.translateSys("error") + "3.1",
-						content: ex.errMsg,
+						content: tip,
 						showCancel: false,
 						confirmText: this.translateSys("cancel")
 					});
@@ -531,7 +540,32 @@
 						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 {
@@ -549,7 +583,7 @@
 				})
 
 			},
-getUIStyleInfo(info) { //Mobox3鏁版嵁绫荤晫闈㈡牱寮�+			getUIStyleInfo(info) { //Mobox3鏁版嵁绫荤晫闈㈡牱寮� 				const loginInfo = this.$store.getters.loginid
 				const dataSApi = this.$store.getters.getDataSApi
 				return new Promise((resolve, reject) => {
@@ -561,12 +595,29 @@
 						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('灏唃etUIStyleInfo銆恓son string銆戣浆鎹负銆恓son object銆戝け璐�)
+								}
+							}
 							if (ret.err_code == 0) {
 								resolve(ret);
 							} else {
 								reject({
-									"errMsg": ret.err_msg
+									"errMsg": ret.err_msg || ret.errMsg
 								});
 							}
 						},
@@ -1056,9 +1107,10 @@
 							}
 						}).catch(ex => {
 							// console.log(ex);
+							let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex
 							uni.showModal({
 								title: this.translateSys("error") + "4.1",
-								content: ex.errMsg,
+								content: tip,
 								showCancel: false,
 								confirmText: this.translateSys("cancel")
 							});
@@ -1151,48 +1203,53 @@
 				if (JSON.stringify(data.row) == '{}') {
 					return;
 				}
-				data.row.forEach(row => {
-					var styleStr = JSON.stringify(this.$data.detail1_styledef);
-					if (type) { //纭畾鍚庤剼鏈繘鍏ュ姞杞藉凡鍒嗘嫞鏁版嵁
-						styleStr = JSON.stringify(this.$data.detail2_styledef);
-					} else {
-						if (data.page_name == this.$data.param.Sub_Page[1].Name) { //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄凡鍒嗘嫞
-							styleStr = JSON.stringify(this.$data.detail2_styledef); //寰呭垎鎷�-						}
+				var styleStr = JSON.stringify(this.$data.detail1_styledef);
+				if (type) { //纭畾鍚庤剼鏈繘鍏ュ姞杞藉凡鍒嗘嫞鏁版嵁
+					styleStr = JSON.stringify(this.$data.detail2_styledef);
+				} else {
+					if (data.page_name == this.$data.param.Sub_Page[1].Name) { //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄凡鍒嗘嫞
+						styleStr = JSON.stringify(this.$data.detail2_styledef); //寰呭垎鎷� 					}
-					var detailStyle = JSON.parse(styleStr);
-					detailStyle.form.objId = row.id;
-					detailStyle.form.htmlobjId = row.id ? row.id.replace(/-/g, '').replace('{', '').replace('}',
-						'') : 'null';
-					detailStyle.form.attrs = row.attrs;
-					row.attrs.forEach(attr => {
-						detailStyle.form.items.forEach(ele => {
-							if (ele.name != 'Layout') {
-								if (ele.fieldId == attr.attr) ele.value = attr.value;
-							} else if (ele.name == 'Layout') {
-								ele.setting.colList.forEach(col => {
-									if (col) {
-										if (col.fieldId == attr.attr) col.value = attr
-											.value;
-									}
-								});
-							}
-						});
-					});
+				}
+				data.row.forEach(row => {
 
-					if (type) { //纭畾鍚庤剼鏈繘鍏ュ姞杞藉凡鍒嗘嫞鏁版嵁
-						this.$data.detail2StyleDefList.push(detailStyle);
-						// console.log(this.$data.detail2StyleDefList);
-					} else {
-						if (data.page_name == this.$data.param.Sub_Page[1].Name) { //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄凡鍒嗘嫞
+					var detailStyle = JSON.parse(styleStr);
+					if (detailStyle.form) {
+						detailStyle.form.objId = row.id;
+						detailStyle.form.htmlobjId = row.id ? row.id.replace(/-/g, '').replace('{', '').replace(
+							'}',
+							'') : 'null';
+						detailStyle.form.attrs = row.attrs;
+						row.attrs.forEach(attr => {
+							detailStyle.form.items.forEach(ele => {
+								if (ele.name != 'Layout') {
+									if (ele.fieldId == attr.attr) ele.value = attr.value;
+								} else if (ele.name == 'Layout') {
+									ele.setting.colList.forEach(col => {
+										if (col) {
+											if (col.fieldId == attr.attr) col.value = attr
+												.value;
+										}
+									});
+								}
+							});
+						});
+
+						if (type) { //纭畾鍚庤剼鏈繘鍏ュ姞杞藉凡鍒嗘嫞鏁版嵁
 							this.$data.detail2StyleDefList.push(detailStyle);
 							// console.log(this.$data.detail2StyleDefList);
 						} else {
-							this.$data.detail1StyleDefList.push(detailStyle);
-							this.activelist.push({
-								active: false
-							});
-							// console.log(this.$data.detail1StyleDefList);
+							if (data.page_name == this.$data.param.Sub_Page[1]
+								.Name) { //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄凡鍒嗘嫞
+								this.$data.detail2StyleDefList.push(detailStyle);
+								// console.log(this.$data.detail2StyleDefList);
+							} else {
+								this.$data.detail1StyleDefList.push(detailStyle);
+								this.activelist.push({
+									active: false
+								});
+								// console.log(this.$data.detail1StyleDefList);
+							}
 						}
 					}
 				});
@@ -1209,95 +1266,103 @@
 				if (JSON.stringify(data.content) == '{}') {
 					return;
 				}
+				var styleStr = JSON.stringify($this.$data.detail2_styledef); //宸插垎鎷�+				if (data.page_name == $this.$data.param.Sub_Page[0].Name) { //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄緟鍒嗘嫞
+					styleStr = JSON.stringify($this.$data.detail1_styledef); //寰呭垎鎷�+				}
 				data.content.forEach(cont => {
-					var styleStr = JSON.stringify($this.$data.detail2_styledef); //宸插垎鎷�-					if (data.page_name == $this.$data.param.Sub_Page[0].Name) { //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄緟鍒嗘嫞
-						styleStr = JSON.stringify($this.$data.detail1_styledef); //寰呭垎鎷�-					}
+
 					var detailStyle = JSON.parse(styleStr);
-					detailStyle.SelBut_Checked = data.checkbox ?? true;
-					detailStyle.form.objId = cont.id;
-					detailStyle.form.htmlobjId = cont.id ? cont.id.replace(/-/g, '').replace('{', '').replace('}',
-						'') : 'null';
-					detailStyle.form.attrs = cont.attrs;
-					cont.attrs.forEach(attr => {
-						detailStyle.form.items.forEach(ele => {
-							if (ele.name != 'Layout') {
-								if (ele.fieldId == attr.attr) ele.value = attr.value;
-							} else if (ele.name == 'Layout') {
-								ele.setting.colList.forEach(col => {
-									if (col) {
-										if (col.fieldId == attr.attr) col.value = attr
-											.value;
+					if (detailStyle.form) {
+						detailStyle.SelBut_Checked = data.checkbox ?? true;
+						detailStyle.form.objId = cont.id;
+						detailStyle.form.htmlobjId = cont.id ? cont.id.replace(/-/g, '').replace('{', '').replace(
+							'}',
+							'') : 'null';
+						detailStyle.form.attrs = cont.attrs;
+						cont.attrs.forEach(attr => {
+							detailStyle.form.items.forEach(ele => {
+								if (ele.name != 'Layout') {
+									if (ele.fieldId == attr.attr) ele.value = attr.value;
+								} else if (ele.name == 'Layout') {
+									ele.setting.colList.forEach(col => {
+										if (col) {
+											if (col.fieldId == attr.attr) col.value = attr
+												.value;
+										}
+									});
+								}
+							});
+						});
+
+						if (data.page_name == $this.$data.param.Sub_Page[0].Name) { //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄緟鍒嗘嫞
+							//濡傛灉 clear = false 鍒欎笉闇�娓呴櫎锛屾牴鎹甶d鍒ゆ柇鏄惁瀛樺湪锛屼笉瀛樺湪鎻掑叆鍒伴〉闈紝濡傛灉瀛樺湪鐢ㄦ柊鐨勫睘鎬ц鐩�+							if (data.clear == false) {
+								var isflag = true;
+								$this.detail1StyleDefList.forEach((style, index) => {
+									if (style.form.objId == detailStyle.form.objId) {
+										cont.attrs.forEach(attr => {
+											style.form.items.forEach(ele => {
+												if (ele.name != 'Layout') {
+													if (ele.fieldId == attr.attr) ele
+														.value =
+														attr.value;
+												} else if (ele.name == 'Layout') {
+													ele.setting.colList.forEach(col => {
+														if (col) {
+															if (col.fieldId == attr
+																.attr) col.value =
+																attr
+																.value;
+														}
+													});
+												}
+											});
+										});
+										isflag = false;
 									}
 								});
+								if (isflag) $this.detail1StyleDefList.push(detailStyle); //寰呭垎鎷�+							} else {
+								$this.detail1StyleDefList.push(detailStyle); //寰呭垎鎷� 							}
-						});
-					});
-
-					if (data.page_name == $this.$data.param.Sub_Page[0].Name) { //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄緟鍒嗘嫞
-						//濡傛灉 clear = false 鍒欎笉闇�娓呴櫎锛屾牴鎹甶d鍒ゆ柇鏄惁瀛樺湪锛屼笉瀛樺湪鎻掑叆鍒伴〉闈紝濡傛灉瀛樺湪鐢ㄦ柊鐨勫睘鎬ц鐩�-						if (data.clear == false) {
-							var isflag = true;
-							$this.detail1StyleDefList.forEach((style, index) => {
-								if (style.form.objId == detailStyle.form.objId) {
-									cont.attrs.forEach(attr => {
-										style.form.items.forEach(ele => {
-											if (ele.name != 'Layout') {
-												if (ele.fieldId == attr.attr) ele.value =
-													attr.value;
-											} else if (ele.name == 'Layout') {
-												ele.setting.colList.forEach(col => {
-													if (col) {
-														if (col.fieldId == attr
-															.attr) col.value = attr
-															.value;
-													}
-												});
-											}
-										});
-									});
-									isflag = false;
-								}
+							$this.activelist.push({
+								active: false
 							});
-							if (isflag) $this.detail1StyleDefList.push(detailStyle); //寰呭垎鎷�+							// console.log($this.$data.detail1StyleDefList);
 						} else {
-							$this.detail1StyleDefList.push(detailStyle); //寰呭垎鎷�-						}
-						$this.activelist.push({
-							active: false
-						});
-						// console.log($this.$data.detail1StyleDefList);
-					} else {
-						if (data.clear == false) {
-							//濡傛灉 clear = false 鍒欎笉闇�娓呴櫎锛屾牴鎹甶d鍒ゆ柇鏄惁瀛樺湪锛屼笉瀛樺湪鎻掑叆鍒伴〉闈紝濡傛灉瀛樺湪鐢ㄦ柊鐨勫睘鎬ц鐩�-							var isflag = true;
-							$this.detail2StyleDefList.forEach((style, index) => {
-								if (style.form.objId == detailStyle.form.objId) {
-									cont.attrs.forEach(attr => {
-										style.form.items.forEach(ele => {
-											if (ele.name != 'Layout') {
-												if (ele.fieldId == attr.attr) ele.value =
-													attr.value;
-											} else if (ele.name == 'Layout') {
-												ele.setting.colList.forEach(col => {
-													if (col) {
-														if (col.fieldId == attr
-															.attr) col.value = attr
-															.value;
-													}
-												});
-											}
+							if (data.clear == false) {
+								//濡傛灉 clear = false 鍒欎笉闇�娓呴櫎锛屾牴鎹甶d鍒ゆ柇鏄惁瀛樺湪锛屼笉瀛樺湪鎻掑叆鍒伴〉闈紝濡傛灉瀛樺湪鐢ㄦ柊鐨勫睘鎬ц鐩�+								var isflag = true;
+								$this.detail2StyleDefList.forEach((style, index) => {
+									if (style.form.objId == detailStyle.form.objId) {
+										cont.attrs.forEach(attr => {
+											style.form.items.forEach(ele => {
+												if (ele.name != 'Layout') {
+													if (ele.fieldId == attr.attr) ele
+														.value =
+														attr.value;
+												} else if (ele.name == 'Layout') {
+													ele.setting.colList.forEach(col => {
+														if (col) {
+															if (col.fieldId == attr
+																.attr) col.value =
+																attr
+																.value;
+														}
+													});
+												}
+											});
 										});
-									});
-									isflag = false;
-								}
-							});
-							if (isflag) $this.detail2StyleDefList.push(detailStyle); //宸插垎鎷�-						} else {
-							$this.detail2StyleDefList.push(detailStyle); //宸插垎鎷�+										isflag = false;
+									}
+								});
+								if (isflag) $this.detail2StyleDefList.push(detailStyle); //宸插垎鎷�+							} else {
+								$this.detail2StyleDefList.push(detailStyle); //宸插垎鎷�+							}
+							// console.log($this.$data.detail2StyleDefList);
 						}
-						// console.log($this.$data.detail2StyleDefList);
 					}
 				});
 			},
@@ -1369,9 +1434,10 @@
 								}
 							}).catch(ex => {
 								// console.log(ex);
+								let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex
 								uni.showModal({
 									title: this.translateSys("error") + "5.1",
-									content: ex.errMsg,
+									content: tip,
 									showCancel: false,
 									confirmText: this.translateSys("cancel")
 								});
@@ -2052,7 +2118,8 @@
 						this.okLoading = false
 					else if (type == "2")
 						this.ok2Loading = false
-					var tip = typeof ex == "string" ? ex : ex.errMsg;
+
+					let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex
 					uni.showModal({
 						title: this.translateSys("error") + "8.1",
 						content: this.translate("execute_after_ok_event_failed") + this.translateSys(
@@ -2097,6 +2164,7 @@
 
 		.v-headStyle {
 			width: 100%;
+			margin-bottom: 11rpx;
 		}
 
 		.view-content {
@@ -2145,24 +2213,24 @@
 		}
 
 		.v-headStyle .txt_title {
-			font-size: 34rpx;
+			font-size: 14px;
 			text-align: right;
 			display: inline-block;
-			vertical-align: 12px;
+			// align-items: center;
+			color: #606266;
+			padding: 0 5px 0 0;
+			vertical-align: 10px;
 		}
 
 		.v-headStyle input {
 			display: inline-block;
-			/* border: 1px solid #d5d5d5; */
-			/* width: 65%; */
 			width: 85%;
-			height: 52rpx;
-			line-height: 34rpx;
+			line-height: 14px;
 			background: #FFF;
 			border-radius: 0 !important;
 			color: #2d8cf0;
-			padding: 10rpx 8rpx 12rpx;
-			font-size: 34rpx;
+			padding: 12rpx 8rpx;
+			font-size: 14px;
 			font-family: inherit;
 			box-shadow: none !important;
 			transition-duration: 0.1s;

--
Gitblit v1.9.1