From e92aeae89a7430b326ab2157ed5004cc5c87d659 Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期五, 28 十一月 2025 18:21:56 +0800
Subject: [PATCH] 75

---
 pages/modal/5601.vue | 4869 ++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 3,503 insertions(+), 1,366 deletions(-)

diff --git a/pages/modal/5601.vue b/pages/modal/5601.vue
index 91689ac..dfa190f 100644
--- a/pages/modal/5601.vue
+++ b/pages/modal/5601.vue
@@ -1,125 +1,73 @@
 <template>
-	<view class="uni-page-modal-5601">
+	<view class="uni-page-modal-5601" :class="largeMode?'large-mode':''">
 		<!-- 琛ㄥご鏍峰紡 -->
-		<uni-forms ref="baseForm" label-align="right">
-			<view v-for="(item,index) in head_styledef.form.items" :key="index" class="v-head-style">
-				<!-- 鏅�甯冨眬 -->
-				<uni-forms-item v-if="item.name != 'Layout'" :label="item.label +'锛� "
-					:label-width="item.labelWidth+'px'">
-					<uni-data-picker v-if="item.name=='Select'" :class="item.disabled?'input-disabled':''"
-						v-model="item.value" :localdata="item.dict" @change="onEnterChange(item)"
-						:readonly="item.disabled" :clear-icon="false" :popup-title="item.label"></uni-data-picker>
-					<view class="input-wrapper" v-if="item.name=='Input' || item.name=='InputNumber'">
-						<text v-if="item.setting.prefix" class="uni-icon" :class="[item.setting.prefix]"
-							@click="onEnterChange(item)">&#xe568;</text>
-						<input class="uni-input" :class="item.disabled?'input-disabled':''"
-							:style="{'padding-left':item.setting.prefix?0 : '8rpx','right':item.setting.suffix?0 : '8rpx'}"
-							:type="item.name=='Input'?'text':'number'" v-model="item.value" :disabled="item.disabled"
-							:placeholder="item.placeholder" :focus="focusFieldId == item.fieldId" @focus="ontap(item)"
-							@click="onClick(item)" @keyup.enter="onEnterChange(item)" @blur="onEnterChange(item)" />
-						<text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]"
-							@click="onEnterChange(item)"></text>
-					</view>
-				</uni-forms-item>
-				<!-- 鏍呮牸甯冨眬 -->
-				<uni-row v-else :gutter="item.setting.gutter">
-					<uni-col
-						:span=" item.setting.spanList && item.setting.spanList[key]? item.setting.spanList[key] : 24 / item.setting.col"
-						v-for="(col,key) in item.setting.colList">
-						<uni-forms-item :label="col.label +'锛�" :label-width="col.labelWidth+'px'">
-							<uni-data-picker v-if="col.name=='Select'" :class="col.disabled?'input-disabled':''"
-								v-model="col.value" :localdata="col.dict" @change="onEnterChange(item)"
-								:readonly="col.disabled" :clear-icon="false" :popup-title="col.label"></uni-data-picker>
-							<view class="input-wrapper" v-if="col.name=='Input' || col.name=='InputNumber'">
-								<text v-if="col.setting.prefix" class="uni-icon" :class="[col.setting.prefix]"
-									@click="onEnterChange(col)">&#xe568;</text>
-								<input class="uni-input" :class="col.disabled?'input-disabled':''"
-									:style="{'padding-left':col.setting.prefix?0 : '8px','right':col.setting.suffix?0 : '8px'}"
-									:type="col.name=='Input'?'text':'number'" v-model="col.value"
-									:disabled="col.disabled" :placeholder="col.placeholder"
-									:focus="focusFieldId == col.fieldId" @focus="ontap(col)" @click="onClick(col)"
-									@keyup.enter="onEnterChange(col)" @blur="onEnterChange(col)" />
-								<text v-if="col.setting.suffix" class="uni-icon" :class="[col.setting.suffix]"
-									@click="onEnterChange(col)"></text>
-							</view>
-						</uni-forms-item>
-					</uni-col>
-				</uni-row>
-			</view>
-		</uni-forms>
+		<OIForm ref="refBaseForm" class="v-headStyle" :form="head_styledef.form"
+			:hiddenIds="head_styledef.hiddenIds ?head_styledef.hiddenIds :[] " :focusId="focusFieldId"
+			@on-click="onClick" @on-focus="ontap" @on-change="onEnterChange" @on-click-prefix="classAttr_extButton"
+			@on-click-suffix="classAttr_extButton"></OIForm>
+
 		<view class="view-content">
 			<!-- 鐮佺洏瀛愮晫闈�-->
 			<view v-if="param.Show_Welcom_Page==false" class="uni-panel-content">
 				<!-- 椤电 -->
 				<view class="dv-tab">
-					<uni-segmented-control :current="current" :values="tabs" @clickItem="onClickItem"
-						styleType="button">
+					<uni-segmented-control :current="current" :values="tabs" @clickItem="onClickItem" styleType="text">
 					</uni-segmented-control>
 				</view>
 				<swiper class="view-tabpage" :current="current" @change="changeSwiper">
 					<!-- 瀛愮晫闈�-->
 					<swiper-item v-for="(pageData, pageIndex) in pageDetail" :key="pageIndex">
-						<view class="uni-panel-content">
+						<view class="tab-content">
 							<view class="view-tab-content" :id="'tabpanel' + pageData.Name">
 								<image class="logo" v-if="pageData.DefList.length==0"
 									src="../../images/mobox_log_200x40.png">
 								</image>
 								<checkbox-group @change="checkboxChange">
-									<div class="dv-panel" v-for="(style,ii) in pageData.DefList"
+									<div class="dv-panel" v-for="(style,ii) in pageData.DefList" :key="ii"
 										@tap="onPanelClick(ii,style.form.htmlobjId)"
 										:id="'dvpanel'+style.form.htmlobjId"
 										:class="style.form.htmlobjId==active_id?'bk-active':''">
-										<div class="dv-panel-input">
-											<div class="dv-input" v-for="(item,index) in style.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.value}}</span>
-													<input class="uni-input" v-if="!item.disabled"
-														:type="item.name=='InputNumber'?'number':'text'"
-														v-model="item.value" :disabled="item.disabled"
-														:placeholder="item.placeholder" />
-												</view>
-												<!-- 鏍呮牸甯冨眬 -->
-												<uni-row class="demo-uni-row" v-else :gutter="item.setting.gutter">
-													<uni-col
-														:span=" item.setting.spanList && item.setting.spanList[key]? item.setting.spanList[key] : 24 / item.setting.col"
-														v-for="(cols,key) in item.setting.colList">
-														<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.value}}</span>
-															<input class="uni-input" v-if="!cols.disabled"
-																:type="cols.name=='InputNumber'?'number':'text'"
-																v-model="cols.value" :disabled="cols.disabled"
-																:placeholder="cols.placeholder" />
-														</view>
-													</uni-col>
-												</uni-row>
-											</div>
-										</div>
-										<div class="dv-panel-button">
+										<OIForm class="dv-panel-form" :form="style.form"
+											:hiddenIds="style.hiddenIds ?style.hiddenIds :[] " viewMode @on-change="(item2)=>{
+												onDetailEnterChange(item2,style,pageIndex)
+											}"></OIForm>
+										<div class="dv-panel-button"
+											v-if="pageData.Select_Button==true || pageData.Row_Button.length > 0">
 
-											<checkbox v-if="pageData.Select_Button==true" :model="ii"
+											<checkbox v-if="pageData.Select_Button==true" :value="ii"
 												:checked="style.SelBut_Checked" />
 											<!-- <text></text> -->
-
 											<!-- <button type="primary" @click="savaItem(ii)" v-if="param.Sub_Page[0].OK_Button==true">淇濆瓨</Button> -->
-											<button type="warn" @tap="delItem(pageData,ii)"
-												v-if="pageData.Del_Button==true">{{translateSys('delete')}}</button>
+											<button size="mini" v-for="(btn,btnIndex) in pageData.Row_Button"
+												:key="btnIndex" type="default"
+												:class="btn.FunCode == 'Delete' ? 'btn-warn' : 'btn-primary'"
+												@click="onRowBtnClick(btn, pageData,ii)">
+												<text v-if="btn.Style == 'img' || btn.Style == 'img_text'"
+													class="img"></text>
+												{{btn.ShowName ||"" }}
+											</button>
 										</div>
+
 									</div>
 								</checkbox-group>
 							</view>
-							<view class="view-bottom" v-if="pageData.OK_Button==true">
-								<button type="default" @tap="cancel"
-									class="btn_cancel">{{translateSys('cancel')}}</button>
-								<button type="primary" @tap="ok(pageData)" class="btn_add"
-									:class="pageData.okLoading?'btn_disabled':''"
-									:disabled="pageData.okLoading? true:false">{{translateSys('ok')}}</button>
+							<view class="view-bottom" v-if="pageData.Button.length >0 ">
+								<button v-for="(btn,btnIndex) in pageData.Button" :key="btnIndex" type="default"
+									:class="{'btn-primary':(btn.FunCode != 'Cancel'),
+										'btn-cancel':(btn.FunCode == 'Cancel'),
+										'btn-one':pageData.Button.length == 1,
+										'btn-left':(btnIndex < pageData.Button.length - 1),
+										'btn-right': btnIndex > 0 && btnIndex == pageData.Button.length - 1 ,
+										'width-50':(pageData.Button.length == 2),'width-32':(pageData.Button.length == 3),
+										'width-30':(pageData.DropDownButton.length> 0)}" @click="onBtnClick(btn, pageData)">
+									<text v-if="btn.Style == 'img' || btn.Style == 'img_text'" class="img"></text>
+									{{btn.ShowName ||""}}
+								</button>
+								<view class="btn-right" v-if="pageData.DropDownButton.length >0 ">
+									<a @click="clickDropdownBtns(pageData)">
+										<text class="mobox-normal-more"></text>
+									</a>
+								</view>
 							</view>
 						</view>
 					</swiper-item>
@@ -136,26 +84,74 @@
 				</div>
 			</view>
 		</view>
+		<view>
+			<uni-popup class="view-popup" ref="popup" background-color="#fff" @change="popupChange">
+				<view class="popup-header">{{check_list.title}}</view>
+				<view class="popup-content" :class="{ 'popup-height': popupType === 'left' || popupType === 'right' }"
+					:style="{'width':check_list.width?check_list.width+'px':'375rpx','height':check_list.height?check_list.height+'px':popupType =='center'?'60vh':'88vh'}">
+					<view class="popup-cont"
+						:style="{'height':check_list.height?check_list.height-45+'px':popupType =='center'?'50vh':'80vh'}">
+						<view class="view_popup_CheckList" v-for="(item,index) in check_list.items">
+							<checkbox-group class="check_list" @change="checkChange" :data-ischeck="item.check"
+								:data-index="index" :style="{'margin-left': '10rpx'}">
+								<label>
+									<checkbox :value="item.check" :checked="item.check" />
+									<text>{{item.name}}</text>
+								</label>
+							</checkbox-group>
+						</view>
+					</view>
+					<view class="popup-footer">
+						<button type="default" @tap="popup_sava" class="btn_popup_add">{{translateSys('ok')}}</button>
+						<button type="default" @tap="popup_cancel"
+							class="btn_popup_cancel">{{translateSys('cancel')}}</button>
+					</view>
+				</view>
+			</uni-popup>
+		</view>
+
 	</view>
 </template>
 
 <script>
-	import Base64 from '../../components/js-base64/base64.js'
 	import {
-		dictGetInfo
+		Base64
+	} from '@/js/Base64.js';
+	import {
+		showInfo,
+		showError,
+		showLoading,
+		hideLoading
+	} from "@/js/Page.js"
+	import {
+		dictGetInfo,
+		appGetInfo,
 	} from "@/api/mobox.js"
 	import {
 		getUIStyleInfo,
 		runCustomEvent,
 	} from "@/api/data.js"
