| | |
| | | <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"> |
| | |
| | | <script> |
| | | import { |
| | | Base64 |
| | | } from '@/js/Base64.js'; |
| | | } from '@/js/Base64.js'; |
| | | import classUtils from "@/js/utils.js" |
| | | import { |
| | | showInfo, |
| | | showError, |
| | | showLoading, |
| | | hideLoading |
| | | } from "@/js/Page.js" |
| | | import { |
| | | appGetInfo, |
| | | dictGetInfo |
| | |
| | | } from "@/api/data.js" |
| | | import OIForm from '@/components/oi-form/index.vue' |
| | | import buttonClickMixin from '@/mixins/button-click.js'; |
| | | |
| | | |
| | | export default { |
| | | mixins: [buttonClickMixin], |
| | | components: { |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | largeMode: getApp().globalData.largeMode || false, |
| | | title: this.translateSys('add2'), |
| | | param: {}, |
| | | styleDef: { |
| | |
| | | }, |
| | | }; |
| | | }, |
| | | onReady() { |
| | | uni.setNavigationBarTitle({ |
| | | title: this.title |
| | | }); //设置顶部标题 |
| | | }, |
| | | async onLoad(options) { |
| | | // console.log(options); |
| | | uni.setNavigationBarTitle({ |
| | | title: options.titlename |
| | | }); //设置顶部标题 |
| | | 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页面 |
| | | 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: this.translateSys("error"), |
| | | content: tip, |
| | | showCancel: false, |
| | | confirmText: this.translateSys('close') |
| | | }); |
| | | try { |
| | | showLoading("loading...") |
| | | |
| | | 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页面 |
| | | await this.Html_UIstyleGetInfo(this.param.DataCls.id, this.param.ViewPage.View_UIDef.id, |
| | | 'viewPage'); |
| | | } else { |
| | | await 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)); |
| | | await 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) { |
| | | showError(ex, this.translateSys('error')) |
| | | } |
| | | } |
| | | hideLoading() |
| | | } catch (ex) { |
| | | |
| | | hideLoading() |
| | | showError(ex, this.translateSys("error")); |
| | | } |
| | | }, |
| | | methods: { |
| | |
| | | }, 100); |
| | | } catch (ex) { |
| | | // console.log(ex); |
| | | let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex |
| | | uni.showModal({ |
| | | title: this.translateSys("error") + "1.1", |
| | | content: tip, |
| | | showCancel: false, |
| | | confirmText: this.translateSys('close') |
| | | }); |
| | | showError(ex, this.translateSys('error') + "1.1") |
| | | } |
| | | |
| | | }, |
| | |
| | | }); |
| | | } 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') |
| | | }); |
| | | showError(ex, this.translateSys('error') + "6.1") |
| | | } |
| | | |
| | | |
| | |
| | | // console.log($this.detail2_styledef); |
| | | } |
| | | } catch (ex) { |
| | | var tip = typeof ex == "string" ? ex : ex.message; |
| | | uni.showModal({ |
| | | title: this.translateSys("error") + "5.2", |
| | | content: tip, |
| | | showCancel: false, |
| | | confirmText: this.translateSys('close') |
| | | }); |
| | | showError(ex, this.translateSys('error') + "5.2") |
| | | } |
| | | }, |
| | | onCheckBoxValue(e) { //绑定Model值 |
| | |
| | | } |
| | | } |
| | | }); |
| | | } else{ |
| | | } else { |
| | | this.handleButtonClick((done) => { |
| | | that.onButtonClicked(btn); |
| | | that.onButtonClicked(btn); |
| | | setTimeout(() => { |
| | | done(); // 重置状态 |
| | | }, 1000); |
| | | }); |
| | | |
| | | |
| | | } |
| | | }, |
| | | //点击按钮列表 |
| | |
| | | }) |
| | | }, |
| | | //处理相关按钮 |
| | | async onButtonClicked(btn) { |
| | | onButtonClicked(btn) { |
| | | this.handleButtonClick((done) => { |
| | | this.buttonClicked(btn); |
| | | setTimeout(() => { |
| | | done(); // 重置状态 |
| | | }, 1000); |
| | | }); |
| | | }, |
| | | async buttonClicked(btn) { |
| | | var style = this.styleDef || ''; |
| | | |
| | | try { |
| | |
| | | await this.triggerEvent(btn, style, enviroment); |
| | | } else { |
| | | btn.disabled = false |
| | | uni.showModal({ |
| | | title: this.translateSys("tip"), |
| | | content: this.translateSys("unrealized"), |
| | | showCancel: false, |
| | | confirmText: this.translateSys('close') |
| | | }); |
| | | showInfo(this.translateSys("unrealized")) |
| | | |
| | | } |
| | | } catch (ex) { |
| | | btn.disabled = false |
| | | var tip = typeof ex == "string" ? ex : ex.message; |
| | | uni.showModal({ |
| | | title: this.translateSys("error") + "2", |
| | | content: tip, |
| | | showCancel: false, |
| | | confirmText: this.translateSys('close') |
| | | }); |
| | | showError(ex, this.translateSys('error') + "2") |
| | | } |
| | | }, |
| | | //执行触发事件 |
| | | async triggerEvent(btn, style, enviroment) { |
| | | try { |
| | | showLoading("loading...") |
| | | btn.disabled = true |
| | | var obj_attr = { |
| | | 'S_ID': this.styleDef.form.objId |
| | |
| | | // console.log(obj_attr); |
| | | // let input_param = Base64.encode(JSON.stringify(obj_attr)); |
| | | // return; |
| | | |
| | | await this.runCustomEvent({ |
| | | ed_type: 0, |
| | | start_transaction: true, |
| | |
| | | obj_attr: obj_attr, |
| | | }); |
| | | btn.disabled = false |
| | | hideLoading() |
| | | } catch (ex) { |
| | | var tip = typeof ex == "string" ? ex : ex.message; |
| | | uni.showModal({ |
| | | title: this.translateSys("error") + "3", |
| | | content: tip, |
| | | showCancel: false, |
| | | confirmText: this.translateSys('close') |
| | | }); |
| | | hideLoading() |
| | | showError(ex, this.translateSys('error') + "3") |
| | | } |
| | | }, |
| | | //事件 |
| | |
| | | var $this = this; |
| | | 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.getOpenerEventChannel(); |
| | | // // const eventChannel = this.getOpenerEventChannel(); |
| | | // eventChannel.emit('ExitViewEvent',""); |
| | | uni.navigateBack({ |
| | | delta: 1, //返回层数,2则上上页 |
| | | }); |
| | | } 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: this.translateSys("tip"), |
| | | content: tip, |
| | | showCancel: false, |
| | | confirmText: this.translateSys('close') |
| | | }); |
| | | if (result.ret != 0 && result.ret != 1) { |
| | | let cls_name = result.event_info?.cls_name |
| | | let event_name = result.event_info?.event_name |
| | | tip = result.err_info ? typeof result.err_info == 'string' ? result.err_info : result |
| | | .err_info |
| | | .join('\n') : '' |
| | | if (result.ret == 801) { |
| | | if (this.param.Only_Script_Error) { |
| | | let pos = tip.indexOf(":"); |
| | | if (pos > -1) tip = tip.substring(pos + 1); |
| | | } |
| | | } |
| | | if (cls_name && event_name) tip = `执行“${cls_name}”数据类的“${event_name}”脚本时返回错误:${tip}` |
| | | if (result.ret == 801) showInfo(tip) |
| | | else showError(`${tip},提示:${result.ret}`, this.translateSys('tip')) |
| | | this.saving = false |
| | | return false |
| | | } else { |
| | | var tip = result.info ? typeof result.info == 'string' ? result.info : |
| | | result.info.join('\n') : ''; |
| | | tip = tip || result.err_info |
| | | let time = result.info_time || 0 |
| | | if (time) |
| | | showError(tip, this.translateSys('tip')) |
| | | else |
| | | showInfo(tip) |
| | | |
| | | if ([0, 2, 3, 4, -1].includes(result.result_type)) { |
| | | if (result.result_type == 2) { |
| | | |
| | | } else if (typeof result.result == 'string') { |
| | | showInfo(result.result) |
| | | |
| | | } |
| | | try { |
| | | var actionList = result.action || [] |
| | | actionList.forEach(item => { |
| | | if (item.action_type == "goback_to_pre_page") { //返回上一页 |
| | | var value = item.value; |
| | | // const eventChannel = this.getOpenerEventChannel(); |
| | | // // const eventChannel = this.getOpenerEventChannel(); |
| | | // eventChannel.emit('ExitViewEvent',""); |
| | | uni.navigateBack({ |
| | | delta: 1, //返回层数,2则上上页 |
| | | }); |
| | | } 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; |
| | | |
| | | } |
| | | |
| | | }); |
| | | |
| | | } catch (ex) { |
| | | let actionList = (result.action || []).map(a => a.action_type).join(';') |
| | | let tip = typeof ex == 'string' ? ex : ex.message |
| | | tip = `执行脚本返回的${actionList}时出现异常,请检查脚本返回的数据格式是否正确。${tip}` |
| | | showError(tip, this.translateSys('tip')) |
| | | return |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } catch (ex) { |
| | | var tip = typeof ex == "string" ? ex : ex.errMsg; |
| | | uni.showModal({ |
| | | 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: this.translateSys('close') |
| | | }); |
| | | showError(ex, this.translateSys('error') + "4.1") |
| | | |
| | | } |
| | | }, |
| | |
| | | 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 { |