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/3018_2.vue | 330 +++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 259 insertions(+), 71 deletions(-) diff --git a/pages/modal/3018_2.vue b/pages/modal/3018_2.vue index 855ad61..380f3db 100644 --- a/pages/modal/3018_2.vue +++ b/pages/modal/3018_2.vue @@ -5,8 +5,8 @@ <uni-forms ref="baseForm" label-align="right"> <view class="v-headStyle" v-for="(item,index) in head_styledef.form.items"> <!-- 鏅�甯冨眬 --> - <uni-forms-item class="head-form" v-if="item.name != 'Layout'&& item.show==true" - :label="item.label +'锛� " :label-width="item.labelWidth+'px'"> + <uni-forms-item v-if="item.name != 'Layout'&& item.show==true" :label="item.label +'锛� " + :label-width="item.labelWidth+'px'"> <!-- <text class="txt_title" :style="{'width':item.labelWidth+'px'}">{{item.label}}锛�/text> --> <span class="form-item-span" v-if="item.disabled" :style="'width: calc(100% - '+item.labelWidth+'px);'">{{item.value}}</span> @@ -63,8 +63,8 @@ <uni-row class="demo-uni-row" v-if="item.name=='Layout'"> <uni-col v-for="(cols,key) in item.setting.colList" :span="item.setting.spanList?item.setting.spanList[key]:24 / item.setting.col"> - <uni-forms-item class="head-form" v-if="cols!=null && cols.show==true" :label="cols.label +'锛�" - :label-width="cols.labelWidth+'px'" > + <uni-forms-item v-if="cols!=null && cols.show==true" :label="cols.label +'锛�" + :label-width="cols.labelWidth+'px'"> <!-- <text class="txt_title" :style="{'width':cols.labelWidth+'px'}">{{cols.label}}锛�/text> --> <span class="form-item-span" v-if="cols.disabled">{{cols.value}}</span> <view class="input-wrapper" @@ -130,7 +130,8 @@ </a> </view> </view> - <button type="default" @tap="sava" class="btn_add" v-if="dropdownBtns.length==0" :class="saving?'btn_disabled':''" :disabled="saving">{{title}}</button> + <button type="default" @tap="sava" class="btn_add" v-if="dropdownBtns.length==0" + :class="saving?'btn_disabled':''" :disabled="saving">{{title}}</button> <button type="default" @tap="cancel" class="btn_cancel">{{translateSys('cancel')}}</button> </view> @@ -198,7 +199,7 @@ receiver: null, intentFilter: null, content: '', - saving:false + saving: false }; }, onNavigationBarButtonTap(e) { @@ -236,13 +237,41 @@ } }) - } - else if (e.index == 1) { + } else if (e.index == 1) { //鍒锋柊 - uni.redirectTo({ - url: '../modal/3018_2?param=' + JSON.stringify(this.$data.param) + - "&titlename=" + this.$data.title - }); + // uni.redirectTo({ + // url: '../modal/3018_2?param=' + JSON.stringify(this.param) + + // "&titlename=" + this.title + // }); + this.setData({ + edit_inital_event: "", //寮圭獥鍒濆鍖栦簨浠禝D + edit_ok_event: "", //寮圭獥鐐瑰嚮OK 瑙﹀彂浜嬩欢ID + edit_select_compose_event: "", //閫夋嫨缁勬垚瀵硅薄鏃惰皟鐢�+ edit_compose_cls_id: "", + global_attr: [], + refdatastore: [], //寮曠敤鏁版嵁瀛樺偍鍖�/ {attr:'G_PRJ_' + bindattr + '_ID', value:info.id} + scanCodeVal: "", + subClassAttrList: [], + subPanelList: [], + subClassGridStyle: [], + popupType: "center", + check_list: {}, + + focusFieldId: "", + focusOldFieldId: "", + head_styledef: { + form: { + items: [] + } + }, + after_ok: {}, + activity: null, + receiver: null, + intentFilter: null, + content: '', + saving: false + }) + this.loadData() } }, onLoad(options) { @@ -321,25 +350,32 @@ class_id: class_id, ui_style_id: style_id, }; - this.$store.dispatch('UIStyleGetInfo', dataInfo).then(async (ret) => { - // console.log(ret); - if (ret.err_code == 0) { - var styledef = ""; - if (ret.result.style_def) { - //mobox2鐨剆tyle_def鏄痡son瀛楃涓�- styledef = ret.result.style_def.replace(/\\/g, ""); - //mobox3鐨剆tyle_def鏄痓ase64瀛楃涓�- if (!ret.result.style_def.includes('"')) styledef = Base64.decode(ret - .result - .style_def); - } - const styledefHead = styledef ? JSON.parse(styledef) : {}; + try { + var textProgress = `Head_UIStyleGetInfo start ${class_id}_${style_id}\n` + const ret = await this.getUIStyleInfo(dataInfo) + textProgress += `err_code:${ret.err_code}\n` + var styledef = ""; + if (ret.result.style_def) { + //mobox2鐨剆tyle_def鏄痡son瀛楃涓�+ styledef = ret.result.style_def.replace(/\\/g, ""); + //mobox3鐨剆tyle_def鏄痓ase64瀛楃涓�+ if (!ret.result.style_def.includes('"')) styledef = Base64.decode(ret + .result + .style_def); + } + textProgress += `styledef2:${styledef}\n` + + const styledefHead = styledef ? JSON.parse(styledef) : {}; + if (styledefHead?.form?.items) { for (let i in styledefHead.form.items) { const ele = styledefHead.form.items[i] + textProgress += `form.items${i}:${ele.name}\n` if (ele.name != "Layout") { + ele.show = true if (ele?.useDict) { //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀 + textProgress += `Dict:${ele.bind.dict.name}\n` await $this.DictGetInfo(ele.bind.dict, styledefHead.form.model, ele); @@ -347,6 +383,7 @@ if ($this.focusFieldId == "") { if (ele.name == 'Input' || ele.name == 'InputNumber') { + textProgress += `focusFieldId=${ele.fieldId}\n` $this.setData({ focusFieldId: ele.fieldId }) @@ -355,11 +392,12 @@ } else { for (let j in ele.setting.colList) { const col = ele.setting.colList[j] - + textProgress += `col${j}:${col?.name || ''}\n` if (col) { col.show = true if (col?.useDict) { //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀 + textProgress += `Dict:${col.bind.dict.name}\n` await $this.DictGetInfo(col.bind .dict, styledefHead.form @@ -369,6 +407,7 @@ if (col.name == 'Input' || col .name == 'InputNumber') { + textProgress += `focusFieldId=${col.fieldId}\n` $this.setData({ focusFieldId: col .fieldId @@ -379,44 +418,157 @@ } } } - $this.setData({ - head_styledef: styledefHead - }) - console.log("head_styledef",this.head_styledef) - if ($this.head_styledef.event?.length > 0) { - $this.head_styledef.event.forEach(async (a) => { //鍒ゆ柇鏄惁鏄垵濮嬪寲浜嬩欢 - if (a.event_id == "initial") { - await $this.loadInitEvent(a.scrip_id); - } else if (a.event_id == 'after_ok') { - $this.after_ok = { - id: a.scrip_id, - name: a.scrip_name - }; - } - }); - } - } else { - uni.showModal({ - title: this.translateSys("error") + "1", - content: ret.err_msg, - showCancel: false, - confirmText: this.translateSys("cancel") + } + textProgress += `head_styledef value\n` + $this.setData({ + head_styledef: styledefHead + }) + textProgress += `event:${this.head_styledef.event?.length || 0}\n` + if ($this.head_styledef.event) { + $this.head_styledef.event.forEach(async (a) => { //鍒ゆ柇鏄惁鏄垵濮嬪寲浜嬩欢 + if (a.event_id == "initial") { + await $this.loadInitEvent(a.scrip_id); + } else if (a.event_id == 'after_ok') { + $this.after_ok = { + id: a.scrip_id, + name: a.scrip_name + }; + } }); } - }).catch(ex => { + textProgress += `end` + } catch (ex) { // console.log(ex); + console.log(textProgress); + console.log(JSON.stringify(ex), ex); + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr uni.showModal({ title: this.translateSys("error") + "1.1", - content: ex.errMsg, + content: tip + '\n' + textProgress, showCancel: false, confirmText: this.translateSys("cancel") }); - }); + } + + // this.$store.dispatch('UIStyleGetInfo', dataInfo).then(async (ret) => { + // // console.log("ret",ret); + // textProgress += `err_code:${ret.err_code}\n` + // if (ret.err_code == 0) { + // var styledef = ""; + // if (ret.result.style_def) { + // //mobox2鐨剆tyle_def鏄痡son瀛楃涓�+ // styledef = ret.result.style_def.replace(/\\/g, ""); + // //mobox3鐨剆tyle_def鏄痓ase64瀛楃涓�+ // if (!ret.result.style_def.includes('"')) styledef = Base64.decode(ret + // .result + // .style_def); + // } + // textProgress += `styledef2:${styledef}\n` + + // const styledefHead = styledef ? JSON.parse(styledef) : {}; + // for (let i in styledefHead.form.items) { + // const ele = styledefHead.form.items[i] + // textProgress += `form.items${i}:${ele.name}\n` + // if (ele.name != "Layout") { + + // ele.show = true + // if (ele?.useDict) { + // //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀 + // textProgress += `Dict:${ele.bind.dict.name}\n` + // await $this.DictGetInfo(ele.bind.dict, + // styledefHead.form.model, + // ele); + // } + // if ($this.focusFieldId == "") { + // if (ele.name == 'Input' || ele.name == + // 'InputNumber') { + // textProgress += `focusFieldId=${ele.fieldId}\n` + // $this.setData({ + // focusFieldId: ele.fieldId + // }) + // } + // } + // } else { + // for (let j in ele.setting.colList) { + // const col = ele.setting.colList[j] + // textProgress += `col${j}:${col?.name || ''}\n` + // if (col) { + // col.show = true + // if (col?.useDict) { + // //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀 + // textProgress += `Dict:${col.bind.dict.name}\n` + // await $this.DictGetInfo(col.bind + // .dict, + // styledefHead.form + // .model, col); + // } + // if ($this.focusFieldId == "") { + // if (col.name == 'Input' || col + // .name == + // 'InputNumber') { + // textProgress += `focusFieldId=${col.fieldId}\n` + // $this.setData({ + // focusFieldId: col + // .fieldId + // }) + // } + // } + // } + // } + // } + // } + // textProgress += `head_styledef value\n` + // $this.setData({ + // head_styledef: styledefHead + // }) + // textProgress += `event:${this.head_styledef.event?.length || 0}\n` + // if ($this.head_styledef.event) { + // $this.head_styledef.event.forEach(async (a) => { //鍒ゆ柇鏄惁鏄垵濮嬪寲浜嬩欢 + // if (a.event_id == "initial") { + // await $this.loadInitEvent(a.scrip_id); + // } else if (a.event_id == 'after_ok') { + // $this.after_ok = { + // id: a.scrip_id, + // name: a.scrip_name + // }; + // } + // }); + // } + // textProgress += `end` + // } else { + // textProgress += `err_msg:${ret.err_msg}\n` + // uni.showModal({ + // title: this.translateSys("error") + "1", + // content: tip + '\n' + textProgress, + // showCancel: false, + // confirmText: this.translateSys("cancel") + // }); + // } + // }).catch(ex => { + // console.log(textProgress); + // console.log(JSON.stringify(ex), ex); + // let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex + // uni.showModal({ + // title: this.translateSys("error") + "1.1", + // content: tip + '\n' + textProgress, + // showCancel: false, + // confirmText: this.translateSys("cancel") + // }); + // // console.log(ex); + // // uni.showModal({ + // // title: this.translateSys("error") + "1.1", + // // content: ex.errMsg, + // // showCancel: false, + // // confirmText: this.translateSys("cancel") + // // }); + // }); }, async DictGetInfo(dict, formModel, formItem) { //Mobox3寰楀埌寰楀埌瀛楀吀淇℃伅瀛楀吀椤瑰垪琛�- var $this = this; var dataInfo = { dict_id: dict.id, @@ -464,7 +616,24 @@ 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 { @@ -494,12 +663,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 }); } }, @@ -508,11 +694,11 @@ reject(err); } }) - + }) - + }, - + async loadInitEvent(eventid) { var $this = this; if (!eventid.includes('{')) eventid = '{' + eventid + '}'; @@ -773,7 +959,7 @@ ontap(item) { //鎵爜鍔熻兘 - // console.log("ontap",item); + // console.log("ontap",item); // 鎵撳紑钃濈墮閫傞厤鍣� // uni.openBluetoothAdapter({ // success: function() { @@ -922,7 +1108,7 @@ this.focusFieldId = item.fieldId }, onevent(item) { - // console.log("onevent",item); + // console.log("onevent",item); if (item.oldvalue != item.value && item.value.trim() != "") { item.oldvalue = item.value; var attr = item.fieldId; @@ -955,7 +1141,7 @@ }, onchange(item) { // console.log("onchange",item); - if (item.oldvalue != item.value&& item.value.trim() != "") { + if (item.oldvalue != item.value && item.value.trim() != "") { item.oldvalue = item.value; var attr = item.fieldId; this.head_styledef.form.model[attr] = item.value; @@ -2218,20 +2404,20 @@ width: 98%; } - .v-headStyle .head-form { + .uni-forms-item { // border: 0.5px solid red; margin-bottom: 11rpx; } - .v-headStyle .form-item-span { - // border: 0.5px solid red; - padding: 7rpx 0; - color: #2d8cf0; - white-space: normal; - word-break: break-all; - display: inline-block; - // width: calc(100% - 100px); - } + // .v-headStyle .form-item-span { + // // border: 0.5px solid red; + // padding: 7rpx 0; + // color: #2d8cf0; + // white-space: normal; + // word-break: break-all; + // display: inline-block; + // // width: calc(100% - 100px); + // } .input-wrapper { border: 1px solid #d5d5d5; @@ -2314,10 +2500,12 @@ float: left; display: inline-block; } + .btn_disabled { background-color: #ddd; color: #888; } + .btn_cancel { width: 45%; margin: 0 10rpx; -- Gitblit v1.9.1