+	import dayjs from "dayjs";
+	import OIForm from '@/components/oi-form/index.vue'
+	import OIFormItem from '@/components/oi-form/list/index.vue'
+	import OIFormInput from '@/components/oi-form/list/input/index.vue'
+	import OIFormInputNumber from '@/components/oi-form/list/input-number/index.vue'
+	import buttonClickMixin from '@/mixins/button-click.js';
 
 	export default {
 		name: "PageModal5601",
-		modules: {
-			Base64,
+		mixins: [buttonClickMixin],
+		components: {
+			OIForm,
+			OIFormItem,
+			OIFormInput,
+			OIFormInputNumber
+
 		},
+
 		data() {
 			return {
+				largeMode: getApp().globalData.largeMode || false,
 				title: this.translateSys("inventory"),
 				ClsID: '',
 				param: {},
@@ -169,13 +165,14 @@
 				pageDetail: [], //{StyleDef{}:,DefList:[],ExtData:{}}
 				// 鍒嗘鍣ㄦ暟鎹� 				current: 0,
-				Before_OK_Event: {},
 				After_OK_Event: {},
-				Before_Del_Event: {},
-				After_Del_Event: {},
-
 				active_id: '',
 				selectAttrObj: {},
+
+				global_attr: [],
+				popupType: "center",
+				check_list: {},
+				popupParam: {},
 			};
 		},
 		computed: {
@@ -186,28 +183,34 @@
 
 
 			},
+			initialEvent() {
+				let event = (this.head_styledef.event || []).find((e) => e.event_id == "initial");
+				return {
+					id: event?.scrip_id || "",
+					name: event?.scrip_name || "",
+				};
+			},
 		},
 		onLoad(options) {
-			console.log(options.titlename, options);
 			uni.setNavigationBarTitle({
 				title: options.titlename
 			}); //璁剧疆椤堕儴鏍囬 
 			this.title = options.titlename;
 			this.param = JSON.parse(options.param);
-
-
 			//鑾峰彇涓绘暟鎹被ID
 			this.ClsID = this.param.master_cls?.id;
 			if (this.ClsID) {
-				this.loadData(options.paramValue)
+				const paramValue = options.paramValue ? JSON.parse(options.paramValue) : undefined
+				this.loadData(paramValue)
 			} else {
-				uni.showModal({
-					title: this.translateSys("error"),
-					content: this.translate("tip_no_master_class"),
-					showCancel: false,
-					confirmText: this.translateSys("cancel")
-				});
+				showInfo(this.translate('tip_no_master_class'))
 			}
+			const $this = this
+			const eventChannel = this.getOpenerEventChannel();
+			eventChannel.on('nextRow', function(data) {
+				console.log("nextRow", data)
+				$this.setFormValues(data)
+			})
 		},
 		//椤甸潰鍒濆鍖栬幏鍙栫劍鐐� 		methods: {
@@ -235,63 +238,468 @@
 				});
 			},
 			async loadData(paramValue) {
+				try {
+					showLoading("loading...")
+					//鑾峰彇鏁版嵁绫荤殑鑷畾涔夎〃鍗曞弬鏁�+					await this.Head_UIStyleGetInfo(this.ClsID, this.param.Input_UI_Style.ID);
+					//浼犲叆鍙傛暟鍊�+					console.log(paramValue)
+					if (paramValue) {
+						this.setFormValues(paramValue)
+					}
+					//鍔犺浇鍒濆鐣岄潰
+					if (this.param.Show_Welcom_Page) {
+						this.param.Welcome_Page.Img = this.param.Welcome_Page.Img.replace(/ /g, '+');
+						this.param.Welcome_Page.Width = parseInt(this.param.Welcome_Page.Width);
+						this.param.Welcome_Page.Height = parseInt(this.param.Welcome_Page.Height);
+					};
+					//鍔犺浇Tab椤电
+					const pageList = this.param.Sub_Page || []
+					for (let i in pageList) {
 
-				//鑾峰彇鏁版嵁绫荤殑鑷畾涔夎〃鍗曞弬鏁�-				await this.Head_UIStyleGetInfo(this.ClsID, this.param.Input_UI_Style.ID);
-				//浼犲叆鍙傛暟鍊�-				if (paramValue) {
-					const attrs = paramValue.attrs || [];
-					(this.$data.head_styledef?.form?.items || []).forEach(async (ele, index) => {
-						if (ele.name != "Layout") {
-							attrs.forEach(async (ele2, index2) => {
-								if (ele.fieldId == ele2.name) {
-									ele.value = ele2.value;
+						const page = pageList[i]
+						page.DefList = [];
+						page.StyleDef = await this.Detail_UIstyleGetInfo(
+							this.ClsID,
+							page.UI_Style.ID
+						);
+						const buttons = this.pageButtonList(page)
+						page.Button = buttons
+						page.DropDownButton = []
+						if (buttons.length > 3) {
+							let cancelBtn = undefined
+							const btns = []
+							buttons.forEach((btn) => {
+								if (btn.FunCode == "Cancel") {
+									cancelBtn = btn
+								} else {
+									btns.push(btn)
 								}
-							});
+							})
+							if (cancelBtn) {
+								if (btns.length > 2) {
+									page.DropDownButton = btns.splice(2)
+									page.Button = btns
+								}
+								page.Button.push(cancelBtn)
+							} else {
+								if (btns.length > 3) {
+									page.DropDownButton = btns.splice(3)
+									page.Button = btns
+								}
+							}
+						}
+						page.Row_Button = this.rowButtonList(page)
+					}
+
+					this.setData({
+						pageDetail: pageList
+					})
+					await this.loadInitialEvent();
+					console.log(this.pageDetail);
+					hideLoading()
+				} catch (ex) {
+					hideLoading()
+					showError(ex, this.translateSys("error"));
+				}
+			},
+			async loadInitialEvent() {
+				try {
+					const event = this.initialEvent
+					if (event.id) {
+						//鑾峰彇琛ㄥご灞炴�
+						var head_attr = {};
+						this.head_styledef.form.items.forEach(item => {
+							if (item.name == "Layout") { //鍒ゆ柇鏄惁鏄爡鏍忔牸寮�+								item.setting.colList.forEach(col => {
+									if (col != null) head_attr[col
+										.fieldId] = col.value;
+								});
+							} else
+								head_attr[item.fieldId] = item.value;
+						});
+						var obj_attr = this.head_styledef.form.model;
+						// console.log(obj_attr);
+
+						var input_param = Base64.encode(
+							JSON.stringify({
+								id: "",
+								attrs: Object.keys(head_attr).map((a) => ({
+									attr: a,
+									value: head_attr[a] || "",
+								}))
+							})
+						);
+						var $this = this;
+						const jsonList = []
+						this.pageDetail.forEach((page) => {
+
+							jsonList.push({
+								page_name: page.Name,
+								item_list: $this.getDetailAttrList(
+									page),
+								ext_data: page.ExtData || {}
+							})
+
+						})
+						const data_json = Base64.encode(
+							JSON.stringify(jsonList)
+						);
+						console.log(jsonList)
+						var dataInfo = {
+							ed_type: 0,
+							start_transaction: true,
+							class_id: this.head_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: data_json,
+							compose_info: '',
+							ext_info: '',
+							global_attr: '',
+							input_param: input_param,
+						};
+						const result = await runCustomEvent(dataInfo)
+						console.log(result);
+						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 {
-							ele.setting.colList.forEach(async (col) => {
-								if (col) {
-									attrs.forEach(async (ele2,
-										index2) => {
-										if (col.fieldId == ele2.name) {
-											col.value = ele2.value;
+							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 {
+									let actionList = result.action || []
+									actionList.forEach(item => {
+										if (item.action_type ==
+											"insert_subtable_page_row"
+										) { //鐮佺洏涓�+											$this.param.Show_Welcom_Page =
+												false;
+											var value = item.value;
+											$this.viewAceionRow(value);
+										} else if (item.action_type ==
+											"set_subtable_page_content"
+										) { //宸茬爜鐩�+											$this.param.Show_Welcom_Page =
+												false;
+											var value = item.value;
+											const pageData = $this
+												.pageDetail.find((
+													page) => {
+													return value
+														.page_name ==
+														page.Name;
+												});
+											if (value.clear_confirm !=
+												false && value.clear ==
+												true &&
+												pageData && pageData
+												.DefList.length > 0
+											) { //鍒ゆ柇鏄惁娓呯┖椤电鍐呭,姝e湪鐮佺洏鏄惁鏈夋暟鎹�+												uni.showModal({
+													title: this
+														.translateSys(
+															'tip'),
+													content: this
+														.translate(
+															"are_you_sure_clear_first"
+														) +
+														this
+														.translateSys(
+															"quotation_mark_left"
+														) +
+														value
+														.page_name +
+														this
+														.translateSys(
+															"quotation_mark_right"
+														) +
+														this
+														.translate(
+															"are_you_sure_clear_last"
+														),
+													cancelText: $this
+														.translateSys(
+															'ok'),
+													confirmText: $this
+														.translateSys(
+															'cancel'
+														),
+													success: function(
+														res) {
+														if (res
+															.cancel
+														) {
+															if (
+																pageData)
+																pageData
+																.DefList = [];
+															$this
+																.viewAceionContent(
+																	value
+																);
+														} else if (
+															res
+															.confirm
+														) {
+															if (
+																pageData)
+																pageData
+																.DefList = [];
+															$this
+																.viewAceionContent(
+																	value
+																);
+														}
+													}
+												});
+											} else {
+												if (pageData)
+													pageData.DefList = [];
+												$this.viewAceionContent(
+													value);
+											}
+										} else if (item.action_type ==
+											"select_subtable_page") {
+											var value = item.value;
+											const pageIndex = $this
+												.pageDetail.findIndex((
+													page) => {
+													return value
+														.page_name ==
+														page.Name;
+												});
+											if (pageIndex > -1) {
+												$this.setData({
+													current: pageIndex
+												})
+											}
+										} else if (item.action_type ==
+											"select_subtable_page_row") {
+											// value = {"page_name":"鐮佺洏涓�, "row":{"id":"xx"}}
+											var value = item.value;
+											$this.viewActionSelectRow(
+												value)
+										} else if (item.action_type ==
+											"remove_subtable_page_row"
+										) { //娓呴櫎闈㈡澘涓寚瀹歩d鐨勬暟鎹�+											var value = item.value;
+											$this.viewActionRemoveRow(
+												value)
+										} else if (item.action_type ==
+											"set_subtable_page_row") {
+											$this.viewActionSetRow(item
+												.value)
+
+										} else if (item.action_type ==
+											"set_subtable_page_ext_data") {
+											var value = item.value;
+											const pageData = $this
+												.pageDetail.find((
+													page) => {
+													return value
+														.page_name ==
+														page.Name;
+												});
+											if (pageData)
+												pageData.ExtData = value
+												.ext_data
+
+										} else if (item.action_type ==
+											"clear_subpage_rows") {
+											var value = item.value;
+											const pageIndex = $this
+												.pageDetail.findIndex((
+													page) => {
+													return value
+														.page_name ==
+														page.Name;
+												});
+											if (pageIndex > -1) {
+												const pageData = $this
+													.pageDetail[pageIndex]
+												pageData.DefList = []
+												pageData.ExtData = {}
+
+												$this.$set(this.pageDetail,
+													pageIndex, pageData
+												)
+											}
+
+										} else if (item.action_type ==
+											"set_dlg_current_edit_attr") {
+
+											if ($this.focusOldFieldId ==
+												item.value) {
+												$this.setData({
+													focusFieldId: ""
+												})
+											} else {
+												$this.setData({
+													focusFieldId: $this
+														.focusOldFieldId
+												})
+											}
+											$this.$nextTick(() => {
+												$this.setData({
+													focusFieldId: item
+														.value
+												})
+											});
+										} else if (item.action_type ==
+											"set_dlg_attr") {
+											// value = {"attr":"xxx", "value":"xxx"}
+											var data = item.value;
+											$this.setFormValues(data)
+										} else if (item.action_type ==
+											'set_dlg_attr_show') {
+											var data = item.value;
+											$this.setFormItemVisible(data)
 										}
 									});
+
+								} catch (ex) {
+									let actionList = (result.action || []).map(a =>
+										a.action_type).join(';')
+									let tip = typeof ex == 'string' ? ex : ex
+										.message
+									tip = `鎵ц鑴氭湰杩斿洖鐨�{actionList}鏃跺嚭鐜板紓甯革紝璇锋鏌ヨ剼鏈繑鍥炵殑鏁版嵁鏍煎紡鏄惁姝g‘銆�{tip}`
+									showError(tip, this.translateSys('tip'))
+									return
 								}
-							});
+							}
+
 						}
-					})
+
+					}
+				} catch (ex) {
+					console.log(ex);
+					showError(ex, this.translateSys('error') + "4.2")
 				}
-				//鍔犺浇鍒濆鐣岄潰
-				if (this.$data.param.Show_Welcom_Page) {
-					this.$data.param.Welcome_Page.Img = this.$data.param.Welcome_Page.Img.replace(/ /g, '+');
-					this.$data.param.Welcome_Page.Width = parseInt(this.$data.param.Welcome_Page.Width);
-					this.$data.param.Welcome_Page.Height = parseInt(this.$data.param.Welcome_Page.Height);
-				};
-				//鍔犺浇Tab椤电
-				const pageList = this.param.Sub_Page || []
-				for (let i in pageList) {
-
-					const page = pageList[i]
-					page.DefList = [];
-					page.StyleDef = await this.Detail_UIstyleGetInfo(
-						this.ClsID,
-						page.UI_Style.ID
-					);
-				}
-
-				this.setData({
-					pageDetail: pageList
-				})
-
-				console.log(this.pageDetail);
 			},
+
 			changeSwiper(evt) {
 				let index = evt.target.current || evt.detail.current;
 				this.setData({
 					current: index
 				})
 			},
+			pageButtonList(page) {
+				if (this.param?.ver == "2.0") {
+					return page?.Button || []
+
+				} else {
+					if (page?.OK_Button) {
+						let evt = {};
+						if (page.Before_ok?.ID) {
+							evt = {
+								ID: page.Before_ok?.ID,
+								Name: page.Before_ok?.Name
+							};
+						} else if (page.After_ok?.ID) {
+							evt = {
+								ID: page.After_ok?.ID,
+								Name: page.After_ok?.Name
+							};
+						}
+						let btnCancel = {
+							Cls_Name: this.param?.master_cls?.name || "",
+							Cls_ID: this.param?.master_cls?.id || "",
+							FunCode: "Cancel",
+							ShowName: this.$t("sys.cancel"),
+							Style: "text",
+							Prompt: false,
+						};
+						if (evt.ID) {
+							let btn = {
+								Cls_Name: this.param?.master_cls?.name || "",
+								Cls_ID: this.param?.master_cls?.id || "",
+								FunCode: "TriggerEvent",
+								ShowName: this.$t("sys.ok"),
+								Style: "text",
+								Prompt: false,
+								NotTriggerSYSEvent: false,
+								DataStateVerify: false,
+								AttrVerify: false,
+								Event: evt,
+							};
+							if (page.After_ok?.ID) {
+								btn.After_Event = page.After_ok;
+							}
+							return [btn, btnCancel];
+						} else return [btnCancel];
+					} else {
+						return [];
+					}
+				}
+			},
+			rowButtonList(page) {
+				if (this.param?.ver == "2.0") {
+					return page?.Row_Button || [];
+				} else {
+					if (page?.Del_Button) {
+						let evt = {};
+						if (page.Before_Delete?.ID) {
+							evt = {
+								ID: page.Before_Delete?.ID,
+								Name: page.Before_Delete?.Name,
+							};
+						} else if (page.After_Delete?.ID) {
+							evt = {
+								ID: page.After_Delete?.ID,
+								Name: page.After_Delete?.Name
+							};
+						}
+						return [{
+							Cls_Name: this.param?.master_cls?.name || "",
+							Cls_ID: this.param?.master_cls?.id || "",
+							FunCode: "Delete",
+							ShowName: this.$t("sys.delete"),
+							Style: "text",
+							Prompt: false,
+							NotTriggerSYSEvent: false,
+							DataStateVerify: false,
+							AttrVerify: false,
+							AfterProcess_Event: evt,
+						}];
+					}
+					return [];
+				}
+			},
+
 			checkboxChange(e) {
 
 				var items = this.pageDetail[this.current]?.DefList || []
@@ -332,10 +740,30 @@
 									await this.DictGetInfo(ele.bind.dict,
 										styledefHead.form.model,
 										ele);
+								} else {
+									if (ele?.name === "Select") {
+										const selections = ele?.selections || []
+										//鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ�
+										let itemName = ele.value || "";
+										if (itemName) {
+											styledefHead.form
+												.model[ele.fieldId] = itemName;
+										}
+
+										ele.selections = selections.map((a) => {
+											return {
+												value: a.value,
+												text: a.label
+											}
+										})
+
+									}
+
 								}
+
 								if ($this.focusFieldId == "") {
-									if (ele.name == 'Input' || ele.name ==
-										'InputNumber') {
+									if (!ele.disabled && (ele.name == 'Input' ||
+											ele.name == 'InputNumber' || ele.name == 'Textarea')) {
 										$this.setData({
 											focusFieldId: ele.fieldId
 										})
@@ -350,6 +778,22 @@
 											.dict,
 											styledefHead.form
 											.model, col);
+									} else {
+										if (col?.name === "Select") {
+											const selections = col?.selections || []
+											//鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ�
+											let itemName = col.value || "";
+											if (itemName) {
+												styledefHead.form
+													.model[col.fieldId] = itemName;
+											}
+											col.selections = selections.map((a) => {
+												return {
+													value: a.value,
+													text: a.label
+												}
+											})
+										}
 									}
 									if ($this.focusFieldId == "") {
 										if (col.name == 'Input' || col
@@ -364,19 +808,34 @@
 								}
 							}
 						}
-
+						const app = getApp()
+						if (app.globalData.bindClasses) {
+							styledefHead.form.items.push({
+								name: "Input",
+								label: this.translate("classes"),
+								labelWidth: 100,
+								disabled: true,
+								value: app.globalData.classes,
+								setting: {
+									width: 100,
+									height: 50,
+								},
+								bind: {
+									attr: "",
+								},
+								fieldId: "S_CLASSES",
+							})
+							styledefHead.form.model["S_CLASSES"] = app.globalData.classes
+						}
 					}
 					this.setData({
 						head_styledef: styledefHead
 					})
+					console.log("Head_UIStyleGetInfo", this.head_styledef)
+
 				} catch (ex) {
 					// console.log(ex);
-					uni.showModal({
-						title: this.translateSys("error") + "1",
-						content: ex.errMsg,
-						showCancel: false,
-						confirmText: this.translateSys("cancel")
-					});
+					showError(ex, this.translateSys('error') + "1")
 					return {}
 				}
 
@@ -412,7 +871,12 @@
 									await this.DictGetInfo(ele.bind.dict,
 										detailstyledef.form
 										.model, ele);
+								} else {
+									if (ele?.name === "Select") {
+										ele.selections = []
+									}
 								}
+
 							} else {
 								for (let j in ele.setting.colList) {
 									const col = ele.setting.colList[j]
@@ -421,6 +885,10 @@
 											.bind.dict,
 											detailstyledef.form
 											.model, col);
+									} else {
+										if (col?.name === "Select") {
+											col.selections = []
+										}
 									}
 								}
 							}
@@ -430,13 +898,8 @@
 					console.log("Detail_UIstyleGetInfo", detailstyledef);
 					return detailstyledef
 				} catch (ex) {
-					// console.log(ex);
-					uni.showModal({
-						title: this.translateSys("error") + "2",
-						content: ex.errMsg,
-						showCancel: false,
-						confirmText: this.translateSys("cancel")
-					});
+					console.log(ex);
+					showError(ex, this.translateSys('error') + "2")
 					return {}
 				}
 
@@ -456,10 +919,10 @@
 					var itemName = '';
 					(result.dict_item_list || []).forEach((item) => {
 						if (item.is_default == '1')
-							itemName = item.value ? item.value : item.name
+							itemName = item.name
 						list.push({
 							text: item.value ? item.value : item.name,
-							value: item.id,
+							value: item.name,
 						});
 					});
 					//鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ�
