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/3200_view.vue | 98 +++++++++++++++++++++++++++++++++---------------- 1 files changed, 66 insertions(+), 32 deletions(-) diff --git a/pages/modal/3200_view.vue b/pages/modal/3200_view.vue index d10f7d2..28c8e74 100644 --- a/pages/modal/3200_view.vue +++ b/pages/modal/3200_view.vue @@ -1,18 +1,14 @@ <template> - <view class="uni-page-modal-3200-view"> + <view class="uni-page-modal-3200-view" :class="largeMode?'large-mode':''"> <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> + <view class="dv-viewHtml-Panel" v-if="ViewHtml_Panel" v-html="ViewHtml_Panel"></view> + <!-- 鑷畾涔夎〃鍗曠被鍨嬫樉绀�--> <div v-if="!ViewHtml_Panel"> - <OIForm :form="detail2_styledef.form.items" viewMode></OIForm> + <OIForm :form="detail2_styledef.form" viewMode></OIForm> </div> </div> @@ -29,7 +25,7 @@ <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" /> + <text class="mobox-normal-more" /> </a> </view> </view> @@ -38,7 +34,9 @@ </template> <script> - import Base64 from '../../components/js-base64/base64.js' + import { + Base64 + } from '@/js/Base64.js'; import classUtils from "@/js/utils.js" import { appGetInfo, @@ -50,17 +48,16 @@ dataObjQuery } from "@/api/data.js" import OIForm from '@/components/oi-form/index.vue' + import buttonClickMixin from '@/mixins/button-click.js'; export default { - modules: { - Base64, - }, + mixins: [buttonClickMixin], components: { OIForm }, onBackPress(e) { // console.log("鐩戝惉杩斿洖鎸夐挳浜嬩欢",e); - var eventChannel = this.$scope.eventChannel; + const eventChannel = this.getOpenerEventChannel(); // const eventChannel = this.getOpenerEventChannel(); eventChannel.emit('ExitViewEvent', ""); // uni.navigateBack({ @@ -70,6 +67,7 @@ }, data() { return { + largeMode: getApp().globalData.largeMode || false, title: this.translateSys('add2'), param: {}, styleDef: { @@ -99,11 +97,11 @@ 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); + this.title = options.titlename; + this.param = JSON.parse(options.param); + console.log(this.param); + this.styleDef = JSON.parse(options.style); + // console.log(this.styleDef); if (this.param.ViewPage.View_UIDef.ui_type == "HTML椤甸潰") { // HTML椤甸潰 //鑾峰彇鏁版嵁绫荤殑HTML椤甸潰 @@ -184,9 +182,9 @@ 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); + $this.detail2_styledef = result.style_def ? JSON.parse(styledef) : {}; + $this.detail2_styledef.SelBut_Checked = false; + // console.log($this.detail2_styledef); if ($this.detail2_styledef.form?.items) { $this.styleDef.form.attrs.forEach((attr) => { // info[attr.name]=attr.value; @@ -353,7 +351,15 @@ } } }); - } else that.onButtonClicked(btn); + } else { + this.handleButtonClick((done) => { + that.onButtonClicked(btn); + setTimeout(() => { + done(); // 閲嶇疆鐘舵� + }, 1000); + }); + + } }, //鐐瑰嚮鎸夐挳鍒楄〃 actionSheetTap() { @@ -479,18 +485,31 @@ } else { 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, showCancel: false, 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 == "goback_to_pre_page") { //杩斿洖涓婁竴椤� var value = item.value; - // const eventChannel = this.$scope.eventChannel; + // const eventChannel = this.getOpenerEventChannel(); // // const eventChannel = this.getOpenerEventChannel(); // eventChannel.emit('ExitViewEvent',""); uni.navigateBack({ @@ -513,16 +532,21 @@ } }); - } else { - var tip = result.info ? typeof result.info == 'string' ? result.info : - result.info.join('<br/>') : ''; - if (tip) uni.showModal({ - title: this.translateSys("tip"), + + } 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 } + } } catch (ex) { @@ -700,7 +724,7 @@ }, cancel(e) { //鍙栨秷 - var eventChannel = this.$scope.eventChannel; + const eventChannel = this.getOpenerEventChannel(); // const eventChannel = this.getOpenerEventChannel(); eventChannel.emit('ExitViewEvent', ""); uni.navigateBack({ @@ -807,6 +831,16 @@ width: 100%; display: inline-block; text-align: left; + + .uni-forms-item { + padding-bottom: 5rpx; + margin-bottom: 0; + + .uni-forms-item__label { + height: 20px !important; + padding: 0 10rpx 0 0 !important; + } + } } .dv-panel-buticon { -- Gitblit v1.9.1