From c094d4a32180130de0c26c75a5abc414128a5ec1 Mon Sep 17 00:00:00 2001 From: cuiqian2004 <cuiqian2004@163.com> Date: 星期四, 20 三月 2025 18:31:33 +0800 Subject: [PATCH] test --- pages/modal/3200_view.vue | 1280 ++++++++++++++++++++++++--------------------------------- 1 files changed, 546 insertions(+), 734 deletions(-) diff --git a/pages/modal/3200_view.vue b/pages/modal/3200_view.vue index 2c03b6c..9bf775b 100644 --- a/pages/modal/3200_view.vue +++ b/pages/modal/3200_view.vue @@ -1,6 +1,5 @@ - <template> - <view class="content"> + <view class="uni-page-modal-3200-view"> <view class="v-content"> <view class="dv-panel dv-panel-bkcolor"> <div class="dv-panel-input"> @@ -13,123 +12,8 @@ </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> + <OIForm :form="detail2_styledef.form" viewMode></OIForm> - </view> - </uni-col> - </uni-row> - </div> </div> </div> </view> @@ -138,8 +22,8 @@ <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)" + <button type="default" class="btn_refresh" :class="btn.disabled?'btn_disabled':''" :disabled="btn.disabled" + 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"> @@ -156,9 +40,23 @@ <script> import Base64 from '../../components/js-base64/base64.js' import classUtils from "@/js/utils.js" + import { + appGetInfo, + dictGetInfo + } from "@/api/mobox.js" + import { + getUIStyleInfo, + runCustomEvent, + dataObjQuery + } from "@/api/data.js" + import OIForm from '@/components/oi-form/index.vue' + export default { modules: { Base64, + }, + components: { + OIForm }, onBackPress(e) { // console.log("鐩戝惉杩斿洖鎸夐挳浜嬩欢",e); @@ -172,7 +70,7 @@ }, data() { return { - title: '鏂板', + title: this.translateSys('add2'), param: {}, styleDef: { form: { @@ -232,42 +130,64 @@ start_transaction: true, class_id: this.param.DataCls.id, event_id: eventid, - data_obj_id:this.styleDef.form.objId, + data_obj_id: this.styleDef.form.objId, obj_attr, input_param, }); } catch (ex) { var tip = typeof ex == "string" ? ex : ex.message; uni.showModal({ - title: "閿欒", + title: this.translateSys("error"), content: tip, showCancel: false, - confirmText: "鍙栨秷" + confirmText: this.translateSys('close') }); } } }, 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); + setData(obj) { + let that = this; + let keys = []; + let val, data; + + Object.keys(obj).forEach(function(key) { + keys = key.split("."); + val = obj[key]; + data = that.$data; + keys.forEach(function(key2, index) { + if (index + 1 == keys.length) { + that.$set(data, key2, val); + } else { + if (!data[key2]) { + that.$set(data, key2, {}); + } } - $this.$data.detail2_styledef = ret.result.style_def ? JSON.parse(styledef) : {}; - $this.$data.detail2_styledef.SelBut_Checked = false; - // console.log($this.$data.detail2_styledef); + data = data[key2]; + }); + }); + }, + + async Detail2_UIstyleGetInfo(class_id, style_id) { //鑾峰彇鑷畾涔夎〃鍗曟牱寮�+ try { + var $this = this; + var dataInfo = { + class_id: class_id, + ui_style_id: style_id, + }; + const result = await getUIStyleInfo(dataInfo) + var styledef = ""; + if (result.style_def) { + //mobox2鐨剆tyle_def鏄痡son瀛楃涓�+ styledef = result.style_def.replace(/\\/g, ""); + //mobox3鐨剆tyle_def鏄痓ase64瀛楃涓�+ if (!result.style_def.includes('"')) styledef = Base64.decode(result + .style_def); + } + $this.$data.detail2_styledef = result.style_def ? JSON.parse(styledef) : {}; + $this.$data.detail2_styledef.SelBut_Checked = false; + // console.log($this.$data.detail2_styledef); + if ($this.detail2_styledef.form?.items) { $this.styleDef.form.attrs.forEach((attr) => { // info[attr.name]=attr.value; $this.detail2_styledef.form.items.forEach(async (ele, index) => { @@ -286,84 +206,72 @@ } }); }); - 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 => { + setTimeout(function() { + var detail2_styledef = JSON.parse(JSON.stringify($this.detail2_styledef)); + $this.detail2_styledef = []; + $this.detail2_styledef = detail2_styledef; + }, 100); + } catch (ex) { // console.log(ex); + let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex uni.showModal({ - title: "閿欒1.1", - content: ex.errMsg, + title: this.translateSys("error") + "1.1", + content: tip, showCancel: false, - confirmText: "鍙栨秷" + confirmText: this.translateSys('close') }); - }); + } }, 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: "鍙栨秷" - }); + try { + var $this = this; + var dataInfo = { + class_id: class_id, + ui_style_id: style_id, + }; + const result = await getUIStyleInfo(dataInfo) + var styledef = ""; + if (result.style_def) { + //mobox2鐨剆tyle_def鏄痡son瀛楃涓�+ styledef = result.style_def.replace(/\\/g, ""); + //mobox3鐨剆tyle_def鏄痓ase64瀛楃涓�+ if (!result.style_def.includes('"')) styledef = Base64.decode(result + .style_def); } - }).catch(ex => { - // console.log(ex); - uni.showModal({ - title: "閿欒6.1", - content: ex.errMsg, - showCancel: false, - confirmText: "鍙栨秷" + $this.ViewPageHtml_Show = 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, + }); + } catch (ex) { + // console.log(ex); + let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex + uni.showModal({ + title: this.translateSys("error") + "6.1", + content: tip, + showCancel: false, + confirmText: this.translateSys('close') + }); + } + }, //鏌ヨ鏁版嵁绫绘暟鎹俊鎭�@@ -380,186 +288,65 @@ 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: "鍙栨秷" + const result = await dataObjQuery(dataInfo) + // console.log(result); + if (result) { + $this.detail1StyleDefList = []; + result.obj_list.forEach((obj) => { + var info = { + S_ID: obj.id, + }; + obj.attr_list.forEach((attr) => { + info[attr.name] = attr.value; }); - } - }).catch(ex => { - // console.log(ex); - uni.showModal({ - title: "閿欒5.1", - content: ex.errMsg, - showCancel: false, - confirmText: "鍙栨秷" + 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; }); - }); - } 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: "鍙栨秷" - }); - }); + // console.log($this.detail2_styledef); } } catch (ex) { var tip = typeof ex == "string" ? ex : ex.message; uni.showModal({ - title: "閿欒8.2", - content: "鎵ц鈥滃唴瀹瑰彉鍖栧悗鈥濅簨浠跺け璐ワ細" + tip, + title: this.translateSys("error") + "5.2", + content: tip, showCancel: false, - confirmText: "鍙栨秷" + confirmText: this.translateSys('close') }); - } + }, + onCheckBoxValue(e) { //缁戝畾Model鍊�+ let values = e.detail.value || [] + var attr = item.fieldId; + this.detail2_styledef.form.model[attr] = values; + + }, + onRadioBoxValue(e) { //缁戝畾Model鍊�+ let values = e.detail.value || "" + var attr = item.fieldId; + this.detail2_styledef.form.model[attr] = values; + }, + onModelValue(item) { + var attr = item.fieldId; + this.detail2_styledef.form.model[attr] = item.value; + }, + onEnterChange(item) { + var attr = item.fieldId; + this.detail2_styledef.form.model[attr] = item.value; }, //鐐瑰嚮鎸夐挳 onBtnClick(btn) { var that = this if (btn.Prompt) { uni.showModal({ - title: '鎻愮ず', - content: btn.PromptContent || "鏄惁纭畾锛�, + title: this.translateSys("tip"), + content: btn.PromptContent || this.translate("are_you_sure"), + cancelText: this.translateSys('ok'), + confirmText: this.translateSys('cancel'), success: function(res) { - if (res.confirm) { + if (res.cancel) { that.onButtonClicked(btn); // } else if (res.cancel) { // console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷'); @@ -584,10 +371,12 @@ var btn = that.param.ListPage.Page_Button[e.tapIndex]; if (btn.Prompt) { uni.showModal({ - title: '鎻愮ず', - content: btn.PromptContent || "鏄惁纭畾锛�, + title: this.translateSys("tip"), + content: btn.PromptContent || this.translate("are_you_sure"), + cancelText: this.translateSys('ok'), + confirmText: this.translateSys('cancel'), success: function(res) { - if (res.confirm) { + if (res.cancel) { that.onButtonClicked(btn); // } else if (res.cancel) { // console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷'); @@ -601,7 +390,9 @@ //澶勭悊鐩稿叧鎸夐挳 async onButtonClicked(btn) { var style = this.styleDef || ''; + try { + btn.disabled = true var enviroment = { button: "top", button_name: btn.ShowName, @@ -610,28 +401,31 @@ master: {}, }; if (btn.FunCode == "TriggerEvent") { - this.triggerEvent(btn, style, enviroment); + await this.triggerEvent(btn, style, enviroment); } else { + btn.disabled = false uni.showModal({ - title: "鎻愮ず", - content: "鏈疄鐜�, + title: this.translateSys("tip"), + content: this.translateSys("unrealized"), showCancel: false, - confirmText: "鍙栨秷" + confirmText: this.translateSys('close') }); } } catch (ex) { + btn.disabled = false var tip = typeof ex == "string" ? ex : ex.message; uni.showModal({ - title: "閿欒2", + title: this.translateSys("error") + "2", content: tip, showCancel: false, - confirmText: "鍙栨秷" + confirmText: this.translateSys('close') }); } }, //鎵ц瑙﹀彂浜嬩欢 async triggerEvent(btn, style, enviroment) { try { + btn.disabled = true var obj_attr = { 'S_ID': this.styleDef.form.objId }; @@ -641,21 +435,22 @@ // console.log(obj_attr); // let input_param = Base64.encode(JSON.stringify(obj_attr)); // return; - this.runCustomEvent({ + await 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, + data_obj_id: this.styleDef.form.objId, obj_attr: obj_attr, }); + btn.disabled = false } catch (ex) { var tip = typeof ex == "string" ? ex : ex.message; uni.showModal({ - title: "閿欒3", + title: this.translateSys("error") + "3", content: tip, showCancel: false, - confirmText: "鍙栨秷" + confirmText: this.translateSys('close') }); } }, @@ -663,99 +458,82 @@ 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: "鍙栨秷" - }); + const result = await runCustomEvent(dataInfo) + console.log(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: this.translateSys("tip"), + content: tip, + showCancel: false, + confirmText: this.translateSys('close') + }); + else uni.showModal({ + title: this.translateSys("tip"), + content: tip + ',' + this.translateSys('tip') + ':' + result.ret, + showCancel: false, + confirmText: this.translateSys('close') + }); + return false; + } else { + var tip = result.info ? typeof result.info == 'string' ? result.info : result + .info.join('<br/>') : ''; + if (tip) uni.showModal({ + title: this.translateSys("tip"), + content: tip, + showCancel: false, + confirmText: this.translateSys('close') + }); - 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; - - } - + 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 { - 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 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 { - uni.showModal({ - title: "閿欒4", - content: ret.err_msg, + var tip = result.info ? typeof result.info == 'string' ? result.info : + result.info.join('<br/>') : ''; + if (tip) uni.showModal({ + title: this.translateSys("tip"), + content: tip, showCancel: false, - confirmText: "鍙栨秷" + confirmText: this.translateSys('close') }); } - }).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; + var tip = typeof ex == "string" ? ex : ex.errMsg; uni.showModal({ - title: "閿欒4.2", - content: "鎵ц鈥滃唴瀹瑰彉鍖栧悗鈥濅簨浠跺け璐ワ細" + tip, + title: this.translateSys("error") + "4.1", + content: this.translate('execute_after_change_event_failed') + this.translateSys( + "comma") + + this.translate('reason') + this.translateSys("colon") + tip, showCancel: false, - confirmText: "鍙栨秷" + confirmText: this.translateSys('close') }); } @@ -787,12 +565,14 @@ var seps = [' not in', ' in', '<>', '!=', '<=', '>=', '<', '=', '>', ' like'] list.forEach(ls => { var where = ls.trim() - if (where.startsWith('(') && where.endsWith(')')) where = where.replace(/^\(/, '').replace(/\)$/, '') + 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(/\)$/, '') + 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])) { @@ -805,29 +585,35 @@ 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 ')) { + + 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 { + 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(/\'$/, '')) + value = value.split(',').map(v => v.trim().replace(/^\'/, '') + .replace(/\'$/, '')) } } - sql.push([{ field, value, op }]) + sql.push([{ + field, + value, + op + }]) } }) - } - else if (where.toLowerCase().includes(' or ')) { + } 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(/\)$/, '') + 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])) { @@ -840,25 +626,30 @@ 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 ')) { + + 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 { + 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(/\'$/, '')) + value = value.split(',').map(v => v.trim().replace(/^\'/, '') + .replace(/\'$/, '')) } } - sql.push([{ field, value, op }]) + sql.push([{ + field, + value, + op + }]) } }) sql.push(s) - } - else { + } else { var li = where // 鍗曚竴鏌ヨ鏉′欢鐩存帴鏀惧湪绗竴绾ф暟缁勪腑 var l = li.trim() @@ -871,37 +662,43 @@ } } if (sep) { - var values = l.split(new RegExp(sep,'i')) + 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 ')) { + + 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 { + 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(/\'$/, '')) + value = value.split(',').map(v => v.trim().replace(/^\'/, '').replace(/\'$/, + '')) } } - sql.push([{ field, value, op }]) + sql.push([{ + field, + value, + op + }]) } } }) - + if (sql.length > 0) return Base64.encode(JSON.stringify({ model: 1, condition: sql })) else - return '' + return '' }, - + cancel(e) { //鍙栨秷 var eventChannel = this.$scope.eventChannel; // const eventChannel = this.getOpenerEventChannel(); @@ -910,272 +707,287 @@ delta: 1, //杩斿洖灞傛暟锛�鍒欎笂涓婇〉 }); }, - + translate(t) { + if (typeof this.$t == "function") return this.$t(`page.${t}`) + else return t; + }, + translateSys(t) { + if (typeof this.$t == "function") return this.$t(`sys.${t}`) + else return t; + }, }, }; </script> -<style> - .v-headStyle .txt_title { - font-size: 34rpx; - text-align: right; - display: inline-block; - vertical-align: 12px; - } +<style lang="scss"> + .uni-page-modal-3200-view { + .v-headStyle .txt_title { + font-size: 34rpx; + text-align: right; + display: inline-block; + vertical-align: 12px; + } - .v-headStyle input { - display: inline-block; - /* border: 1px solid #d5d5d5; */ - /* width: 65%; */ - width: 85%; - height: 52rpx; - line-height: 34rpx; - background: #FFF; - border-radius: 0 !important; - color: #2d8cf0; - padding: 10rpx 8rpx 12rpx; - font-size: 34rpx; - font-family: inherit; - box-shadow: none !important; - transition-duration: 0.1s; - margin-top: 4rpx; - } + .v-headStyle input { + display: inline-block; + /* border: 1px solid #d5d5d5; */ + /* width: 65%; */ + width: 85%; + height: 52rpx; + line-height: 34rpx; + background: #FFF; + border-radius: 0 !important; + color: #2d8cf0; + padding: 10rpx 8rpx 12rpx; + font-size: 34rpx; + font-family: inherit; + box-shadow: none !important; + transition-duration: 0.1s; + margin-top: 4rpx; + } - .v-headStyle input::-webkit-input-placeholder { - font-size: 12rpx; - } + .v-headStyle input::-webkit-input-placeholder { + font-size: 12rpx; + } - .input-wrapper { - border: 1px solid #d5d5d5; - display: inline-block; - width: 65%; - line-height: 22rpx; - } + .input-wrapper { + border: 1px solid #d5d5d5; + display: inline-block; + width: 65%; + line-height: 22rpx; + } - [nvue] uni-view { - position: relative; - border: 0 solid #000; - box-sizing: border-box; - } + [nvue] uni-view { + position: relative; + border: 0 solid #000; + box-sizing: border-box; + } - .uni-input { - /* border: none; */ - } + .uni-input { + /* border: none; */ + } - .uni-icon { - /* border: 1px solid red; */ - width: 8%; - font-family: uniicons; - font-size: 40rpx; - font-weight: 400; - font-style: normal; - /* width: 48rpx; */ - height: 48rpx; - line-height: 48rpx; - color: #2d8cf0; - cursor: pointer; - display: inline-block; - vertical-align: 18rpx; - } + .uni-icon { + /* border: 1px solid red; */ + width: 30rpx; + padding: 10rpx 5rpx; + font-family: uniicons; + font-size: 40rpx; + font-weight: 400; + font-style: normal; + /* width: 48rpx; */ + height: 48rpx; + line-height: 48rpx; + color: #2d8cf0; + cursor: pointer; + display: inline-block; + vertical-align: 18rpx; + } - .v-content { - height: 945rpx; - overflow: auto; - /* border:1px solid red; */ - } + .v-content { + height: 945rpx; + overflow: auto; + /* border:1px solid red; */ + } - /* .dv-panel-bkcolor{ + /* .dv-panel-bkcolor{ background-color:#efefef; } */ - .dv-panel { - /* background-color:#efefef; */ - padding: 20rpx 20rpx 4rpx 0px; - border-radius: 12rpx; - margin-bottom: 20rpx; - text-align: right; - } + .dv-panel { + /* background-color:#efefef; */ + padding: 20rpx 20rpx 4rpx 0px; + border-radius: 12rpx; + margin-bottom: 20rpx; + text-align: right; + } - .dv-panel-input { - vertical-align: middle; - width: 100%; - display: inline-block; - text-align: left; - } + .dv-panel-input { + vertical-align: middle; + width: 100%; + display: inline-block; + text-align: left; + } - .dv-panel-buticon { - line-height: 25px; - text-align: left; - /* font-size: 17px; */ - padding: 0 15px; - } + .dv-panel-buticon { + line-height: 25px; + text-align: left; + /* font-size: 17px; */ + padding: 0 15px; + } - .dv-panel-buticon .btn-padding { - padding: 10px; - display: inline-block; - vertical-align: middle; - } + .dv-panel-buticon .btn-padding { + padding: 10px; + display: inline-block; + vertical-align: middle; + } - .dv-panel-buticon a i { - font-size: 22px; - } + .dv-panel-buticon a i { + font-size: 22px; + } - .dv-panel-buticon button { - min-width: 60px; - font-size: 16px; - padding: 20rpx 20rpx; - line-height: 1; - background: #4D6AF4; - border: none; - color: #fff; - font-weight: bold; - border-radius: 4px; - } + .dv-panel-buticon button { + min-width: 60px; + font-size: 16px; + padding: 20rpx 20rpx; + line-height: 1; + background: #4D6AF4; + border: none; + color: #fff; + font-weight: bold; + border-radius: 4px; + } - .dv-panel .txt_title { - font-size: 34rpx; - text-align: right; - display: inline-block; - margin-bottom: 15rpx; - } + .dv-panel .txt_title { + font-size: 34rpx; + text-align: right; + display: inline-block; + margin-bottom: 15rpx; + } - .dv-panel input { - vertical-align: middle; - display: inline-block; - border: 1px solid #d5d5d5; - width: 68%; - height: 52rpx; - line-height: 34rpx; - background: #FFF; - border-radius: 7px !important; - color: #2d8cf0; - padding: 6rpx 8rpx 8rpx; - font-size: 32rpx; - font-family: inherit; - box-shadow: none !important; - transition-duration: 0.1s; - margin-top: 0rpx; - } + .dv-panel input { + vertical-align: middle; + display: inline-block; + border: 1px solid #d5d5d5; + width: 68%; + height: 52rpx; + line-height: 34rpx; + background: #FFF; + border-radius: 7px !important; + color: #2d8cf0; + padding: 6rpx 8rpx 8rpx; + font-size: 32rpx; + font-family: inherit; + box-shadow: none !important; + transition-duration: 0.1s; + margin-top: 0rpx; + } - .dv-panel input::-webkit-input-placeholder { - font-size: 10rpx; - } + .dv-panel input::-webkit-input-placeholder { + font-size: 10rpx; + } - .dv-panel .form-item-span { - vertical-align: text-top; - color: #2d8cf0; - white-space: normal; - word-break: break-all; - display: inline-block; - width: calc(100% - 100px); - } + .dv-panel .form-item-span { + vertical-align: text-top; + color: #2d8cf0; + white-space: normal; + word-break: break-all; + display: inline-block; + width: calc(100% - 100px); + } - .dv-panel-button { - display: inline-block; - } + .dv-panel-button { + display: inline-block; + } - .dv-panel-button checkbox-group { - display: inline-block; - } + .dv-panel-button checkbox-group { + display: inline-block; + } - .dv-panel-button a i { - font-size: 18px; - } + .dv-panel-button a i { + font-size: 18px; + } - .dv-panel-button button { - height: 25px; - font-size: 13px; - padding: 0 12px; - } + .dv-panel-button button { + height: 25px; + font-size: 13px; + padding: 0 12px; + } - .view-floor { - text-align: center; - padding: 0 20rpx; - margin-top: 25rpx; - /* border:1px solid red; */ - } + .view-floor { + text-align: center; + padding: 0 20rpx; + margin-top: 25rpx; + /* border:1px solid red; */ + } - button.btn_refresh { - width: 48%; - margin-top: 25rpx; - padding: 20rpx; - line-height: 1.5; - background: #4D6AF4; - border: none; - color: #fff; - font-size: 38rpx; - font-weight: bold; - /* float: left; */ - display: inline-block; - margin: 0 3px; - } + button.btn_refresh { + width: 48%; + margin-top: 25rpx; + padding: 20rpx; + line-height: 1.5; + background: #27A6E1; + border: none; + color: #fff; + font-size: 38rpx; + font-weight: bold; + /* float: left; */ + display: inline-block; + margin: 0 3px; + } - button.btn_cancel { - width: 49.5%; - margin-top: 25rpx; - padding: 20rpx; - line-height: 1.5; - background: #fff; - border: none; - color: #000; - font-size: 38rpx; - font-weight: bold; - float: left; - display: inline-block; - margin-right: 10px; - } + button.btn_disabled { + background-color: #ddd; + color: #888; + } - .bk-active { - background-color: #D6FCB2; - } + button.btn_cancel { + width: 49.5%; + margin-top: 25rpx; + padding: 20rpx; + line-height: 1.5; + // background: #fff; + // border: none; + // color: #000; + font-size: 38rpx; + font-weight: bold; + float: left; + display: inline-block; + margin-right: 10px; + } - .uni-padding-wrap { - margin-top: -4rpx; - background-color: #98DAEA; - width: 52px; - height: 40px; - text-align: center; - border-radius: 27px; - padding: 12px 0 0px 0; - float: right; - display: inline-block; - } + .bk-active { + background-color: #D6FCB2; + } - .uni-padding-wrap a { - font-size: 20px; - } - - .dv-viewHtml-Panel .item-label{ - padding: 3px 5px; - width: 90px; - display: inline-block; - text-align: right; - } - .dv-viewHtml-Panel .item-span{ - // line-height: 30px; - color: #2d8cf0; - } -</style> -<style lang="scss"> - .demo-uni-row { - margin-bottom: 0px; - display: block; - } + .uni-padding-wrap { + margin-top: -4rpx; + background-color: #98DAEA; + width: 52px; + height: 40px; + text-align: center; + border-radius: 27px; + padding: 12px 0 0px 0; + float: right; + display: inline-block; + } - ::v-deep .uni-row { - margin-bottom: 0px; - } + .uni-padding-wrap a { + font-size: 20px; + } - .view-tabpage ::v-deep .uni-row { - margin-bottom: 5px; - } + .dv-viewHtml-Panel .item-label { + padding: 3px 5px; + width: 90px; + display: inline-block; + text-align: right; + } - .demo-uni-col { - height: 36px; - border-radius: 5px; - } + .dv-viewHtml-Panel .item-span { + // line-height: 30px; + color: #2d8cf0; + } - .demo-uni-row .uni-input { - width: calc(100% - 120px); + .demo-uni-row { + margin-bottom: 0px; + display: block; + } + + ::v-deep .uni-row { + margin-bottom: 0px; + } + + .view-tabpage ::v-deep .uni-row { + margin-bottom: 5px; + } + + .demo-uni-col { + height: 36px; + border-radius: 5px; + } + + .demo-uni-row .uni-input { + width: calc(100% - 120px); + } } -</style> +</style> \ No newline at end of file -- Gitblit v1.9.1