@@ -469,71 +932,98 @@
 					}
 					formItem.dict = list;
 				} catch (ex) {
-					// console.log(ex);
-					uni.showModal({
-						title: this.translateSys("error") + "3",
-						content: ex.errMsg,
-						showCancel: false,
-						confirmText: this.translateSys("cancel")
-					});
+					showError(ex, this.translateSys('error') + "3")
 				}
 
 			},
 			onClick(item) {
-				this.focusFieldId = item.fieldId
+				console.log("onClick", item)
+				if (item.name == "Input" || item.name == "InputNumber" || item.name == "Textarea") {
+					this.focusFieldId = item.fieldId
+				} else if (item.name == "ImageButton") {
+					var onClickEvent = item.bind.onClickEvent; //鍚庡浘鏍囩偣鍑诲洖璋�+					if (!onClickEvent.id) {
+						showInfo(this.translate('icon_click_event_empty'))
+						return;
+					}
+					this.onChange(onClickEvent);
+				}
 			},
 			ontap(item) { //鎵爜鍔熻兘
 				// var $ele = e;
 				//console.log(e.target)
 				this.focusOldFieldId = item.fieldId
-				getApp().onScan((result) => {
-					console.log(result.decodedata);
-					item.value = result.decodedata;
+				getApp().onScan(async (result) => {
+					console.log(result);
+					item.value = result;
 					var $this = this;
-					if (item.oldvalue != item.value && item.value.trim() != "") {
-						item.oldvalue = item.value;
+					let newVal = item.value.trim()
+					if (newVal) {
+						item.oldvalue = newVal;
 						var attr = item.fieldId;
-						this.head_styledef.form.model[attr] = item.value;
+						this.head_styledef.form.model[attr] = newVal;
 						var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�-						var onSuffixClickCallbackEvent = item.bind
-							.onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑讳簨浠�-						var onSuffixClickEvent = item.bind
-							.onSuffixClickEvent; //鍚庡浘鏍囩偣鍑诲洖璋� 						var isflag = false;
-
-						if (onChangeEvent.id) { //鍐呭鍙樺寲鍚庝簨浠�-							$this.onChange(onChangeEvent);
+						if (item.changeEventRunding)
+							return
+						item.changeEventRunding = true
+						if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠�+							await this.onChange(onChangeEvent);
 						}
-						if (item.value) { //绗竴涓緭鍏ユ涓嶄负绌�-							//鍒濆鍖栵紝涓嬩釜杈撳叆妗唂ocus灞炴�
-							var findd = false
-							for (let i in $this.head_styledef.form.items) {
-								const ele = $this.head_styledef.form.items[i]
+						item.changeEventRunding = false
+						//鍒濆鍖栵紝涓嬩釜杈撳叆妗唂ocus灞炴�
+						var findd = false
+						for (let i in $this.head_styledef.form.items) {
+							const ele = $this.head_styledef.form.items[i]
 
-								if (ele.name != "Layout") {
-									if (ele.name == 'Input' || ele.name ==
-										'InputNumber') {
-										if (attr == ele.fieldId) {
-											findd = true
-										} else {
-											if (findd) {
-												$this.setData({
-													focusFieldId: ele.fieldId
-												})
-												break
-											}
-
+							if (ele.name != "Layout") {
+								if (ele.name == 'Input' || ele.name ==
+									'InputNumber') {
+									if (attr == ele.fieldId) {
+										findd = true
+									} else {
+										if (findd) {
+											$this.setData({
+												focusFieldId: ele.fieldId
+											})
+											break
 										}
 
 									}
-								} else {
-									if (findd) {
-										let curIndex = ele.setting.colList.findIndex((
-											col, index2, arr) => {
-											return (col.name == 'Input' || col
-												.name == 'InputNumber');
+
+								}
+							} else {
+								if (findd) {
+									let curIndex = ele.setting.colList.findIndex((
+										col, index2, arr) => {
+										return (col.name == 'Input' || col
+											.name == 'InputNumber');
+									})
+									if (curIndex > -1) {
+										$this.setData({
+											focusFieldId: ele.setting
+												.colList[curIndex]
+												.fieldId
 										})
-										if (curIndex > -1) {
+										break
+									}
+
+								} else {
+									let curIndex = ele.setting.colList.findIndex((
+										col, index2, arr) => {
+										return attr == col.fieldId;
+									})
+									if (curIndex > -1) {
+										findd = true
+										let curIndex2 = ele.setting.colList
+											.findIndex((col, index2, arr) => {
+												return (col.name == 'Input' ||
+														col.name ==
+														'InputNumber') &&
+													index2 >
+													curIndex;
+											})
+										if (curIndex2 > -1) {
 											$this.setData({
 												focusFieldId: ele.setting
 													.colList[curIndex]
@@ -541,69 +1031,207 @@
 											})
 											break
 										}
-
-									} else {
-										let curIndex = ele.setting.colList.findIndex((
-											col, index2, arr) => {
-											return attr == col.fieldId;
-										})
-										if (curIndex > -1) {
-											findd = true
-											let curIndex2 = ele.setting.colList
-												.findIndex((col, index2, arr) => {
-													return (col.name == 'Input' ||
-															col.name ==
-															'InputNumber') &&
-														index2 >
-														curIndex;
-												})
-											if (curIndex2 > -1) {
-												$this.setData({
-													focusFieldId: ele.setting
-														.colList[curIndex]
-														.fieldId
-												})
-												break
-											}
-										}
 									}
-
 								}
+
 							}
 						}
-
 					}
 				})
 			},
 
-			onEnterChange(item) { //鍥炶溅锛岀偣鍑绘寜閽紝鍙栨秷鑺傜偣浜嬩欢
+			async onEnterChange(item) { //鍥炶溅锛岀偣鍑绘寜閽紝鍙栨秷鑺傜偣浜嬩欢
 				console.log(item);
-				if (item.oldvalue != item.value && item.value.trim() != "") {
-					item.oldvalue = item.value;
-					var attr = item.fieldId;
-					this.head_styledef.form.model[attr] = item.value;
-					var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�-					var onSuffixClickCallbackEvent = item.bind
-						.onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑讳簨浠�-					var onSuffixClickEvent = item.bind.onSuffixClickEvent; //鍚庡浘鏍囩偣鍑诲洖璋�-					var isflag = false;
+				let newVal = item.value
+				if (typeof item.value == "string") {
+					newVal = item.value.trim()
+					if (!newVal) {
+						item.oldvalue = newVal;
+						var attr = item.fieldId;
+						this.head_styledef.form.model[attr] = newVal;
+						return
+					}
 
-					if (onChangeEvent.id) { //鍐呭鍙樺寲鍚庝簨浠�-						this.onChange(onChangeEvent);
+				}
+				if (item.oldvalue != newVal) {
+					item.oldvalue = newVal;
+					var attr = item.fieldId;
+					this.head_styledef.form.model[attr] = newVal;
+					var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�+					if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠�+						await this.onChange(onChangeEvent);
 					}
 
 				}
 			},
+
+
+			classAttr_extButton(item) {
+				var onSuffixClickCallbackEvent = item.bind
+					.onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑讳簨浠�+				var onSuffixClickEvent = item.bind.onSuffixClickEvent; //鍚庡浘鏍囩偣鍑诲洖璋�+
+				if (!onSuffixClickCallbackEvent.id) {
+
+					showInfo(this.translate('icon_click_callback_empty'))
+					return;
+				}
+				if (!onSuffixClickEvent.id) {
+					showInfo(this.translate('icon_click_event_empty'))
+
+					return;
+				}
+				this.popupType = 'right'
+				// open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴�
+				this.$refs.popup.open(this.popupType);
+
+				this.dataObjRunCustomEvent_Return(onSuffixClickEvent.id, onSuffixClickCallbackEvent.id, item);
+			},
+			onDetailEnterChange(item, style, pageIndex) {
+				let newVal = item.value
+				if (typeof item.value == "string") {
+					newVal = item.value.trim()
+					if (!newVal) {
+						item.oldvalue = newVal;
+						var attr = item.fieldId;
+						style.form.model[attr] = newVal;
+						return
+					}
+				}
+				if (item.oldvalue != newVal) {
+					item.oldvalue = newVal;
+					var attr = item.fieldId;
+					style.form.model[attr] = newVal;
+					var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�+					if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠�+						this.runDetailChangeEvent(onChangeEvent, style, pageIndex)
+					}
+				}
+			},
+			async runDetailChangeEvent(event, style, pageIndex) {
+				try {
+					const detail_attr = {}
+					showLoading("loading...")
+					style.form.items.forEach(item2 => {
+						if (item2.name == "Layout") { //鍒ゆ柇鏄惁鏄爡鏍忔牸寮�+							item2.setting.colList.forEach(col => {
+								if (col != null) detail_attr[col
+									.fieldId] = col.value;
+							});
+						} else
+							detail_attr[item2.fieldId] = item2.value;
+					});
+					var obj_attr = detail_attr
+					var input_param = Base64.encode(
+						JSON.stringify(
+							Object.keys(detail_attr).map((a) => ({
+								attr: a,
+								value: detail_attr[a] || "",
+							}))
+						)
+					);
+					var dataInfo = {
+						ed_type: 0,
+						start_transaction: true,
+						class_id: style.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,
+					};
+					const result = await runCustomEvent(dataInfo)
+					console.log(result)
+					hideLoading()
+					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 == "set_dlg_attr") {
+										// value = {"attr":"xxx", "value":"xxx"}
+										var data = item.value;
+										this.setDetailFormValues(data, style,
+											pageIndex)
+									} else if (item.action_type ==
+										'set_dlg_attr_show') {
+										var data = item.value;
+										this.setDetailFormItemVisible(data,
+											style, pageIndex)
+									}
+								});
+							} catch (ex) {
+								let actionList = (result.action || []).map(a => a
+									.action_type).join(';')
+								let tip = typeof ex == 'string' ? ex : ex.message
+								tip = `鎵ц鑴氭湰杩斿洖鐨�{actionList}鏃跺嚭鐜板紓甯革紝璇锋鏌ヨ剼鏈繑鍥炵殑鏁版嵁鏍煎紡鏄惁姝g‘銆�{tip}`
+								showError(tip, this.translateSys('tip'))
+								return
+							}
+						}
+
+					}
+
+				} catch (ex) {
+					console.log(ex)
+					hideLoading()
+					showError(ex, this.translateSys('error') + "6.1")
+				}
+
+			},
 			getDetailAttrList(pageData) {
 				const detailAttrList = [];
+				console.log(pageData)
 				if (pageData.DefList) {
 					pageData.DefList.forEach(style => {
 						var detail_attr = {};
 						style.form.items.forEach(item => {
 							if (item.name == "Layout") { //鍒ゆ柇鏄惁鏄爡鏍忔牸寮�-								item.setting.colList.forEach(cols => {
-									if (cols != null) detail_attr[cols
-										.fieldId] = cols.value;
+								item.setting.colList.forEach(col => {
+									if (col != null)
+										detail_attr[col
+											.fieldId] = col
+										.value;
 								});
 							} else
 								detail_attr[item.fieldId] = item.value;
@@ -621,23 +1249,28 @@
 					pageData.DefList.forEach(style => {
 						style.form.attrs.forEach(attr => {
 							for (var key in detailAttrList) {
-								if (style.form.objId == detailAttrList[key][
+								if (style.form.objId == detailAttrList[
+										key][
 										'id'
 									]) {
-									var keys = Object.keys(detailAttrList[key]);
+									var keys = Object.keys(
+										detailAttrList[key]);
 									var isflag = true;
 									keys.forEach((ele) => {
-										if (ele == attr.attr) isflag =
+										if (ele == attr.attr)
+											isflag =
 											false;
 									});
 									if (isflag) {
-										detailAttrList[attr.attr] = attr.value;
+										detailAttrList[attr.attr] =
+											attr.value;
 									}
 								}
 							}
 						});
 					});
 				}
+				console.log(detailAttrList)
 				const jsonlist = [];
 				detailAttrList.forEach(attr => {
 					jsonlist.push({
@@ -657,18 +1290,20 @@
 				try {
 					if (event.id) {
 						//鑾峰彇琛ㄥご灞炴�
+						showLoading("loading...")
 						var head_attr = {};
 						this.head_styledef.form.items.forEach(item => {
 							if (item.name == "Layout") { //鍒ゆ柇鏄惁鏄爡鏍忔牸寮�-								item.setting.colList.forEach(cols => {
-									if (cols != null) head_attr[cols
-										.fieldId] = cols.value;
+								item.setting.colList.forEach(col => {
+									if (col != null) head_attr[col
+										.fieldId] = col.value;
 								});
 							} else
 								head_attr[item.fieldId] = item.value;
 						});
 						var obj_attr = this.head_styledef.form.model;
 						// console.log(obj_attr);
+
 						var input_param = Base64.encode(
 							JSON.stringify(
 								Object.keys(head_attr).map((a) => ({
@@ -683,9 +1318,8 @@
 
 							jsonList.push({
 								page_name: page.Name,
-								item_list: $this.getDetailAttrList(page
-									.DefList, page
-									.Select_Button),
+								item_list: $this.getDetailAttrList(
+									page),
 								ext_data: page.ExtData || {}
 							})
 
@@ -693,10 +1327,11 @@
 						const data_json = Base64.encode(
 							JSON.stringify(jsonList)
 						);
+						console.log(jsonList)
 						var dataInfo = {
 							ed_type: 0,
 							start_transaction: true,
-							class_id: this.$data.head_styledef.form.clsId,
+							class_id: this.head_styledef.form.clsId,
 							class_name: '',
 							event_id: event.id,
 							event_name: '',
@@ -712,354 +1347,16 @@
 							global_attr: '',
 							input_param: input_param,
 						};
-						runCustomEvent(dataInfo).then(result => {
-							console.log(result);
+						const result = await runCustomEvent(dataInfo)
+						console.log(result);
+						hideLoading()
+						await $this.onFormEventResult(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) {
-									if (this.param.Only_Script_Error) {
-										let pos = tip.indexOf("锛�);
-										if (pos > -1) tip = tip.substring(pos +
-											1);
-									}
-									uni.showModal({
-										title: this.translateSys(
-											"tip"),
-										content: tip,
-										showCancel: false,
-										confirmText: this.translateSys(
-											"cancel")
-									});
-								} else uni.showModal({
-									title: this.translateSys('tip'),
-									content: tip + ',' + this
-										.translateSys('tip') + ':' +
-										result
-										.ret,
-									showCancel: false,
-									confirmText: this.translateSys(
-										"cancel")
-								});
-								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(
-										"cancel")
-								});
-
-								if (result.result_type == 0 && result.action) {
-									result.action.forEach(item => {
-
-										if (item.action_type ==
-											"insert_subtable_page_row"
-										) { //鐮佺洏涓�-											$this.$data.param
-												.Show_Welcom_Page =
-												false;
-											var value = item.value;
-											$this.viewAceionRow(value);
-										} else if (item.action_type ==
-											"set_subtable_page_content"
-										) { //宸茬爜鐩�-											$this.$data.param
-												.Show_Welcom_Page =
-												false;
-											var value = item.value;
-											const pageData = $this
-												.pageDetail.find((
-													page) => {
-													return value
-														.page_name ==
-														page.Name;
-												});
-											if (value.clear_confirm !=
-												false && value.clear ==
-												true &&
-												pageData && pageData
-												.DefList.length > 0
-											) { //鍒ゆ柇鏄惁娓呯┖椤电鍐呭,姝e湪鐮佺洏鏄惁鏈夋暟鎹�-												uni.showModal({
-													title: this
-														.translateSys(
-															'tip'
-														),
-													content: this
-														.translate(
-															"are_you_sure_clear_first"
-														) +
-														this
-														.translateSys(
-															"quotation_mark_left"
-														) +
-														value
-														.page_name +
-														this
-														.translateSys(
-															"quotation_mark_right"
-														) +
-														this
-														.translate(
-															"are_you_sure_clear_last"
-														),
-													success: function(
-														res
-													) {
-														if (res
-															.confirm
-														) {
-															if (
-																pageData)
-																pageData
-																.DefList = [];
-															$this
-																.viewAceionContent(
-																	value
-																);
-														} else if (
-															res
-															.cancel
-														) {
-															if (
-																pageData)
-																pageData
-																.DefList = [];
-															$this
-																.viewAceionContent(
-																	value
-																);
-														}
-													}
-												});
-											} else {
-												if (pageData)
-													pageData
-													.DefList = [];
-												$this
-													.viewAceionContent(
-														value);
-											}
-										} else if (item.action_type ==
-											"select_subtable_page_row"
-										) {
-											// value = {"page_name":"鐮佺洏涓�, "row":{"id":"xx"}}
-											var value = item.value;
-											const pageData = $this
-												.pageDetail.find((
-													page) => {
-													return value
-														.page_name ==
-														page.Name;
-												});
-											if (pageData?.DefList) {
-												pageData.DefList
-													.forEach(ele => {
-
-														if (ele
-															.form
-															.objId ==
-															value
-															.row.id
-														) {
-															ele.SelBut_Checked =
-																true;
-															$this
-																.active_id =
-																ele
-																.form
-																.htmlobjId;
-															//鑷姩婊氬姩鍒版寚瀹氬厓绱�-															uni.createSelectorQuery()
-																.select(
-																	"#tabpanel" +
-																	value
-																	.page_name
-																) //瀵瑰簲澶栧眰鑺傜偣
-																.boundingClientRect(
-																	(
-																		container
-																	) => {
-																		uni.createSelectorQuery()
-																			.select(
-																				"#dvpanel" +
-																				ele
-																				.form
-																				.htmlobjId
-																			) //鐩爣鑺傜偣
-																			.boundingClientRect(
-																				(
-																					target
-																				) => {
-																					uni.pageScrollTo({
-																						scrollTop: target
-																							.top -
-																							container
-																							.top, //婊氬姩鍒板疄闄呰窛绂绘槸鍏冪礌璺濈椤堕儴鐨勮窛绂诲噺鍘绘渶澶栧眰鐩掑瓙鐨勬粴鍔ㄨ窛绂�-																					});
-																				}
-																			)
-																			.exec();
-																	}
-																)
-																.exec();
-														}
-													});
-											}
-										} else if (item.action_type ==
-											"remove_subtable_page_row"
-										) { //娓呴櫎闈㈡澘涓寚瀹歩d鐨勬暟鎹�-											var value = item.value;
-											const pageData = $this
-												.pageDetail.find((
-													page) => {
-													return value
-														.page_name ==
-														page.Name;
-												});
-											if (pageData
-												?.DefList
-											) //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄緟鍒嗘嫞//娓呴櫎闈㈡澘涓寚瀹歩d鐨勬暟鎹�-											{
-												value.row.forEach(
-													row => {
-														pageData
-															.DefList
-															.forEach(
-																(ele,
-																	index
-																) => {
-																	if (ele
-																		.form
-																		.objId ==
-																		row
-																		.id
-																	) {
-																		pageData
-																			.DefList
-																			.splice(
-																				index,
-																				1
-																			);
-																	}
-																});
-													});
-											}
-
-
-
-										} else if (item.action_type ==
-											"set_subtable_page_row") {
-											$this.viewActionSetRow(item
-												.value)
-
-										} else if (item.action_type ==
-											"set_subtable_page_ext_data"
-										) {
-											var value = item.value;
-											const pageData = $this
-												.pageDetail.find((
-													page) => {
-													return value
-														.page_name ==
-														page.Name;
-												});
-											if (pageData)
-												pageData.ExtData =
-												value.ext_data
-
-										} else if (item.action_type ==
-											"clear_subpage_rows") {
-											var value = item.value;
-											const pageData = $this
-												.pageDetail.find((
-													page) => {
-													return value
-														.page_name ==
-														page.Name;
-												});
-											if (pageData) {
-												pageData.DefList = []
-												pageData.ExtData = {}
-											}
-
-										} else if (item.action_type ==
-											"set_dlg_current_edit_attr"
-										) {
-
-											if ($this
-												.focusOldFieldId ==
-												item.value) {
-												$this.setData({
-													focusFieldId: ""
-												})
-											} else {
-												$this.setData({
-													focusFieldId: $this
-														.focusOldFieldId
-												})
-											}
-											$this.$nextTick(() => {
-												$this.setData({
-													focusFieldId: item
-														.value
-												})
-											});
-										} else if (item.action_type ==
-											"set_dlg_attr") {
-											// value = {"attr":"xxx", "value":"xxx"}
-											var data = item.value;
-											$this.setFormValues(data)
-										}
-									});
-								} else {
-
-									if (result.info) {
-										uni.showModal({
-											title: this.translateSys(
-												"error") + "4.3",
-											content: result.info,
-											showCancel: false,
-											confirmText: this
-												.translateSys("cancel")
-										});
-									}
-								}
-
-							}
-
-						}).catch(ex => {
-							// console.log(ex);
-							let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex
-							uni.showModal({
-								title: this.translateSys("error") + "4.1",
-								content: tip,
-								showCancel: false,
-								confirmText: this.translateSys("cancel")
-							});
-						});
 					}
 				} catch (ex) {
-					var tip = typeof ex == "string" ? ex : ex.message;
-					uni.showModal({
-						title: this.translateSys("error") + "4.2",
-						content: this.translate(
-								'execute_after_change_event_failed') + this
-							.translateSys(
-								"comma") +
-							this.translate('reason') + this.translateSys("colon") +
-							tip,
-						showCancel: false,
-						confirmText: this.translateSys("cancel")
-					});
+					console.log(ex);
+					hideLoading()
+					showError(ex, this.translateSys('error') + "4.2")
 				}
 			},
 			operationNumber(value1, value2, operation) {
@@ -1069,6 +1366,9 @@
 					number1 = parseInt(value1)
 				if (value2)
 					number2 = parseInt(value2)
+				if (!operation) {
+					return value2;
+				}
 				if (operation == "+") {
 					return number1 + number2
 				} else if (operation == "-") {
@@ -1076,80 +1376,374 @@
 				} else if (operation == "*") {
 					return number1 * number2
 				} else if (operation == "/") {
-					if (number2)
-						return number1 / number2
-					else
-						return number1
-				} else return number2
+					if (number2) return number1 / number2;
+					else {
+						throw new Error(
+							`${this.translate("illegal_dividend")}'${value2}'`);
+						return 0;
+					}
+				} else if (operation == "=") {
+					return value2;
+				} else {
+					throw new Error(
+						`${this.translate("unrecognized_operator")}'${operation}'`
+					);
+					return 0;
+				}
 			},
 
+			viewActionSelectRow(value) {
+				const pageData = this.pageDetail.find((page) => {
+					return value.page_name == page.Name;
+				});
+				if (pageData?.DefList) {
+					const detailStyleDefList = pageData.DefList || []
+					let bFindRow = false;
+					for (let index = 0; index < detailStyleDefList
+						.length; index++) {
+						const ele = detailStyleDefList[index]
+
+						if (value.row.id) {
+							if (ele.form.objId == value.row.id) {
+								bFindRow = true;
+							}
+						} else {
+							const conditions = row.condition || [];
+							if (conditions.length > 0) {
+								for (let index = 0; index < detailStyleDefList
+									.length; index++) {
+									const ele = detailStyleDefList[index]
+									let bFindCondition = true;
+									for (let i in conditions) {
+										const condition = conditions[i];
+										let bFind = false;
+										for (let i2 in ele.form.items) {
+											const ele2 = ele.form.items[i2];
+											if (ele2.name != "Layout") {
+												if (ele2.fieldId == condition
+													.attr) {
+													if (condition.value == ele2
+														.value) {
+														bFind = true;
+													}
+													break;
+												}
+											} else {
+												const colList = ele2.setting
+													.colList || [];
+												for (let i3 in colList) {
+													const col = colList[i3];
+													if (col.fieldId == condition
+														.attr) {
+														if (condition.value == col
+															.value) {
+															bFind = true;
+														}
+														break;
+													}
+												}
+												if (bFind) break;
+											}
+										}
+										if (!bFind) {
+											bFindCondition = false;
+											break;
+										}
+									}
+									if (bFindCondition) {
+										bFindRow = true;
+									}
+								}
+							}
+						}
+						if (bFindRow) {
+							ele.SelBut_Checked = true;
+							this.active_id = ele.form.htmlobjId;
+							//鑷姩婊氬姩鍒版寚瀹氬厓绱�+							uni.createSelectorQuery().select("#tabpanel" + value
+									.page_name) //瀵瑰簲澶栧眰鑺傜偣
+								.boundingClientRect((container) => {
+									uni.createSelectorQuery()
+										.select("#dvpanel" + ele.form
+											.htmlobjId) //鐩爣鑺傜偣
+										.boundingClientRect((target) => {
+											uni.pageScrollTo({
+												scrollTop: target
+													.top -
+													container
+													.top, //婊氬姩鍒板疄闄呰窛绂绘槸鍏冪礌璺濈椤堕儴鐨勮窛绂诲噺鍘绘渶澶栧眰鐩掑瓙鐨勬粴鍔ㄨ窛绂�+											});
+										}).exec();
+								}).exec();
+						}
+						break
+					}
+				}
+
+			},
+
+			viewActionRemoveRow(value) {
+				if (JSON.stringify(value.row) == '{}') {
+					return;
+				}
+				const pageIndex = this.pageDetail.findIndex((page, index2,
+					arr) => {
+					return value.page_name == page.Name;
+				})
+				if (pageIndex < 0)
+					return
+				const pageData = this.pageDetail[pageIndex]
+				if (pageData?.DefList) //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄緟鍒嗘嫞//娓呴櫎闈㈡澘涓寚瀹歩d鐨勬暟鎹�+				{
+					const detailStyleDefList = pageData.DefList || []
+					value.row.forEach((row) => {
+						if (row.id) {
+							for (let index = 0; index < detailStyleDefList.length; index++) {
+								const ele = detailStyleDefList[index]
+								if (ele.form.objId == row.id) {
+									detailStyleDefList.splice(index, 1);
+									index--;
+								}
+							}
+
+						} else {
+							const conditions = row.condition || [];
+							if (conditions.length > 0) {
+								for (let index = 0; index <
+									detailStyleDefList.length; index++) {
+									const ele = detailStyleDefList[index]
+									let bFindCondition = true;
+									for (let i in conditions) {
+										const condition = conditions[i];
+										let bFind = false;
+										for (let i2 in ele.form.items) {
+											const ele2 = ele.form.items[
+												i2];
+											if (ele2.name != "Layout") {
+												if (ele2.fieldId ==
+													condition.attr) {
+													if (condition.value ==
+														ele2.value) {
+														bFind = true;
+													}
+													break;
+												}
+											} else {
+												const colList = ele2
+													.setting.colList || [];
+												for (let i3 in colList) {
+													const col = colList[
+														i3];
+													if (col.fieldId ==
+														condition.attr) {
+														if (condition
+															.value == col
+															.value) {
+															bFind = true;
+														}
+														break;
+													}
+												}
+												if (bFind) break;
+											}
+										}
+										if (!bFind) {
+											bFindCondition = false;
+											break;
+										}
+									}
+									if (bFindCondition) {
+										detailStyleDefList.splice(index,
+											1);
+
+									}
+								}
+							}
+
+						}
+					});
+				}
+				this.$set(this.pageDetail, pageIndex, pageData)
+			},
 			//鏇存柊鍒嗛〉绛句腑鐨勫垪琛ㄩ」鍐呭
 			viewActionSetRow(value) {
 				const $this = this
-				const pageIndex = $this.pageDetail.findIndex((
-					page, index2, arr) => {
+				const pageIndex = $this.pageDetail.findIndex((page, index2,
+					arr) => {
 					return value.page_name == page.Name;
 				})
 				if (pageIndex < 0)
 					return
 				const pageData = $this.pageDetail[pageIndex]
-				var detailStyleDefList = pageData.DefList || []
+				const detailStyleDefList = pageData.DefList || []
 				detailStyleDefList.forEach(ele => {
 					value.row.forEach((rowData) => {
-						if (ele.form.objId == rowData.id) {
-							rowData.attrs.forEach(attr => {
-								ele.form.items.forEach(ele2 => {
-									if (ele2.name !=
-										'Layout') {
-										if (ele2.fieldId ==
-											attr
-											.attr) {
-											ele2.value =
-												$this
-												.operationNumber(
-													ele2
-													.value,
+						if (rowData.id) {
+							if (ele.form.objId == rowData.id) {
+								rowData.attrs.forEach(attr => {
+									ele.form.items.forEach(
+										ele2 => {
+											if (ele2
+												.name !=
+												'Layout'
+											) {
+												if (ele2
+													.fieldId ==
 													attr
-													.value,
-													attr
-													.operation
-												)
-										}
-									} else if (ele2.name ==
-										'Layout') {
-										ele2.setting
-											.colList
-											.forEach(
-												col => {
-													if (
-														col) {
-														if (col
-															.fieldId ==
+													.attr
+												) {
+													ele2.value =
+														$this
+														.operationNumber(
+															ele2
+															.value,
 															attr
-															.attr
-														) {
-															col.value =
-																$this
-																.operationNumber(
-																	col
-																	.value,
+															.value,
+															attr
+															.operation
+														)
+												}
+											} else if (
+												ele2
+												.name ==
+												'Layout'
+											) {
+												ele2.setting
+													.colList
+													.forEach(
+														col => {
+															if (
+																col) {
+																if (col
+																	.fieldId ==
 																	attr
-																	.value,
-																	attr
-																	.operation
-																)
+																	.attr
+																) {
+																	col.value =
+																		$this
+																		.operationNumber(
+																			col
+																			.value,
+																			attr
+																			.value,
+																			attr
+																			.operation
+																		)
+																}
+															}
 														}
-													}
-												})
-									}
+													)
+											}
+										});
 								});
-							});
+							}
+						} else if (rowData.condition) {
+							const conditions = rowData.condition
+							let bFindCondition = true;
+							for (let i in conditions) {
+								const condition = conditions[i];
+								let bFind = false;
+								for (let i2 in ele.form.items) {
+									const ele2 = ele.form.items[
+										i2];
+									if (ele2.name != "Layout") {
+										if (ele2.fieldId ==
+											condition.attr) {
+											if (condition.value ==
+												ele2.value) {
+												bFind = true;
+											}
+											break;
+										}
+									} else {
+										const colList = ele2
+											.setting.colList || [];
+										for (let i3 in colList) {
+											const col = colList[
+												i3];
+											if (col.fieldId ==
+												condition.attr) {
+												if (condition
+													.value == col
+													.value) {
+													bFind = true;
+												}
+												break;
+											}
+										}
+										if (bFind) break;
+									}
+								}
+								if (!bFind) {
+									bFindCondition = false;
+									break;
+								}
+							}
+							if (bFindCondition) {
+								rowData.attrs.forEach(attr => {
+									ele.form.items.forEach(
+										ele2 => {
+											if (ele2
+												.name !=
+												'Layout'
+											) {
+												if (ele2
+													.fieldId ==
+													attr
+													.attr
+												) {
+													ele2.value =
+														$this
+														.operationNumber(
+															ele2
+															.value,
+															attr
+															.value,
+															attr
+															.operation
+														)
+												}
+											} else if (
+												ele2
+												.name ==
+												'Layout'
+											) {
+												ele2.setting
+													.colList
+													.forEach(
+														col => {
+															if (
+																col) {
+																if (col
+																	.fieldId ==
+																	attr
+																	.attr
+																) {
+																	col.value =
+																		$this
+																		.operationNumber(
+																			col
+																			.value,
+																			attr
+																			.value,
+																			attr
+																			.operation
+																		)
+																}
+															}
+														}
+													)
+											}
+										});
+								});
+
+							}
+
 						}
 					})
 				});
 				pageData.DefList = detailStyleDefList
 				$this.$set(this.pageDetail, pageIndex, pageData)
-
 			},
 			//鍔犺浇姝e湪鐮佺洏鍐呭
 			viewAceionRow(data) {
@@ -1171,25 +1765,31 @@
 					data.row.forEach(row => {
 						detailStyle = JSON.parse(styleStr);
 						detailStyle.form.objId = row.id;
-						detailStyle.form.htmlobjId = row.id ? row.id.replace(/-/g, '')
+						detailStyle.form.htmlobjId = row.id ? row.id
+							.replace(/-/g, '').replace('{', '')
 							.replace(
-								'{', '').replace('}',
-								'') : 'null';
+								'}', '') : 'null';
 						detailStyle.form.attrs = row.attrs;
 						row.attrs.forEach(attr => {
 							detailStyle.form.items.forEach(ele => {
 								if (ele.name != 'Layout') {
-									if (ele.fieldId == attr.attr) ele
-										.value =
-										attr.value;
-								} else if (ele.name == 'Layout') {
-									ele.setting.colList.forEach(
-										col => {
+									if (ele.fieldId == attr
+										.attr)
+										ele.value = attr
+										.value;
+								} else if (ele.name ==
+									'Layout') {
+									ele.setting.colList
+										.forEach(col => {
 											if (col) {
-												if (col.fieldId ==
+												if (col
+													.fieldId ==
 													attr
-													.attr) col
-													.value = attr
+													.attr
+												)
+													col
+													.value =
+													attr
 													.value;
 											}
 										});
@@ -1220,14 +1820,15 @@
 					return;
 				}
 				var styleStr = JSON.stringify(pageData.StyleDef);
-				var detailStyle = JSON.parse(styleStr);
-				if (detailStyle.form) {
-					data.content.forEach(cont => {
-						detailStyle = JSON.parse(styleStr);
-						detailStyle.SelBut_Checked = data.checkbox ?? true;
+
+				data.content.forEach(cont => {
+					var detailStyle = JSON.parse(styleStr);
+					if (detailStyle.form) {
+						//	detailStyle.SelBut_Checked = data.checkbox ?? true;
 
 						detailStyle.form.objId = cont.id;
-						detailStyle.form.htmlobjId = cont.id ? cont.id.replace(/-/g,
+						detailStyle.form.htmlobjId = cont.id ? cont.id
+							.replace(/-/g,
 								'')
 							.replace('{', '').replace('}',
 								'') : 'null';
@@ -1235,20 +1836,27 @@
 						cont.attrs.forEach(attr => {
 							detailStyle.form.items.forEach(ele => {
 								if (ele.name != 'Layout') {
-									if (ele.fieldId == attr.attr) ele
-										.value =
-										attr.value;
-								} else if (ele.name == 'Layout') {
-									ele.setting.colList.forEach(
-										col => {
-											if (col) {
-												if (col.fieldId ==
-													attr
-													.attr) col
-													.value = attr
-													.value;
-											}
-										});
+									if (ele.fieldId == attr
+										.attr)
+										ele.value = attr
+										.value;
+								} else if (ele.name ==
+									'Layout') {
+									ele.setting.colList
+										.forEach(
+											col => {
+												if (col) {
+													if (col
+														.fieldId ==
+														attr
+														.attr
+													)
+														col
+														.value =
+														attr
+														.value;
+												}
+											});
 								}
 							});
 						});
@@ -1256,190 +1864,390 @@
 						if (data.clear == false) {
 							var isflag = true;
 							pageData.DefList.forEach((style, index) => {
-								if (style.form.objId == detailStyle.form
-									.objId) {
+								if (style.form.objId == detailStyle
+									.form.objId) {
 									cont.attrs.forEach(attr => {
-										style.form.items.forEach(
-											ele => {
-												if (ele.name !=
-													'Layout') {
+										style.form.items
+											.forEach(
+												ele => {
 													if (ele
-														.fieldId ==
-														attr.attr)
+														.name !=
+														'Layout'
+													) {
+														if (ele
+															.fieldId ==
+															attr
+															.attr
+														)
+															ele
+															.value =
+															attr
+															.value;
+													} else if (
 														ele
-														.value =
-														attr.value;
-												} else if (ele
-													.name ==
-													'Layout') {
-													ele.setting
-														.colList
-														.forEach(
-															col => {
-																if (
-																	col
-																) {
-																	if (col
-																		.fieldId ==
-																		attr
-																		.attr
-																	)
-																		col
-																		.value =
-																		attr
-																		.value;
+														.name ==
+														'Layout'
+													) {
+														ele.setting
+															.colList
+															.forEach(
+																col => {
+																	if (
+																		col) {
+																		if (col
+																			.fieldId ==
+																			attr
+																			.attr
+																		)
+																			col
+																			.value =
+																			attr
+																			.value;
+																	}
 																}
-															});
-												}
-											});
+															);
+													}
+												});
 									});
 									isflag = false;
 								}
 							});
-							if (isflag) pageData.DefList.push(detailStyle); //寰呭垎鎷�+							if (isflag) pageData.DefList.push(
+								detailStyle); //寰呭垎鎷� 						} else {
 							pageData.DefList.push(detailStyle); //寰呭垎鎷� 						}
 						// $this.setData({pageDetail:pageD})
 						$this.$set(this.pageDetail, pageIndex, pageData)
-
-					});
-				}
-
-			},
-			setFormValues(data) {
-				const head_styledef = this.head_styledef
-				if (JSON.stringify(data) == '{}') {
-					return;
-				}
-				head_styledef.form.items.forEach(async (ele, index) => {
-					if (ele.name != "Layout") {
-						let curIndex = data.findIndex((attr, index2, arr) => {
-							return attr.attr == ele.fieldId;
-						})
-						if (curIndex > -1) {
-							const attr = data[curIndex]
-							if (ele.name ==
-								'Select' &&
-								attr
-								.choice_list
-							) {
-								const
-									dictItemList = [];
-								const
-									choiceList =
-									attr
-									.choice_list || [];
-								for (let d in
-										choiceList) {
-									const
-										val =
-										choiceList[
-											d
-										];
-									dictItemList
-										.push({
-											text: val,
-											value: val
-										});
-								}
-								ele.dict =
-									dictItemList;
-							}
-
-							ele.value =
-								attr
-								.value;
-						}
-					} else {
-						ele.setting
-							.colList
-							.forEach(
-								async (
-									col
-								) => {
-									if (
-										col) {
-										let curIndex = data.findIndex((
-											attr, index2, arr) => {
-											return attr.attr == col.fieldId;
-										})
-										if (curIndex > -1) {
-											const attr = data[curIndex]
-											if (col.name ==
-												'Select' &&
-												attr
-												.choice_list
-											) {
-												const
-													dictItemList = [];
-												const
-													choiceList =
-													attr
-													.choice_list || [];
-												for (let d in
-														choiceList) {
-													const
-														val =
-														choiceList[
-															d
-														];
-													dictItemList
-														.push({
-															text: val,
-															value: val
-														});
-												}
-												col.dict =
-													dictItemList;
-											}
-
-											col.value =
-												attr
-												.value;
-										}
-									}
-
-								})
-
 					}
-				})
+				});
+
+				$this.$set(this.pageDetail, pageIndex, pageData)
+			},
+			setFormItemVisible(attrs) {
+				if (!Array.isArray(attrs)) {
+					return
+				}
+				const head_styledef = this.head_styledef
+				if (!head_styledef.hiddenIds) {
+					head_styledef.hiddenIds = []
+				}
+				attrs.forEach((attr) => {
+					let index = head_styledef.hiddenIds.findIndex((id) =>
+						id == attr.attr);
+					if (attr.show) {
+						if (index > -1) head_styledef.hiddenIds.splice(
+							index, 1);
+					} else {
+						if (index == -1) head_styledef.hiddenIds.push(attr
+							.attr);
+					}
+				});
 
 				this.setData({
 					head_styledef: head_styledef
 				})
+			},
+			setFormValues(attrs) {
+				const head_styledef = this.head_styledef
+				if (!Array.isArray(attrs)) {
+					return
+				}
+				console.log(attrs)
+				attrs.forEach(async (attr, key) => {
+					if (attr.choice_list) {
+						var dictItemList = [];
+						attr.choice_list.forEach(async (val,
+							index) => {
+							dictItemList.push({
+								text: val,
+								value: val
+							});
+						});
+
+						head_styledef.form.items.forEach(async (
+							attr_item, index) => {
+							if (attr_item.name !=
+								"Layout") {
+								if (attr_item.fieldId ==
+									attr.attr) {
+									if (attr_item
+										.useDict) {
+										attr_item.dict =
+											dictItemList;
+									} else {
+										attr_item
+											.selections =
+											dictItemList;
+									}
+								}
+							} else if (attr_item.name ==
+								"Layout") {
+								attr_item.setting.colList
+									.forEach((col) => {
+										if (col) {
+											if (col
+												.fieldId ==
+												attr
+												.attr
+											) {
+												if (col
+													.useDict
+												) {
+													col.dict =
+														dictItemList;
+												} else {
+													col.selections =
+														dictItemList;
+												}
+											}
+										}
+									});
+							}
+						});
+					}
+					if (!head_styledef.form.model[attr.attr]) {
+						head_styledef.form.model[attr.attr] = attr
+							.value;
+					}
+					head_styledef.form.items.forEach(async (ele) => {
+						if (ele.name != "Layout") {
+							if (ele.fieldId == attr.attr) {
+								ele.value = attr.value;
+								ele.oldvalue = attr.value;
+								if (ele.name == "Input") {
+									if (attr.prompt) ele
+										.placeholder = attr
+										.prompt;
+								}
+								if (attr.enable !==
+									undefined) {
+									if (attr.enable) ele
+										.disabled = false;
+									else ele.disabled =
+										true;
+								}
+							}
+						} else if (ele.name == "Layout") {
+							ele.setting.colList.forEach((
+								col) => {
+								if (col) {
+									if (col
+										.fieldId ==
+										attr.attr
+									) {
+										col.value =
+											attr
+											.value;
+										col.oldvalue =
+											attr
+											.value;
+										if (col
+											.name ==
+											"Input"
+										) {
+											if (attr
+												.prompt
+											)
+												col
+												.placeholder =
+												attr
+												.prompt;
+										}
+										if (attr
+											.enable !==
+											undefined
+										) {
+											if (attr
+												.enable
+											)
+												col
+												.disabled =
+												false;
+											else col
+												.disabled =
+												true;
+										}
+									}
+								}
+							});
+						}
+
+					})
+					//鍒ゆ柇琛ㄥ崟閲屾槸鍚︽湁杩斿洖瀛楁锛屾病鏈夊氨瑁呰浇鍒癿odel閲岋紝鐐瑰嚮纭畾鎻愪氦鐨勬椂鍊欏甫涓婅繖浜涙暟鎹�+				})
+				console.log(head_styledef)
+				this.setData({
+					head_styledef: head_styledef
+				})
+			},
+			setDetailFormItemVisible(attrs, style, pageIndex) {
+				if (pageIndex < 0)
+					return
+				if (!Array.isArray(attrs)) {
+					return
+				}
+				const pageData = this.pageDetail[pageIndex]
+				if (!style.hiddenIds) {
+					style.hiddenIds = []
+				}
+				attrs.forEach((attr) => {
+					let index = style.hiddenIds.findIndex((id) => id ==
+						attr.attr);
+					if (attr.show) {
+						if (index > -1) style.hiddenIds.splice(index, 1);
+					} else {
+						if (index == -1) style.hiddenIds.push(attr.attr);
+					}
+				});
+				this.$set(this.pageDetail, pageIndex, pageData)
+			},
+			setDetailFormValues(attrs, style, pageIndex) {
+				if (pageIndex < 0)
+					return
+				if (!Array.isArray(attrs)) {
+					return
+				}
+
+				const pageData = this.pageDetail[pageIndex]
+				attrs.forEach(async (attr, key) => {
+					if (attr.choice_list) {
+						var dictItemList = [];
+						attr.choice_list.forEach(async (val,
+							index) => {
+							dictItemList.push({
+								text: val,
+								value: val
+							});
+						});
+
+						style.form.items.forEach(async (attr_item,
+							index) => {
+							if (attr_item.name !=
+								"Layout") {
+								if (attr_item.fieldId ==
+									attr.attr) {
+									if (attr_item
+										.useDict) {
+										attr_item.dict =
+											dictItemList;
+									} else {
+										attr_item
+											.selections =
+											dictItemList;
+									}
+								}
+							} else if (attr_item.name ==
+								"Layout") {
+								attr_item.setting.colList
+									.forEach((col) => {
+										if (col) {
+											if (col
+												.fieldId ==
+												attr
+												.attr
+											) {
+												if (col
+													.useDict
+												) {
+													col.dict =
+														dictItemList;
+												} else {
+													col.selections =
+														dictItemList;
+												}
+											}
+										}
+									});
+							}
+						});
+					}
+					if (!style.form.model[attr.attr]) {
+						style.form.model[attr.attr] = attr.value;
+					}
+					style.form.items.forEach(async (ele) => {
+						if (ele.name != "Layout") {
+							if (ele.fieldId == attr.attr) {
+								ele.value = attr.value;
+								ele.oldvalue = attr.value;
+								if (ele.name == "Input") {
+									if (attr.prompt) ele
+										.placeholder = attr
+										.prompt;
+								}
+								if (attr.enable !==
+									undefined) {
+									if (attr.enable) ele
+										.disabled = false;
+									else ele.disabled =
+										true;
+								}
+							}
+						} else if (ele.name == "Layout") {
+							ele.setting.colList.forEach((
+								col) => {
+								if (col) {
+									if (col
+										.fieldId ==
+										attr.attr
+									) {
+										col.value =
+											attr
+											.value;
+										col.oldvalue =
+											attr
+											.value;
+										if (col
+											.name ==
+											"Input"
+										) {
+											if (attr
+												.prompt
+											)
+												col
+												.placeholder =
+												attr
+												.prompt;
+										}
+										if (attr
+											.enable !==
+											undefined
+										) {
+											if (attr
+												.enable
+											)
+												col
+												.disabled =
+												false;
+											else col
+												.disabled =
+												true;
+										}
+									}
+								}
+							});
+						}
+
+					})
+					//鍒ゆ柇琛ㄥ崟閲屾槸鍚︽湁杩斿洖瀛楁锛屾病鏈夊氨瑁呰浇鍒癿odel閲岋紝鐐瑰嚮纭畾鎻愪氦鐨勬椂鍊欏甫涓婅繖浜涙暟鎹�+				})
+				this.$set(this.pageDetail, pageIndex, pageData)
 			},
 
 			onClickItem(e) { //閫夋嫨椤电
 				// console.log(e);
 				this.current = e.currentIndex
 			},
-			onDetail1EnterChange(item) { //鐮佺洏涓牱寮忓洖杞︿簨浠�-				console.log(item);
-			},
-			delItem(pageData, index) { //鍒犻櫎鐮佺洏涓牱寮忛潰鏉� 
-				//鍒犻櫎鐮佺洏涓牱寮忛潰鏉�-				this.Before_Del_Event = pageData.Before_Delete;
-				this.After_Del_Event = pageData.After_Delete;
-				const style = pageData.DefList[index];
-				//鍒犻櫎鐮佺洏涓牱寮忛潰鏉�-				pageData.DefList.splice(index, 1);
-				if (this.Before_Del_Event?.ID)
-					//鏄惁鏈夊垹闄ゅ墠浜嬩欢
-					this.del(pageData, style, this.Before_Del_Event);
-				else if (this.After_Del_Event?.ID)
-					//鏄惁鏈夊垹闄ゅ悗浜嬩欢
-					this.del(pageData, style, this.After_Del_Event);
-			},
 			async del(pageData, style, event) {
 				//鑾峰彇琛ㄥご灞炴�
 				var head_attr = {};
-				this.$data.head_styledef.form.items.forEach(item => {
+				this.head_styledef.form.items.forEach(item => {
 					if (item.name == "Layout") { //鍒ゆ柇鏄惁鏄爡鏍忔牸寮�-						item.setting.colList.forEach(cols => {
-							if (cols != null) head_attr[cols.fieldId] =
-								cols.value;
+						item.setting.colList.forEach(col => {
+							if (col != null) head_attr[col
+									.fieldId] =
+								col.value;
 						});
 					} else
 						head_attr[item.fieldId] = item.value;
@@ -1450,9 +2258,9 @@
 				var detail_attr = {};
 				style.form.items.forEach(item => {
 					if (item.name == "Layout") { //鍒ゆ柇鏄惁鏄爡鏍忔牸寮�-						item.setting.colList.forEach(cols => {
-							if (cols != null) detail_attr[cols
-									.fieldId] = cols
+						item.setting.colList.forEach(col => {
+							if (col != null) detail_attr[col
+									.fieldId] = col
 								.value;
 						});
 					} else
@@ -1470,11 +2278,15 @@
 				//鑾峰彇姝e湪鍒嗘嫞閲屾病鏈夋樉绀虹殑瀛楁
 				style.form.attrs.forEach(attr => {
 					for (var key in detailAttrList) {
-						if (style.form.objId == detailAttrList[key]['id']) {
-							var keys = Object.keys(detailAttrList[key]);
+						if (style.form.objId == detailAttrList[key][
+								'id'
+							]) {
+							var keys = Object.keys(detailAttrList[
+								key]);
 							var isflag = true;
 							keys.forEach((ele) => {
-								if (ele == attr.attr) isflag = false;
+								if (ele == attr.attr) isflag =
+									false;
 							});
 							if (isflag) {
 								detailAttrList[attr.attr] = attr.value;
@@ -1503,12 +2315,8 @@
 					});
 				});
 				if (jsonlist.length == 0) {
-					uni.showModal({
-						title: this.translateSys("tip"),
-						content: this.translate("tip_no_select_data"),
-						showCancel: false,
-						confirmText: this.translateSys("cancel")
-					});
+					showInfo(this.translate("tip_no_select_data"))
+
 					return;
 				}
 				// console.log(jsonlist);
@@ -1521,9 +2329,1209 @@
 				$this.runCustomEvent(pageData, event, input_param, list);
 			},
 
+			popupChange(e) {
+				console.log('褰撳墠妯″紡锛� + e.type + ',鐘舵�锛� + e.show);
+			},
+			checkChange(e) { //寮规check閫夋嫨
+				// console.log(e.target.dataset);
+				var index = e.target.dataset.index;
+				var ischeck = e.target.dataset.ischeck;
+				var data = this.check_list.items;
+				// this.check_list.items=[];
+				if (this.check_list.multiple_choice == "0") { //鍒ゆ柇鏃跺崟閫夎繕鏄閫�+					for (var i in data) {
+						data[i].check = false;
+					}
+				}
+				data[index].check = ischeck ? false : true;
+				this.check_list.items = data;
+
+			},
+			popup_cancel(e) { //寮规鍙栨秷
+				this.$refs.popup.close();
+			},
+			popup_sava(e) { //寮规纭畾
+				var $this = this;
+				var items = $this.check_list.items;
+				var data = [];
+				var name = "";
+				for (var i = 0; i < items.length; i++) {
+					if (items[i].check == true) {
+						if (name)
+							name += ';';
+						name += items[i].name;
+						data.push({
+							id: items[i].id,
+							name: items[i].name
+						});
+					}
+				}
+				if (!$this.popupParam) {
+					showInfo("popupParam涓虹┖锛�)
+
+					return;
+				}
+				if (data.length == 0) {
+					showInfo(this.translate("tip_no_select_data"))
+
+					return;
+				}
+				var callback_eventid = $this.popupParam.button_callback.trim();
+				var info = {
+					eventid: callback_eventid,
+					edtype: "0",
+					projectid: '',
+					rclsid: '',
+					robjid: '',
+					userlogin: '',
+					clsid: $this.ClsID,
+					objid: "",
+					attr: $this.popupParam.req,
+					dataJson: data
+				}
+				$this.DataObjRunCustomEvent(info, $this.popupParam.data_attr);
+				this.$refs.popup.close();
+			},
+
+			async DataObjRunCustomEvent(info, data_attr) {
+				var $this = this;
+				if( !info.eventid)
+					return
+				showLoading("loading...")
+				var enviroment = {
+					'function': '3000', // 鍔熻兘鐐圭紪鍙�+					cls_id: this.ClsID, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�+					'button': 'top', // top/bottom
+					button_name: this.translateSys('add2'),
+					master: {
+						cls_id: this
+							.ClsID, // button=bottom鏃�master鐨刢ls_id
+						//obj_id: ''  // button=bottom鏃�master鐨刼bj_id
+					}
+				};
+				if (data_attr) {
+					enviroment.edit_dlg = {
+						type: 'small', //灏忕獥鍙�+						class_id: this.ClsID, //褰撳墠鏁版嵁绫籭d
+					}
+					if (data_attr) {
+						enviroment.edit_dlg.form_control = { //鎵�睘鐨勮〃鍗曟帶浠�+							name: data_attr.Name, //瀛楁灞炴�
+							text: data_attr.DispName, //鏄剧ず鏂囨湰
+							group_name: data_attr.GroupName, //灞炴�缁�+							type: data_attr.Type, //瀛楁绫诲瀷
+							readonly: data_attr.ReadOnly, //鏄惁鍙
+							button_img: data_attr.button_img, //寮曠敤鎸夐挳鐨勫浘鏍�+							button_tooltip: data_attr
+								.button_tooltip //寮曠敤鎸夐挳鐨則ooltip
+						}
+					}
+				}
+				enviroment = Base64.encode(JSON.stringify(
+					enviroment)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				var input_param = Base64.encode(JSON.stringify(info
+					.attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				var global_attr = Base64.encode(JSON.stringify(this
+					.global_attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				if (info.dataJson)
+					info.dataJson = Base64.encode(JSON.stringify(info
+						.dataJson)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				var obj_attr = {};
+				info.attr.forEach(item => {
+					obj_attr[item.attr] = item.value;
+				});
+				if (!info.eventid.includes('{')) info.eventid = '{' + info
+					.eventid + '}';
+				var dataInfo = {
+					ed_type: info.edtype,
+					start_transaction: true,
+					class_id: info.clsid,
+					class_name: '',
+					event_id: info.eventid,
+					event_name: '',
+					data_obj_id: info.objid,
+					obj_attr: obj_attr,
+					prj_id: info.projectid,
+					ref_cls_id: info.rclsid,
+					rel_obj_id: info.robjid,
+					user_login: info.userlogin,
+					data_json: info.dataJson,
+					compose_info: '',
+					ext_info: enviroment,
+					global_attr: global_attr,
+					input_param: input_param,
+				};
+				console.log(dataInfo);
+				// return;
+				runCustomEvent(dataInfo).then(data => {
+					hideLoading()
+					$this.onFormEventResult(data,"")
+
+				}).catch(ex => {
+					// console.log(ex);
+					hideLoading()
+					showError(ex, this.translateSys("error") + "3.1")
+				});
+			},
+			dataObjRunCustomEvent_Return(eventid, button_callback, item) {
+				showLoading("loading...")
+				const $this = this
+				var enviroment = {
+					'function': '3000', // 鍔熻兘鐐圭紪鍙�+					cls_id: $this.ClsID, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�+					'button': 'top', // top/bottom
+					button_name: $this.translateSys('add2'),
+					master: {
+						cls_id: $this
+							.ClsID, // button=bottom鏃�master鐨刢ls_id
+						//obj_id: ''  // button=bottom鏃�master鐨刼bj_id
+					}
+				};
+				var obj_attr = $this.head_styledef.form.model;
+				console.log(obj_attr);
+				var req = Object.keys(obj_attr).map((a) => ({
+					attr: a,
+					value: obj_attr[a] || "",
+				}));
+
+				var extinfo = enviroment;
+				extinfo.edit_dlg = {
+					type: 'small', //灏忕獥鍙�+					class_id: $this.ClsID, //褰撳墠鏁版嵁绫籭d
+				}
+				extinfo = Base64.encode(JSON.stringify(
+					extinfo)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				var global_attr = Base64.encode(JSON.stringify($this
+					.global_attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				var obj_attr = {};
+				req.forEach(item2 => {
+					obj_attr[item2.attr] = item2.value;
+				});
+				let input_param = Base64.encode(
+					JSON.stringify(
+						Object.keys(obj_attr).map((a) => ({
+							attr: a,
+							value: obj_attr[a] || "",
+						}))
+					)
+				);
+
+				if (!eventid.includes('{')) eventid = '{' + eventid + '}';
+				var dataInfo = {
+					ed_type: "0",
+					start_transaction: true,
+					class_id: $this.ClsID,
+					class_name: '',
+					event_id: eventid,
+					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: extinfo,
+					global_attr: global_attr,
+					input_param: input_param,
+				};
+				console.log(dataInfo);
+				// return;
+				runCustomEvent(dataInfo).then(data => {
+					hideLoading()
+					$this.onFormEventResult(data, button_callback, item)
+				}).catch(ex => {
+					hideLoading()
+					showError(ex, this.translateSys("error") + "5.1")
+				});
+			},
+
+			async onFormEventResult(data, callbackEventId, item) {
+				try {
+					const $this = this
+					var enviroment = {
+						'function': '3000', // 鍔熻兘鐐圭紪鍙�+						cls_id: $this.ClsID, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�+						'button': 'top', // top/bottom
+						button_name: $this.translateSys('add2'),
+						master: {
+							cls_id: $this.ClsID, // button=bottom鏃�master鐨刢ls_id
+							//obj_id: ''  // button=bottom鏃�master鐨刼bj_id
+						}
+					};
+					if (data.ret != 0 && data.ret != 1) {
+
+						let cls_name = data.event_info?.cls_name
+						let event_name = data.event_info?.event_name
+						tip = data.err_info ? typeof data.err_info == 'string' ? data.err_info : data.err_info
+							.join('\n') : ''
+						if (data.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 (data.ret == 801) showInfo(tip)
+						else showError(`${tip}锛屾彁绀猴細${data.ret}`, this.translateSys('tip'))
+						this.saving = false
+						return false
+					} else {
+						var tip = data.info ? typeof data.info == 'string' ? data.info :
+							data.info.join('\n') : '';
+						tip = tip || data.err_info
+						let time = data.info_time || 0
+						if (time)
+							showError(tip, this.translateSys('tip'))
+						else
+							showInfo(tip)
+						if ([0, 2, 3, 4, -1].includes(data
+								.result_type)) {
+							if (data.result_type == 2) {
+
+							} else if (typeof data.result ==
+								'string') {
+								showInfo(data.result)
+							}
+							try {
+								var enviroment = JSON.stringify(enviroment);
+								var actions = data.action || []
+								for (var i = 0; i < actions.length; i++) {
+									var action = actions[i];
+									console.log(action)
+									if (action.action_type ==
+										"insert_subtable_page_row"
+									) { //鐮佺洏涓�+										$this.param.Show_Welcom_Page =
+											false;
+										var value = action.value;
+										$this.viewAceionRow(value);
+									} else if (action.action_type ==
+										"set_subtable_page_content"
+									) { //宸茬爜鐩�+										$this.param.Show_Welcom_Page =
+											false;
+										var value = action.value;
+										const pageData = $this
+											.pageDetail.find((
+												page) => {
+												return value
+													.page_name ==
+													page.Name;
+											});
+										if (value.clear_confirm !=
+											false && value.clear ==
+											true &&
+											pageData && pageData
+											.DefList.length > 0
+										) { //鍒ゆ柇鏄惁娓呯┖椤电鍐呭,姝e湪鐮佺洏鏄惁鏈夋暟鎹�+											uni.showModal({
+												title: this
+													.translateSys(
+														'tip'),
+												content: this
+													.translate(
+														"are_you_sure_clear_first"
+													) +
+													this
+													.translateSys(
+														"quotation_mark_left"
+													) +
+													value
+													.page_name +
+													this
+													.translateSys(
+														"quotation_mark_right"
+													) +
+													this
+													.translate(
+														"are_you_sure_clear_last"
+													),
+												cancelText: $this
+													.translateSys(
+														'ok'),
+												confirmText: $this
+													.translateSys(
+														'cancel'
+													),
+												success: function(
+													res) {
+													if (res
+														.cancel
+													) {
+														if (
+															pageData)
+															pageData
+															.DefList = [];
+														$this
+															.viewAceionContent(
+																value
+															);
+													} else if (
+														res
+														.confirm
+													) {
+														if (
+															pageData)
+															pageData
+															.DefList = [];
+														$this
+															.viewAceionContent(
+																value
+															);
+													}
+												}
+											});
+										} else {
+											if (pageData)
+												pageData.DefList = [];
+											$this.viewAceionContent(
+												value);
+										}
+									} else if (action.action_type ==
+										"select_subtable_page") {
+										var value = action.value;
+										const pageIndex = $this
+											.pageDetail.findIndex((
+												page) => {
+												return value
+													.page_name ==
+													page.Name;
+											});
+										if (pageIndex > -1) {
+											$this.setData({
+												current: pageIndex
+											})
+										}
+									} else if (action.action_type ==
+										"select_subtable_page_row") {
+										// value = {"page_name":"鐮佺洏涓�, "row":{"id":"xx"}}
+										var value = action.value;
+										$this.viewActionSelectRow(
+											value)
+									} else if (action.action_type ==
+										"remove_subtable_page_row"
+									) { //娓呴櫎闈㈡澘涓寚瀹歩d鐨勬暟鎹�+										var value = action.value;
+										$this.viewActionRemoveRow(
+											value)
+									} else if (action.action_type ==
+										"set_subtable_page_row") {
+										$this.viewActionSetRow(action
+											.value)
+
+									} else if (action.action_type ==
+										"set_subtable_page_ext_data") {
+										var value = action.value;
+										const pageData = $this
+											.pageDetail.find((
+												page) => {
+												return value
+													.page_name ==
+													page.Name;
+											});
+										if (pageData)
+											pageData.ExtData = value
+											.ext_data
+
+									} else if (action.action_type ==
+										"clear_subpage_rows") {
+										var value = action.value;
+										const pageIndex = $this
+											.pageDetail.findIndex((
+												page) => {
+												return value
+													.page_name ==
+													page.Name;
+											});
+										if (pageIndex > -1) {
+											const pageData = $this
+												.pageDetail[pageIndex]
+											pageData.DefList = []
+											pageData.ExtData = {}
+
+											$this.$set(this.pageDetail,
+												pageIndex, pageData
+											)
+										}
+
+									} else if (action.action_type ==
+										"set_dlg_current_edit_attr") {
+
+										if ($this.focusOldFieldId ==
+											action.value) {
+											$this.setData({
+												focusFieldId: ""
+											})
+										} else {
+											$this.setData({
+												focusFieldId: $this
+													.focusOldFieldId
+											})
+										}
+										$this.$nextTick(() => {
+											$this.setData({
+												focusFieldId: action
+													.value
+											})
+										});
+									} else if (action.action_type ==
+										"set_dlg_attr") {
+										// value = {"attr":"xxx", "value":"xxx"}
+										var data = action.value;
+										$this.setFormValues(data)
+									} else if (action.action_type ==
+										'set_dlg_attr_show') {
+										var data = action.value;
+										$this.setFormItemVisible(data)
+									} else if (action
+										.action_type ==
+										'set_global_attr') {
+										$this.global_attr = action
+											.value || [];
+									} else if (action.action_type ==
+										'open_panel') {
+										var d = dialog({
+											title: '<i class="ace-icon fa fa-info-circle"></i> ' +
+												$this
+												.translateSys(
+													"tip"),
+											content: $this
+												.translateSys(
+													"quotation_mark_left"
+												) +
+												action
+												.action_type +
+												$this
+												.translateSys(
+													"quotation_mark_right"
+												) +
+												$this
+												.translate(
+													"tip_action_unprocessed"
+												)
+										});
+										d.show();
+									} else if (action
+										.action_type ==
+										'open_select_userdlg') {
+										var style = val.style;
+										// style == 'user' ? '閫夋嫨浜哄憳' : style == 'department' ? '閫夋嫨閮ㄩ棬' : style == 'role' ? '閫夋嫨瑙掕壊' : ''
+										var param = {
+											item: item,
+											button_callback: callbackEventId,
+											req: req,
+											data_attr: ""
+										}
+										uni.navigateTo({
+											url: '../selpsn/index?mulit=false&param=' +
+												JSON
+												.stringify(
+													param),
+											events: {
+												AddPer(
+													data,
+													param
+												) {
+													// console.log(param);
+													console
+														.log(
+															data
+														);
+													var callback_eventid =
+														param
+														.button_callback
+														.trim();
+													var info = {
+														eventid: callback_eventid,
+														edtype: "0",
+														projectid: '',
+														rclsid: '',
+														robjid: '',
+														userlogin: '',
+														clsid: $this
+															.param
+															.DataCls
+															.id,
+														objid: "",
+														attr: param
+															.req,
+														inputparameter: data,
+														dataJson: [],
+													}
+													$this
+														.DataObjRunCustomEvent(
+															info,
+															param
+															.data_attr
+														);
+												}
+											}
+										});
+									} else if (action
+										.action_type ==
+										'open_data_query_dlg') {
+										var d = dialog({
+											title: '<i class="ace-icon fa fa-info-circle"></i> ' +
+												$this
+												.translateSys(
+													"tip"),
+											content: $this
+												.translateSys(
+													"quotation_mark_left"
+												) +
+												action
+												.action_type +
+												$this
+												.translateSys(
+													"quotation_mark_right"
+												) +
+												$this
+												.translate(
+													"tip_action_unprocessed"
+												)
+										});
+										d.show();
+									} else if (action
+										.action_type ==
+										'open_common_dlg') {
+
+										if (val.common_dlg_id ==
+											'check_list') {
+											$this.setData({
+												check_list: val
+													.config
+											})
+											console.log($this
+												.check_list)
+											if (val.config
+												.appear_style ==
+												'sideslip'
+											) //鍒ゆ柇鏄惁鏄晶婊�+												$this.setData({
+													popupType: "right"
+												})
+											else
+												$this.setData({
+													popupType: "center"
+												})
+											// open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴�
+											$this.$refs.popup.open(
+												$this.popupType
+											);
+											var popupParam = {
+												item: item,
+												button_callback: callbackEventId,
+												req: req,
+												data_attr: ""
+											}
+											$this.setData({
+												popupParam: popupParam
+											})
+										}
+									} else if (action
+										.action_type ==
+										'open_project_query_dlg') {
+										//console.log(action.value.select_range);
+										//console.log(action.value.mulit_select);
+										var priRel = '-1';
+										if (action.value
+											.select_range == '鍏ㄩ儴鐩稿叧'
+										)
+											priRel = '0';
+										else if (action.value
+											.select_range ==
+											'鎴戣礋璐g殑椤圭洰')
+											priRel = '1';
+										else if (action.value
+											.select_range == '鎴戝垱寤虹殑'
+										)
+											priRel = '2';
+										else if (action.value
+											.select_range ==
+											'鎴戝弬涓庣殑' || action
+											.value
+											.select_range == '鎴戝弬鍔犵殑'
+										)
+											priRel = '3';
+										else if (action.value
+											.select_range == '鎴戝叧娉ㄧ殑'
+										)
+											priRel = '4';
+										else if (action.value
+											.select_range ==
+											'鎴戜笅灞炵殑椤圭洰')
+											priRel = '5';
+										var param_ = {
+											item: item,
+											button_callback: callbackEventId,
+											req: req
+										}
+										uni.navigateTo({
+											url: '../selPrj/index?relation=' +
+												priRel +
+												'&param=' +
+												JSON
+												.stringify(
+													param_
+												),
+											events: {
+												AddPer(
+													data,
+													param
+												) {
+													var attr =
+														param
+														.item
+														.fieldId;
+													$this
+														.head_styledef
+														.form
+														.model[
+															attr
+														] =
+														data[
+															0
+														]
+														.ID +
+														';' +
+														data[
+															0
+														]
+														.Name;
+
+													// $this.classAttrList[param.index].Attr[param.iindex].Value=data[0].Name;
+													// $this.classAttrList[param.index].Attr[param.iindex].ValID=data[0].ID+';'+data[0].Name;
+													var callback_eventid =
+														param
+														.button_callback
+														.trim();
+													if (
+														callback_eventid) {
+														var info = {
+															eventid: callback_eventid,
+															edtype: "2",
+															projectid: data[
+																	0
+																]
+																.ID,
+															rclsid: "",
+															robjid: "",
+															userlogin: "",
+															clsid: $this
+																.$data
+																.param
+																.DataCls
+																.id,
+															objid: "",
+															attr: param
+																.req,
+															dataJson: [],
+														}
+
+														$this
+															.DataObjRunCustomEvent(
+																info
+															);
+													}
+												}
+											}
+										});
+									} else {
+										showInfo($this
+											.translateSys(
+												"quotation_mark_left"
+											) +
+											action
+											.action_type +
+											$this
+											.translateSys(
+												"quotation_mark_right"
+											) +
+											$this
+											.translate(
+												"tip_action_unprocessed"
+											))
+
+									}
+								}
+
+							} catch (ex) {
+								let actionList = (data.action || []).map(a => a.action_type)
+									.join(';')
+								let tip = typeof ex == 'string' ? ex : ex.message
+								tip = `鎵ц鑴氭湰杩斿洖鐨�{actionList}鏃跺嚭鐜板紓甯革紝璇锋鏌ヨ剼鏈繑鍥炵殑鏁版嵁鏍煎紡鏄惁姝g‘銆�{tip}`
+								showError(tip, this.translateSys('tip'))
+								return
+							}
+						}
+
+					}
+
+				} catch (ex) {
+					showError(ex, this.translateSys("error") + "10.1")
+				}
+			},
 			onPanelClick(value, id) {
 				// console.log(value);
 				this.active_id = id;
+			},
+			//鐐瑰嚮鎸夐挳鍒楄〃
+			clickDropdownBtns(pageData) {
+				const that = this
+				const itemlist = [];
+				const btnList = pageData.DropDownButton || []
+
+				for (let i in btnList) {
+					itemlist.push(btnList[i].ShowName || "");
+				}
+				uni.showActionSheet({
+					// title: '鎸夐挳鍒楄〃',
+					itemList: itemlist,
+					success: (e) => {
+						console.log(e.tapIndex);
+						var btn = btnList[e.tapIndex];
+						that.onBtnClick(btn, pageData);
+					}
+				})
+			},
+			onBtnClick(btn, pageData) {
+				const $this = this
+				if (btn.Prompt) {
+					const sContent = btn.PromptContent || this.translate(
+						"confirm")
+
+					uni.showModal({
+						title: this.translateSys("tip"),
+						content: btn.PromptContent || this
+							.translate("confirm"),
+						cancelText: this.translateSys('ok'),
+						confirmText: this.translateSys('cancel'),
+						success: function(res) {
+							if (res.cancel) {
+								$this.onButtonClicked(btn,
+									pageData, -1);
+							}
+
+						},
+					})
+
+				} else {
+					this.handleButtonClick((done) => {
+						this.onButtonClicked(btn, pageData, -1);
+						setTimeout(() => {
+							done(); // 閲嶇疆鐘舵�
+						}, 1000);
+					});
+
+				}
+			},
+			onRowBtnClick(btn, pageData, index) {
+				const $this = this
+				if (btn.Prompt) {
+					const sContent = btn.PromptContent || this.translate(
+						"confirm")
+					uni.showModal({
+						title: this.translateSys("tip"),
+						content: btn.PromptContent || this
+							.translate("confirm"),
+						cancelText: this.translateSys('ok'),
+						confirmText: this.translateSys('cancel'),
+						success: function(res) {
+							if (res.cancel) {
+								$this.onButtonClicked(btn,
+									pageData, index);
+							}
+
+						},
+					})
+
+				} else {
+					this.handleButtonClick((done) => {
+						this.onButtonClicked(btn, pageData, index);
+						setTimeout(() => {
+							done(); // 閲嶇疆鐘舵�
+						}, 1000);
+					});
+
+				}
+			},
+			onButtonClicked(btn, pageData, index) {
+				this.After_OK_Event = {}
+				let enviroment = {
+					button: "top",
+					button_name: btn.ShowName,
+					cls_id: btn.Cls_ID,
+					function: "5601",
+					master: {},
+				};
+				if (btn.FunCode == "TriggerEvent") {
+					this.After_OK_Event = btn?.After_Event || {};
+					this.sava(pageData, btn.Event);
+				} else if (btn.FunCode == "Cancel") {
+					this.cancel();
+				} else if (btn.FunCode == "Delete") {
+					if (index > -1) {
+						const pageIndex = this.pageDetail.findIndex((
+							page) => {
+							return pageData.Name == page.Name;
+						})
+						const style = pageData.DefList[index];
+						//鍒犻櫎鐮佺洏涓牱寮忛潰鏉�+						pageData.DefList.splice(index, 1);
+						if (btn.AfterProcess_Event.ID)
+							this.del(pageData, style, btn
+								.AfterProcess_Event);
+						this.$set(this.pageDetail, pageIndex, pageData)
+					}
+				} else if (btn.FunCode == "Modify") {
+					if (index > -1) {
+						const style = pageData.DefList[index];
+						if (btn.Edit_dlg.Model == "small") {
+							this.showSmallDialog(btn, style, enviroment,
+								pageData);
+						} else if (btn.Edit_dlg.Model == "form") {
+							this.showFormDialog(btn, style, enviroment,
+								pageData);
+						} else {
+							showInfo(this.translateSys(
+								"unrealized"))
+
+						}
+					}
+
+				} else if (btn.FunCode == "RelatedFunction") {
+					if (index > -1) {
+						const style = pageData.DefList[index];
+						this.relatedFunction(btn, style, enviroment,
+							pageData);
+					}
+				} else {
+					this.$Message.warning(this.$t("sys.unrealized"));
+				}
+			},
+			async relatedFunction(btn, style, enviroment, pageData) {
+				//璺宠浆鍔熻兘鐐�+				try {
+					const defCode = btn.Related_Function?.Def_Code
+					var $this = this;
+					if (
+						defCode == "3018" ||
+						defCode == "3037" ||
+						defCode == "3200" ||
+						defCode == "3201" ||
+						defCode == "3202" ||
+						defCode == "5600" ||
+						defCode == "5601" ||
+						defCode == "5602"
+					) {
+
+						let name = defCode
+						if (defCode == "3018" || defCode == "3037")
+							name = defCode + "_2"
+						var json = {
+							app_id: [btn.Related_Function.ID],
+						};
+						const result = await appGetInfo(json)
+						if ((result || []).length > 0) {
+							var app = result[0];
+							var param = "";
+							var appName = app.list_name || app.name
+								.Name;
+							var paramStr = app.param
+							if (paramStr) {
+								//mobox2鐨刾aram鏄痡son瀛楃涓�+								param = paramStr.replace(/\\/g, "");
+								//mobox3鐨刾aram鏄痓ase64瀛楃涓�+								if (!paramStr.includes('"')) param =
+									Base64.decode(
+										paramStr);
+							}
+							if (!param) {
+								showInfo(this.translate(
+									'tip_no_app_param'
+								))
+
+								return;
+							}
+							const attrValues = []
+
+							style.form.items.forEach(item => {
+								if (item.name ==
+									"Layout") { //鍒ゆ柇鏄惁鏄爡鏍忔牸寮�+									item.setting.colList
+										.forEach(col => {
+											if (col !=
+												null) {
+												attrValues
+													.push({
+														attr: col
+															.fieldId,
+														value: col
+															.value ||
+															""
+													})
+											}
+
+										});
+								} else
+									attrValues.push({
+										attr: item.fieldId,
+										value: item
+											.value || ""
+									})
+							});
+							var eventChannelTemp
+							uni.navigateTo({
+								url: '../modal/' + name +
+									'?param=' +
+									param + "&titlename=" +
+									appName +
+									"&type=relatedFunction&paramValue=" +
+									JSON.stringify(attrValues),
+								events: {
+									get_pre_page_subtable_next_row: function(param) {
+										//	console.log("get_pre_page_subtable_next_row", eventChannelTemp)
+										const attrVals = $this.getRowNextRow(param)
+										console.log(attrVals)
+										if (eventChannelTemp) {
+											eventChannelTemp.emit('nextRow', {
+												data: attrVals
+											})
+										}
+									},
+									remove_pre_page_subtable_row: function(param) {
+										$this.viewActionRemoveRow(param)
+									}
+								},
+								success: function(res) {
+									// 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�鏁版嵁
+									eventChannelTemp = res.eventChannel
+								}
+
+							});
+
+						} else {
+							showInfo(this.translate("function_not_exist"))
+
+						}
+
+					} else {
+						showInfo(this.translate("cannot_related_function"))
+
+
+					}
+				} catch (ex) {
+					showError(ex, this.translateSys('error'))
+					return undefined
+				}
+			},
+			getRowNextRow(value) {
+				const pageIndex = this.pageDetail.findIndex((page, index2,
+					arr) => {
+					return value.page_name == page.Name;
+				})
+				if (pageIndex < 0)
+					return []
+				const rowId = value.cur_row?.id;
+				if (!rowId)
+					return []
+				const pageData = this.pageDetail[pageIndex]
+				const detailStyleDefList = pageData?.DefList || []
+
+				const curIndex = detailStyleDefList.findIndex(
+					(ele) => ele.form.objId == rowId
+				);
+				if (curIndex > -1) {
+					if (curIndex + 1 >= detailStyleDefList.length) {
+						const style = detailStyleDefList[curIndex + 1];
+						const attrVals = [];
+						style.form.items.forEach((item) => {
+							if (item.name == "Layout") {
+								item.setting.colList.forEach((col) => {
+									if (col) {
+										attrVals.push({
+											attr: col.fieldId,
+											value: col.value || ""
+										});
+									}
+								});
+							} else {
+								attrVals.push({
+									item: col.fieldId,
+									value: item.value || ""
+								});
+							}
+						});
+						return attrVals
+					}
+				}
+				return []
+			},
+			//淇敼灏忕獥鍙f暟鎹�+			showSmallDialog(btn, row, enviroment, pageData) {
+				var data = {
+					Add_BtnName: btn.ShowName,
+					EditDlgMode: btn.Edit_dlg.Model,
+					clsid: btn.Cls_ID,
+					objid: "",
+					cls_name: btn.Cls_Name,
+					Edit_dlg: btn.Edit_dlg
+				};
+				const objAttr = {}
+				row.form.items.forEach(item => {
+					if (item.name == "Layout") { //鍒ゆ柇鏄惁鏄爡鏍忔牸寮�+						item.setting.colList.forEach(col => {
+							if (col != null) objAttr[
+									col
+									.fieldId] = col
+								.value;
+						});
+					} else
+						objAttr[item.fieldId] = item.value;
+				});
+				const url = `../modal/3018?param=${JSON.stringify(data)}&titlename=${btn.Edit_dlg
+					.Name}&editMode=1&objAttr=${JSON.stringify(objAttr)}&type=updateDataObj`
+
+				var $this = this;
+				uni.navigateTo({
+					url: url,
+					events: {
+						// 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�鍒板綋鍓嶉〉闈㈢殑鏁版嵁
+						updateDataObj: function(formData) {
+							const pageIndex = $this
+								.pageDetail.findIndex((
+									page) => {
+									return pageData
+										.Name == page
+										.Name;
+								})
+							if (pageIndex < 0)
+								return
+							Object.assign(row.form.model,
+								formData);
+							row.form.items.forEach(async (
+								ele, index
+							) => {
+								if (ele.name !=
+									"Layout") {
+									let value =
+										formData[
+											ele
+											.fieldId
+										]
+									if (value)
+										ele
+										.value =
+										value
+
+								} else {
+									ele.setting
+										.colList
+										.forEach(
+											async (
+												col) => {
+												if (
+													col) {
+													let value =
+														formData[
+															col
+															.fieldId
+														]
+													if (
+														value)
+														col
+														.value =
+														value
+												}
+											});
+								}
+							})
+							$this.$set($this.pageDetail,
+								pageIndex, pageData)
+						},
+
+					}
+				});
+			},
+
+			//淇敼鑷畾涔夎〃鍗曟暟鎹�+			showFormDialog(btn, row, enviroment, pageData) {
+				const objAttr = {}
+				row.form.items.forEach(item => {
+					if (item.name == "Layout") { //鍒ゆ柇鏄惁鏄爡鏍忔牸寮�+						item.setting.colList.forEach(col => {
+							if (col != null) objAttr[
+									col.fieldId] = col
+								.value;
+						});
+					} else
+						objAttr[item.fieldId] = item.value;
+				});
+
+				const url =
+					`../modal/form/index?param=${JSON.stringify(btn)}&titlename=${btn.ShowName}&editMode=1&objAttr=${JSON.stringify(objAttr)}&type=updateDataObj`
+				var $this = this;
+				uni.navigateTo({
+					url: url,
+					events: {
+						// 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�鍒板綋鍓嶉〉闈㈢殑鏁版嵁
+						updateDataObj: function(formData) {
+							const pageIndex = $this
+								.pageDetail.findIndex((
+									page) => {
+									return pageData
+										.Name == page
+										.Name;
+								})
+							if (pageIndex < 0)
+								return
+							Object.assign(row.form.model,
+								formData);
+							row.form.items.forEach(async (
+								ele) => {
+								if (ele.name !=
+									"Layout") {
+									let value =
+										formData[
+											ele
+											.fieldId
+										]
+									if (value)
+										ele
+										.value =
+										value
+
+								} else {
+									ele.setting
+										.colList
+										.forEach(
+											async (
+												col) => {
+												if (
+													col) {
+													let value =
+														formData[
+															col
+															.fieldId
+														]
+													if (
+														value)
+														col
+														.value =
+														value
+												}
+											});
+								}
+							})
+							$this.$set($this.pageDetail,
+								pageIndex, pageData)
+							console.log($this.pageDetail)
+
+						},
+					}
+				});
 			},
 			//纭畾
 			ok(pageData) {
@@ -1531,37 +3539,39 @@
 				this.After_OK_Event = pageData.After_ok;
 				// console.log(this.Before_OK_Event);
 				// console.log(this.After_OK_Event);
-				if (this.$data.Before_OK_Event.ID) //鏄惁鏈夌‘瀹氬墠浜嬩欢
-					this.sava(pageData, this.$data.Before_OK_Event);
-				else if (this.$data.After_OK_Event.ID) //鏄惁鏈夌‘瀹氬悗浜嬩欢
-					this.sava(pageData, this.$data.After_OK_Event);
+				console.log("ok");
+				if (this.Before_OK_Event.ID) //鏄惁鏈夌‘瀹氬墠浜嬩欢
+					this.sava(pageData, this.Before_OK_Event);
+				else if (this.After_OK_Event.ID) //鏄惁鏈夌‘瀹氬悗浜嬩欢
+					this.sava(pageData, this.After_OK_Event);
 			},
 			sava(pageData, event) {
+
 				var $this = this;
-				if (pageData.DefList.length == 0) {
-					uni.showModal({
-						title: this.translateSys("tip"),
-						content: this.translate(
-								"tip_no_data_first") +
-							this.translateSys(
-								"quotation_mark_left") + pageData.Name + this
-							.translateSys(
-								"quotation_mark_right") +
-							this.translate(
-								"tip_no_data_last"),
-						showCancel: false,
-						confirmText: this.translateSys("cancel")
-					});
-					return false;
-				}
+				// if (pageData.DefList.length == 0) {
+				// 	uni.showModal({
+				// 		title: this.translateSys("tip"),
+				// 		content: this.translate(
+				// 				"tip_no_data_first") +
+				// 			this.translateSys(
+				// 				"quotation_mark_left") + pageData.Name + this
+				// 			.translateSys(
+				// 				"quotation_mark_right") +
+				// 			this.translate(
+				// 				"tip_no_data_last"),
+				// 		showCancel: false,
+				// 		confirmText: this.translateSys('close')
+				// 	});
+				// 	return false;
+				// }
 				//鑾峰彇琛ㄥご灞炴�
-				pageData.okLoading = true
 				var head_attr = {};
-				this.$data.head_styledef.form.items.forEach(item => {
+				this.head_styledef.form.items.forEach(item => {
 					if (item.name == "Layout") { //鍒ゆ柇鏄惁鏄爡鏍忔牸寮�-						item.setting.colList.forEach(cols => {
-							if (cols != null) head_attr[cols.fieldId] =
-								cols.value;
+						item.setting.colList.forEach(col => {
+							if (col != null) head_attr[
+									col.fieldId] =
+								col.value;
 						});
 					} else
 						head_attr[item.fieldId] = item.value;
@@ -1572,14 +3582,21 @@
 				pageData.DefList.forEach(style => {
 					var detail_attr = {};
 					style.form.items.forEach(item => {
-						if (item.name == "Layout") { //鍒ゆ柇鏄惁鏄爡鏍忔牸寮�-							item.setting.colList.forEach(cols => {
-								if (cols != null) detail_attr[
-									cols
-									.fieldId] = cols.value;
-							});
+						if (item.name ==
+							"Layout") { //鍒ゆ柇鏄惁鏄爡鏍忔牸寮�+							item.setting.colList
+								.forEach(col => {
+									if (col !=
+										null)
+										detail_attr[
+											col
+											.fieldId
+										] = col
+										.value;
+								});
 						} else
-							detail_attr[item.fieldId] = item.value;
+							detail_attr[item.fieldId] =
+							item.value;
 					});
 
 					detail_attr['id'] = style.form.objId;
@@ -1594,21 +3611,28 @@
 				//鑾峰彇姝e湪鐮佺洏閲屾病鏈夋樉绀虹殑瀛楁
 				pageData.DefList.forEach(style => {
 					style.form.attrs.forEach(attr => {
-						for (var key in detailAttrList) {
-							if (style.form.objId == detailAttrList[key]
+						for (var key in
+								detailAttrList) {
+							if (style.form.objId ==
+								detailAttrList[key]
 								[
 									'id'
 								]) {
-								var keys = Object.keys(detailAttrList[
-									key]);
+								var keys = Object.keys(
+									detailAttrList[
+										key]);
 								var isflag = true;
 								keys.forEach((ele) => {
-									if (ele == attr.attr)
+									if (ele ==
+										attr
+										.attr)
 										isflag =
 										false;
 								});
 								if (isflag) {
-									detailAttrList[attr.attr] = attr
+									detailAttrList[attr
+											.attr] =
+										attr
 										.value;
 								}
 							}
@@ -1629,30 +3653,29 @@
 				detailAttrList.forEach(attr => {
 					jsonlist.push({
 						id: attr["id"] || "",
-						attrs: Object.keys(attr).map((a) => ({
+						attrs: Object.keys(attr).map((
+							a) => ({
 							attr: a,
-							value: attr[a] || "",
+							value: attr[
+								a] || "",
 						}))
 					});
 				});
-				if (jsonlist.length == 0) {
-					pageData.okLoading = false
-					uni.showModal({
-						title: this.translateSys("tip"),
-						content: this.translate("tip_no_select_data"),
-						showCancel: false,
-						confirmText: this.translateSys("cancel")
-					});
-					return;
-				}
+				// if (jsonlist.length == 0) {
+				// 	showInfo(this.translate(
+				// 		"tip_no_select_data"))
+
+				// 	return;
+				// }
 				const list = []
 				list.push({
 					page_name: pageData.Name,
 					item_list: jsonlist,
 					ext_data: pageData.ExtData
 				})
-				// console.log(jsonlist);
-				$this.runCustomEvent(pageData, event, input_param, list);
+
+				$this.runCustomEvent(pageData, event, input_param,
+					list);
 				// jsonlist.forEach(async (json,key)=>{
 				// 	await $this.runCustomEvent(event,input_param,json,'1');
 				// });
@@ -1660,13 +3683,14 @@
 			//鎵ц纭畾鑴氭湰
 			async runCustomEvent(pageParam, event, input_param, json, type) {
 				var $this = this;
+				showLoading("loading...")
 				var data_json = Base64.encode(
 					JSON.stringify(json)
 				);
 				var dataInfo = {
 					ed_type: 0,
 					start_transaction: true,
-					class_id: this.$data.ClsID,
+					class_id: this.ClsID,
 					class_name: '',
 					event_id: event.ID,
 					event_name: '',
@@ -1682,343 +3706,416 @@
 					global_attr: '',
 					input_param: input_param,
 				};
-
-				// console.log(dataInfo);
+				console.log(dataInfo);
 				runCustomEvent(dataInfo).then(result => {
 					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/>') : '';
+					hideLoading()
+					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 (pos > -1) tip = tip.substring(pos + 1);
 							}
-							uni.showModal({
-								title: this.translateSys(
-									"tip"),
-								content: tip,
-								showCancel: false,
-								confirmText: this.translateSys(
-									"cancel")
-							});
-						} else uni.showModal({
-							title: this.translateSys('tip'),
-							content: tip + ',' + this
-								.translateSys('tip') + ':' +
-								result.ret,
-							showCancel: false,
-							confirmText: this.translateSys(
-								"cancel")
-						});
-						return false;
+						}
+						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('<br/>') : '';
-						if (tip) uni.showModal({
-							title: this.translateSys('tip'),
-							content: tip,
-							showCancel: false,
-							confirmText: this.translateSys(
-								"cancel")
-						});
-						if (result.result_type == 0) {
-							if (result.action) {
-								//	uni.showModal({title:this.translateSys("tip"),content:JSON.stringify(result.action),showCancel:false,confirmText:this.translateSys("cancel")});
+						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) {
 
-								result.action.forEach(item => {
-									if (item.action_type ==
-										"insert_subtable_page_row"
-									) { //鐮佺洏涓�-										var value = item.value;
-										//鍔犺浇宸茬粡鐮佺洏鏁版嵁
-										$this.viewAceionRow(
-											value, );
-										//娓呯┖鏉$爜鍐呭
-										$this.$data
-											.head_styledef
-											.form.items
-											.forEach((
-												item,
-												index) => {
-												if (item
-													.fieldId !=
-													"S_CNTR_CODE"
-												) {
-													item.value =
-														'';
-													item.oldvalue =
-														'';
-													$this
-														.$data
-														.head_styledef
-														.form
-														.model[
-															item
-															.fieldId
-														] =
-														'';
-												}
-											});
-
-										uni.showModal({
-											title: this
-												.translateSys(
-													"tip"
-												),
-											content: this
+							} else if (typeof result
+								.result == 'string') {
+								showInfo(result.result)
+							}
+							try {
+								let actionList = result
+									.action || []
+								actionList.forEach(
+									item => {
+										if (item
+											.action_type ==
+											"insert_subtable_page_row"
+										) { //鐮佺洏涓�+											var value =
+												item
+												.value;
+											//鍔犺浇宸茬粡鐮佺洏鏁版嵁
+											$this
+												.viewAceionRow(
+													value
+												);
+											//娓呯┖鏉$爜鍐呭
+											$this
+												.head_styledef
+												.form
+												.items
+												.forEach(
+													(item,
+														index
+													) => {
+														if (item
+															.fieldId !=
+															"S_CNTR_CODE"
+														) {
+															item.value =
+																'';
+															item.oldvalue =
+																'';
+															$this
+																.head_styledef
+																.form
+																.model[
+																	item
+																	.fieldId
+																] =
+																'';
+														}
+													});
+											showInfo($this
 												.translate(
 													'execute_event_success'
-												),
-											showCancel: false,
-											confirmText: this
-												.translateSys(
-													"cancel"
-												)
-										});
-									} else if (item.action_type ==
-										"set_subtable_page_content"
-									) { //宸茬爜鐩�-										$this.$data.param
-											.Show_Welcom_Page =
-											false;
-										var value = item.value;
-										const pageData = $this
-											.pageDetail.find((
-												page) => {
-												return value
-													.page_name ==
-													page.Name;
-											});
-										if (value.clear_confirm !=
-											false && value.clear ==
-											true &&
-											pageData && pageData
-											.DefList.length > 0
-										) { //鍒ゆ柇鏄惁娓呯┖椤电鍐呭,姝e湪鐮佺洏鏄惁鏈夋暟鎹�-											uni.showModal({
-												title: this
-													.translateSys(
-														'tip'
-													),
-												content: this
-													.translate(
-														"are_you_sure_clear_first"
-													) +
-													this
-													.translateSys(
-														"quotation_mark_left"
-													) +
-													value
-													.page_name +
-													this
-													.translateSys(
-														"quotation_mark_right"
-													) +
-													this
-													.translate(
-														"are_you_sure_clear_last"
-													),
-												success: function(
-													res
-												) {
-													if (res
-														.confirm
-													) {
-														if (
-															pageData
-														)
-															pageData
-															.DefList = [];
-														$this
-															.viewAceionContent(
-																value
-															);
-													} else if (
-														res
-														.cancel
-													) {
-														if (
-															pageData
-														)
-															pageData
-															.DefList = [];
-														$this
-															.viewAceionContent(
-																value
-															);
-													}
-												}
-											});
-										} else {
-											if (pageData)
-												pageData
-												.DefList = [];
-											$this
-												.viewAceionContent(
-													value);
-										}
-									} else if (item
-										.action_type ==
-										"remove_subtable_page_row"
-									) { //娓呴櫎闈㈡澘涓寚瀹歩d鐨勬暟鎹�-										var value = item.value;
-										const pageData = $this
-											.pageDetail.find((
-												page) => {
-												return value
-													.page_name ==
+												))
+
+										} else if (item
+											.action_type ==
+											"set_subtable_page_content"
+										) { //宸茬爜鐩�+											$this.param
+												.Show_Welcom_Page =
+												false;
+											var value =
+												item
+												.value;
+											const
+												pageData =
+												$this
+												.pageDetail
+												.find((
 													page
-													.Name;
-											});
-										if (pageData
-											?.DefList
-										) { //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄緟鍒嗘嫞
-											//娓呴櫎闈㈡澘涓寚瀹歩d鐨勬暟鎹�-											value.row.forEach(
-												row => {
-													pageData
-														.DefList
-														.forEach(
-															(
-																ele,
-																index
-															) => {
-																if (ele
-																	.form
-																	.objId ==
-																	row
-																	.id
-																) {
-																	pageData
-																		.DefList
-																		.splice(
-																			index,
-																			1
-																		);
-																}
-															}
-														);
+												) => {
+													return value
+														.page_name ==
+														page
+														.Name;
 												});
-										}
-									} else if (item
-										.action_type ==
-										"set_subtable_page_row"
-									) {
-										$this.viewActionSetRow(
-											item
-											.value)
-
-									} else if (item
-										.action_type ==
-										"set_subtable_page_ext_data"
-									) {
-										var value = item.value;
-										const pageData = $this
-											.pageDetail.find((
-												page) => {
-												return value
-													.page_name ==
-													page
-													.Name;
-											});
-										if (pageData) {
-											pageData.ExtData =
+											if (value
+												.clear_confirm !=
+												false &&
 												value
-												.ext_data
-										}
-
-									} else if (item
-										.action_type ==
-										"clear_subpage_rows") {
-										var value = item.value;
-										const pageData = $this
-											.pageDetail.find((
-												page) => {
-												return value
-													.page_name ==
-													page
-													.Name;
-											});
-										if (pageData) {
-											pageData
-												.DefList = []
-											pageData
-												.ExtData = {}
-										}
-									} else if (item
-										.action_type ==
-										"set_dlg_current_edit_attr"
-									) {
-										if ($this
-											.focusOldFieldId ==
-											item.value)
-											$this.setData({
-												focusFieldId: ""
-											})
-										else {
-											$this.setData({
-												focusFieldId: $this
-													.focusOldFieldId
-											})
-										}
-										$this.$nextTick(() => {
+												.clear ==
+												true &&
+												pageData &&
+												pageData
+												.DefList
+												.length >
+												0
+											) { //鍒ゆ柇鏄惁娓呯┖椤电鍐呭,姝e湪鐮佺洏鏄惁鏈夋暟鎹�+												uni.showModal({
+													title: $this
+														.translateSys(
+															'tip'
+														),
+													content: $this
+														.translate(
+															"are_you_sure_clear_first"
+														) +
+														$this
+														.translateSys(
+															"quotation_mark_left"
+														) +
+														value
+														.page_name +
+														$this
+														.translateSys(
+															"quotation_mark_right"
+														) +
+														$this
+														.translate(
+															"are_you_sure_clear_last"
+														),
+													cancelText: $this
+														.translateSys(
+															'ok'
+														),
+													confirmText: $this
+														.translateSys(
+															'cancel'
+														),
+													success: function(
+														res
+													) {
+														if (res
+															.cancel
+														) {
+															if (
+																pageData)
+																pageData
+																.DefList = [];
+															$this
+																.viewAceionContent(
+																	value
+																);
+														} else if (
+															res
+															.confirm
+														) {
+															if (
+																pageData)
+																pageData
+																.DefList = [];
+															$this
+																.viewAceionContent(
+																	value
+																);
+														}
+													}
+												});
+											} else {
+												if (
+													pageData)
+													pageData
+													.DefList = [];
+												$this
+													.viewAceionContent(
+														value
+													);
+											}
+										} else if (item
+											.action_type ==
+											"select_subtable_page"
+										) {
+											var value =
+												item
+												.value;
+											const
+												pageIndex =
+												$this
+												.pageDetail
+												.findIndex(
+													(
+														page
+													) => {
+														return value
+															.page_name ==
+															page
+															.Name;
+													});
+											if (pageIndex >
+												-1) {
+												$this
+													.setData({
+														current: pageIndex
+													})
+											}
+										} else if (item
+											.action_type ==
+											"remove_subtable_page_row"
+										) { //娓呴櫎闈㈡澘涓寚瀹歩d鐨勬暟鎹�+											let value =
+												item
+												.value;
 											$this
-												.setData({
-													focusFieldId: item
-														.value
-												})
-										});
-									} else if (item.action_type ==
-										"set_dlg_attr") {
-										// value = {"attr":"xxx", "value":"xxx"}
-										var data = item.value;
-										$this.setFormValues(data)
-									}
+												.viewActionRemoveRow(
+													value
+												)
+										} else if (item
+											.action_type ==
+											"set_subtable_page_row"
+										) {
+											$this
+												.viewActionSetRow(
+													item
+													.value
+												)
+										} else if (item
+											.action_type ==
+											"set_subtable_page_ext_data"
+										) {
+											let value =
+												item
+												.value;
+											const
+												pageData =
+												$this
+												.pageDetail
+												.find((
+													page
+												) => {
+													return value
+														.page_name ==
+														page
+														.Name;
+												});
+											if (
+												pageData) {
+												pageData
+													.ExtData =
+													value
+													.ext_data
+											}
 
-								});
-							} else {
-								if ($this.$data.After_OK_Event.ID !=
+										} else if (item
+											.action_type ==
+											"clear_subpage_rows"
+										) {
+											var value =
+												item
+												.value;
+											const
+												pageIndex =
+												$this
+												.pageDetail
+												.findIndex(
+													(
+														page
+													) => {
+														return value
+															.page_name ==
+															page
+															.Name;
+													});
+											if (pageIndex >
+												-1) {
+												const
+													pageData =
+													$this
+													.pageDetail[
+														pageIndex
+													]
+												pageData
+													.DefList = []
+												pageData
+													.ExtData = {}
+
+												$this
+													.$set(
+														this
+														.pageDetail,
+														pageIndex,
+														pageData
+													)
+											}
+										} else if (item
+											.action_type ==
+											"set_dlg_current_edit_attr"
+										) {
+											if ($this
+												.focusOldFieldId ==
+												item
+												.value)
+												$this
+												.setData({
+													focusFieldId: ""
+												})
+											else {
+												$this
+													.setData({
+														focusFieldId: $this
+															.focusOldFieldId
+													})
+											}
+											$this
+												.$nextTick(
+													() => {
+														$this
+															.setData({
+																focusFieldId: item
+																	.value
+															})
+													});
+										} else if (item
+											.action_type ==
+											"set_dlg_attr"
+										) {
+											// value = {"attr":"xxx", "value":"xxx"}
+											var data =
+												item
+												.value;
+											$this
+												.setFormValues(
+													data
+												)
+										} else if (item
+											.action_type ==
+											'set_dlg_attr_show'
+										) {
+											var data =
+												item
+												.value;
+											$this
+												.setFormItemVisible(
+													data
+												)
+										} else if (item.action_type ==
+											'get_pre_page_subtable_next_row') {
+											var data = item.value;
+											const eventChannel = this
+												.getOpenerEventChannel();
+											eventChannel.emit(
+												'get_pre_page_subtable_next_row', data);
+										} else if (item.action_type ==
+											'remove_pre_page_subtable_row') {
+											var data = item.value;
+											const eventChannel = this
+												.getOpenerEventChannel();
+											eventChannel.emit(
+												'remove_pre_page_subtable_row', data);
+										} else if (item.action_type ==
+											"goback_to_pre_page") {
+											//杩斿洖涓婁竴椤�+											uni.navigateBack({
+												delta: 1, //杩斿洖灞傛暟锛�鍒欎笂涓婇〉
+											});
+										}
+									});
+
+								if ($this.After_OK_Event
+									?.ID && $this
+									.After_OK_Event.ID !=
 									event
 									.ID) { //鍒ゆ柇褰撳墠浜嬩欢鏄惁鏄‘瀹氬悗浜嬩欢
-
-									$this.sava(pageParam, $this.$data
-										.After_OK_Event); //鎵ц纭畾鍚庝簨浠�+									$this.sava(pageParam,
+										$this
+										.After_OK_Event
+									); //鎵ц纭畾鍚庝簨浠� 
 								}
-							}
-						} else {
-
-							if (result.info) {
-								uni.showModal({
-									title: this.translateSys(
-										"tip"),
-									content: result.info,
-									showCancel: false,
-									confirmText: this
-										.translateSys("cancel")
-								});
+							} catch (ex) {
+								let actionList = (result
+										.action || []).map(
+										a => a.action_type)
+									.join(';')
+								let tip = typeof ex == 'string' ? ex : ex.message
+								tip = `鎵ц鑴氭湰杩斿洖鐨�{actionList}鏃跺嚭鐜板紓甯革紝璇锋鏌ヨ剼鏈繑鍥炵殑鏁版嵁鏍煎紡鏄惁姝g‘銆�{tip}`
+								showError(tip, this.translateSys('tip'))
+								return
 							}
 						}
 					}
 
-					pageParam.okLoading = false
 				}).catch(ex => {
-					pageParam.okLoading = false
-					let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex
-					uni.showModal({
-						title: this.translateSys("error") + "8.1",
-						content: this.translate(
-								"execute_after_ok_event_failed") +
-							this.translateSys(
-								"comma") +
-							tip,
-						showCancel: false,
-						confirmText: this.translateSys("cancel")
-					});
+					hideLoading()
+					showError(ex, this.translateSys("error") + "8.1")
 				});
 			},
 
@@ -2028,17 +4125,29 @@
 				});
 			},
 			translate(t) {
-				if (typeof this.$t == "function") return this.$t(`page.${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}`)
+				if (typeof this.$t == "function") return this.$t(
+					`sys.${t}`)
 				else return t;
 			},
 		},
 	};
 </script>
+<style>
+	.popup-content {
+		@include flex;
 
+	}
+
+	.popup-height {
+		@include height;
+		/* width: 200px; */
+	}
+</style>
 <style lang="scss">
 	.uni-page-modal-5601 {
 
@@ -2054,38 +4163,6 @@
 			flex-direction: column;
 		}
 
-		.v-head-style {
-			width: 98%;
-
-			.uni-forms-item {
-				margin-bottom: 11rpx;
-			}
-
-			.input-wrapper {
-				border: 1px solid #d5d5d5;
-				width: 100%;
-				display: flex;
-				flex-direction: row;
-
-				.uni-input {
-					flex: 1;
-					padding: 12rpx 8rpx;
-					color: #2d8cf0;
-					// height: 40rpx;
-					// line-height: 40rpx;
-				}
-
-				.uni-icon {
-					padding: 8rpx;
-					font-size: 32rpx;
-					color: rgb(192, 196, 204);
-				}
-			}
-
-			.input-wrapper:hover {
-				border: 1px solid rgb(41, 121, 255);
-			}
-		}
 
 		.view-content {
 			display: flex;
@@ -2122,15 +4199,82 @@
 			flex-direction: column !important;
 		}
 
+		.tab-content {
+			display: flex;
+			width: 100%;
+			height: 100%;
+			flex-direction: column !important;
+		}
+
 		.view-bottom {
 			display: flex;
 			flex-direction: row;
 			width: calc(100% - 30rpx);
 			padding: 10rpx 15rpx 30rpx 15rpx;
+
+			.btn-disabled {
+				background-color: #ddd !important;
+				color: #888 !important;
+			}
+
+			.btn-left {
+				padding: 20rpx;
+				line-height: 1.5;
+				font-weight: bold;
+				float: left;
+				display: inline-block;
+
+			}
+
+			.btn-one {
+				padding: 20rpx;
+				line-height: 1.5;
+				font-weight: bold;
+				float: left;
+				display: inline-block;
+				width: 50%;
+				margin-left: 25%;
+			}
+
+			.btn-right {
+				padding: 20rpx;
+				line-height: 1.5;
+				font-weight: bold;
+				float: right;
+				display: inline-block;
+			}
+
+			.width-50 {
+				width: 49%;
+			}
+
+			.width-32 {
+				width: 32%;
+				margin-left: 1%;
+			}
+
+			.width-30 {
+				width: 30%;
+				margin-left: 1%;
+			}
 		}
 
+		.btn-warn {
+			background: #ff2d1e;
+			border: none;
+			color: #fff;
+		}
 
+		.btn-cancel {
+			background: #fff;
+			color: #000;
+		}
 
+		.btn-primary {
+			background: #27A6E1;
+			border: none;
+			color: #fff;
+		}
 
 		[nvue] uni-view {
 			position: relative;
@@ -2140,7 +4284,7 @@
 
 		.uni-icon {
 			/* border: 1px solid red; */
-			width: 8%;
+			width: 30rpx;
 			font-family: uniicons;
 			font-size: 40rpx;
 			font-weight: 400;
@@ -2156,52 +4300,31 @@
 
 		.dv-panel {
 			background-color: #efefef;
-			padding: 20rpx 20rpx 4rpx 0px;
+			padding: 10rpx 10rpx 10rpx 0px;
 			border-radius: 12rpx;
 			margin: 10rpx 0 20rpx 0;
-			text-align: right;
 
-			.txt_title {
-				font-size: 28rpx;
-				text-align: right;
-				display: inline-block;
-			}
+			.dv-panel-form {
+				padding: 0px;
+				margin: 0;
 
-			input {
-				vertical-align: middle;
-				display: inline-block;
-				border: 1px solid #d5d5d5;
-				width: 68%;
-				height: 48rpx;
-				line-height: 28rpx;
-				background: #FFF;
-				border-radius: 7px !important;
-				color: #2d8cf0;
-				padding: 6rpx 8rpx 8rpx;
-				font-size: 28rpx;
-				font-family: inherit;
-				box-shadow: none !important;
-				transition-duration: 0.1s;
-				margin-top: 0rpx;
-			}
+				.uni-forms-item {
+					padding-bottom: 5rpx;
+					margin-bottom: 0;
 
-			input::-webkit-input-placeholder {
-				font-size: 10rpx;
-			}
+					.uni-forms-item__label {
+						height: 20px !important;
+						padding: 0 10rpx 0 0 !important;
+					}
+				}
 
-			.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 {
 				width: 100%;
 				text-align: left;
-				padding-bottom: 20rpx;
+				min-height: 16px;
+				padding-bottom: 10rpx;
 
 				checkbox {
 					padding-left: 20px;
@@ -2210,58 +4333,18 @@
 
 				button {
 					text-align: left;
-					line-height: 1.8;
+					line-height: 1.6;
 					border: none;
-					font-size: 34rpx;
-					width: 180rpx;
+
+					margin-right: 10rpx;
 					display: inline-block;
 					float: right;
 					text-align: center;
-
-					.btn_cancel {
-						width: 49.5%;
-						padding: 20rpx;
-						line-height: 1.5;
-						border: none;
-						font-size: 38rpx;
-						font-weight: bold;
-						float: left;
-						display: inline-block;
-					}
-
-					.btn_add {
-						width: 49.5%;
-
-						padding: 20rpx;
-						line-height: 1.5;
-						border: none;
-						font-size: 38rpx;
-						font-weight: bold;
-						float: right;
-						color: #fff;
-						display: inline-block;
-					}
-
-					.btn_disabled {
-						background-color: #ddd;
-						color: #888;
-					}
-
-
 				}
 			}
 
 		}
 
-		.dv-panel-input {
-			width: 100%;
-			display: inline-block;
-			text-align: left;
-
-			.dv-input {
-				margin-bottom: 2rpx;
-			}
-		}
 
 		.logo {
 			height: 100rpx;
@@ -2312,7 +4395,6 @@
 			background: #94D5EF;
 			display: block;
 			width: 100%;
-			font-size: 36rpx;
 			line-height: 80rpx;
 			font-weight: 500;
 		}
@@ -2331,8 +4413,6 @@
 			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;
@@ -2356,29 +4436,86 @@
 			background-color: #f3f3f3 !important;
 		}
 
-		.demo-uni-row {
-			margin-bottom: 0px;
-			display: block;
-
-			.uni-input {
-				width: calc(100% - 120px);
-			}
-		}
-
-		::v-deep .uni-row {
-			margin-bottom: 0px;
-		}
-
-		.view-tabpage ::v-deep .uni-row {
-			margin-bottom: 5px;
-		}
-
 		.demo-uni-col {
 			height: 36px;
 			border-radius: 5px;
 		}
 
+		.view-popup {
+			position: relative;
+		}
+
+		.popup-content {
+			// @include flex;
+			align-items: center;
+			justify-content: center;
+			padding: 30rpx;
+			background-color: #fff;
+			/* height: 150px; */
+			/* border: 1px solid red; */
+		}
+
+		.popup-cont {
+			overflow-y: auto;
+			/* border: 1px solid red; */
+		}
+
+		.popup-height {
+			// @include height;
+			/* width: 200px; */
+		}
+
+		.popup-header {
+			font-weight: bold;
+			margin: 20rpx 20rpx 0px 20rpx;
+		}
+
+		.view_popup_CheckList {
+			margin-bottom: 20rpx;
+		}
+
+		.popup-footer {
+			float: right;
+			position: absolute;
+			bottom: 10rpx;
+			right: 20rpx;
+		}
+
+		button.btn_popup_add {
+			width: 180rpx;
+			margin-top: 50rpx;
+			margin-right: 20rpx;
+			padding: 15rpx;
+			line-height: 1.5;
+			background: #27A6E1;
+			border: none;
+			color: #fff;
+			font-weight: bold;
+			/* float: left; */
+			display: inline-block;
+		}
+
+		button.btn_popup_cancel {
+			width: 180rpx;
+			margin-top: 50rpx;
+			padding: 15rpx;
+			line-height: 1.5;
+			// background: #27A6E1;
+			// border: none;
+			// color: #fff;
+			background: #fff;
+			color: #000;
+			font-weight: bold;
+			/* float: right; */
+			display: inline-block;
+		}
 
 
 	}
+
+	.uni-page-modal-5601.large-mode {
+		.dv-panel-button {
+			min-height: 32px !important;
+		}
+	}
 </style>
\ No newline at end of file

--
Gitblit v1.9.1