From f85708dcab378fe8d12fbf95933d00883c36fe3d Mon Sep 17 00:00:00 2001 From: cuiqian2004 <cuiqian2004@163.com> Date: 星期四, 27 二月 2025 16:20:12 +0800 Subject: [PATCH] 5601 button --- pages/modal/3018_2.vue | 1158 +++++++++++++++++++++++++++++++++------------------------ 1 files changed, 673 insertions(+), 485 deletions(-) diff --git a/pages/modal/3018_2.vue b/pages/modal/3018_2.vue index f741bb9..ab196d0 100644 --- a/pages/modal/3018_2.vue +++ b/pages/modal/3018_2.vue @@ -5,19 +5,16 @@ <uni-forms ref="baseForm" label-align="right"> <view class="v-headStyle" v-for="(item,index) in head_styledef.form.items"> <!-- 鏅�甯冨眬 --> - <uni-forms-item v-if="item.name != 'Layout'&& item.show==true" :label="item.label +'锛� " + <uni-forms-item v-if="item.name != 'Layout'&& item.show==true" :label="item.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> <!-- 涓嬫媺妗�鍗曢� item.useDict?item.dict:item.selections--> - <uni-data-select id="dv_select" v-if="item.name=='Select' && !item.disabled" + <uni-data-select id="dv_select" v-if="item.name=='Select'" :style="'width: calc(100% - '+item.labelWidth-10+'px);'" :class="item.disabled?'input-disabled':''" v-model="item.value" :localdata="item.dict" @change="onchange(item)" :disabled="item.disabled" :clear="false"></uni-data-select> <!-- 鏂囨湰妗�鏁板瓧妗�--> - <view class="input-wrapper" - v-if="(item.name=='Input' || item.name=='InputNumber') && !item.disabled"> + <view class="input-wrapper" v-if="(item.name=='Input' || item.name=='InputNumber')"> <text v-if="item.setting.prefix" class="uni-icon" :class="[item.setting.prefix]" @change="classAttr_extButton(item)"></text> <input class="uni-input" :class="item.disabled?'input-disabled':''" @@ -25,12 +22,12 @@ v-model="item.value" :disabled="item.disabled" :placeholder="item.placeholder" :style="{'width':item.setting.prefix && item.setting.suffix?'78%':item.setting.prefix || item.setting.suffix?'87%':'96%'}" :focus="focusFieldId == item.fieldId" @focus="ontap(item)" @click="onClick(item)" - @blur="onevent(item)" /> + @blur="onevent(item)" :maxlength="-1" /> <text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]" @click="classAttr_extButton(item)"></text> </view> <!-- 澶氳鏂囨湰 --> - <view class="input-wrapper" v-if="item.name=='Textarea' && !item.disabled"> + <view class="input-wrapper" v-if="item.name=='Textarea' "> <textarea class="uni-input" :class="item.disabled?'input-disabled':''" :value="item.value" :focus="focusFieldId == item.fieldId" :placeholder="item.placeholder" @blur="onModelValue(item)" @click="onClick(item)" :data-index="index" @@ -39,20 +36,28 @@ </view> <!-- 澶嶉�妗�--> <checkbox-group class="check_rememberPwd" v-if="item.name=='Checkbox'" - :class="item.disabled?'input-disabled':''" @change="onModelValue(item)" - :disabled="item.disabled" :data-ischeck="item.value"> - <label> - <checkbox :value="item.value" :checked="item.value" /> - <text>{{item.label}}</text> + :class="item.disabled?'input-disabled':''" :disabled="item.disabled" + @change="onCheckBoxValue" :data-attr="item.fieldId"> + <label v-for="(item2) in item.selections" :key="item2.value"> + <checkbox :value="item2.value" :checked="item.value.includes(item2.value)" /> + <text>{{item2.label}}</text> </label> </checkbox-group> + <!-- 鍗曢�妗�--> + <radio-group class="check_rememberPwd" v-if="item.name=='Radio'" + :class="item.disabled?'input-disabled':''" :disabled="item.disabled" + @change="onRadioBoxValue" :data-attr="item.fieldId"> + <label v-for="(item2) in item.selections" :key="item2.value"> + <radio :value="item2.value" :checked="item2.value === item.value" /> + <text>{{item2.label}}</text> + </label> + </radio-group> <!-- Switch寮�叧 --> <switch class="input-switch" v-if="item.name=='Switch'" :class="item.disabled?'input-disabled':''" :disabled="item.disabled" v-model="item.value" @change="onModelValue(item)" /> <!-- 鏃ユ湡鏃堕棿 --> - <view class="input-wrapper" - v-if="(item.name=='TimePicker' || item.name=='DatePicker') && !item.disabled"> + <view class="input-wrapper" v-if="(item.name=='TimePicker' || item.name=='DatePicker')"> <picker mode="date" class="date_iput" :class="item.disabled?'input-disabled':''" :disabled="item.disabled" :value="item.value" @change="onModelValue(item)"> <view class="picker">{{item.value}}</view> @@ -63,12 +68,9 @@ <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 v-if="cols!=null && cols.show==true" :label="cols.label +'锛�" + <uni-forms-item v-if="cols!=null && cols.show==true" :label="cols.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" - v-if="(cols.name=='Input' || cols.name=='InputNumber') && !cols.disabled"> + <view class="input-wrapper" v-if="(cols.name=='Input' || cols.name=='InputNumber') "> <text v-if="cols.setting.prefix" class="uni-icon" :class="[cols.setting.prefix]" @change="onchange(cols)"></text> <input class="uni-input" :class="cols.disabled?'input-disabled':''" @@ -76,17 +78,17 @@ v-model="cols.value" :disabled="cols.disabled" :placeholder="cols.placeholder" :style="{'width':cols.setting.prefix && cols.setting.suffix?'78%':cols.setting.prefix || cols.setting.suffix?'87%':'96%'}" :focus="focusFieldId == cols.fieldId" @focus="ontap(cols)" - @click="onClick(cols)" @blur="onevent(cols)" /> + @click="onClick(cols)" @blur="onevent(cols)" :maxlength="-1" /> <text v-if="cols.setting.suffix" class="uni-icon" :class="[cols.setting.suffix]" @click="onchange(cols)"></text> </view> <!-- 涓嬫媺妗�鍗曢� cols.useDict?cols.dict:cols.selections--> - <uni-data-select id="dv_select" v-if="cols.name=='Select' && !cols.disabled" + <uni-data-select id="dv_select" v-if="cols.name=='Select' " :class="cols.disabled?'input-disabled':''" v-model="cols.value" :localdata="cols.dict" @change="onchange(cols)" :disabled="cols.disabled" :clear="false"></uni-data-select> <!-- 澶氳鏂囨湰 --> - <view class="input-wrapper" v-if="cols.name=='Textarea' && !cols.disabled"> + <view class="input-wrapper" v-if="cols.name=='Textarea' "> <textarea class="uni-input" :value="cols.value" :class="cols.disabled?'input-disabled':''" :placeholder="cols.placeholder" :focus="focusFieldId == cols.fieldId" @blur="onModelValue(cols)" @@ -95,23 +97,31 @@ </view> <!-- 澶嶉�妗�--> <checkbox-group class="check_rememberPwd" v-if="cols.name=='Checkbox'" - :class="cols.disabled?'input-disabled':''" :disabled="item.disabled" - @change="onModelValue(cols)" :data-ischeck="cols.value" - :style="{'margin-left':'10rpx'}"> - <label> - <checkbox :value="cols.value" :checked="cols.value" /> - <text>{{cols.label}}</text> + :class="cols.disabled?'input-disabled':''" :disabled="cols.disabled" + @change="onCheckBoxValue" :data-attr="cols.fieldId"> + <label v-for="(cols2) in cols.selections" :key="cols2.value"> + <checkbox :value="cols2.value" :checked="cols.value.includes(cols2.value)" /> + <text>{{cols2.label}}</text> </label> </checkbox-group> + <!-- 鍗曢�妗�--> + <radio-group class="check_rememberPwd" v-if="cols.name=='Radio'" + :class="cols.disabled?'input-disabled':''" :disabled="cols.disabled" + @change="onRadioBoxValue" :data-attr="cols.fieldId"> + <label v-for="(cols2) in cols.selections" :key="cols2.value"> + <radio :value="cols2.value" :checked="cols2.value === cols.value" /> + <text>{{cols2.label}}</text> + </label> + </radio-group> <!-- Switch寮�叧 --> <switch v-if="cols.name=='Switch'" :class="cols.disabled?'input-disabled':''" - :disabled="item.disabled" v-model="cols.value" @change="onModelValue(cols)" + :disabled="cols.disabled" v-model="cols.value" @change="onModelValue(cols)" :style="{'margin-left':'10rpx'}" /> <!-- 鏃ユ湡鏃堕棿 --> <view class="input-wrapper" v-if="(cols.name=='TimePicker' || cols.name=='DatePicker') && !cols.disabled"> <picker mode="date" class="date_iput" :class="cols.disabled?'input-disabled':''" - :disabled="item.disabled" :value="cols.value" @change="onModelValue(cols)"> + :disabled="cols.disabled" :value="cols.value" @change="onModelValue(cols)"> <view class="picker">{{cols.value}}</view> </picker> </view> @@ -130,9 +140,10 @@ </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="cancel" class="btn_cancel">{{translateSys('cancel')}}</button> + <button type="default" @tap="sava" class="btn_add" v-if="dropdownBtns.length==0 && btnName != ''" + :class="saving?'btn_disabled':''" :disabled="saving">{{btnName}}</button> + <button type="default" @tap="cancel" + :class="(dropdownBtns.length> 0 || btnName != '')?'btn_cancel':'btn_cancel2'">{{translateSys('cancel')}}</button> </view> <!-- 鏅�寮圭獥 top bottom center left right --> @@ -183,6 +194,7 @@ data() { return { title: this.translateSys('add2'), + btnName: "", param: {}, edit_inital_event: "", //寮圭獥鍒濆鍖栦簨浠禝D edit_ok_event: "", //寮圭獥鐐瑰嚮OK 瑙﹀彂浜嬩欢ID @@ -226,7 +238,7 @@ $this.onScanValue(ele, res.result) break; } - } else if (ele.name == "Layot") { + } else if (ele.name == "Layout") { let curIndex = (ele.setting.colList || []).findIndex((col, index2, arr) => { return (col.name == 'Input' || col.name == 'InputNumber' || col @@ -285,6 +297,7 @@ this.$data.param = JSON.parse(options.param); this.$data.title = this.$data.param.Add_BtnName ? this.$data.param.Add_BtnName : options .titlename; //璁剧疆鎸夐挳鏂囧瓧 + this.$data.btnName = this.$data.param.Add_BtnName || "" this.loadData(options.paramValue) }, computed: { @@ -295,7 +308,7 @@ }, methods: { - + setData: function(obj) { let that = this; let keys = []; @@ -374,6 +387,24 @@ await $this.DictGetInfo(ele.bind.dict, styledefHead.form.model, ele); + } else { + if (ele?.name === "Select") { + const selections = ele?.selections || [] + //鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ� + let itemName = ele.value || ""; + if (itemName) { + styledefHead.form + .model[ele.fieldId] = itemName; + } + ele.dict = selections.map((a) => { + return { + value: a.value, + text: a.label + } + }) + + } + } if ($this.focusFieldId == "") { if (ele.name == 'Input' || ele.name == @@ -394,6 +425,25 @@ .dict, styledefHead.form .model, col); + } else { + if (col?.name === "Select") { + const selections = col?.selections || [] + //鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ� + let itemName = col.value || ""; + if (itemName) { + styledefHead.form + .model[col.fieldId] = itemName; + } + col.dict = selections.map((a) => { + return { + value: a.value, + text: a.label + } + }) + + + } + } if ($this.focusFieldId == "") { if (col.name == 'Input' || col @@ -454,9 +504,9 @@ var itemName = ''; (res.dict_item_list || []).forEach((item) => { if (item.is_default == '1') - itemName = item.name; + itemName = item.name list.push({ - text: item.value, + text: item.value ? item.value : item.name, value: item.name, }); }); @@ -468,12 +518,19 @@ formItem.dict = list; } catch (ex) { // console.log(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.3", - content: ex.errMsg, + content: tip, showCancel: false, confirmText: this.translateSys("cancel") }); + + } }, @@ -531,160 +588,32 @@ var action = actionlist[i]; if (action.action_type == 'set_dlg_attr') { var result = action.value; - for (var i = 0; i < result.length; i++) { - if (result[i].choice_list) { - for (var c = 0; c < $this.head_styledef.form.items - .length; c++) { - var attr = $this.head_styledef.form.items[c]; - if (attr.name != 'Layout') { - if (attr.fieldId == result[i].attr) { - var dictItemList = []; - for (var d in result[i].choice_list) { - var val = result[i].choice_list[d]; - dictItemList.push({ - "CN_S_NAME": val, - "CN_S_VALUE": val, - "text": val, - "value": val - }); - } - attr.dict = dictItemList; - } - } else if (attr.name == 'Layout') { - attr.setting.colList.forEach(col => { - if (col) { - if (col.fieldId == result[ - i] - .attr) { - var dictItemList = []; - for (var d in result[i] - .choice_list) { - var val = result[i] - .choice_list[ - d]; - dictItemList.push({ - "CN_S_NAME": val, - "CN_S_VALUE": val, - "text": val, - "value": val - }); - } - col.dict = - dictItemList; - } - } - }); - } - - } - } - for (var c = 0; c < $this.$data.head_styledef.form - .items - .length; c++) { - var attr = $this.$data.head_styledef.form.items[c]; - // console.log(attr[j].Name+'=='+result[i].attr); - //鍒ゆ柇琛ㄥ崟閲屾槸鍚︽湁杩斿洖瀛楁锛屾病鏈夊氨瑁呰浇鍒癿odel閲岋紝鐐瑰嚮纭畾鎻愪氦鐨勬椂鍊欏甫涓婅繖浜涙暟鎹�- if ($this.head_styledef.form.model[result[i] - .attr] == - undefined) { - $this.head_styledef.form.model[result[i] - .attr] = - result[i] - .value; - } - //鍒ゆ柇鏄惁鏄爡鏍艰〃鍗�- if (attr.name != 'Layout') { - if (attr.fieldId == result[i].attr) { - attr.value = ''; - attr.oldvalue = ''; - attr.value = result[i].value; - attr.oldvalue = result[i].value; - $this.head_styledef.form.model[attr - .fieldId] = - result[ - i].value; - } - } else if (attr.name == 'Layout') { - attr.setting.colList.forEach(col => { - if (col) { - if (col.fieldId == result[i] - .attr) { - col.value = ''; - col.oldvalue = ''; - col.value = result[i] - .value; - col.oldvalue = result[i] - .value; - $this.head_styledef.form - .model[ - col - .fieldId] = result[ - i] - .value; - } - } - }); - } - } - var length = 0; - if (!$this.$data.refdatastore.filter(function(s) { - return result[i].attr == s.attr - }).length) { - length = 1; - $this.$data.refdatastore.push(result[i]); - } - if (length == 0) { - for (var j = 0; j < $this.$data.refdatastore - .length; j++) { - if ($this.$data.refdatastore[j].attr == result[ - i] - .attr) { - $this.$data.refdatastore[j].value = result[ - i] - .value; - } - } - } - } - } else if (data.action[i].action_type == 'set_dlg_attr_show') { + $this.setFormValues(result) + } else if (action.action_type == 'set_dlg_attr_show') { var result = action.value; - result.forEach(async (attr, key) => { - $this.$data.head_styledef.form.items - .forEach( - async ( - ele, index) => { - //鍒ゆ柇鏄惁鏄爡鏍艰〃鍗�- if (ele.name != 'Layout') { - if (ele.fieldId == attr - .attr) { - ele.show = attr - .show; - } - } else if (ele.name == - 'Layout') { - ele.setting.colList - .forEach( - col => { - if (col) { - if (col - .fieldId == - attr - .attr - ) { - col.show = - attr - .show; - } - } - }); - } - }); - }); - var head_styledef = JSON.parse(JSON.stringify($this.$data - .head_styledef)); - $this.$data.head_styledef = []; - $this.$data.head_styledef = head_styledef; + $this.hideFormItems(result) // console.log($this.$data.head_styledef); + } else if (action.action_type == + "set_dlg_current_edit_attr" + ) { + if ($this + .focusOldFieldId == + action.value) { + $this.setData({ + focusFieldId: "" + }) + } else { + $this.setData({ + focusFieldId: $this + .focusOldFieldId + }) + } + $this.$nextTick(() => { + $this.setData({ + focusFieldId: action + .value + }) + }); } else { uni.showModal({ title: this.translateSys("tip"), @@ -785,7 +714,7 @@ // console.log(obj_attr); var req = Object.keys(obj_attr).map((a) => ({ attr: a, - val: obj_attr[a] || "", + value: obj_attr[a] || "", })); var info = { @@ -802,6 +731,66 @@ } this.DataObjRunCustomEvent(info, ''); } + if (item.value) { //绗竴涓緭鍏ユ涓嶄负绌�+ //鍒濆鍖栵紝涓嬩釜杈撳叆妗唂ocus灞炴� + var findd = false + for (let i in $this.head_styledef.form.items) { + const ele = $this.head_styledef.form.items[i] + + if (ele.name != "Layout") { + if (ele.name == 'Input' || ele.name == 'InputNumber') { + if (attr == ele.fieldId) { + findd = true + } else { + if (findd) { + $this.setData({ + focusFieldId: ele.fieldId + }) + break + } + + } + + } + } else { + if (findd) { + let curIndex = ele.setting.colList.findIndex((col, index2, arr) => { + return (col.name == 'Input' || col.name == 'InputNumber'); + }) + if (curIndex > -1) { + $this.setData({ + focusFieldId: ele.setting.colList[curIndex] + .fieldId + }) + break + } + + } else { + let curIndex = ele.setting.colList.findIndex((col, index2, arr) => { + return attr == col.fieldId; + }) + if (curIndex > -1) { + findd = true + let curIndex2 = ele.setting.colList.findIndex((col, index2, arr) => { + return (col.name == 'Input' || col.name == + 'InputNumber') && + index2 > + curIndex; + }) + if (curIndex2 > -1) { + $this.setData({ + focusFieldId: ele.setting.colList[curIndex] + .fieldId + }) + break + } + } + } + + } + } + } + } }, onClick(item) { @@ -821,7 +810,7 @@ // console.log(obj_attr); var req = Object.keys(obj_attr).map((a) => ({ attr: a, - val: obj_attr[a] || "", + value: obj_attr[a] || "", })); var info = { eventid: eventid, @@ -841,7 +830,7 @@ }, onchange(item) { - // console.log("onchange",item); + console.log("onchange", item); if (item.oldvalue != item.value && item.value.trim() != "") { item.oldvalue = item.value; var attr = item.fieldId; @@ -853,7 +842,7 @@ // console.log(obj_attr); var req = Object.keys(obj_attr).map((a) => ({ attr: a, - val: obj_attr[a] || "", + value: obj_attr[a] || "", })); var info = { eventid: eventid, @@ -875,6 +864,17 @@ onModelValue(item) { //缁戝畾Model鍊� var attr = item.fieldId; this.head_styledef.form.model[attr] = item.value; + console.log(item.value) + }, + onCheckBoxValue(e) { //缁戝畾Model鍊�+ let values = e.detail.value || [] + let attr = e.currentTarget?.dataset?.attr || "" + this.head_styledef.form.model[attr] = values; + }, + onRadioBoxValue(e) { //缁戝畾Model鍊�+ let value = e.detail.value || "" + let attr = e.currentTarget?.dataset?.attr || "" + this.head_styledef.form.model[attr] = value; }, classAttr_extButton(item) { var onSuffixClickCallbackEvent = item.bind.onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑讳簨浠�@@ -883,7 +883,7 @@ if (!onSuffixClickCallbackEvent.id) { uni.showModal({ title: this.translateSys("tip"), - content: this.translate('icon_click_event_empty'), + content: this.translate('icon_click_callback_empty'), showCancel: false, confirmText: this.translateSys("cancel") }); @@ -900,9 +900,9 @@ } this.$data.popupType = 'right' // open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴� - this.$refs.popup.open($this.popupType); + this.$refs.popup.open(this.popupType); - this.DataObjRunCustomEvent_Return(onSuffixClickCallbackEvent.id, '', onSuffixClickEvent.id, + this.dataObjRunCustomEvent_Return(onSuffixClickCallbackEvent.id, '', onSuffixClickEvent.id, item); }, popupChange(e) { @@ -951,16 +951,15 @@ }); return; } - - var fieldId = $this.$data.popupParam.item.fieldId; - $this.head_styledef.form.model[attr] = name; - for (var c = 0; c < $this.$data.head_styledef.form.items.length; c++) { - var attr = $this.$data.head_styledef.form.items[c]; - if (attr.fieldId == fieldId) { - attr.value = name; - } + if (data.length == 0) { + uni.showModal({ + title: this.translateSys("tip"), + content: this.translate("tip_no_select_data"), + showCancel: false, + confirmText: this.translateSys("cancel") + }); + return; } - console.log(data); var callback_eventid = $this.$data.popupParam.button_callback.trim(); var info = { eventid: callback_eventid, @@ -1021,7 +1020,7 @@ info.dataJson = Base64.encode(JSON.stringify(info.dataJson)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜 var obj_attr = {}; info.attr.forEach(item => { - obj_attr[item.attr] = item.val; + obj_attr[item.attr] = item.value; }); if (!info.eventid.includes('{')) info.eventid = '{' + info.eventid + '}'; var dataInfo = { @@ -1089,160 +1088,34 @@ var action = actionlist[i]; if (action.action_type == 'set_dlg_attr') { var result = action.value; - for (var i = 0; i < result.length; i++) { - if (result[i].choice_list) { - for (var c = 0; c < $this.head_styledef.form.items - .length; c++) { - var attr = $this.head_styledef.form.items[c]; - if (attr.name != 'Layout') { - if (attr.fieldId == result[i].attr) { - var dictItemList = []; - for (var d in result[i].choice_list) { - var val = result[i].choice_list[d]; - dictItemList.push({ - "CN_S_NAME": val, - "CN_S_VALUE": val, - "text": val, - "value": val - }); - } - attr.dict = dictItemList; - } - } else if (attr.name == 'Layout') { - attr.setting.colList.forEach(col => { - if (col) { - if (col.fieldId == result[ - i] - .attr) { - var dictItemList = []; - for (var d in result[i] - .choice_list) { - var val = result[i] - .choice_list[ - d]; - dictItemList.push({ - "CN_S_NAME": val, - "CN_S_VALUE": val, - "text": val, - "value": val - }); - } - col.dict = - dictItemList; - } - } - }); - } - - } - } - for (var c = 0; c < $this.$data.head_styledef.form - .items - .length; c++) { - var attr = $this.$data.head_styledef.form.items[c]; - // console.log(attr[j].Name+'=='+result[i].attr); - //鍒ゆ柇琛ㄥ崟閲屾槸鍚︽湁杩斿洖瀛楁锛屾病鏈夊氨瑁呰浇鍒癿odel閲岋紝鐐瑰嚮纭畾鎻愪氦鐨勬椂鍊欏甫涓婅繖浜涙暟鎹�- if ($this.head_styledef.form.model[result[i] - .attr] == - undefined) { - $this.head_styledef.form.model[result[i] - .attr] = - result[i] - .value; - } - //鍒ゆ柇鏄惁鏄爡鏍艰〃鍗�- if (attr.name != 'Layout') { - if (attr.fieldId == result[i].attr) { - attr.value = ''; - attr.oldvalue = ''; - attr.value = result[i].value; - attr.oldvalue = result[i].value; - $this.head_styledef.form.model[attr - .fieldId] = - result[i] - .value; - } - } else if (attr.name == 'Layout') { - attr.setting.colList.forEach(col => { - if (col) { - if (col.fieldId == result[i] - .attr) { - col.value = ''; - col.oldvalue = ''; - col.value = result[i] - .value; - col.oldvalue = result[i] - .value; - $this.head_styledef.form - .model[col - .fieldId] = result[ - i].value; - } - } - }); - } - } - var length = 0; - if (!$this.$data.refdatastore.filter(function(s) { - return result[i].attr == s.attr - }).length) { - length = 1; - $this.$data.refdatastore.push(result[i]); - } - if (length == 0) { - for (var j = 0; j < $this.$data.refdatastore - .length; j++) { - if ($this.$data.refdatastore[j].attr == result[ - i] - .attr) { - $this.$data.refdatastore[j].value = result[ - i] - .value; - } - } - } - } + $this.setFormValues(result) } else if (action.action_type == 'set_dlg_attr_show') { var result = action.value; - result.forEach(async (attr, key) => { - $this.$data.head_styledef.form.items - .forEach( - async (ele, - index) => { - //鍒ゆ柇鏄惁鏄爡鏍艰〃鍗�- if (ele.name != 'Layout') { - if (ele.fieldId == attr - .attr) { - ele.show = attr - .show; - } - } else if (ele.name == - 'Layout') { - ele.setting.colList - .forEach( - col => { - if (col) { - if (col - .fieldId == - attr - .attr - ) { - col.show = - attr - .show; - } - } - }); - } - }); - }); - var head_styledef = JSON.parse(JSON.stringify($this.$data - .head_styledef)); - $this.$data.head_styledef = []; - $this.$data.head_styledef = head_styledef; + $this.hideFormItems(result) // console.log($this.$data.head_styledef); } else if (action.action_type == 'set_global_attr') { $this.$data.global_attr = action.value || []; + } else if (action.action_type == + "set_dlg_current_edit_attr" + ) { + if ($this + .focusOldFieldId == + action.value) { + $this.setData({ + focusFieldId: "" + }) + } else { + $this.setData({ + focusFieldId: $this + .focusOldFieldId + }) + } + $this.$nextTick(() => { + $this.setData({ + focusFieldId: action + .value + }) + }); } else { uni.showModal({ title: this.translateSys("tip"), @@ -1339,52 +1212,62 @@ }); }); }, - DataObjRunCustomEvent_Return(eventid, data_attr, button_callback, item) { + dataObjRunCustomEvent_Return(eventid, data_attr, button_callback, item) { + const $this = this var enviroment = { 'function': '3000', // 鍔熻兘鐐圭紪鍙�- cls_id: this.$data.param.DataCls.id, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�+ cls_id: $this.param.DataCls.id, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇� 'button': 'top', // top/bottom - button_name: this.translateSys('add2'), + button_name: $this.translateSys('add2'), master: { - cls_id: this.$data.param.DataCls.id, // button=bottom鏃�master鐨刢ls_id + cls_id: $this.param.DataCls.id, // button=bottom鏃�master鐨刢ls_id //obj_id: '' // button=bottom鏃�master鐨刼bj_id } }; - var obj_attr = this.head_styledef.form.model; - // console.log(obj_attr); + var obj_attr = $this.head_styledef.form.model; + console.log(obj_attr); var req = Object.keys(obj_attr).map((a) => ({ attr: a, - val: obj_attr[a] || "", + value: obj_attr[a] || "", })); - if (this.$data.refdatastore.length > 0) { - for (var i = 0; i < this.$data.refdatastore.length; i++) { + if ($this.refdatastore.length > 0) { + for (var i = 0; i < $this.refdatastore.length; i++) { if (!req.filter(function(s) { - return this.$data.refdatastore[i].attr == s.name + return $this.refdatastore[i].attr == s.name }).length) { - length = 1; req.push({ - 'attr': this.$data.refdatastore[i].attr, - 'val': this.$data.refdatastore[i].value + 'attr': $this.refdatastore[i].attr, + 'value': $this.refdatastore[i].value }); } } } + var extinfo = enviroment; extinfo.edit_dlg = { type: 'small', //灏忕獥鍙�- class_id: this.$data.param.DataCls.id, //褰撳墠鏁版嵁绫籭d + class_id: $this.param.DataCls.id, //褰撳墠鏁版嵁绫籭d } extinfo = Base64.encode(JSON.stringify(extinfo)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜 - var global_attr = Base64.encode(JSON.stringify(this.$data.global_attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜 + var global_attr = Base64.encode(JSON.stringify($this.global_attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜 var obj_attr = {}; - req.forEach(item => { - obj_attr[item.attr] = item.val; + req.forEach(item2 => { + obj_attr[item2.attr] = item2.value; }); + let input_param = Base64.encode( + JSON.stringify( + Object.keys(obj_attr).map((a) => ({ + attr: a, + value: obj_attr[a] || "", + })) + ) + ); + if (!eventid.includes('{')) eventid = '{' + eventid + '}'; var dataInfo = { ed_type: "0", start_transaction: true, - class_id: this.$data.param.DataCls.id, + class_id: $this.param.DataCls.id, class_name: '', event_id: eventid, event_name: '', @@ -1394,11 +1277,11 @@ ref_cls_id: '', rel_obj_id: '', user_login: '', - data_json: '', + data_json: [], compose_info: '', ext_info: extinfo, global_attr: global_attr, - input_param: '', + input_param: input_param, }; console.log(dataInfo); // return; @@ -1409,22 +1292,22 @@ data .err_info.join('<br/>') : ''; if (data.ret == 801) { - if (this.param.Only_Script_Error) { + if ($this.param.Only_Script_Error) { let pos = tip.indexOf("锛�); if (pos > -1) tip = tip.substring(pos + 1); } uni.showModal({ - title: this.translateSys("tip"), + title: $this.translateSys("tip"), content: tip, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: $this.translateSys("cancel") }); } else uni.showModal({ - title: this.translateSys("tip"), - content: tip + ',' + this.translateSys('tip') + ':' + data + title: $this.translateSys("tip"), + content: tip + ',' + $this.translateSys('tip') + ':' + data .ret, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: $this.translateSys("cancel") }); return false } else { @@ -1433,30 +1316,30 @@ .join( '<br/>') : ''; if (tip) uni.showModal({ - title: this.translateSys("tip"), + title: $this.translateSys("tip"), content: tip, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: $this.translateSys("cancel") }); if (data != "") { var actions = data.action; - console.log(actions); if (actions) { for (var i = 0; i < actions.length; i++) { var action = actions[i]; + console.log(action) var val = action.value; var enviroment = JSON.stringify(enviroment); if (action.action_type == 'open_panel') { var d = dialog({ title: '<i class="ace-icon fa fa-info-circle"></i> ' + - this.translateSys("tip"), - content: this.translateSys( + $this.translateSys("tip"), + content: $this.translateSys( "quotation_mark_left") + action - .action_type + this.translateSys( - "quotation_mark_right") + this + .action_type + $this.translateSys( + "quotation_mark_right") + $this .translate( "tip_action_unprocessed") }); @@ -1464,7 +1347,6 @@ } else if (action.action_type == 'open_select_userdlg') { var style = val.style; // style == 'user' ? '閫夋嫨浜哄憳' : style == 'department' ? '閫夋嫨閮ㄩ棬' : style == 'role' ? '閫夋嫨瑙掕壊' : '' - var $this = this; var param = { item: item, button_callback: button_callback, @@ -1507,33 +1389,41 @@ } else if (action.action_type == 'open_data_query_dlg') { var d = dialog({ title: '<i class="ace-icon fa fa-info-circle"></i> ' + - this.translateSys("tip"), - content: this.translateSys( + $this.translateSys("tip"), + content: $this.translateSys( "quotation_mark_left") + action - .action_type + this.translateSys( - "quotation_mark_right") + this + .action_type + $this.translateSys( + "quotation_mark_right") + $this .translate( "tip_action_unprocessed") }); d.show(); } else if (action.action_type == 'open_common_dlg') { - var $this = this; + if (val.common_dlg_id == 'check_list') { - $this.$data.check_list = val.config; + $this.setData({ + check_list: val.config + }) if (val.config.appear_style == 'sideslip') //鍒ゆ柇鏄惁鏄晶婊�- $this.$data.popupType = 'right'; + $this.setData({ + popupType: "right" + }) else - $this.$data.popupType = 'center' + $this.setData({ + popupType: "center" + }) // open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴� - $this.$refs.popup.open($this.$data.popupType); + $this.$refs.popup.open($this.popupType); var popupParam = { item: item, button_callback: button_callback, req: req, data_attr: data_attr } - $this.$data.popupParam = popupParam; + $this.setData({ + popupParam: popupParam + }) } } else if (action.action_type == 'open_project_query_dlg') { //console.log(action.value.select_range); @@ -1553,8 +1443,6 @@ priRel = '4'; else if (action.value.select_range == '鎴戜笅灞炵殑椤圭洰') priRel = '5'; - - var $this = this; var param_ = { item: item, button_callback: button_callback, @@ -1601,28 +1489,28 @@ }); } else { uni.showModal({ - title: this.translateSys("tip"), - content: this.translateSys( + title: $this.translateSys("tip"), + content: $this.translateSys( "quotation_mark_left") + - action.action_type + this.translateSys( - "quotation_mark_right") + this + action.action_type + $this.translateSys( + "quotation_mark_right") + $this .translate( "tip_action_unprocessed"), showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: $this.translateSys("cancel") }); } } } } else { uni.showModal({ - title: this.translateSys('tip') + "5.2", - content: this.translateSys("quotation_mark_left") + - "before_click_button" + this.translateSys( - "quotation_mark_right") + this.translateSys( + title: $this.translateSys('tip') + "5.2", + content: $this.translateSys("quotation_mark_left") + + "before_click_button" + $this.translateSys( + "quotation_mark_right") + $this.translateSys( "comma") + 'event_id' + eventid, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: $this.translateSys("cancel") }); } } @@ -1634,10 +1522,10 @@ exStr = ex let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr uni.showModal({ - title: this.translateSys('tip') + "5.1", + title: $this.translateSys('tip') + "5.1", content: exStr, showCancel: false, - confirmText: this.translateSys("cancel") + confirmText: $this.translateSys("cancel") }); }); }, @@ -1652,6 +1540,7 @@ }, add() { + const $this = this uni.showLoading({ title: this.translateSys("loading"), mask: true @@ -1697,81 +1586,280 @@ }; console.log(dataInfo); // return - dataObjCreate(dataInfo).then(result => { + dataObjCreate(dataInfo).then(res => { uni.hideLoading(); - if (result.action) { - var action = JSON.parse(result.action); - console.log(action); - if (action.ret == '0') { - if (action.ret != 0) { - uni.showModal({ - title: this.translateSys("tip"), - content: this.translate('execute_script_failed') + - this - .translateSys('comma') + this.translate( - 'result') + - this - .translateSys('colon') + action.result, - showCancel: false, - confirmText: this.translateSys("cancel") - }); - this.saving = false - return; + let data = res.lua_result + if (data.ret != 0) { + var tip = data.err_info ? typeof data.err_info == 'string' ? data + .err_info : + data + .err_info.join('<br/>') : ''; + if (data.ret == 801) { + if (this.param.Only_Script_Error) { + let pos = tip.indexOf("锛�); + if (pos > -1) tip = tip.substring(pos + 1); } - if (action.info) { - uni.showModal({ - title: this.translateSys("tip"), - content: this.translate('execute_script_failed') + - this - .translateSys('comma') + - this.translateSys('colon') + action.info, - showCancel: false, - confirmText: this.translateSys("cancel") - }); - return; - } - if (action.result_type == '0') { - uni.showToast({ - title: action.result, - icon: "success", - duration: 3000 - }); - } + uni.showModal({ + title: this.translateSys("tip"), + content: tip, + showCancel: false, + confirmText: this.translateSys("cancel") + }); + } else uni.showModal({ + title: this.translateSys("tip"), + content: tip + ',' + this.translateSys('tip') + ':' + data + .ret, + 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( + '<br/>') : ''; + if (tip) uni.showModal({ + title: this.translateSys("tip"), + content: tip, + showCancel: false, + confirmText: this.translateSys("cancel") + }); + else { - // "{"ret":0, "result_type":0, "result":"鍒涘缓鎴愬姛123123123","info":""}" + uni.showToast({ + title: this.translate('create_success'), + icon: "success", + duration: 3000 + }); } - } else - uni.showToast({ - title: this.translate('create_success'), - icon: "success", - duration: 3000 - }); - if (!this.$data.param.After_Btn_Not_Refresh) { - //鍒锋柊 - uni.redirectTo({ - url: '../modal/3018_2?param=' + JSON.stringify(this.$data - .param) + - "&titlename=" + this.$data.title - }); - } + + if (!this.$data.param.After_Btn_Not_Refresh) { + //鍒锋柊 + uni.redirectTo({ + url: '../modal/3018_2?param=' + JSON.stringify(this.$data + .param) + + "&titlename=" + this.$data.title + }); + } else { + var actionlist = data.action; + if (actionlist) { + console.log(actionlist); + for (var i = 0; i < actionlist.length; i++) { + var action = actionlist[i]; + if (action.action_type == 'set_dlg_attr') { + $this.setFormValues(action.value) + } else if (action.action_type == 'set_dlg_attr_show') { + var result = action.value; + $this.hideFormItems(result) + } else if (action.action_type == + "set_dlg_current_edit_attr" + ) { + if ($this + .focusOldFieldId == + action.value) { + $this.setData({ + focusFieldId: "" + }) + } else { + $this.setData({ + focusFieldId: $this + .focusOldFieldId + }) + } + $this.$nextTick(() => { + $this.setData({ + focusFieldId: action + .value + }) + }); + } + } + } + + } + } // this.class_attr_init(); this.saving = false }).catch(ex => { - console.log(ex); this.saving = false + uni.hideLoading(); + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr uni.showModal({ title: this.translateSys("tip"), - content: ex.errMsg, + content: tip, showCancel: false, confirmText: this.translateSys("cancel") }); }); }, + setFormValues(data) { + const $this = this + for (var i = 0; i < data.length; i++) { + if (data[i].choice_list) { + for (var c = 0; c < $this.head_styledef.form.items + .length; c++) { + var attr = $this.head_styledef.form.items[c]; + if (attr.name != 'Layout') { + if (attr.fieldId == data[i].attr) { + var dictItemList = []; + for (var d in data[i].choice_list) { + var val = data[i].choice_list[d]; + dictItemList.push({ + "CN_S_NAME": val, + "CN_S_VALUE": val, + "text": val, + "value": val + }); + } + attr.dict = dictItemList; + } + } else if (attr.name == 'Layout') { + attr.setting.colList.forEach(col => { + if (col) { + if (col.fieldId == data[ + i] + .attr) { + var dictItemList = []; + for (var d in data[i] + .choice_list) { + var val = data[i] + .choice_list[ + d]; + dictItemList.push({ + "CN_S_NAME": val, + "CN_S_VALUE": val, + "text": val, + "value": val + }); + } + col.dict = + dictItemList; + } + } + }); + } + + } + } + for (var c = 0; c < $this.$data.head_styledef.form + .items + .length; c++) { + var attr = $this.$data.head_styledef.form.items[c]; + // console.log(attr[j].Name+'=='+data[i].attr); + //鍒ゆ柇琛ㄥ崟閲屾槸鍚︽湁杩斿洖瀛楁锛屾病鏈夊氨瑁呰浇鍒癿odel閲岋紝鐐瑰嚮纭畾鎻愪氦鐨勬椂鍊欏甫涓婅繖浜涙暟鎹�+ if ($this.head_styledef.form.model[data[i] + .attr] == + undefined) { + $this.head_styledef.form.model[data[i] + .attr] = + data[i] + .value; + } + //鍒ゆ柇鏄惁鏄爡鏍艰〃鍗�+ if (attr.name != 'Layout') { + if (attr.fieldId == data[i].attr) { + attr.value = ''; + attr.oldvalue = ''; + attr.value = data[i].value; + attr.oldvalue = data[i].value; + $this.head_styledef.form.model[attr + .fieldId] = + data[ + i].value; + } + } else if (attr.name == 'Layout') { + attr.setting.colList.forEach(col => { + if (col) { + if (col.fieldId == data[i] + .attr) { + col.value = ''; + col.oldvalue = ''; + col.value = data[i] + .value; + col.oldvalue = data[i] + .value; + $this.head_styledef.form + .model[ + col + .fieldId] = data[ + i] + .value; + } + } + }); + } + } + var length = 0; + if (!$this.$data.refdatastore.filter(function(s) { + return data[i].attr == s.attr + }).length) { + length = 1; + $this.$data.refdatastore.push(data[i]); + } + if (length == 0) { + for (var j = 0; j < $this.$data.refdatastore + .length; j++) { + if ($this.$data.refdatastore[j].attr == data[ + i] + .attr) { + $this.$data.refdatastore[j].value = data[ + i] + .value; + } + } + } + } + + }, + hideFormItems(data) { + const $this = this + data.forEach(async (attr, key) => { + $this.$data.head_styledef.form.items + .forEach( + async ( + ele, index) => { + //鍒ゆ柇鏄惁鏄爡鏍艰〃鍗�+ if (ele.name != 'Layout') { + if (ele.fieldId == attr + .attr) { + ele.show = attr + .show; + } + } else if (ele.name == + 'Layout') { + ele.setting.colList + .forEach( + col => { + if (col) { + if (col + .fieldId == + attr + .attr + ) { + col.show = + attr + .show; + } + } + }); + } + }); + }); + var head_styledef = JSON.parse(JSON.stringify($this.$data + .head_styledef)); + $this.$data.head_styledef = []; + $this.$data.head_styledef = head_styledef; + }, afterOK() { this.saving = true + const $this = this var obj_attr = this.head_styledef.form.model; // console.log(obj_attr); var input_param = { @@ -1797,7 +1885,7 @@ user_login: '', data_json: '', compose_info: '', - input_param: '', + input_param: Base64.encode(JSON.stringify(input_param)), }; console.log(dataInfo); // return; @@ -1839,18 +1927,63 @@ showCancel: false, confirmText: this.translateSys("cancel") }); + if (!this.$data.param.After_Btn_Not_Refresh) { + //鍒锋柊 + uni.redirectTo({ + url: '../modal/3018_2?param=' + JSON.stringify(this.$data + .param) + + "&titlename=" + this.$data.title + }); + } else { + var actionlist = data.action; + if (actionlist) { + console.log(actionlist); + for (var i = 0; i < actionlist.length; i++) { + var action = actionlist[i]; + if (action.action_type == 'set_dlg_attr') { + $this.setFormValues(action.value) + } else if (action.action_type == 'set_dlg_attr_show') { + var result = action.value; + $this.hideFormItems(result) + } else if (action.action_type == + "set_dlg_current_edit_attr" + ) { + if ($this + .focusOldFieldId == + action.value) { + $this.setData({ + focusFieldId: "" + }) + } else { + $this.setData({ + focusFieldId: $this + .focusOldFieldId + }) + } + $this.$nextTick(() => { + $this.setData({ + focusFieldId: action + .value + }) + }); + } - var result = data.result; - + } + } + } } this.saving = false }).catch(ex => { // console.log(ex); this.saving = false + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr uni.showModal({ title: this.translateSys('tip') + "7.1", - content: ex.errMsg, + content: tip, showCancel: false, confirmText: this.translateSys("cancel") }); @@ -1900,6 +2033,7 @@ } }, onTriggerEvent(btn, enviroment) { + const $this = this var obj_attr = this.head_styledef.form.model; // console.log(obj_attr); var input_param = { @@ -1965,16 +2099,61 @@ showCancel: false, confirmText: this.translateSys("cancel") }); + if (!this.$data.param.After_Btn_Not_Refresh) { + //鍒锋柊 + uni.redirectTo({ + url: '../modal/3018_2?param=' + JSON.stringify(this.$data + .param) + + "&titlename=" + this.$data.title + }); + } else { + var actionlist = data.action; + if (actionlist) { + console.log(actionlist); + for (var i = 0; i < actionlist.length; i++) { + var action = actionlist[i]; + if (action.action_type == 'set_dlg_attr') { + $this.setFormValues(action.value) + } else if (action.action_type == 'set_dlg_attr_show') { + var result = action.value; + $this.hideFormItems(result) + } else if (action.action_type == + "set_dlg_current_edit_attr" + ) { + if ($this + .focusOldFieldId == + action.value) { + $this.setData({ + focusFieldId: "" + }) + } else { + $this.setData({ + focusFieldId: $this + .focusOldFieldId + }) + } + $this.$nextTick(() => { + $this.setData({ + focusFieldId: action + .value + }) + }); + } - var result = data.result; - + } + } + } } }).catch(ex => { // console.log(ex); + let exStr = JSON.stringify(ex) + if (exStr == "{}") + exStr = ex + let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr uni.showModal({ title: this.translateSys('tip') + "7.1", - content: ex.errMsg, + content: tip, showCancel: false, confirmText: this.translateSys("cancel") }); @@ -1993,7 +2172,6 @@ const url = '../modal/3018?param=' + JSON.stringify(data) + "&titlename=" + btn.Edit_dlg .Name + "&type=addDataObj" - console.log("showAddSmallDialog", url); var $this = this; uni.navigateTo({ url: url, @@ -2002,13 +2180,12 @@ addDataObj: function(resData) { console.log(resData); //鍒锋柊 - if (!this.$data.param.After_Btn_Not_Refresh) { - 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 + .$data.param) + + "&titlename=" + this.$data.title + }); + }, } }); @@ -2169,6 +2346,17 @@ display: inline-block; } + .btn_cancel2 { + width: 90%; + margin: 0 10rpx; + background: #fff; + border: none; + color: #000; + font-size: 38rpx; + float: right; + display: inline-block; + } + .uni-padding-wrap { margin: 2rpx 0 0 10rpx; background-color: #98DAEA; -- Gitblit v1.9.1