From dc4e312fde92237060bc23c35016f4d6b7a9187e Mon Sep 17 00:00:00 2001 From: cuiqian2004 <cuiqian2004@163.com> Date: 星期一, 24 六月 2024 11:11:37 +0800 Subject: [PATCH] 属性类型多语言 --- pages/modal/3200_view.vue | 1850 +++++++++++++++++++++++++++++------------------------------ 1 files changed, 918 insertions(+), 932 deletions(-) diff --git a/pages/modal/3200_view.vue b/pages/modal/3200_view.vue index fed0f15..2c03b6c 100644 --- a/pages/modal/3200_view.vue +++ b/pages/modal/3200_view.vue @@ -1,3 +1,921 @@ + +<template> + <view class="content"> + <view class="v-content"> + <view class="dv-panel dv-panel-bkcolor"> + <div class="dv-panel-input"> + <!-- HTML椤甸潰绫诲瀷鏄剧ず --> + <div class="dv-viewHtml-Panel" v-if="ViewHtml_Panel" v-html="ViewHtml_Panel"> + <!-- <div> + <label class="item-label">浠诲姟缂栫爜:</label> + <span class="item-span">TA240318-00005</span> + </div> --> + </div> + <!-- 鑷畾涔夎〃鍗曠被鍨嬫樉绀�--> + <div v-if="!ViewHtml_Panel"> + <div v-for="(item,index) in detail2_styledef.form.items"> + <!-- 鏅�甯冨眬 --> + <view v-if="item.name!='Layout'"> + <text class="txt_title" :style="{'width':item.labelWidth+'px'}">{{item.label}}锛�/text> + <span class="form-item-span" + v-if="item.disabled">{{item.value2?'#'+item.value+'#'+item.value2:item.value}}</span> + <!-- 鏂囨湰妗�鏁板瓧妗�--> + <view class="dv_input" + v-if="(item.name=='Input' || item.name=='InputNumber') && !item.disabled"> + <text v-if="item.setting.prefix" class="uni-icon" :class="[item.setting.prefix]" + @change="onChange(item)"></text> + <input class="uni-input" :class="item.disabled?'input-disabled':''" + :type="item.name=='Input'?'text':item.name=='InputNumber'?'number':'text'" + 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="focusMateria" @focus="ontap(item)" @blur="onevent(item)" /> + <text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]" + @click="onChange(item)"></text> + </view> + <!-- 涓嬫媺妗�鍗曢� item.useDict?item.dict:item.selections--> + <uni-data-select id="dv_select" v-if="item.name=='Select' && !item.disabled" + :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=='Textarea' && !item.disabled"> + <textarea class="uni-input" :value="item.value" + :class="item.disabled?'input-disabled':''" :placeholder="item.placeholder" + @blur="onModelValue(item)" style="height:60px;" :style="{'width':'96%'}" + :disabled="item.disabled"></textarea> + </view> + <!-- 澶嶉�妗�--> + <checkbox-group class="check_rememberPwd" v-if="item.name=='Checkbox'" + :class="item.disabled?'input-disabled':''" @change="onModelValue(item)" + :data-ischeck="item.value" :disabled="item.disabled" + :style="{'margin-left':'10rpx'}"> + <label> + <checkbox :value="item.value" :checked="item.value" /> + <text>{{item.label}}</text> + </label> + </checkbox-group> + <!-- Switch寮�叧 --> + <switch v-if="item.name=='Switch'" :class="item.disabled?'input-disabled':''" + :disabled="item.disabled" v-model="item.value" @change="onModelValue(item)" + :style="{'margin-left':'10rpx'}" /> + <!-- 鏃ユ湡鏃堕棿 --> + <view class="input-wrapper" + v-if="(item.name=='TimePicker' || item.name=='DatePicker') && !item.disabled"> + <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> + </picker> + </view> + </view> + <!-- 鏍呮牸甯冨眬 --> + <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"> + <view v-if="cols!=null"> + <text class="txt_title" + :style="{'width':cols.labelWidth+'px'}">{{cols.label}}锛�/text> + <span class="form-item-span" + v-if="cols.disabled">{{cols.value2?'#'+cols.value+'#'+cols.value2:cols.value}}</span> + <view class="dv_input" + v-if="(cols.name=='Input' || cols.name=='InputNumber') && !cols.disabled"> + <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':''" + :type="cols.name=='Input'?'text':cols.name=='InputNumber'?'number':'text'" + 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="focusMateria" @focus="ontap(cols)" @blur="onevent(cols)" /> + <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" + :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"> + <textarea class="uni-input" :value="cols.value" + :class="cols.disabled?'input-disabled':''" + :placeholder="cols.placeholder" @blur="onModelValue(cols)" + style="height:60px;" :style="{'width':'96%'}" + :disabled="cols.disabled"></textarea> + </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> + </label> + </checkbox-group> + <!-- Switch寮�叧 --> + <switch v-if="cols.name=='Switch'" :class="cols.disabled?'input-disabled':''" + :disabled="item.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)"> + <view class="picker">{{cols.value}}</view> + </picker> + </view> + + </view> + </uni-col> + </uni-row> + </div> + </div> + </div> + </view> + </view> + + <view class="view-floor" v-if="param.ViewPage.Page_Button"> + <!-- <button type="default" @click="cancel" class="btn_cancel" + :style="{'width':param.ViewPage.Page_Button.length>1?'39.5%':'48.5%'}">杩斿洖</button> --> + <button type="default" class="btn_refresh" v-for="(btn,index) in param.ViewPage.Page_Button" v-if="index<2" + @click="onBtnClick(btn)" + :style="{'width':param.ViewPage.Page_Button.length==1?'96%':param.ViewPage.Page_Button.length>2?'39.5%':'48%'}">{{btn.ShowName}}</button> + + <view class="uni-padding-wrap" v-if="param.ViewPage.Page_Button.length>2"> + <view class="uni-btn-v"> + <a @tap="actionSheetTap"> + <Icon class="mobox-normal-more" /> + </a> + </view> + </view> + </view> + </view> +</template> + +<script> + import Base64 from '../../components/js-base64/base64.js' + import classUtils from "@/js/utils.js" + export default { + modules: { + Base64, + }, + onBackPress(e) { + // console.log("鐩戝惉杩斿洖鎸夐挳浜嬩欢",e); + var eventChannel = this.$scope.eventChannel; + // const eventChannel = this.getOpenerEventChannel(); + eventChannel.emit('ExitViewEvent', ""); + // uni.navigateBack({ + // delta:1 ,//杩斿洖灞傛暟锛�鍒欎笂涓婇〉 + // }); + // return true; + }, + data() { + return { + title: '鏂板', + param: {}, + styleDef: { + form: { + items: [] + } + }, + detail2_styledef: { + form: { + items: [] + }, + }, + // detail2StyleDefList:[], + //鑾峰彇鏁版嵁绫荤殑HTML椤甸潰 + ViewHtml_Panel: "", + ViewPageHtml_Show: { + name: "", + event: { + id: "", + name: "" + } + }, + }; + }, + async onLoad(options) { + // console.log(options); + uni.setNavigationBarTitle({ + title: options.titlename + }); //璁剧疆椤堕儴鏍囬 + this.$data.title = options.titlename; + this.$data.param = JSON.parse(options.param); + console.log(this.$data.param); + this.$data.styleDef = JSON.parse(options.style); + // console.log(this.$data.styleDef); + if (this.param.ViewPage.View_UIDef.ui_type == "HTML椤甸潰") { + // HTML椤甸潰 + //鑾峰彇鏁版嵁绫荤殑HTML椤甸潰 + this.Html_UIstyleGetInfo(this.param.DataCls.id, this.param.ViewPage.View_UIDef.id, 'viewPage'); + } else { + this.Detail2_UIstyleGetInfo(this.param.DataCls.id, this.param.ViewPage.View_UIDef.id); + } + + + //杩涘叆椤甸潰鍚庝簨浠�+ var eventid = this.param.ViewPage.Enter_View_Event?.id; + if (eventid) { + try { + var obj_attr = { + 'S_ID': this.styleDef.form.objId + }; + this.styleDef.form.attrs.forEach((attr) => { + obj_attr[attr.name] = attr.value; + }); + // console.log(obj_attr); + var input_param = Base64.encode(JSON.stringify(obj_attr)); + this.runCustomEvent({ + ed_type: 0, + start_transaction: true, + class_id: this.param.DataCls.id, + event_id: eventid, + data_obj_id:this.styleDef.form.objId, + obj_attr, + input_param, + }); + } catch (ex) { + var tip = typeof ex == "string" ? ex : ex.message; + uni.showModal({ + title: "閿欒", + content: tip, + showCancel: false, + confirmText: "鍙栨秷" + }); + } + } + }, + methods: { + async Detail2_UIstyleGetInfo(class_id, style_id) { //鑾峰彇鑷畾涔夎〃鍗曟牱寮�+ var $this = this; + var dataInfo = { + class_id: class_id, + ui_style_id: style_id, + }; + this.$store.dispatch('UIStyleGetInfo', dataInfo).then(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); + } + $this.$data.detail2_styledef = ret.result.style_def ? JSON.parse(styledef) : {}; + $this.$data.detail2_styledef.SelBut_Checked = false; + // console.log($this.$data.detail2_styledef); + $this.styleDef.form.attrs.forEach((attr) => { + // info[attr.name]=attr.value; + $this.detail2_styledef.form.items.forEach(async (ele, index) => { + if (ele.name != 'Layout') { + if (ele.fieldId == attr.name) { + ele.value = attr.value; + } + } else if (ele.name == 'Layout') { + ele.setting.colList.forEach(async (col, key) => { + if (col) { + if (col.fieldId == attr.name) { + col.value = attr.value; + } + } + }); + } + }); + }); + setTimeout(function() { + var detail2_styledef = JSON.parse(JSON.stringify($this.detail2_styledef)); + $this.detail2_styledef = []; + $this.detail2_styledef = detail2_styledef; + }, 100); + } else { + uni.showModal({ + title: "閿欒1", + content: ret.err_msg, + showCancel: false, + confirmText: "鍙栨秷" + }); + } + }).catch(ex => { + // console.log(ex); + uni.showModal({ + title: "閿欒1.1", + content: ex.errMsg, + showCancel: false, + confirmText: "鍙栨秷" + }); + }); + + }, + async Html_UIstyleGetInfo(class_id, style_id) { //鑾峰彇鑷畾涔夎〃鍗曟牱寮�+ var $this = this; + var dataInfo = { + class_id: class_id, + ui_style_id: style_id, + }; + this.$store.dispatch('UIStyleGetInfo', dataInfo).then(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); + } + $this.ViewPageHtml_Show = ret.result.style_def ? JSON.parse(styledef) : {}; + // console.log($this.ViewPageHtml_Show); + var obj_attr = {}; + $this.styleDef.form.attrs.forEach((attr) => { + obj_attr[attr.name] = attr.value; + }); + obj_attr['id'] = $this.styleDef.form.objId; + + var eventid = $this.ViewPageHtml_Show.event.id; + if (!$this.ViewPageHtml_Show.event.id.includes('{')) + eventid = '{' + $this.ViewPageHtml_Show.event.id + '}'; + //HTML椤甸潰浜嬩欢 + $this.runCustomEvent({ + ed_type: 0, + start_transaction: true, + class_id: $this.param.DataCls.id, + event_id: eventid, + data_obj_id:$this.styleDef.form.objId, + obj_attr, + }); + } else { + uni.showModal({ + title: "閿欒6", + content: ret.err_msg, + showCancel: false, + confirmText: "鍙栨秷" + }); + } + }).catch(ex => { + // console.log(ex); + uni.showModal({ + title: "閿欒6.1", + content: ex.errMsg, + showCancel: false, + confirmText: "鍙栨秷" + }); + }); + + }, + //鏌ヨ鏁版嵁绫绘暟鎹俊鎭�+ async dataObjQuery(clsid, where, index, key) { + try { + var $this = this; + var dataInfo = { + class_id: clsid, + attrs: [], + condition: this.toWhereBase64String("" + where + ""), + prj_rel_type: "", + order_by: this.orderby, + page_size: 99999, + page: 1, + query_id: '', + }; + this.$store.dispatch('dataObjQuery', dataInfo).then(ret => { + // console.log(ret); + if (ret.err_code == 0) { + if (ret.result) { + $this.detail1StyleDefList = []; + ret.result.obj_list.forEach((obj) => { + var info = { + S_ID: obj.id, + }; + obj.attr_list.forEach((attr) => { + info[attr.name] = attr.value; + }); + if (key != -1) + $this.detail2_styledef.form.items[index].setting.colList[key] + .value2 = info.S_NAME; + else + $this.detail2_styledef.form.items[index].value2 = info.S_NAME; + }); + // console.log($this.detail2_styledef); + } + } else { + uni.showModal({ + title: "閿欒5", + content: ret.err_msg, + showCancel: false, + confirmText: "鍙栨秷" + }); + } + }).catch(ex => { + // console.log(ex); + uni.showModal({ + title: "閿欒5.1", + content: ex.errMsg, + showCancel: false, + confirmText: "鍙栨秷" + }); + }); + } catch (ex) { + var tip = typeof ex == "string" ? ex : ex.message; + uni.showModal({ + title: "閿欒5.2", + content: tip, + showCancel: false, + confirmText: "鍙栨秷" + }); + } + }, + + // 鍐呭鍙樺寲鍚庝簨浠�+ async onChange(event) { + try { + if (event.id) { + var obj_attr = this.detail2_styledef.form.model; + // console.log(obj_attr); + var input_param = Base64.encode( + JSON.stringify( + Object.keys(obj_attr).map((a) => ({ + attr: a, + value: obj_attr[a] || "", + })) + ) + ); + var $this = this; + var dataInfo = { + ed_type: 0, + start_transaction: true, + class_id: this.$data.detail2_styledef.form.clsId, + class_name: '', + event_id: event.id, + event_name: '', + data_obj_id:"", + obj_attr: obj_attr, + prj_id: '', + ref_cls_id: '', + rel_obj_id: '', + user_login: '', + data_json: '', + compose_info: '', + ext_info: '', + global_attr: '', + input_param: input_param, + }; + this.$store.dispatch('runCustomEvent', dataInfo).then(ret => { + // console.log(ret); + if (ret.err_code == 0) { + var result = ret.result; + if (result.ret != 0) { + var tip = result.err_info ? typeof result.err_info == 'string' ? result + .err_info : result.err_info.join('<br/>') : ''; + if (result.ret == 801) uni.showModal({ + title: '鎻愮ず', + content: tip, + showCancel: false, + confirmText: "鍙栨秷" + }); + else uni.showModal({ + title: '鎻愮ず', + content: tip + ',鎻愮ず:' + result.ret, + showCancel: false, + confirmText: "鍙栨秷" + }); + return false; + } else { + var tip = result.info ? typeof result.info == 'string' ? result.info : + result.info.join('<br/>') : ''; + if (tip) uni.showModal({ + title: '鎻愮ず', + content: tip, + showCancel: false, + confirmText: "鍙栨秷" + }); + + if (result.result_type == 0 && result.action) { + result.action.forEach(item => { + if (item.action_type == "set_dlg_attr") { + // value = {"attr":"xxx", "value":"xxx"} + var data = item.value; + $this.$data.detail2_styledef.form.items.forEach(async ( + ele, index) => { + data.forEach(async (ele2, index) => { + if (ele.fieldId == ele2 + .attr) { + ele.value = ele2 + .value; + } + }); + }); + } + }); + } else { + // this.detail2StyleDefList=[]; + if (result.info) { + uni.showModal({ + title: "鎻愮ず", + content: result.info, + showCancel: false, + confirmText: "鍙栨秷" + }); + } + } + } + + } else { + uni.showModal({ + title: "閿欒8", + content: ret.err_msg, + showCancel: false, + confirmText: "鍙栨秷" + }); + } + }).catch(ex => { + // console.log(ex); + uni.showModal({ + title: "閿欒8.1", + content: ex.errMsg, + showCancel: false, + confirmText: "鍙栨秷" + }); + }); + } + } catch (ex) { + var tip = typeof ex == "string" ? ex : ex.message; + uni.showModal({ + title: "閿欒8.2", + content: "鎵ц鈥滃唴瀹瑰彉鍖栧悗鈥濅簨浠跺け璐ワ細" + tip, + showCancel: false, + confirmText: "鍙栨秷" + }); + + } + }, + //鐐瑰嚮鎸夐挳 + onBtnClick(btn) { + var that = this + if (btn.Prompt) { + uni.showModal({ + title: '鎻愮ず', + content: btn.PromptContent || "鏄惁纭畾锛�, + success: function(res) { + if (res.confirm) { + that.onButtonClicked(btn); + // } else if (res.cancel) { + // console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷'); + } + } + }); + } else that.onButtonClicked(btn); + }, + //鐐瑰嚮鎸夐挳鍒楄〃 + actionSheetTap() { + var that = this + var itemlist = []; + this.param.ViewPage.Page_Button.forEach((btn, index) => { + if (index >= 2) + itemlist.push(btn.ShowName); + }); + uni.showActionSheet({ + // title: '鎸夐挳鍒楄〃', + itemList: itemlist, + success: (e) => { + console.log(e.tapIndex); + var btn = that.param.ListPage.Page_Button[e.tapIndex]; + if (btn.Prompt) { + uni.showModal({ + title: '鎻愮ず', + content: btn.PromptContent || "鏄惁纭畾锛�, + success: function(res) { + if (res.confirm) { + that.onButtonClicked(btn); + // } else if (res.cancel) { + // console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷'); + } + } + }); + } else that.onButtonClicked(btn); + } + }) + }, + //澶勭悊鐩稿叧鎸夐挳 + async onButtonClicked(btn) { + var style = this.styleDef || ''; + try { + var enviroment = { + button: "top", + button_name: btn.ShowName, + cls_id: btn.Cls_ID, + function: "3200", + master: {}, + }; + if (btn.FunCode == "TriggerEvent") { + this.triggerEvent(btn, style, enviroment); + } else { + uni.showModal({ + title: "鎻愮ず", + content: "鏈疄鐜�, + showCancel: false, + confirmText: "鍙栨秷" + }); + } + } catch (ex) { + var tip = typeof ex == "string" ? ex : ex.message; + uni.showModal({ + title: "閿欒2", + content: tip, + showCancel: false, + confirmText: "鍙栨秷" + }); + } + }, + //鎵ц瑙﹀彂浜嬩欢 + async triggerEvent(btn, style, enviroment) { + try { + var obj_attr = { + 'S_ID': this.styleDef.form.objId + }; + style.form.attrs.forEach((attr) => { + obj_attr[attr.name] = attr.value; + }); + // console.log(obj_attr); + // let input_param = Base64.encode(JSON.stringify(obj_attr)); + // return; + this.runCustomEvent({ + ed_type: 0, + start_transaction: true, + class_id: btn.Cls_ID, + event_id: btn.Event.ID, + data_obj_id:this.styleDef.form.objId, + obj_attr: obj_attr, + }); + } catch (ex) { + var tip = typeof ex == "string" ? ex : ex.message; + uni.showModal({ + title: "閿欒3", + content: tip, + showCancel: false, + confirmText: "鍙栨秷" + }); + } + }, + //浜嬩欢 + async runCustomEvent(dataInfo) { + try { + var $this = this; + this.$store.dispatch('runCustomEvent', dataInfo).then(ret => { + console.log(ret); + if (ret.err_code == 0) { + var result = ret.result; + if (result.ret != 0) { + var tip = result.err_info ? typeof result.err_info == 'string' ? result + .err_info : result.err_info.join('<br/>') : ''; + if (result.ret == 801) uni.showModal({ + title: '鎻愮ず', + content: tip, + showCancel: false, + confirmText: "鍙栨秷" + }); + else uni.showModal({ + title: '鎻愮ず', + content: tip + ',鎻愮ず:' + result.ret, + showCancel: false, + confirmText: "鍙栨秷" + }); + return false; + } else { + var tip = result.info ? typeof result.info == 'string' ? result.info : result + .info.join('<br/>') : ''; + if (tip) uni.showModal({ + title: '鎻愮ず', + content: tip, + showCancel: false, + confirmText: "鍙栨秷" + }); + + if (result.result_type == 0 && result.action) { + result.action.forEach(item => { + if (item.action_type == "goback_to_pre_page") { //杩斿洖涓婁竴椤�+ var value = item.value; + // const eventChannel = this.$scope.eventChannel; + // // const eventChannel = this.getOpenerEventChannel(); + // eventChannel.emit('ExitViewEvent',""); + uni.navigateBack({ + delta: 1, //杩斿洖灞傛暟锛�鍒欎笂涓婇〉 + }); + } else if (item.action_type == "hidden_button") { //闅愯棌鎸夐挳 + var value = item.value; + value.forEach(btn => { + var index = $this.param.ViewPage.Page_Button + .findIndex(button => button.ShowName == + btn) + if (index > -1) + $this.param.ViewPage.Page_Button.splice( + index, 1) + }) + } else if (item.action_type == "set_panel_html") { //鏄剧ずHtml椤甸潰 + // var value = item.value; + $this.ViewHtml_Panel = item.value; + + } + + }); + } else { + var tip = result.info ? typeof result.info == 'string' ? result.info : + result.info.join('<br/>') : ''; + if (tip) uni.showModal({ + title: '鎻愮ず', + content: tip, + showCancel: false, + confirmText: "鍙栨秷" + }); + } + } + + } else { + uni.showModal({ + title: "閿欒4", + content: ret.err_msg, + showCancel: false, + confirmText: "鍙栨秷" + }); + } + }).catch(ex => { + // console.log(ex); + uni.showModal({ + title: "閿欒4.1", + content: ex.errMsg, + showCancel: false, + confirmText: "鍙栨秷" + }); + }); + } catch (ex) { + var tip = typeof ex == "string" ? ex : ex.message; + uni.showModal({ + title: "閿欒4.2", + content: "鎵ц鈥滃唴瀹瑰彉鍖栧悗鈥濅簨浠跺け璐ワ細" + tip, + showCancel: false, + confirmText: "鍙栨秷" + }); + + } + }, + + /** + * 鍙敮鎸乕"column1='A' or column2='B'", "column3='C' and column4='D'", "column5='E'"]杩欑鏍煎紡 + * { + * "model": 0 / 1, + * "condition": + * [ + * [ + * { }, + * { }, + * { } + * ], + * [ + * { } + * ], + * [ + * { } + * ] + * ] + * } + */ + toWhereBase64String(list) { + if (typeof list == 'string') list = [list] + var sql = [] + var seps = [' not in', ' in', '<>', '!=', '<=', '>=', '<', '=', '>', ' like'] + list.forEach(ls => { + var where = ls.trim() + if (where.startsWith('(') && where.endsWith(')')) where = where.replace(/^\(/, '').replace(/\)$/, '') + if (where.toLowerCase().includes(' and ')) { + // 浜岀骇and鏀惧湪绗竴绾ф暟缁勪腑 + where.split(/ and /i).forEach(li => { + var l = li.trim() + if (l.startsWith('(') && l.endsWith(')')) l = l.replace(/^\(/, '').replace(/\)$/, '') + var sep = '' + for (var i = 0; i < seps.length; i++) { + if (l.toLowerCase().includes(seps[i])) { + sep = seps[i] + break + } + } + if (sep) { + var values = l.split(new RegExp(sep, 'i')) + var field = values[0]?.trim().replace(/^\[/, '').replace(/\]$/, '') + var value = '' + var op = sep.trim() + + if ([' in', ' not in'].includes(sep) && values[1]?.toLowerCase().includes('select ') && values[1]?.toLowerCase().includes(' from ')) { + value = l.replace(field, '').replace(/^\s*(in|not in)\s*/i, '').trim() + if (value.startsWith('(') && value.endsWith(')')) value = value.replace(/^\(/, '').replace(/\)$/, '').trim() + } + else { + value = values[1]?.trim().replace(/^\'/, '').replace(/\'$/, '') + + if (['in', 'not in'].includes(op)) { + value = value.replace(/^\(/, '').replace(/\)$/, '') + value = value.split(',').map(v => v.trim().replace(/^\'/, '').replace(/\'$/, '')) + } + } + sql.push([{ field, value, op }]) + } + }) + } + else if (where.toLowerCase().includes(' or ')) { + // 浜岀骇or鏀惧湪绗簩绾у悓涓�粍鏁扮粍涓�+ var s = [] + where.split(/ or /i).forEach(li => { + var l = li.trim() + if (l.startsWith('(') && l.endsWith(')')) l = l.replace(/^\(/, '').replace(/\)$/, '') + var sep = '' + for (var i = 0; i < seps.length; i++) { + if (l.toLowerCase().includes(seps[i])) { + sep = seps[i] + break + } + } + if (sep) { + var values = l.split(new RegExp(sep, 'i')) + var field = values[0]?.trim().replace(/^\[/, '').replace(/\]$/, '') + var value = '' + var op = sep.trim() + + if ([' in', ' not in'].includes(sep) && values[1]?.toLowerCase().includes('select ') && values[1]?.toLowerCase().includes(' from ')) { + value = l.replace(field, '').replace(/^\s*(in|not in)\s*/i, '').trim() + if (value.startsWith('(') && value.endsWith(')')) value = value.replace(/^\(/, '').replace(/\)$/, '').trim() + } + else { + value = values[1]?.trim().replace(/^\'/, '').replace(/\'$/, '') + + if (['in', 'not in'].includes(op)) { + value = value.replace(/^\(/, '').replace(/\)$/, '') + value = value.split(',').map(v => v.trim().replace(/^\'/, '').replace(/\'$/, '')) + } + } + sql.push([{ field, value, op }]) + } + }) + sql.push(s) + } + else { + var li = where + // 鍗曚竴鏌ヨ鏉′欢鐩存帴鏀惧湪绗竴绾ф暟缁勪腑 + var l = li.trim() + if (l.startsWith('(') && l.endsWith(')')) l = l.replace(/^\(/, '').replace(/\)$/, '') + var sep = '' + for (var i = 0; i < seps.length; i++) { + if (l.toLowerCase().includes(seps[i])) { + sep = seps[i] + break + } + } + if (sep) { + var values = l.split(new RegExp(sep,'i')) + var field = values[0]?.trim().replace(/^\[/, '').replace(/\]$/, '') + var value = '' + var op = sep.trim() + + if ([' in', ' not in'].includes(sep) && values[1]?.toLowerCase().includes('select ') && values[1]?.toLowerCase().includes(' from ')) { + value = l.replace(field, '').replace(/^\s*(in|not in)\s*/i, '').trim() + if (value.startsWith('(') && value.endsWith(')')) value = value.replace(/^\(/, '').replace(/\)$/, '').trim() + } + else { + value = values[1]?.trim().replace(/^\'/, '').replace(/\'$/, '') + + if (['in', 'not in'].includes(op)) { + value = value.replace(/^\(/, '').replace(/\)$/, '') + value = value.split(',').map(v => v.trim().replace(/^\'/, '').replace(/\'$/, '')) + } + } + sql.push([{ field, value, op }]) + } + } + }) + + if (sql.length > 0) + return Base64.encode(JSON.stringify({ + model: 1, + condition: sql + })) + else + return '' + }, + + cancel(e) { //鍙栨秷 + var eventChannel = this.$scope.eventChannel; + // const eventChannel = this.getOpenerEventChannel(); + eventChannel.emit('ExitViewEvent', ""); + uni.navigateBack({ + delta: 1, //杩斿洖灞傛暟锛�鍒欎笂涓婇〉 + }); + }, + + + }, + }; +</script> + <style> .v-headStyle .txt_title { font-size: 34rpx; @@ -261,935 +1179,3 @@ width: calc(100% - 120px); } </style> - -<template> - <view class="content"> - <view class="v-content"> - <view class="dv-panel dv-panel-bkcolor"> - <div class="dv-panel-input"> - <!-- HTML椤甸潰绫诲瀷鏄剧ず --> - <div class="dv-viewHtml-Panel" v-if="ViewHtml_Panel" v-html="ViewHtml_Panel"> - <!-- <div> - <label class="item-label">浠诲姟缂栫爜:</label> - <span class="item-span">TA240318-00005</span> - </div> --> - </div> - <!-- 鑷畾涔夎〃鍗曠被鍨嬫樉绀�--> - <div v-if="!ViewHtml_Panel"> - <div v-for="(item,index) in detail2_styledef.form.items"> - <!-- 鏅�甯冨眬 --> - <view v-if="item.name!='Layout'"> - <text class="txt_title" :style="{'width':item.labelWidth+'px'}">{{item.label}}锛�/text> - <span class="form-item-span" - v-if="item.disabled">{{item.value2?'#'+item.value+'#'+item.value2:item.value}}</span> - <!-- 鏂囨湰妗�鏁板瓧妗�--> - <view class="dv_input" - v-if="(item.name=='Input' || item.name=='InputNumber') && !item.disabled"> - <text v-if="item.setting.prefix" class="uni-icon" :class="[item.setting.prefix]" - @change="onChange(item)"></text> - <input class="uni-input" :class="item.disabled?'input-disabled':''" - :type="item.name=='Input'?'text':item.name=='InputNumber'?'number':'text'" - 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="focusMateria" @focus="ontap(item)" @blur="onevent(item)" /> - <text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]" - @click="onChange(item)"></text> - </view> - <!-- 涓嬫媺妗�鍗曢� item.useDict?item.dict:item.selections--> - <uni-data-select id="dv_select" v-if="item.name=='Select' && !item.disabled" - :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=='Textarea' && !item.disabled"> - <textarea class="uni-input" :value="item.value" - :class="item.disabled?'input-disabled':''" :placeholder="item.placeholder" - @blur="onModelValue(item)" style="height:60px;" :style="{'width':'96%'}" - :disabled="item.disabled"></textarea> - </view> - <!-- 澶嶉�妗�--> - <checkbox-group class="check_rememberPwd" v-if="item.name=='Checkbox'" - :class="item.disabled?'input-disabled':''" @change="onModelValue(item)" - :data-ischeck="item.value" :disabled="item.disabled" - :style="{'margin-left':'10rpx'}"> - <label> - <checkbox :value="item.value" :checked="item.value" /> - <text>{{item.label}}</text> - </label> - </checkbox-group> - <!-- Switch寮�叧 --> - <switch v-if="item.name=='Switch'" :class="item.disabled?'input-disabled':''" - :disabled="item.disabled" v-model="item.value" @change="onModelValue(item)" - :style="{'margin-left':'10rpx'}" /> - <!-- 鏃ユ湡鏃堕棿 --> - <view class="input-wrapper" - v-if="(item.name=='TimePicker' || item.name=='DatePicker') && !item.disabled"> - <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> - </picker> - </view> - </view> - <!-- 鏍呮牸甯冨眬 --> - <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"> - <view v-if="cols!=null"> - <text class="txt_title" - :style="{'width':cols.labelWidth+'px'}">{{cols.label}}锛�/text> - <span class="form-item-span" - v-if="cols.disabled">{{cols.value2?'#'+cols.value+'#'+cols.value2:cols.value}}</span> - <view class="dv_input" - v-if="(cols.name=='Input' || cols.name=='InputNumber') && !cols.disabled"> - <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':''" - :type="cols.name=='Input'?'text':cols.name=='InputNumber'?'number':'text'" - 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="focusMateria" @focus="ontap(cols)" @blur="onevent(cols)" /> - <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" - :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"> - <textarea class="uni-input" :value="cols.value" - :class="cols.disabled?'input-disabled':''" - :placeholder="cols.placeholder" @blur="onModelValue(cols)" - style="height:60px;" :style="{'width':'96%'}" - :disabled="cols.disabled"></textarea> - </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> - </label> - </checkbox-group> - <!-- Switch寮�叧 --> - <switch v-if="cols.name=='Switch'" :class="cols.disabled?'input-disabled':''" - :disabled="item.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)"> - <view class="picker">{{cols.value}}</view> - </picker> - </view> - - </view> - </uni-col> - </uni-row> - </div> - </div> - </div> - </view> - </view> - - <view class="view-floor" v-if="param.ViewPage.Page_Button"> - <!-- <button type="default" @click="cancel" class="btn_cancel" - :style="{'width':param.ViewPage.Page_Button.length>1?'39.5%':'48.5%'}">杩斿洖</button> --> - <button type="default" class="btn_refresh" v-for="(btn,index) in param.ViewPage.Page_Button" v-if="index<2" - @click="onBtnClick(btn)" - :style="{'width':param.ViewPage.Page_Button.length==1?'96%':param.ViewPage.Page_Button.length>2?'39.5%':'48%'}">{{btn.ShowName}}</button> - - <view class="uni-padding-wrap" v-if="param.ViewPage.Page_Button.length>2"> - <view class="uni-btn-v"> - <a @tap="actionSheetTap"> - <Icon class="mobox-normal-more" /> - </a> - </view> - </view> - </view> - </view> -</template> - -<script> - import Base64 from '../../components/js-base64/base64.js' - export default { - modules: { - Base64, - }, - onBackPress(e) { - // console.log("鐩戝惉杩斿洖鎸夐挳浜嬩欢",e); - var eventChannel = this.$scope.eventChannel; - // const eventChannel = this.getOpenerEventChannel(); - eventChannel.emit('ExitViewEvent', ""); - // uni.navigateBack({ - // delta:1 ,//杩斿洖灞傛暟锛�鍒欎笂涓婇〉 - // }); - // return true; - }, - data() { - return { - title: '鏂板', - param: {}, - styleDef: { - form: { - items: [] - } - }, - detail2_styledef: { - form: { - items: [] - }, - }, - // detail2StyleDefList:[], - //鑾峰彇鏁版嵁绫荤殑HTML椤甸潰 - ViewHtml_Panel: "", - ViewPageHtml_Show: { - name: "", - event: { - id: "", - name: "" - } - }, - }; - }, - async onLoad(options) { - // console.log(options); - uni.setNavigationBarTitle({ - title: options.titlename - }); //璁剧疆椤堕儴鏍囬 - this.$data.title = options.titlename; - this.$data.param = JSON.parse(options.param); - console.log(this.$data.param); - this.$data.styleDef = JSON.parse(options.style); - // console.log(this.$data.styleDef); - if (this.param.ViewPage.View_UIDef.ui_type == "HTML椤甸潰") { - // HTML椤甸潰 - //鑾峰彇鏁版嵁绫荤殑HTML椤甸潰 - this.Html_UIstyleGetInfo(this.param.DataCls.id, this.param.ViewPage.View_UIDef.id, 'viewPage'); - } else { - this.Detail2_UIstyleGetInfo(this.param.DataCls.id, this.param.ViewPage.View_UIDef.id); - } - - - //杩涘叆椤甸潰鍚庝簨浠�- var eventid = this.param.ViewPage.Enter_View_Event?.id; - if (eventid) { - try { - var obj_attr = { - 'S_ID': this.styleDef.form.objId - }; - this.styleDef.form.attrs.forEach((attr) => { - obj_attr[attr.name] = attr.value; - }); - // console.log(obj_attr); - var input_param = Base64.encode(JSON.stringify(obj_attr)); - this.runCustomEvent({ - ed_type: 0, - start_transaction: true, - class_id: this.param.DataCls.id, - event_id: eventid, - obj_attr, - input_param, - }); - } catch (ex) { - var tip = typeof ex == "string" ? ex : ex.message; - uni.showModal({ - title: "閿欒", - content: tip, - showCancel: false, - confirmText: "鍙栨秷" - }); - } - } - }, - methods: { - async Detail2_UIstyleGetInfo(class_id, style_id) { //鑾峰彇鑷畾涔夎〃鍗曟牱寮�- var $this = this; - var dataInfo = { - class_id: class_id, - ui_style_id: style_id, - }; - this.$store.dispatch('UIStyleGetInfo', dataInfo).then(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); - } - $this.$data.detail2_styledef = ret.result.style_def ? JSON.parse(styledef) : {}; - $this.$data.detail2_styledef.SelBut_Checked = false; - // console.log($this.$data.detail2_styledef); - $this.styleDef.form.attrs.forEach((attr) => { - // info[attr.name]=attr.value; - $this.detail2_styledef.form.items.forEach(async (ele, index) => { - if (ele.name != 'Layout') { - if (ele.fieldId == attr.name) { - ele.value = attr.value; - } - } else if (ele.name == 'Layout') { - ele.setting.colList.forEach(async (col, key) => { - if (col) { - if (col.fieldId == attr.name) { - col.value = attr.value; - } - } - }); - } - }); - }); - setTimeout(function() { - var detail2_styledef = JSON.parse(JSON.stringify($this.detail2_styledef)); - $this.detail2_styledef = []; - $this.detail2_styledef = detail2_styledef; - }, 100); - } else { - uni.showModal({ - title: "閿欒1", - content: ret.err_msg, - showCancel: false, - confirmText: "鍙栨秷" - }); - } - }).catch(ex => { - // console.log(ex); - uni.showModal({ - title: "閿欒1.1", - content: ex.errMsg, - showCancel: false, - confirmText: "鍙栨秷" - }); - }); - - }, - async Html_UIstyleGetInfo(class_id, style_id) { //鑾峰彇鑷畾涔夎〃鍗曟牱寮�- var $this = this; - var dataInfo = { - class_id: class_id, - ui_style_id: style_id, - }; - this.$store.dispatch('UIStyleGetInfo', dataInfo).then(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); - } - $this.ViewPageHtml_Show = ret.result.style_def ? JSON.parse(styledef) : {}; - // console.log($this.ViewPageHtml_Show); - var obj_attr = {}; - $this.styleDef.form.attrs.forEach((attr) => { - obj_attr[attr.name] = attr.value; - }); - obj_attr['id'] = $this.styleDef.form.objId; - - var eventid = $this.ViewPageHtml_Show.event.id; - if (!$this.ViewPageHtml_Show.event.id.includes('{')) - eventid = '{' + $this.ViewPageHtml_Show.event.id + '}'; - //HTML椤甸潰浜嬩欢 - $this.runCustomEvent({ - ed_type: 0, - start_transaction: true, - class_id: $this.param.DataCls.id, - event_id: eventid, - obj_attr, - }); - } else { - uni.showModal({ - title: "閿欒6", - content: ret.err_msg, - showCancel: false, - confirmText: "鍙栨秷" - }); - } - }).catch(ex => { - // console.log(ex); - uni.showModal({ - title: "閿欒6.1", - content: ex.errMsg, - showCancel: false, - confirmText: "鍙栨秷" - }); - }); - - }, - //鏌ヨ鏁版嵁绫绘暟鎹俊鎭�- async dataObjQuery(clsid, where, index, key) { - try { - var $this = this; - var dataInfo = { - class_id: clsid, - attrs: [], - condition: this.toWhereBase64String("" + where + ""), - prj_rel_type: "", - order_by: this.orderby, - page_size: 99999, - page: 1, - query_id: '', - }; - this.$store.dispatch('dataObjQuery', dataInfo).then(ret => { - // console.log(ret); - if (ret.err_code == 0) { - if (ret.result) { - $this.detail1StyleDefList = []; - ret.result.obj_list.forEach((obj) => { - var info = { - S_ID: obj.id, - }; - obj.attr_list.forEach((attr) => { - info[attr.name] = attr.value; - }); - if (key != -1) - $this.detail2_styledef.form.items[index].setting.colList[key] - .value2 = info.S_NAME; - else - $this.detail2_styledef.form.items[index].value2 = info.S_NAME; - }); - // console.log($this.detail2_styledef); - } - } else { - uni.showModal({ - title: "閿欒5", - content: ret.err_msg, - showCancel: false, - confirmText: "鍙栨秷" - }); - } - }).catch(ex => { - // console.log(ex); - uni.showModal({ - title: "閿欒5.1", - content: ex.errMsg, - showCancel: false, - confirmText: "鍙栨秷" - }); - }); - } catch (ex) { - var tip = typeof ex == "string" ? ex : ex.message; - uni.showModal({ - title: "閿欒5.2", - content: tip, - showCancel: false, - confirmText: "鍙栨秷" - }); - } - }, - - // 鍐呭鍙樺寲鍚庝簨浠�- async onChange(event) { - try { - if (event.id) { - var obj_attr = this.detail2_styledef.form.model; - // console.log(obj_attr); - var input_param = Base64.encode( - JSON.stringify( - Object.keys(obj_attr).map((a) => ({ - attr: a, - value: obj_attr[a] || "", - })) - ) - ); - var $this = this; - var dataInfo = { - ed_type: 0, - start_transaction: true, - class_id: this.$data.detail2_styledef.form.clsId, - class_name: '', - event_id: event.id, - event_name: '', - data_obj_id: '', - obj_attr: obj_attr, - prj_id: '', - ref_cls_id: '', - rel_obj_id: '', - user_login: '', - data_json: '', - compose_info: '', - ext_info: '', - global_attr: '', - input_param: input_param, - }; - this.$store.dispatch('runCustomEvent', dataInfo).then(ret => { - // console.log(ret); - if (ret.err_code == 0) { - var result = ret.result; - if (result.ret != 0) { - var tip = result.err_info ? typeof result.err_info == 'string' ? result - .err_info : result.err_info.join('<br/>') : ''; - if (result.ret == 801) uni.showModal({ - title: '鎻愮ず', - content: tip, - showCancel: false, - confirmText: "鍙栨秷" - }); - else uni.showModal({ - title: '鎻愮ず', - content: tip + ',鎻愮ず:' + result.ret, - showCancel: false, - confirmText: "鍙栨秷" - }); - return false; - } else { - var tip = result.info ? typeof result.info == 'string' ? result.info : - result.info.join('<br/>') : ''; - if (tip) uni.showModal({ - title: '鎻愮ず', - content: tip, - showCancel: false, - confirmText: "鍙栨秷" - }); - - if (result.result_type == 0 && result.action) { - result.action.forEach(item => { - if (item.action_type == "set_dlg_attr") { - // value = {"attr":"xxx", "value":"xxx"} - var data = item.value; - $this.$data.detail2_styledef.form.items.forEach(async ( - ele, index) => { - data.forEach(async (ele2, index) => { - if (ele.fieldId == ele2 - .attr) { - ele.value = ele2 - .value; - } - }); - }); - } - }); - } else { - // this.detail2StyleDefList=[]; - if (result.info) { - uni.showModal({ - title: "鎻愮ず", - content: result.info, - showCancel: false, - confirmText: "鍙栨秷" - }); - } - } - } - - } else { - uni.showModal({ - title: "閿欒8", - content: ret.err_msg, - showCancel: false, - confirmText: "鍙栨秷" - }); - } - }).catch(ex => { - // console.log(ex); - uni.showModal({ - title: "閿欒8.1", - content: ex.errMsg, - showCancel: false, - confirmText: "鍙栨秷" - }); - }); - } - } catch (ex) { - var tip = typeof ex == "string" ? ex : ex.message; - uni.showModal({ - title: "閿欒8.2", - content: "鎵ц鈥滃唴瀹瑰彉鍖栧悗鈥濅簨浠跺け璐ワ細" + tip, - showCancel: false, - confirmText: "鍙栨秷" - }); - - } - }, - //鐐瑰嚮鎸夐挳 - onBtnClick(btn) { - var that = this - if (btn.Prompt) { - uni.showModal({ - title: '鎻愮ず', - content: btn.PromptContent || "鏄惁纭畾锛�, - success: function(res) { - if (res.confirm) { - that.onButtonClicked(btn); - // } else if (res.cancel) { - // console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷'); - } - } - }); - } else that.onButtonClicked(btn); - }, - //鐐瑰嚮鎸夐挳鍒楄〃 - actionSheetTap() { - var that = this - var itemlist = []; - this.param.ViewPage.Page_Button.forEach((btn, index) => { - if (index >= 2) - itemlist.push(btn.ShowName); - }); - uni.showActionSheet({ - // title: '鎸夐挳鍒楄〃', - itemList: itemlist, - success: (e) => { - console.log(e.tapIndex); - var btn = that.param.ListPage.Page_Button[e.tapIndex]; - if (btn.Prompt) { - uni.showModal({ - title: '鎻愮ず', - content: btn.PromptContent || "鏄惁纭畾锛�, - success: function(res) { - if (res.confirm) { - that.onButtonClicked(btn); - // } else if (res.cancel) { - // console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷'); - } - } - }); - } else that.onButtonClicked(btn); - } - }) - }, - //澶勭悊鐩稿叧鎸夐挳 - async onButtonClicked(btn) { - var style = this.styleDef || ''; - try { - var enviroment = { - button: "top", - button_name: btn.ShowName, - cls_id: btn.Cls_ID, - function: "3200", - master: {}, - }; - if (btn.FunCode == "TriggerEvent") { - this.triggerEvent(btn, style, enviroment); - } else { - uni.showModal({ - title: "鎻愮ず", - content: "鏈疄鐜�, - showCancel: false, - confirmText: "鍙栨秷" - }); - } - } catch (ex) { - var tip = typeof ex == "string" ? ex : ex.message; - uni.showModal({ - title: "閿欒2", - content: tip, - showCancel: false, - confirmText: "鍙栨秷" - }); - } - }, - //鎵ц瑙﹀彂浜嬩欢 - async triggerEvent(btn, style, enviroment) { - try { - var obj_attr = { - 'S_ID': this.styleDef.form.objId - }; - style.form.attrs.forEach((attr) => { - obj_attr[attr.name] = attr.value; - }); - // console.log(obj_attr); - // let input_param = Base64.encode(JSON.stringify(obj_attr)); - // return; - this.runCustomEvent({ - ed_type: 0, - start_transaction: true, - class_id: btn.Cls_ID, - event_id: btn.Event.ID, - obj_attr: obj_attr, - }); - } catch (ex) { - var tip = typeof ex == "string" ? ex : ex.message; - uni.showModal({ - title: "閿欒3", - content: tip, - showCancel: false, - confirmText: "鍙栨秷" - }); - } - }, - //浜嬩欢 - async runCustomEvent(dataInfo) { - try { - var $this = this; - this.$store.dispatch('runCustomEvent', dataInfo).then(ret => { - console.log(ret); - if (ret.err_code == 0) { - var result = ret.result; - if (result.ret != 0) { - var tip = result.err_info ? typeof result.err_info == 'string' ? result - .err_info : result.err_info.join('<br/>') : ''; - if (result.ret == 801) uni.showModal({ - title: '鎻愮ず', - content: tip, - showCancel: false, - confirmText: "鍙栨秷" - }); - else uni.showModal({ - title: '鎻愮ず', - content: tip + ',鎻愮ず:' + result.ret, - showCancel: false, - confirmText: "鍙栨秷" - }); - return false; - } else { - var tip = result.info ? typeof result.info == 'string' ? result.info : result - .info.join('<br/>') : ''; - if (tip) uni.showModal({ - title: '鎻愮ず', - content: tip, - showCancel: false, - confirmText: "鍙栨秷" - }); - - if (result.result_type == 0 && result.action) { - result.action.forEach(item => { - if (item.action_type == "goback_to_pre_page") { //杩斿洖涓婁竴椤�- var value = item.value; - // const eventChannel = this.$scope.eventChannel; - // // const eventChannel = this.getOpenerEventChannel(); - // eventChannel.emit('ExitViewEvent',""); - uni.navigateBack({ - delta: 1, //杩斿洖灞傛暟锛�鍒欎笂涓婇〉 - }); - } else if (item.action_type == "hidden_button") { //闅愯棌鎸夐挳 - var value = item.value; - value.forEach(btn => { - var index = $this.param.ViewPage.Page_Button - .findIndex(button => button.ShowName == - btn) - if (index > -1) - $this.param.ViewPage.Page_Button.splice( - index, 1) - }) - } else if (item.action_type == "set_panel_html") { //鏄剧ずHtml椤甸潰 - // var value = item.value; - $this.ViewHtml_Panel = item.value; - - } - - }); - } else { - var tip = result.info ? typeof result.info == 'string' ? result.info : - result.info.join('<br/>') : ''; - if (tip) uni.showModal({ - title: '鎻愮ず', - content: tip, - showCancel: false, - confirmText: "鍙栨秷" - }); - } - } - - } else { - uni.showModal({ - title: "閿欒4", - content: ret.err_msg, - showCancel: false, - confirmText: "鍙栨秷" - }); - } - }).catch(ex => { - // console.log(ex); - uni.showModal({ - title: "閿欒4.1", - content: ex.errMsg, - showCancel: false, - confirmText: "鍙栨秷" - }); - }); - } catch (ex) { - var tip = typeof ex == "string" ? ex : ex.message; - uni.showModal({ - title: "閿欒4.2", - content: "鎵ц鈥滃唴瀹瑰彉鍖栧悗鈥濅簨浠跺け璐ワ細" + tip, - showCancel: false, - confirmText: "鍙栨秷" - }); - - } - }, - - /** - * 鍙敮鎸乕"column1='A' or column2='B'", "column3='C' and column4='D'", "column5='E'"]杩欑鏍煎紡 - * { - * "model": 0 / 1, - * "condition": - * [ - * [ - * { }, - * { }, - * { } - * ], - * [ - * { } - * ], - * [ - * { } - * ] - * ] - * } - */ - toWhereBase64String(list) { - if (typeof list == 'string') list = [list] - var sql = [] - var seps = [' not in', ' in', '<>', '!=', '<=', '>=', '<', '=', '>', ' like'] - list.forEach(ls => { - var where = ls.trim().toLowerCase() - if (where.startsWith('(') && where.endsWith(')')) where = where.replace(/^\(/, '').replace( - /\)$/, '') - if (where.includes(' and ')) { - // 浜岀骇and鏀惧湪绗竴绾ф暟缁勪腑 - where.split(' and ').forEach(li => { - var l = li.trim() - if (l.startsWith('(') && l.endsWith(')')) l = l.replace(/^\(/, '').replace( - /\)$/, '') - var sep = '' - for (var i = 0; i < seps.length; i++) { - if (l.includes(seps[i])) { - sep = seps[i] - break - } - } - if (sep) { - var values = l.split(sep) - var field = values[0]?.trim().replace(/^\[/, '').replace(/\]$/, '') - var value = '' - var op = sep.trim() - - if ([' in', ' not in'].includes(sep) && values[1].includes('select ') && - values[1].includes(' from ')) { - value = l.replace(field, '').replace(/^\s*(in|not in)\s*/, '').trim() - if (value.startsWith('(') && value.endsWith(')')) value = value - .replace(/^\(/, '').replace(/\)$/, '').trim() - } else { - value = values[1]?.trim().replace(/^\'/, '').replace(/\'$/, '') - - if (['in', 'not in'].includes(op)) { - value = value.replace(/^\(/, '').replace(/\)$/, '') - value = value.split(',').map(v => v.trim().replace(/^\'/, '') - .replace(/\'$/, '')) - } - } - sql.push([{ - field, - value, - op - }]) - } - }) - } else if (where.includes(' or ')) { - // 浜岀骇or鏀惧湪绗簩绾у悓涓�粍鏁扮粍涓�- var s = [] - where.split(' or ').forEach(li => { - var l = li.trim() - if (l.startsWith('(') && l.endsWith(')')) l = l.replace(/^\(/, '').replace( - /\)$/, '') - var sep = '' - for (var i = 0; i < seps.length; i++) { - if (l.includes(seps[i])) { - sep = seps[i] - break - } - } - if (sep) { - var values = l.split(sep) - var field = values[0]?.trim().replace(/^\[/, '').replace(/\]$/, '') - var value = '' - var op = sep.trim() - - if ([' in', ' not in'].includes(sep) && values[1].includes('select ') && - values[1].includes(' from ')) { - value = l.replace(field, '').replace(/^\s*(in|not in)\s*/, '').trim() - if (value.startsWith('(') && value.endsWith(')')) value = value - .replace(/^\(/, '').replace(/\)$/, '').trim() - } else { - value = values[1]?.trim().replace(/^\'/, '').replace(/\'$/, '') - - if (['in', 'not in'].includes(op)) { - value = value.replace(/^\(/, '').replace(/\)$/, '') - value = value.split(',').map(v => v.trim().replace(/^\'/, '') - .replace(/\'$/, '')) - } - } - sql.push([{ - field, - value, - op - }]) - } - }) - sql.push(s) - } else { - var li = where - // 鍗曚竴鏌ヨ鏉′欢鐩存帴鏀惧湪绗竴绾ф暟缁勪腑 - var l = li.trim() - if (l.startsWith('(') && l.endsWith(')')) l = l.replace(/^\(/, '').replace(/\)$/, '') - var sep = '' - for (var i = 0; i < seps.length; i++) { - if (l.includes(seps[i])) { - sep = seps[i] - break - } - } - if (sep) { - var values = l.split(sep) - var field = values[0]?.trim().replace(/^\[/, '').replace(/\]$/, '') - var value = '' - var op = sep.trim() - - if ([' in', ' not in'].includes(sep) && values[1].includes('select ') && values[1] - .includes(' from ')) { - value = l.replace(field, '').replace(/^\s*(in|not in)\s*/, '').trim() - if (value.startsWith('(') && value.endsWith(')')) value = value.replace(/^\(/, '') - .replace(/\)$/, '').trim() - } else { - value = values[1]?.trim().replace(/^\'/, '').replace(/\'$/, '') - - if (['in', 'not in'].includes(op)) { - value = value.replace(/^\(/, '').replace(/\)$/, '') - value = value.split(',').map(v => v.trim().replace(/^\'/, '').replace(/\'$/, - '')) - } - } - sql.push([{ - field, - value, - op - }]) - } - } - }) - - if (sql.length > 0) - return Base64.encode(JSON.stringify({ - model: 1, - condition: sql - })) - else - return '' - }, - - cancel(e) { //鍙栨秷 - var eventChannel = this.$scope.eventChannel; - // const eventChannel = this.getOpenerEventChannel(); - eventChannel.emit('ExitViewEvent', ""); - uni.navigateBack({ - delta: 1, //杩斿洖灞傛暟锛�鍒欎笂涓婇〉 - }); - }, - - - }, - }; -</script> \ No newline at end of file -- Gitblit v1.9.1