From 8f1880cf13440b9cb57d15520ebc3b785f3dabb1 Mon Sep 17 00:00:00 2001 From: cuiqian2004 <cuiqian2004@163.com> Date: 星期五, 01 八月 2025 11:17:49 +0800 Subject: [PATCH] lua action处理 --- pages/modal/form/index.vue | 1052 +++++++++++++++++++++++++-------------------------------- 1 files changed, 466 insertions(+), 586 deletions(-) diff --git a/pages/modal/form/index.vue b/pages/modal/form/index.vue index 72ffda4..efb6e0c 100644 --- a/pages/modal/form/index.vue +++ b/pages/modal/form/index.vue @@ -1,98 +1,11 @@ <template> - <view class="uni-page-modal-form"> + <view class="uni-page-modal-form" :class="largeMode?'large-mode':''"> <view class="view-content"> <!-- 琛ㄥご鏍峰紡 --> - <uni-forms ref="baseForm" label-align="right"> - <view v-for="(item,index) in head_styledef.form.items" :key="index" class="v-head-style"> - <!-- 鏅�甯冨眬 --> - <uni-forms-item v-if="item.name != 'Layout'" :label="item.label ?item.label +'锛�:'' " - :label-width="item.labelWidth+'px'"> - <uni-data-picker v-if="item.name=='Select'" :class="item.disabled?'input-disabled':''" - v-model="item.value" :localdata="item.useDict ? item.dict : item.selections" @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'"> - <text v-if="item.setting.prefix" class="uni-icon" :class="[item.setting.prefix]" - @click="classAttr_extButton(item)"></text> - <input class="uni-input" :class="item.disabled?'input-disabled':''" - :style="{'padding-left':item.setting.prefix?0 : '8rpx','right':item.setting.suffix?0 : '8rpx'}" - :type="item.name=='Input'?'text':'number'" v-model="item.value" - :disabled="item.disabled" :placeholder="item.placeholder" - :focus="focusFieldId == item.fieldId" @focus="ontap(item)" @click="onClick(item)" - @keyup.enter="onEnterChange(item)" @blur="onEnterChange(item)" :maxlength="-1" /> - <text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]" - @click="classAttr_extButton(item)"></text> - </view> - <!-- 澶嶉�妗�--> - <checkbox-group v-if="item.name=='Checkbox'" :class="item.disabled?'input-disabled':''" - :disabled="item.disabled" @change="onCheckBoxValue" :data-attr="item.fieldId" - :data-index="index"> - <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 v-if="item.name=='Radio'" :class="item.disabled?'input-disabled':''" - :disabled="item.disabled" @change="onRadioBoxValue" :data-attr="item.fieldId" - :data-index="index"> - <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="onEnterChange(item)" /> - </uni-forms-item> - <!-- 鏍呮牸甯冨眬 --> - <uni-row v-else :gutter="item.setting.gutter"> - <uni-col - :span=" item.setting.spanList && item.setting.spanList[key]? item.setting.spanList[key] : 24 / item.setting.col" - v-for="(col,key) in item.setting.colList"> - <uni-forms-item v-if="col!=null" :label="col.label ? col.label +'锛�:''" :label-width="col.labelWidth+'px'"> - <uni-data-picker v-if="col.name=='Select'" :class="col.disabled?'input-disabled':''" - v-model="col.value" :localdata="col.useDict ? col.dict : col.selections" @change="onEnterChange(col)" - :readonly="col.disabled" :clear-icon="false" - :popup-title="col.label"></uni-data-picker> - <view class="input-wrapper" v-if="col.name=='Input' || col.name=='InputNumber'"> - <text v-if="col.setting.prefix" class="uni-icon" :class="[col.setting.prefix]" - @click="classAttr_extButton(col)"></text> - <input class="uni-input" :class="col.disabled?'input-disabled':''" - :style="{'padding-left':col.setting.prefix?0 : '8px','right':col.setting.suffix?0 : '8px'}" - :type="col.name=='Input'?'text':'number'" v-model="col.value" - :disabled="col.disabled" :placeholder="col.placeholder" - :focus="focusFieldId == col.fieldId" @focus="ontap(col)" @click="onClick(col)" - @keyup.enter="onEnterChange(col)" @blur="onEnterChange(col)" :maxlength="-1" /> - <text v-if="col.setting.suffix" class="uni-icon" :class="[col.setting.suffix]" - @click="classAttr_extButton(col)"></text> - </view> - <!-- 澶嶉�妗�--> - <checkbox-group v-if="col.name=='Checkbox'" :class="col.disabled?'input-disabled':''" - :disabled="col.disabled" @change="onCheckBoxValue" :data-attr="col.fieldId" - :data-index="index" :data-iindex="key"> - <label v-for="(col2) in col.selections" :key="col2.value"> - <checkbox :value="col2.value" :checked="col.value.includes(col2.value)" /> - <text>{{col2.label}}</text> - </label> - </checkbox-group> - <!-- 鍗曢�妗�--> - <radio-group v-if="col.name=='Radio'" :class="col.disabled?'input-disabled':''" - :disabled="col.disabled" @change="onRadioBoxValue" :data-attr="col.fieldId" - :data-index="index" :data-iindex="key"> - <label v-for="(col2) in col.selections" :key="col2.value"> - <radio :value="col2.value" :checked="col2.value === col.value" /> - <text>{{col2.label}}</text> - </label> - </radio-group> - <!-- Switch寮�叧 --> - <switch v-if="col.name=='Switch'" :class="col.disabled?'input-disabled':''" - :disabled="col.disabled" v-model="col.value" @change="onEnterChange(col)" /> - </uni-forms-item> - </uni-col> - </uni-row> - </view> - </uni-forms> + <OIForm ref="refBaseForm" class="v-head-style" :form="head_styledef.form" + :hiddenIds="head_styledef.hiddenIds ?head_styledef.hiddenIds :[] " :focusId="focusFieldId" + @on-click="onClick" @on-focus="ontap" @on-change="onEnterChange" @on-click-prefix="classAttr_extButton" + @on-click-suffix="classAttr_extButton"></OIForm> </view> <view class="view-bottom"> <button type="primary" @tap="ok" class="btn_add" :class="okLoading?'btn_disabled':''" @@ -104,9 +17,9 @@ <uni-popup class="view-popup" ref="popup" background-color="#fff" @change="popupChange"> <view class="popup-header">{{check_list.title}}</view> <view class="popup-content" :class="{ 'popup-height': popupType === 'left' || popupType === 'right' }" - :style="{'width':check_list.width?check_list.width+'px':'375rpx','height':check_list.height?check_list.height+'px':popupType =='center'?'60vh':'88vh'}"> - <view class="popup-cont" - :style="{'height':check_list.height?check_list.height-45+'px':popupType =='center'?'50vh':'80vh'}"> + :style="{'width':check_list.width?check_list.width+'px':'375rpx','height':check_list.height?check_list.height+'px':popupType =='center'?'60vh':'88vh'}"> + <view class="popup-cont" + :style="{'height':check_list.height?check_list.height-45+'px':popupType =='center'?'50vh':'80vh'}"> <view class="view_popup_CheckList" v-for="(item,index) in check_list.items"> <checkbox-group class="check_list" @change="checkChange" :data-ischeck="item.check" :data-index="index" :style="{'margin-left': '10rpx'}"> @@ -129,7 +42,9 @@ </template> <script> - import Base64 from '../../../components/js-base64/base64.js' + import { + Base64 + } from '@/js/Base64.js'; import { dictGetInfo } from "@/api/mobox.js" @@ -140,14 +55,17 @@ updateDataObj, dataObjInfo } from "@/api/data.js" + import dayjs from "dayjs"; + import OIForm from '@/components/oi-form/index.vue' export default { name: "PageModalForm", - modules: { - Base64, + components: { + OIForm }, data() { return { + largeMode: getApp().globalData.largeMode || false, okLoading: false, title: this.translateSys('add2'), type: '', @@ -166,7 +84,6 @@ global_attr: [], ext_info: {}, data_json: [], - refdatastore: [], //寮曠敤鏁版嵁瀛樺偍鍖�/ {attr:'G_PRJ_' + bindattr + '_ID', value:info.id} popupType: "center", check_list: {}, popupParam: {}, @@ -232,7 +149,7 @@ this.ext_info = JSON.parse(options.extInfo); if (options.dataJson) this.data_json = JSON.parse(options.dataJson); - this.title = options.titlename ? options.titlename : this.param.ShowName; //璁剧疆鎸夐挳鏂囧瓧 + this.title = options.titlename ? options.titlename : this.param.ShowName; //璁剧疆鎸夐挳鏂囧瓧 // console.log(options) uni.setNavigationBarTitle({ title: this.title @@ -378,6 +295,25 @@ } } } + const app = getApp() + if (app.globalData.bindClasses) { + styledefHead.form.items.push({ + name: "Input", + label: this.translate("classes"), + labelWidth: 100, + disabled: true, + value: app.globalData.classes, + setting: { + width: 100, + height: 50, + }, + bind: { + attr: "", + }, + fieldId: "S_CLASSES", + }) + styledefHead.form.model["S_CLASSES"] = app.globalData.classes + } } this.setData({ @@ -440,7 +376,7 @@ }, async loadFormData(objAttr) { let attrs = [] - + if (this.objId) { let info = await dataObjInfo({ class_id: this.clsId, @@ -536,6 +472,7 @@ var tip = result.info ? typeof result.info == 'string' ? result.info : result.info.join('<br/>') : ''; + tip = tip || result.err_info if (tip) uni.showModal({ title: this.translateSys('tip'), content: tip, @@ -543,9 +480,21 @@ confirmText: this.translateSys( 'close') }); + if (result.result_type == 2) { - if (result.result_type == 0 && result.action) { - result.action.forEach(item => { + } else if (typeof result.result == 'string') { + if (result.result) { + uni.showModal({ + title: this.translateSys('tip'), + content: result.result, + showCancel: false, + confirmText: this.translateSys('close') + }); + } + } + try { + var actionList = result.action || [] + actionList.forEach(item => { if (item.action_type == "set_dlg_current_edit_attr" @@ -574,22 +523,26 @@ // value = {"attr":"xxx", "value":"xxx"} var data = item.value; $this.setFormValues(data) + } else if (action.action_type == 'set_dlg_attr_show') { + var data = action.value; + + $this.setFormItemVisible(data) } }); - } else { - if (result.info) { - uni.showModal({ - title: this.translateSys( - "error") + "4.3", - content: result.info, - showCancel: false, - confirmText: this - .translateSys('close') - }); - } + } catch (ex) { + let actionList = (result.action || []).map(a => a.action_type).join(';') + let tip = typeof ex == 'string' ? ex : ex.message + tip = `鎵ц鑴氭湰杩斿洖鐨�{actionList}鏃跺嚭鐜板紓甯革紝璇锋鏌ヨ剼鏈繑鍥炵殑鏁版嵁鏍煎紡鏄惁姝g‘銆�{tip}` + uni.showModal({ + title: this.translateSys('tip'), + content: tip, + showCancel: false, + confirmText: this.translateSys('close') + }); + console.log(ex) + return } - } } @@ -614,13 +567,14 @@ //console.log(e.target) this.focusOldFieldId = item.fieldId getApp().onScan((result) => { - console.log(result.decodedata); - item.value = result.decodedata; + console.log(result); + item.value = result; var $this = this; - if (item.oldvalue != item.value && item.value.trim() != "") { - item.oldvalue = item.value; + let newVal = item.value.trim() + if (newVal) { + item.oldvalue = newVal; var attr = item.fieldId; - this.head_styledef.form.model[attr] = item.value; + this.head_styledef.form.model[attr] = newVal; var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠� var onSuffixClickCallbackEvent = item.bind .onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑讳簨浠�@@ -631,36 +585,59 @@ if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠� $this.onChange(onChangeEvent); } - if (item.value) { //绗竴涓緭鍏ユ涓嶄负绌�- //鍒濆鍖栵紝涓嬩釜杈撳叆妗唂ocus灞炴� - var findd = false - for (let i in $this.head_styledef.form.items) { - const ele = $this.head_styledef.form.items[i] + //鍒濆鍖栵紝涓嬩釜杈撳叆妗唂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 - } - + 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'); + + } + } 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 }) - if (curIndex > -1) { + 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] @@ -668,34 +645,9 @@ }) 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 - } - } } - } + } } @@ -705,74 +657,26 @@ onEnterChange(item) { //鍥炶溅锛岀偣鍑绘寜閽紝鍙栨秷鑺傜偣浜嬩欢 console.log(item); - if (item.oldvalue != item.value && item.value.trim() != "") { - item.oldvalue = item.value; + let newVal = item.value + if (typeof item.value == "string") { + newVal = item.value.trim() + if (!newVal) { + item.oldvalue = newVal; + var attr = item.fieldId; + this.head_styledef.form.model[attr] = newVal; + return + } + } + if (item.oldvalue != newVal) { + item.oldvalue = newVal; var attr = item.fieldId; - this.head_styledef.form.model[attr] = item.value; + this.head_styledef.form.model[attr] = newVal; var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�- if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠� this.onChange(onChangeEvent); } } - }, - onCheckBoxValue(e) { //缁戝畾Model鍊�- let values = e.detail.value || [] - const item = this.head_styledef.form.items[e.currentTarget?.dataset?.index || 0] - if (item?.setting?.colList) { - const col = item.setting.colList[e.currentTarget?.dataset?.iindex || 0] - if (col) { - col.value = values - let attr = col.fieldId; - this.head_styledef.form.model[attr] = col.value; - var onChangeEvent = col.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�- if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠�- this.onChange(onChangeEvent); - } - return - } - } else { - if (item) { - item.value = values - let attr = item.fieldId; - this.head_styledef.form.model[attr] = item.value; - var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�- if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠�- this.onChange(onChangeEvent); - } - } - } - - }, - onRadioBoxValue(e) { //缁戝畾Model鍊�- let values = e.detail.value || "" - const item = this.head_styledef.form.items[e.currentTarget?.dataset?.index || 0] - if (item?.setting?.colList) { - const col = item.setting.colList[e.currentTarget?.dataset?.iindex || 0] - if (col) { - col.value = values - let attr = col.fieldId; - this.head_styledef.form.model[attr] = col.value; - var onChangeEvent = col.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�- if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠�- this.onChange(onChangeEvent); - } - return - } - } else { - if (item) { - item.value = values - let attr = item.fieldId; - this.head_styledef.form.model[attr] = item.value; - var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�- if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠�- this.onChange(onChangeEvent); - } - } - - } - }, classAttr_extButton(item) { var onSuffixClickCallbackEvent = item.bind.onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑讳簨浠�@@ -796,7 +700,7 @@ }); return; } - this.$data.popupType = 'right' + this.popupType = 'right' // open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴� this.$refs.popup.open(this.popupType); @@ -890,6 +794,7 @@ var tip = result.info ? typeof result.info == 'string' ? result.info : result.info.join('<br/>') : ''; + tip = tip || result.err_info if (tip) uni.showModal({ title: this.translateSys('tip'), content: tip, @@ -897,9 +802,21 @@ confirmText: this.translateSys( 'close') }); + if (result.result_type == 2) { - if (result.result_type == 0 && result.action) { - result.action.forEach(item => { + } else if (typeof result.result == 'string') { + if (result.result) { + uni.showModal({ + title: this.translateSys('tip'), + content: result.result, + showCancel: false, + confirmText: this.translateSys('close') + }); + } + } + try { + var actionList = result.action || [] + actionList.forEach(item => { if (item.action_type == "set_dlg_current_edit_attr" @@ -928,21 +845,29 @@ // value = {"attr":"xxx", "value":"xxx"} var data = item.value; $this.setFormValues(data) + } else if (action.action_type == + 'set_dlg_attr_show') { + var data = action.value; + + $this.setFormItemVisible(data) } }); - } else { - if (result.info) { - uni.showModal({ - title: this.translateSys( - "error") + "4.3", - content: result.info, - showCancel: false, - confirmText: this - .translateSys('close') - }); - } + } catch (ex) { + let actionList = (result.action || []).map(a => a.action_type) + .join(';') + let tip = typeof ex == 'string' ? ex : ex.message + tip = `鎵ц鑴氭湰杩斿洖鐨�{actionList}鏃跺嚭鐜板紓甯革紝璇锋鏌ヨ剼鏈繑鍥炵殑鏁版嵁鏍煎紡鏄惁姝g‘銆�{tip}` + uni.showModal({ + title: this.translateSys('tip'), + content: tip, + showCancel: false, + confirmText: this.translateSys('close') + }); + console.log(ex) + return } + } @@ -1004,7 +929,8 @@ if (col.useDict) { col.dict = dictItemList; } else { - col.selections = dictItemList; + col.selections = + dictItemList; } } } @@ -1034,11 +960,32 @@ //鍒ゆ柇琛ㄥ崟閲屾槸鍚︽湁杩斿洖瀛楁锛屾病鏈夊氨瑁呰浇鍒癿odel閲岋紝鐐瑰嚮纭畾鎻愪氦鐨勬椂鍊欏甫涓婅繖浜涙暟鎹� }) - console.log(head_styledef) this.setData({ head_styledef: head_styledef }) }, + setFormItemVisible(attrs) { + if (!Array.isArray(attrs)) { + return + } + const head_styledef = this.head_styledef + if (!head_styledef.hiddenIds) { + head_styledef.hiddenIds = [] + } + attrs.forEach((attr) => { + let index = head_styledef.hiddenIds.findIndex((id) => id == attr.attr); + if (attr.show) { + if (index > -1) head_styledef.hiddenIds.splice(index, 1); + } else { + if (index == -1) head_styledef.hiddenIds.push(attr.attr); + } + }); + this.setData({ + head_styledef: head_styledef + }) + + }, + popupChange(e) { console.log('褰撳墠妯″紡锛� + e.type + ',鐘舵�锛� + e.show); }, @@ -1046,15 +993,15 @@ // console.log(e.target.dataset); var index = e.target.dataset.index; var ischeck = e.target.dataset.ischeck; - var data = this.$data.check_list.items; - // this.$data.check_list.items=[]; - if (this.$data.check_list.multiple_choice == "0") { //鍒ゆ柇鏃跺崟閫夎繕鏄閫�+ var data = this.check_list.items; + // this.check_list.items=[]; + if (this.check_list.multiple_choice == "0") { //鍒ゆ柇鏃跺崟閫夎繕鏄閫� for (var i in data) { data[i].check = false; } } data[index].check = ischeck ? false : true; - this.$data.check_list.items = data; + this.check_list.items = data; }, popup_cancel(e) { //寮规鍙栨秷 @@ -1062,7 +1009,7 @@ }, popup_sava(e) { //寮规纭畾 var $this = this; - var items = $this.$data.check_list.items; + var items = $this.check_list.items; var data = []; var name = ""; for (var i = 0; i < items.length; i++) { @@ -1076,7 +1023,7 @@ }); } } - if (!$this.$data.popupParam) { + if (!$this.popupParam) { uni.showModal({ title: this.translateSys("tip"), content: "popupParam涓虹┖锛�, @@ -1097,7 +1044,7 @@ let global_attr = Base64.encode(JSON.stringify(this.global_attr)) let data_json = Base64.encode(JSON.stringify(this.data_json)) let ext_info = Base64.encode(JSON.stringify(this.ext_info)) - var callback_eventid = $this.$data.popupParam.button_callback.trim(); + var callback_eventid = $this.popupParam.button_callback.trim(); var info = { eventid: callback_eventid, edtype: "0", @@ -1107,10 +1054,10 @@ userlogin: '', clsid: $this.clsId, objid: "", - attr: $this.$data.popupParam.req, + attr: $this.popupParam.req, dataJson: data } - $this.DataObjRunCustomEvent(info, $this.$data.popupParam.data_attr); + $this.DataObjRunCustomEvent(info, $this.popupParam.data_attr); this.$refs.popup.close(); }, @@ -1204,16 +1151,27 @@ .info .join( '<br/>') : ''; + tip = tip || data.err_info if (tip) uni.showModal({ title: this.translateSys("tip"), content: tip, showCancel: false, confirmText: this.translateSys('close') }); - - var actionlist = data.action; - if (actionlist) { - console.log(actionlist); + if (data.result_type == 2) { + $this.setFormValues(data.result || []) + } else if (typeof data.result == 'string') { + if (data.result) { + uni.showModal({ + title: this.translateSys('tip'), + content: data.result, + showCancel: false, + confirmText: this.translateSys('close') + }); + } + } + try { + var actionlist = data.action || [] for (var i = 0; i < actionlist.length; i++) { var action = actionlist[i]; if (action.action_type == 'set_dlg_attr') { @@ -1221,45 +1179,10 @@ $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; - // console.log($this.$data.head_styledef); + + $this.setFormItemVisible(result) } else if (action.action_type == 'set_global_attr') { - $this.$data.global_attr = action.value || []; + $this.global_attr = action.value || []; } else { uni.showModal({ title: this.translateSys("tip"), @@ -1275,67 +1198,22 @@ }); } } - } - console.log($this.head_styledef); - if (data.result) { - var result = data.result; - for (var i = 0; i < result.length; i++) { - for (var c = 0; c < $this.$data.head_styledef.form.items - .length; c++) { - var attr = $this.$data.head_styledef.form.items[c]; - //鍒ゆ柇琛ㄥ崟閲屾槸鍚︽湁杩斿洖瀛楁锛屾病鏈夊氨瑁呰浇鍒癿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; - } - } - } - } + } catch (ex) { + let actionList = (data.action || []).map(a => a.action_type).join(';') + let tip = typeof ex == 'string' ? ex : ex.message + tip = `鎵ц鑴氭湰杩斿洖鐨�{actionList}鏃跺嚭鐜板紓甯革紝璇锋鏌ヨ剼鏈繑鍥炵殑鏁版嵁鏍煎紡鏄惁姝g‘銆�{tip}` + uni.showModal({ + title: this.translateSys('tip'), + content: tip, + showCancel: false, + confirmText: this.translateSys('close') + }); + console.log(ex) + return } + + } }).catch(ex => { @@ -1371,18 +1249,6 @@ attr: a, value: obj_attr[a] || "", })); - if ($this.refdatastore.length > 0) { - for (var i = 0; i < $this.refdatastore.length; i++) { - if (!req.filter(function(s) { - return $this.refdatastore[i].attr == s.name - }).length) { - req.push({ - 'attr': $this.refdatastore[i].attr, - 'value': $this.refdatastore[i].value - }); - } - } - } let global_attr = Base64.encode(JSON.stringify(this.global_attr)) let data_json = Base64.encode(JSON.stringify(this.data_json)) let ext_info = Base64.encode(JSON.stringify(this.ext_info)) @@ -1451,200 +1317,217 @@ .info .join( '<br/>') : ''; + tip = tip || data.err_info if (tip) uni.showModal({ title: $this.translateSys("tip"), content: tip, showCancel: false, confirmText: $this.translateSys('close') }); + if (data.result_type == 2) { - if (data != "") { - var actions = data.action; - 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); + } else if (typeof data.result == 'string') { + if (data.result) { + uni.showModal({ + title: this.translateSys('tip'), + content: data.result, + showCancel: false, + confirmText: this.translateSys('close') + }); + } + } + try { + var actions = data.action || [] + 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( - "quotation_mark_left") + - action - .action_type + $this.translateSys( - "quotation_mark_right") + $this - .translate( - "tip_action_unprocessed") - }); - d.show(); - } else if (action.action_type == 'open_select_userdlg') { - var style = val.style; - // style == 'user' ? '閫夋嫨浜哄憳' : style == 'department' ? '閫夋嫨閮ㄩ棬' : style == 'role' ? '閫夋嫨瑙掕壊' : '' - var param = { + 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( + "quotation_mark_left") + + action + .action_type + $this.translateSys( + "quotation_mark_right") + $this + .translate( + "tip_action_unprocessed") + }); + d.show(); + } else if (action.action_type == 'open_select_userdlg') { + var style = val.style; + // style == 'user' ? '閫夋嫨浜哄憳' : style == 'department' ? '閫夋嫨閮ㄩ棬' : style == 'role' ? '閫夋嫨瑙掕壊' : '' + var param = { + item: item, + button_callback: button_callback, + req: req, + data_attr: data_attr + } + uni.navigateTo({ + url: '../selpsn/index?mulit=false¶m=' + + JSON + .stringify( + param), + events: { + AddPer(data, param) { + // console.log(param); + console.log(data); + var callback_eventid = param + .button_callback + .trim(); + var info = { + eventid: callback_eventid, + edtype: "0", + projectid: '', + rclsid: '', + robjid: '', + userlogin: '', + clsid: $this.clsId, + objid: "", + attr: param.req, + inputparameter: data, + dataJson: [], + } + $this.DataObjRunCustomEvent(info, + param + .data_attr); + } + } + }); + } 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( + "quotation_mark_left") + + action + .action_type + $this.translateSys( + "quotation_mark_right") + $this + .translate( + "tip_action_unprocessed") + }); + d.show(); + } else if (action.action_type == 'open_common_dlg') { + + if (val.common_dlg_id == 'check_list') { + $this.setData({ + check_list: val.config + }) + if (val.config.appear_style == + 'sideslip') //鍒ゆ柇鏄惁鏄晶婊�+ $this.setData({ + popupType: "right" + }) + else + $this.setData({ + popupType: "center" + }) + // open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴� + $this.$refs.popup.open($this.popupType); + var popupParam = { item: item, button_callback: button_callback, req: req, data_attr: data_attr } - uni.navigateTo({ - url: '../selpsn/index?mulit=false¶m=' + - JSON - .stringify( - param), - events: { - AddPer(data, param) { - // console.log(param); - console.log(data); - var callback_eventid = param - .button_callback - .trim(); + $this.setData({ + popupParam: popupParam + }) + } + } else if (action.action_type == + 'open_project_query_dlg') { + //console.log(action.value.select_range); + //console.log(action.value.mulit_select); + var priRel = '-1'; + if (action.value.select_range == '鍏ㄩ儴鐩稿叧') + priRel = '0'; + else if (action.value.select_range == '鎴戣礋璐g殑椤圭洰') + priRel = '1'; + else if (action.value.select_range == '鎴戝垱寤虹殑') + priRel = '2'; + else if (action.value.select_range == '鎴戝弬涓庣殑' || action + .value + .select_range == '鎴戝弬鍔犵殑') + priRel = '3'; + else if (action.value.select_range == '鎴戝叧娉ㄧ殑') + priRel = '4'; + else if (action.value.select_range == '鎴戜笅灞炵殑椤圭洰') + priRel = '5'; + var param_ = { + item: item, + button_callback: button_callback, + req: req + } + uni.navigateTo({ + url: '../selPrj/index?relation=' + priRel + + '¶m=' + + JSON.stringify(param_), + events: { + AddPer(data, param) { + var attr = param.item.fieldId; + $this.head_styledef.form.model[ + attr] = + data[0].ID + + ';' + data[0].Name; + + // $this.classAttrList[param.index].Attr[param.iindex].Value=data[0].Name; + // $this.classAttrList[param.index].Attr[param.iindex].ValID=data[0].ID+';'+data[0].Name; + var callback_eventid = param + .button_callback + .trim(); + if (callback_eventid) { var info = { eventid: callback_eventid, - edtype: "0", - projectid: '', - rclsid: '', - robjid: '', - userlogin: '', + edtype: "2", + projectid: data[0].ID, + rclsid: "", + robjid: "", + userlogin: "", clsid: $this.clsId, objid: "", attr: param.req, - inputparameter: data, dataJson: [], } - $this.DataObjRunCustomEvent(info, - param - .data_attr); + + $this.DataObjRunCustomEvent( + info); } } - }); - } 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( - "quotation_mark_left") + - action - .action_type + $this.translateSys( - "quotation_mark_right") + $this - .translate( - "tip_action_unprocessed") - }); - d.show(); - } else if (action.action_type == 'open_common_dlg') { - - if (val.common_dlg_id == 'check_list') { - $this.setData({ - check_list: val.config - }) - if (val.config.appear_style == 'sideslip') //鍒ゆ柇鏄惁鏄晶婊�- $this.setData({ - popupType: "right" - }) - else - $this.setData({ - popupType: "center" - }) - // open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴� - $this.$refs.popup.open($this.popupType); - var popupParam = { - item: item, - button_callback: button_callback, - req: req, - data_attr: data_attr - } - $this.setData({ - popupParam: popupParam - }) } - } else if (action.action_type == 'open_project_query_dlg') { - //console.log(action.value.select_range); - //console.log(action.value.mulit_select); - var priRel = '-1'; - if (action.value.select_range == '鍏ㄩ儴鐩稿叧') - priRel = '0'; - else if (action.value.select_range == '鎴戣礋璐g殑椤圭洰') - priRel = '1'; - else if (action.value.select_range == '鎴戝垱寤虹殑') - priRel = '2'; - else if (action.value.select_range == '鎴戝弬涓庣殑' || action - .value - .select_range == '鎴戝弬鍔犵殑') - priRel = '3'; - else if (action.value.select_range == '鎴戝叧娉ㄧ殑') - priRel = '4'; - else if (action.value.select_range == '鎴戜笅灞炵殑椤圭洰') - priRel = '5'; - var param_ = { - item: item, - button_callback: button_callback, - req: req - } - uni.navigateTo({ - url: '../selPrj/index?relation=' + priRel + - '¶m=' + - JSON.stringify(param_), - events: { - AddPer(data, param) { - var attr = param.item.fieldId; - $this.head_styledef.form.model[ - attr] = - data[0].ID + - ';' + data[0].Name; - - // $this.$data.classAttrList[param.index].Attr[param.iindex].Value=data[0].Name; - // $this.$data.classAttrList[param.index].Attr[param.iindex].ValID=data[0].ID+';'+data[0].Name; - var callback_eventid = param - .button_callback - .trim(); - if (callback_eventid) { - var info = { - eventid: callback_eventid, - edtype: "2", - projectid: data[0].ID, - rclsid: "", - robjid: "", - userlogin: "", - clsid: $this.clsId, - objid: "", - attr: param.req, - dataJson: [], - } - - $this.DataObjRunCustomEvent( - info); - } - } - } - }); - } else { - uni.showModal({ - title: $this.translateSys("tip"), - content: $this.translateSys( - "quotation_mark_left") + - action.action_type + $this.translateSys( - "quotation_mark_right") + $this - .translate( - "tip_action_unprocessed"), - showCancel: false, - confirmText: $this.translateSys('close') - }); - } + }); + } else { + uni.showModal({ + title: $this.translateSys("tip"), + content: $this.translateSys( + "quotation_mark_left") + + action.action_type + $this + .translateSys( + "quotation_mark_right") + $this + .translate( + "tip_action_unprocessed"), + showCancel: false, + confirmText: $this.translateSys('close') + }); } } - } else { + + } catch (ex) { + let actionList = (data.action || []).map(a => a.action_type).join(';') + let tip = typeof ex == 'string' ? ex : ex.message + tip = `鎵ц鑴氭湰杩斿洖鐨�{actionList}鏃跺嚭鐜板紓甯革紝璇锋鏌ヨ剼鏈繑鍥炵殑鏁版嵁鏍煎紡鏄惁姝g‘銆�{tip}` uni.showModal({ - 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, + title: this.translateSys('tip'), + content: tip, showCancel: false, - confirmText: $this.translateSys('close') + confirmText: this.translateSys('close') }); + console.log(ex) + return } + } }).catch(ex => { @@ -1669,19 +1552,23 @@ mask: true }); this.okLoading = true + console.log(obj_attr) var obj_attr = this.head_styledef.form.model || {}; console.log(obj_attr) let ret = await this.sava(); + this.okLoading = false uni.hideLoading(); if (!ret) return; obj_attr.id = this.objId || ""; - const eventChannel = this.$scope.eventChannel; + console.log(this.$scope) + const eventChannel = this.getOpenerEventChannel(); // const eventChannel = this.getOpenerEventChannel(); eventChannel.emit(this.type, obj_attr); uni.navigateBack() } catch (ex) { + this.okLoading = true return false; } }, @@ -1717,6 +1604,8 @@ } return true; } catch (ex) { + console.log("sava", ex) + this.showError(ex) return false; } @@ -1842,8 +1731,10 @@ value: obj_attr[a], })), }; - let global_attr = Base64.encode(JSON.stringify(this.global_attr)) - let data_json = Base64.encode(JSON.stringify(this.data_json)) + let global_attr = Base64.encode(JSON.stringify(this + .global_attr)) + let data_json = Base64.encode(JSON.stringify(this + .data_json)) let ext_info = Base64.encode(JSON.stringify(this.ext_info)) var dataInfo = { ed_type: "0", @@ -1862,7 +1753,8 @@ data_json, ext_info, compose_info: '', - input_param: Base64.encode(JSON.stringify(input_param)), + input_param: Base64.encode(JSON.stringify( + input_param)), }; await runCustomEvent(dataInfo) return true @@ -1920,7 +1812,8 @@ .global_attr)) let data_json = Base64.encode(JSON.stringify(this .data_json)) - let ext_info = Base64.encode(JSON.stringify(this.ext_info)) + let ext_info = Base64.encode(JSON.stringify(this + .ext_info)) await runCustomEvent({ ed_type: 0, @@ -1939,9 +1832,11 @@ let exStr = JSON.stringify(ex) if (exStr == "{}") exStr = ex - let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr + let tip = typeof ex.errMsg == "string" ? ex + .errMsg : exStr uni.showModal({ - title: this.translateSys("tip") + "8.1", + title: this.translateSys("tip") + + "8.1", content: tip, showCancel: false, confirmText: this.translateSys('close') @@ -1955,18 +1850,22 @@ var obj_attr = this.head_styledef.form.model; let inputParam = { id: "", - attrs: Object.keys(obj_attr).map((a) => ({ - attr: a, - value: obj_attr[a], - })), + attrs: Object.keys(obj_attr).map((a) => + ({ + attr: a, + value: obj_attr[a], + })), }; let input_param = Base64.encode(JSON.stringify( inputParam)); - let global_attr = Base64.encode(JSON.stringify(this + let global_attr = Base64.encode(JSON.stringify( + this .global_attr)) - let data_json = Base64.encode(JSON.stringify(this + let data_json = Base64.encode(JSON.stringify( + this .data_json)) - let ext_info = Base64.encode(JSON.stringify(this + let ext_info = Base64.encode(JSON.stringify( + this .ext_info)) await runCustomEvent({ @@ -1986,16 +1885,29 @@ let exStr = JSON.stringify(ex) if (exStr == "{}") exStr = ex - let tip = typeof ex.errMsg == "string" ? ex.errMsg : + let tip = typeof ex.errMsg == "string" ? ex + .errMsg : exStr uni.showModal({ - title: this.translateSys("tip") + "8.2", + title: this.translateSys("tip") + + "8.2", content: tip, showCancel: false, - confirmText: this.translateSys('close') + confirmText: this.translateSys( + 'close') }); return false } + }, + showError(ex) { + uni.showModal({ + title: this.translateSys('error'), + content: typeof ex == "string" ? ex : typeof ex.errMsg == "string" ? ex + .errMsg : "", + showCancel: false, + confirmText: this.translateSys( + 'cancel') + }) }, translate(t) { if (typeof this.$t == "function") return this.$t( @@ -2026,38 +1938,6 @@ flex-direction: column; } - .v-head-style { - width: 98%; - - .uni-forms-item { - margin-bottom: 11rpx; - } - - .input-wrapper { - border: 1px solid #d5d5d5; - width: 100%; - display: flex; - flex-direction: row; - - .uni-input { - flex: 1; - padding: 12rpx 8rpx; - color: #2d8cf0; - // height: 40rpx; - // line-height: 40rpx; - } - - .uni-icon { - padding: 8rpx; - font-size: 32rpx; - color: rgb(192, 196, 204); - } - } - - .input-wrapper:hover { - border: 1px solid rgb(41, 121, 255); - } - } .view-content { display: flex; @@ -2119,7 +1999,7 @@ .uni-icon { /* border: 1px solid red; */ - width: 8%; + width: 30rpx; font-family: uniicons; font-size: 40rpx; font-weight: 400; @@ -2157,7 +2037,7 @@ .popup-footer { float: right; position: absolute; - bottom:10rpx; + bottom: 10rpx; right: 20rpx; } -- Gitblit v1.9.1