From d8872903e30f0a53abefcd279ae03258341e931f Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期四, 20 三月 2025 09:10:31 +0800
Subject: [PATCH] test

---
 pages/modal/3037_2.vue |  830 ++++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 507 insertions(+), 323 deletions(-)

diff --git a/pages/modal/3037_2.vue b/pages/modal/3037_2.vue
index 47a95a1..a8d0c38 100644
--- a/pages/modal/3037_2.vue
+++ b/pages/modal/3037_2.vue
@@ -1,72 +1,8 @@
 <template>
 	<view class="uni-page-modal-3017-2">
 		<!-- 琛ㄥご鏍峰紡 -->
-		<view class="v-headStyle" v-for="(item,index) in head_styledef.form.items">
-			<!-- 鏅�甯冨眬 -->
-			<view v-if="item.name!='Layout' && item.show==true">
-				<text class="txt_title" :style="{'width':item.labelWidth+'px'}">{{item.label}}锛�/text>
-				<!-- 涓嬫媺妗�鍗曢� item.useDict?item.dict:item.selections-->
-				<uni-data-select id="dv_select" v-if="item.name=='Select'" :class="item.disabled?'input-disabled':''"
-					v-model="item.value" :localdata="item.dict" @change="onchange(item)" :disabled="item.disabled"
-					:clear="false"></uni-data-select>
-				<!-- 涓嬫媺妗�澶氶� -->
-				<!-- <select-cy v-else-if="attr.select==true"  :value="item.value" 
-			  :name="item.fieldId" 
-			  :options="item.dict" 
-			  showClearIcon="true" 
-			  @change="onchange2" 
-			  :data-index="index" 
-			  :disabled="item.disabled"
-			></select-cy> -->
-				<!-- 鏂囨湰妗�鏁板瓧妗�-->
-				<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]"
-						@change="onchange(item)">&#xe568;</text>
-					<input class="uni-input" :class="item.disabled?'input-disabled':''"
-						:type="item.name=='Input'?'text':item.name=='InputNumber'?'number':'text'" v-model="item.value"
-						:disabled="item.disabled" :placeholder="item.placeholder"
-						:style="{'width':item.setting.prefix && item.setting.suffix?'78%':item.setting.prefix || item.setting.suffix?'87%':'96%'}"
-						:focus="focusMateria" @focus="ontap(item)" @blur="onevent(item)" />
-					<text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]"
-						@click="onchange(item)">&#xe568;</text>
-				</view>
-				<!-- 澶氳鏂囨湰 -->
-				<view class="input-wrapper" v-if="item.name=='Textarea'">
-					<textarea class="uni-input" :class="item.disabled?'input-disabled':''" :value="item.value"
-						:placeholder="item.placeholder" @blur="onModelValue(item)" :data-index="index"
-						style="height:60px;" :style="{'width':'96%'}" :disabled="item.disabled"></textarea>
-
-				</view>
-				<!-- 澶嶉�妗�-->
-				<checkbox-group class="check_rememberPwd" v-if="item.name=='Checkbox'"
-					:class="item.disabled?'input-disabled':''" @change="onModelValue(item)" :disabled="item.disabled"
-					:data-ischeck="item.value" :style="{'margin-left':'10rpx'}">
-					<label>
-						<checkbox :value="item.value" :checked="item.value" />
-						<text>{{item.label}}</text>
-					</label>
-				</checkbox-group>
-				<!-- 鍗曢�妗�-->
-				<radio-group class="check_rememberPwd" v-if="item.name=='Radio'"
-					:class="item.disabled?'input-disabled':''" :disabled="item.disabled" @change="onModelValue(item)">
-					<label v-for="(item2) in item.selections" :key="item2.value">
-						<radio :value="item2.value" :checked="item2.value === item.value" />
-						<text>{{item2.label}}</text>
-					</label>
-				</radio-group>
-				<!-- Switch寮�叧 -->
-				<switch v-if="item.name=='Switch'" :class="item.disabled?'input-disabled':''" :disabled="item.disabled"
-					v-model="item.value" @change="onModelValue(item)" :style="{'margin-left':'10rpx'}" />
-				<!-- 鏃ユ湡鏃堕棿 -->
-				<view class="input-wrapper" v-if="item.name=='TimePicker' || item.name=='DatePicker'">
-					<picker mode="date" class="date_iput" :class="item.disabled?'input-disabled':''"
-						:disabled="item.disabled" :value="item.value" @change="onModelValue(item)">
-						<view class="picker">{{item.value}}</view>
-					</picker>
-				</view>
-			</view>
-
-		</view>
+		<OIForm ref="refBaseForm" class="v-headStyle" :form="head_styledef.form" @focus="ontap" @change="onEnterChange"
+			@click-prefix="classAttr_extButton" @click-suffix="classAttr_extButton"></OIForm>
 		<!-- 浠庢暟鎹�-->
 		<view class="v-panel">
 			<div class="panel_title">{{param.Sub_Cls.Title}}</div>
@@ -78,7 +14,8 @@
 					<!-- 宸﹀彸甯冨眬 -->
 					<p class="tx_title2">{{param.Scan_Code.Name}}:</p>
 					<input type="text" class="attr_field" :value="scanCodeVal" @focus="scan_ontap" @blur="scan_onevent"
-						:style="param.Scan_Code.Have_Select_Button==true?'width: '+(100-(param.Scan_Code.Name.length * 5)-14)+'%;':'width: '+(100-(param.Scan_Code.Name.length * 5)-5)+'%;'">
+						:style="param.Scan_Code.Have_Select_Button==true?'width: '+(100-(param.Scan_Code.Name.length * 5)-14)+'%;':'width: '+(100-(param.Scan_Code.Name.length * 5)-5)+'%;'"
+						:maxlength="-1">
 					<div class="text-right2" v-if="param.Scan_Code.Have_Select_Button==true">
 						<a @tap="scan_classAttr_extButton()"><i class="ace-icon fa"
 								:class="param.Scan_Code.Img?param.Scan_Code.Img:'fa-plus-circle'"></i></a>
@@ -95,137 +32,7 @@
 			<!-- 浠庢暟鎹樉绀鸿鎯呭尯 -->
 			<view class="v-panellist" v-for="(subpanel,iiindex) in subPanelList" @tap="onPanelClick(iiindex)"
 				:class="activelist[iiindex].active==true?'bk-active':''">
-				<view class="v-area dv-panel" v-for="(item,index) in subpanel.subClassAttr.form.items">
-					<div class="dv-panel-input">
-						<!-- 鏅�甯冨眬 -->
-						<view v-if="item.name!='Layout' && item.show==true">
-							<text class="txt_title" :style="{'width':item.labelWidth+'px'}">{{item.label}}锛�/text>
-							<span class="form-item-span" v-if="item.disabled">{{item.value}}</span>
-							<!-- 鏂囨湰妗�鏁板瓧妗�-->
-							<view class="input-wrapper"
-								v-if="(item.name=='Input' || item.name=='InputNumber') && !item.disabled">
-								<text v-if="item.setting.prefix" class="uni-icon" :class="[item.setting.prefix]"
-									@change="onchange(item)">&#xe568;</text>
-								<input class="uni-input" :class="item.disabled?'input-disabled':''"
-									:type="item.name=='Input'?'text':item.name=='InputNumber'?'number':'text'"
-									v-model="item.value" :disabled="item.disabled" :placeholder="item.placeholder"
-									:style="{'width':item.setting.prefix && item.setting.suffix?'78%':item.setting.prefix || item.setting.suffix?'87%':'96%'}"
-									:focus="focusMateria" @focus="ontap(item)" @blur="onevent(item)" />
-								<text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]"
-									@click="onchange(item)">&#xe568;</text>
-							</view>
-							<!-- 涓嬫媺妗�鍗曢� item.useDict?item.dict:item.selections-->
-							<uni-data-select id="dv_select" v-if="item.name=='Select' && !item.disabled"
-								:class="item.disabled?'input-disabled':''" v-model="item.value" :localdata="item.dict"
-								@change="onchange(item)" :disabled="item.disabled" :clear="false"></uni-data-select>
-							<!-- 澶氳鏂囨湰 -->
-							<view class="input-wrapper" v-if="item.name=='Textarea' && !item.disabled">
-								<textarea class="uni-input" :value="item.value"
-									:class="item.disabled?'input-disabled':''" :placeholder="item.placeholder"
-									@blur="onModelValue(item)" style="height:60px;" :style="{'width':'96%'}"
-									:disabled="item.disabled"></textarea>
-							</view>
-							<!-- 澶嶉�妗�-->
-							<checkbox-group class="check_rememberPwd" v-if="item.name=='Checkbox'"
-								:class="item.disabled?'input-disabled':''" @change="onModelValue(item)"
-								:data-ischeck="item.value" :disabled="item.disabled" :style="{'margin-left':'10rpx'}">
-								<label>
-									<checkbox :value="item.value" :checked="item.value" />
-									<text>{{item.label}}</text>
-								</label>
-							</checkbox-group>
-							<!-- 鍗曢�妗�-->
-							<radio-group class="check_rememberPwd" v-if="item.name=='Radio'"
-								:class="item.disabled?'input-disabled':''" :disabled="item.disabled"
-								:style="{'margin-left':'10rpx'}" @change="onModelValue(item)">
-								<label v-for="(item2) in item.selections" :key="item2.value">
-									<radio :value="item2.value" :checked="item2.value === item.value" />
-									<text>{{item2.label}}</text>
-								</label>
-							</radio-group>
-							<!-- Switch寮�叧 -->
-							<switch v-if="item.name=='Switch'" :class="item.disabled?'input-disabled':''"
-								:disabled="item.disabled" v-model="item.value" @change="onModelValue(item)"
-								:style="{'margin-left':'10rpx'}" />
-							<!-- 鏃ユ湡鏃堕棿 -->
-							<view class="input-wrapper"
-								v-if="(item.name=='TimePicker' || item.name=='DatePicker') && !item.disabled">
-								<picker mode="date" class="date_iput" :class="item.disabled?'input-disabled':''"
-									:disabled="item.disabled" :value="item.value" @change="onModelValue(item)">
-									<view class="picker">{{item.value}}</view>
-								</picker>
-							</view>
-						</view>
-						<!-- 鏍呮牸甯冨眬 -->
-						<uni-row class="demo-uni-row" v-if="item.name=='Layout' && item.show==true">
-							<uni-col v-for="(cols,key) in item.setting.colList"
-								:span="item.setting.spanList?item.setting.spanList[key]:24 / item.setting.col">
-								<view v-if="cols!=null">
-									<text class="txt_title"
-										:style="{'width':cols.labelWidth+'px'}">{{cols.label}}锛�/text>
-									<span class="form-item-span" v-if="cols.disabled">{{cols.value}}</span>
-									<view class="input-wrapper"
-										v-if="(cols.name=='Input' || cols.name=='InputNumber') && !cols.disabled">
-										<text v-if="cols.setting.prefix" class="uni-icon" :class="[cols.setting.prefix]"
-											@change="onchange(cols)">&#xe568;</text>
-										<input class="uni-input" :class="cols.disabled?'input-disabled':''"
-											:type="cols.name=='Input'?'text':cols.name=='InputNumber'?'number':'text'"
-											v-model="cols.value" :disabled="cols.disabled"
-											:placeholder="cols.placeholder"
-											:style="{'width':cols.setting.prefix && cols.setting.suffix?'78%':cols.setting.prefix || cols.setting.suffix?'87%':'96%'}"
-											:focus="focusMateria" @focus="ontap(cols)" @blur="onevent(cols)" />
-										<text v-if="cols.setting.suffix" class="uni-icon" :class="[cols.setting.suffix]"
-											@click="onchange(cols)">&#xe568;</text>
-									</view>
-									<!-- 涓嬫媺妗�鍗曢� cols.useDict?cols.dict:cols.selections-->
-									<uni-data-select id="dv_select" v-if="cols.name=='Select' && !cols.disabled"
-										:class="cols.disabled?'input-disabled':''" v-model="cols.value"
-										:localdata="cols.dict" @change="onchange(cols)" :disabled="cols.disabled"
-										:clear="false"></uni-data-select>
-									<!-- 澶氳鏂囨湰 -->
-									<view class="input-wrapper" v-if="cols.name=='Textarea' && !cols.disabled">
-										<textarea class="uni-input" :value="cols.value"
-											:class="cols.disabled?'input-disabled':''" :placeholder="cols.placeholder"
-											@blur="onModelValue(cols)" style="height:60px;" :style="{'width':'96%'}"
-											:disabled="cols.disabled"></textarea>
-									</view>
-									<!-- 澶嶉�妗�-->
-									<checkbox-group class="check_rememberPwd" v-if="cols.name=='Checkbox'"
-										:class="cols.disabled?'input-disabled':''" :disabled="cols.disabled"
-										@change="onModelValue(cols)" :data-ischeck="cols.value"
-										:style="{'margin-left':'10rpx'}">
-										<label>
-											<checkbox :value="cols.value" :checked="cols.value" />
-											<text>{{cols.label}}</text>
-										</label>
-									</checkbox-group>
-									<!-- 鍗曢�妗�-->
-									<radio-group class="check_rememberPwd" v-if="cols.name=='Radio'"
-										:class="cols.disabled?'input-disabled':''" :disabled="cols.disabled"
-										@change="onModelValue(cols)">
-										<label v-for="(cols2) in cols.selections" :key="cols2.value">
-											<radio :value="cols2.value" :checked="cols2.value === cols.value" />
-											<text>{{cols2.label}}</text>
-										</label>
-									</radio-group>
-									<!-- Switch寮�叧 -->
-									<switch v-if="cols.name=='Switch'" :class="cols.disabled?'input-disabled':''"
-										:disabled="cols.disabled" v-model="cols.value" @change="onModelValue(cols)"
-										:style="{'margin-left':'10rpx'}" />
-									<!-- 鏃ユ湡鏃堕棿 -->
-									<view class="input-wrapper"
-										v-if="(cols.name=='TimePicker' || cols.name=='DatePicker') && !cols.disabled">
-										<picker mode="date" class="date_iput" :class="cols.disabled?'input-disabled':''"
-											:disabled="cols.disabled" :value="cols.value" @change="onModelValue(cols)">
-											<view class="picker">{{cols.value}}</view>
-										</picker>
-									</view>
-
-								</view>
-							</uni-col>
-						</uni-row>
-					</div>
-				</view>
+				<OIForm class="v-area dv-panel" :form="subpanel.subClassAttr.form" viewMode></OIForm>
 
 				<view class="v-paneldel" v-if="param.Sub_Cls.Can_Add_Delete == true">
 					<a href="javascript:;" class="panel_del" @tap="panel_del(iiindex)"><i
@@ -249,8 +56,9 @@
 			<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':'200px','height':check_list.height?check_list.height+'px':'88%'}">
-					<view class="popup-cont" :style="{'height':check_list.height?check_list.height-45+'px':'415px'}">
+					: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'}">
@@ -285,10 +93,15 @@
 		dataObjCreate,
 		dataObjDel
 	} from "@/api/data.js"
+	import dayjs from "dayjs";
+	import OIForm from '@/components/oi-form/index.vue'
 
 	export default {
 		modules: {
 			Base64,
+		},
+		components: {
+			OIForm
 		},
 		data() {
 			return {
@@ -409,6 +222,23 @@
 							ele.show = true;
 							if (ele.useDict == true) { //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀
 								await this.DictGetInfo(ele.bind.dict, index, 'mast');
+							} else {
+								if (ele?.name === "Select") {
+									const selections = ele?.selections || []
+									//鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ�
+									let itemName = ele.value || "";
+									if (itemName) {
+										$this.head_styledef.form
+											.model[ele.fieldId] = itemName;
+									}
+									$this.head_styledef.form.items[index].dict = selections.map((a) => {
+										return {
+											value: a.value,
+											text: a.label
+										}
+									})
+								}
+
 							}
 						});
 					}
@@ -426,7 +256,7 @@
 						title: this.translateSys("error") + "1.1",
 						content: tip,
 						showCancel: false,
-						confirmText: this.translateSys("cancel")
+						confirmText: this.translateSys('close')
 					});
 				}
 
@@ -453,6 +283,21 @@
 						$this.detail1_styledef.form.items.forEach(async (ele, index) => {
 							if (ele.useDict == true) { //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀
 								await this.DictGetInfo(ele.bind.dict, index, 'sub');
+							} else {
+								if (ele?.name === "Select") {
+									const selections = ele?.selections || []
+									//鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ�
+									let itemName = ele.value || "";
+									if (itemName) {
+										$this.detail1_styledef.form.items[ele.fieldId] = itemName;
+									}
+									$this.detail1_styledef.form.items[index].dict = selections.map((a) => {
+										return {
+											value: a.value,
+											text: a.label
+										}
+									})
+								}
 							}
 						});
 					}
@@ -470,7 +315,7 @@
 						title: this.translateSys("error") + "2.1",
 						content: tip,
 						showCancel: false,
-						confirmText: this.translateSys("cancel")
+						confirmText: this.translateSys('close')
 					});
 				}
 
@@ -489,10 +334,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,
 						});
 					});
 
@@ -520,7 +365,7 @@
 						title: this.translateSys("error") + "1.3",
 						content: ex.errMsg,
 						showCancel: false,
-						confirmText: this.translateSys("cancel")
+						confirmText: this.translateSys('close')
 					});
 				}
 
@@ -532,7 +377,7 @@
 				var dataInfo = {
 					ed_type: 0,
 					start_transaction: true,
-					class_id: this.param.DataCls.id,
+					class_id: styledef.form.clsId,
 					event_id: eventid,
 				};
 				console.log(dataInfo);
@@ -552,13 +397,13 @@
 								title: this.translateSys("tip"),
 								content: tip,
 								showCancel: false,
-								confirmText: this.translateSys("cancel")
+								confirmText: this.translateSys('close')
 							});
 						} else uni.showModal({
 							title: this.translateSys("tip"),
 							content: tip + ',' + this.translateSys('tip') + ':' + data.ret,
 							showCancel: false,
-							confirmText: this.translateSys("cancel")
+							confirmText: this.translateSys('close')
 						});
 						return false
 					} else {
@@ -568,7 +413,7 @@
 							title: this.translateSys("tip"),
 							content: tip,
 							showCancel: false,
-							confirmText: this.translateSys("cancel")
+							confirmText: this.translateSys('close')
 						});
 
 						var actionlist = data.action;
@@ -713,7 +558,7 @@
 												"quotation_mark_right") + this
 											.translate('tip_action_unprocessed'),
 										showCancel: false,
-										confirmText: this.translateSys("cancel")
+										confirmText: this.translateSys('close')
 									});
 								}
 							}
@@ -728,7 +573,7 @@
 							this.translateSys("full_stop") +
 							this.translate('reason') + this.translateSys("colon") + ex.errMsg,
 						showCancel: false,
-						confirmText: this.translateSys("cancel")
+						confirmText: this.translateSys('close')
 					});
 				});
 			},
@@ -740,20 +585,19 @@
 					uni.hideKeyboard();
 					var $this = this;
 					console.log(item);
-					if (item.oldvalue != result.decodedata) {
-						item.oldvalue = result.decodedata;
-						item.value = result.decodedata;
+					item.value = result.decodedata
+					let newVal = item.value.trim()
+					if (item.oldvalue != newVal) {
+						item.oldvalue = newVal;
 						var attr = item.fieldId;
-						$this.head_styledef.form.model[attr] = result.decodedata;
-						if (result.decodedata) { //绗竴涓緭鍏ユ涓嶄负绌�-							$this.focusMateria = true; //鍒濆鍖栵紝绗簩涓緭鍏ユfocus灞炴�
-							// setTimeout(function(){
-							// 	$this.focusMateria=true; //绗簩涓緭鍏ユ鑾峰彇鐒︾偣
-							setTimeout(function() {
-								uni.hideKeyboard();
-							}, 1000);
-							// },500);
-						}
+						$this.head_styledef.form.model[attr] = newVal;
+						$this.focusMateria = true; //鍒濆鍖栵紝绗簩涓緭鍏ユfocus灞炴�
+						// setTimeout(function(){
+						// 	$this.focusMateria=true; //绗簩涓緭鍏ユ鑾峰彇鐒︾偣
+						setTimeout(function() {
+							uni.hideKeyboard();
+						}, 1000);
+						// },500);
 						//瀛愭暟鎹被鎵爜鍖轰簨浠惰剼鏈� 						var eventid = this.$data.param.Scan_Code.Input_Change_Event.ID;
 						if (eventid) {
@@ -776,7 +620,7 @@
 								mast_attr: [],
 								inputParamter: [{
 									attr: 'mast_input_3037',
-									value: result.decodedata
+									value: newVal
 								}]
 							}
 
@@ -789,10 +633,16 @@
 				// console.log(e.target);
 				var $this = this;
 				console.log(item);
-				if (item.oldvalue != item.value && item.value.trim() != "") {
-					item.oldvalue = item.value;
+				let newVal = item.value
+				if (typeof item.value == "string") {
+					newVal = item.value.trim()
+					if (!newVal)
+						return
+				}
+				if (item.oldvalue != newVal) {
+					item.oldvalue = newVal;
 					var attr = item.fieldId;
-					$this.head_styledef.form.model[attr] = item.value;
+					$this.head_styledef.form.model[attr] = newVal;
 					//瀛愭暟鎹被鎵爜鍖轰簨浠惰剼鏈� 					var eventid = this.$data.param.Scan_Code.Input_Change_Event.ID;
 					if (eventid) {
@@ -815,7 +665,7 @@
 							mast_attr: [],
 							inputParamter: [{
 								attr: 'mast_input_3037',
-								value: item.value
+								value: newVal
 							}]
 						}
 
@@ -824,52 +674,419 @@
 				}
 
 			},
-			onchange(item) {
-				console.log(item);
-				var $this = this;
-				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 eventid = item.bind.onChangeEvent.id; //鍐呭鍙樺寲鍚庝簨浠�-					if (eventid) {
-						// self.event_no_sub = 1;
-						var obj_attr = this.head_styledef.form.model;
-						// console.log(obj_attr);
-						var req = Object.keys(obj_attr).map((a) => ({
+			classAttr_extButton(item) {
+				var onSuffixClickCallbackEvent = item.bind.onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑诲洖璋�+				var onSuffixClickEvent = item.bind.onSuffixClickEvent; //鍚庡浘鏍囩偣鍑讳簨浠�+
+				if (!onSuffixClickCallbackEvent.id) {
+					uni.showModal({
+						title: this.translateSys("tip"),
+						content: this.translate('icon_click_callback_empty'),
+						showCancel: false,
+						confirmText: this.translateSys('close')
+					});
+					return;
+				}
+				if (!onSuffixClickEvent.id) {
+					uni.showModal({
+						title: this.translateSys("tip"),
+						content: this.translate('icon_click_event_empty'),
+						showCancel: false,
+						confirmText: this.translateSys('close')
+					});
+					return;
+				}
+				this.$data.popupType = 'right'
+				// open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴�
+				this.$refs.popup.open(this.popupType);
+
+				this.dataObjRunCustomEvent_Return(onSuffixClickEvent.id, '', onSuffixClickCallbackEvent.id,
+					item);
+			},
+			dataObjRunCustomEvent_Return(eventid, data_attr, button_callback, item) {
+				const $this = this
+				var enviroment = {
+					'function': '3000', // 鍔熻兘鐐圭紪鍙�+					cls_id: $this.head_styledef.form.clsId, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�+					'button': 'top', // top/bottom
+					button_name: $this.translateSys('add2'),
+					master: {
+						cls_id: $this.head_styledef.form.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] || "",
+				}));
+				if ($this.refdatastore.length > 0) {
+					for (var i = 0; i < $this.refdatastore.length; i++) {
+						if (!req.filter(function(s) {
+								return $this.refdatastore[i].attr == s.name
+							}).length) {
+							req.push({
+								'attr': $this.refdatastore[i].attr,
+								'value': $this.refdatastore[i].value
+							});
+						}
+					}
+				}
+
+				var extinfo = enviroment;
+				extinfo.edit_dlg = {
+					type: 'small', //灏忕獥鍙�+					class_id: $this.head_styledef.form.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] || "",
-						}));
-						var info = {
-							eventid: eventid,
-							edtype: "0",
-							projectid: '',
-							rclsid: '',
-							robjid: '',
-							userlogin: '',
-							clsid: this.$data.param.Master_Cls.ID,
-							objid: "",
-							attr: req,
+						}))
+					)
+				);
+
+				if (!eventid.includes('{')) eventid = '{' + eventid + '}';
+				var dataInfo = {
+					ed_type: "0",
+					start_transaction: true,
+					class_id: $this.head_styledef.form.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 => {
+					if (data.ret != 0) {
+						var tip = data.err_info ? typeof data.err_info == 'string' ? data
+							.err_info :
+							data
+							.err_info.join('<br/>') : '';
+						if (data.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('close')
+							});
+						} else uni.showModal({
+							title: $this.translateSys("tip"),
+							content: tip + ',' + $this.translateSys('tip') + ':' + data
+								.ret,
+							showCancel: false,
+							confirmText: $this.translateSys('close')
+						});
+						return false
+					} else {
+						var tip = data.info ? typeof data.info == 'string' ? data.info : data
+							.info
+							.join(
+								'<br/>') : '';
+						if (tip) uni.showModal({
+							title: $this.translateSys("tip"),
+							content: tip,
+							showCancel: false,
+							confirmText: $this.translateSys('close')
+						});
+
+						if (data != "") {
+							var actions = data.action;
+							if (actions) {
+								for (var i = 0; i < actions.length; i++) {
+									var action = actions[i];
+									console.log(action)
+									var val = action.value;
+									var enviroment = JSON.stringify(enviroment);
+
+									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: button_callback,
+											req: req,
+											data_attr: 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.$data.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
+											})
+											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: button_callback,
+												req: req,
+												data_attr: 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: button_callback,
+											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.$data.classAttrList[param.index].Attr[param.iindex].Value=data[0].Name;
+													// $this.$data.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 {
+										uni.showModal({
+											title: $this.translateSys("tip"),
+											content: $this.translateSys(
+													"quotation_mark_left") +
+												action.action_type + $this.translateSys(
+													"quotation_mark_right") + $this
+												.translate(
+													"tip_action_unprocessed"),
+											showCancel: false,
+											confirmText: $this.translateSys('close')
+										});
+									}
+								}
+							}
+						} else {
+							uni.showModal({
+								title: $this.translateSys('tip') + "5.2",
+								content: $this.translateSys("quotation_mark_left") +
+									"before_click_button" + $this.translateSys(
+										"quotation_mark_right") + $this.translateSys(
+										"comma") + 'event_id' + eventid,
+								showCancel: false,
+								confirmText: $this.translateSys('close')
+							});
 						}
-						this.DataObjRunCustomEvent(info);
+					}
+
+				}).catch(ex => {
+					// console.log(ex);
+					let exStr = JSON.stringify(ex)
+					if (exStr == "{}")
+						exStr = ex
+					let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr
+					uni.showModal({
+						title: $this.translateSys('tip') + "5.1",
+						content: exStr,
+						showCancel: false,
+						confirmText: $this.translateSys('close')
+					});
+				});
+			},
+
+			onEnterChange(item) {
+				console.log("onEnterChange", item);
+				let newVal = item.value
+				if (typeof item.value == "string") {
+					newVal = item.value.trim()
+					if (!newVal)
+						return
+				}
+				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) { //鍐呭鍙樺寲鍚庝簨浠�+						this.onChange(onChangeEvent);
 					}
 				}
 
 			},
+			onDetail1EnterChange(item) {
+				//鐮佺洏涓牱寮忓洖杞︿簨浠�+				// console.log(item);
+			},
+			// 鍐呭鍙樺寲鍚庝簨浠�+			async onChange(event) {
+				var eventid = event?.id; //鍐呭鍙樺寲鍚庝簨浠�+				if (eventid) {
+					// self.event_no_sub = 1;
+					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 info = {
+						eventid: eventid,
+						edtype: "0",
+						projectid: '',
+						rclsid: '',
+						robjid: '',
+						userlogin: '',
+						clsid: this.head_styledef.form.clsId,
+						objid: "",
+						attr: req,
+					}
+					this.DataObjRunCustomEvent(info);
+				}
+
+			},
+
 			scan_ontap(e) { //鎵爜鍖烘壂鐮佸姛鑳� 				//console.log(e.target)
 				getApp().onScan((result) => {
 					console.log(result.decodedata);
+					item.value = result.decodedata
+					let newVal = item.value 
+					if (typeof item.value == "string") {
+						newVal = item.value.trim()
+					}
 					var isflag = true;
 					for (var i in this.$data.subPanelList) {
-						if (this.$data.subPanelList[i].scanCodeVal == result.decodedata)
+						if (this.$data.subPanelList[i].scanCodeVal == newVal)
 							isflag = false;
 					}
 					//瀛愭暟鎹被鎵爜鏌ヨ鏁版嵁
 					if (isflag) {
 						uni.hideKeyboard();
-						this.$data.scanCodeVal = result.decodedata;
+						this.$data.scanCodeVal =newVal;
 						var eventid = this.$data.param.Scan_Code.Input_Change_Event.ID;
 						if (eventid) {
 							//涓绘暟鎹被灞炴�
@@ -963,11 +1180,7 @@
 					}
 				}
 			},
-			onModelValue(item) { //缁戝畾Model鍊�-				//console.log(e.target)
-				var attr = item.fieldId;
-				$this.head_styledef.form.model[attr] = item.value;
-			},
+
 			panel_del(index) { //闈㈡澘鍒犻櫎
 				var $this = this;
 				if (this.$data.subPanelList[index].scanCodeVal == this.$data.scanCodeVal) {
@@ -995,7 +1208,7 @@
 							title: this.translateSys("tip"),
 							content: this.translate("delete_success"),
 							showCancel: false,
-							confirmText: this.translateSys("cancel")
+							confirmText: this.translateSys('close')
 						});
 
 					}).catch(ex => {
@@ -1005,7 +1218,7 @@
 							title: this.translateSys('tip') + "9.1",
 							content: ex.errMsg,
 							showCancel: false,
-							confirmText: this.translateSys("cancel")
+							confirmText: this.translateSys('close')
 						});
 					});
 				}
@@ -1018,7 +1231,7 @@
 						title: this.translateSys("tip"),
 						content: this.translate("before_select_event_empty"),
 						showCancel: false,
-						confirmText: this.translateSys("cancel")
+						confirmText: this.translateSys('close')
 					});
 					return;
 				}
@@ -1118,7 +1331,7 @@
 						title: this.translateSys("tip"),
 						content: this.translate("after_select_event_empty"),
 						showCancel: false,
-						confirmText: this.translateSys("cancel")
+						confirmText: this.translateSys('close')
 					});
 					return;
 				}
@@ -1141,7 +1354,7 @@
 						title: this.translateSys("tip"),
 						content: this.translate("tip_no_select_data"),
 						showCancel: false,
-						confirmText: this.translateSys("cancel")
+						confirmText: this.translateSys('close')
 					});
 					return;
 				}
@@ -1258,13 +1471,13 @@
 								title: this.translateSys("tip"),
 								content: tip,
 								showCancel: false,
-								confirmText: this.translateSys("cancel")
+								confirmText: this.translateSys('close')
 							});
 						} else uni.showModal({
 							title: this.translateSys("tip"),
 							content: tip + ',' + this.translateSys('tip') + ':' + data.ret,
 							showCancel: false,
-							confirmText: this.translateSys("cancel")
+							confirmText: this.translateSys('close')
 						});
 						return false
 					} else {
@@ -1274,7 +1487,7 @@
 							title: this.translateSys("tip"),
 							content: tip,
 							showCancel: false,
-							confirmText: this.translateSys("cancel")
+							confirmText: this.translateSys('close')
 						});
 
 						var actionlist = data.action;
@@ -1395,17 +1608,8 @@
 									// console.log($this.$data.head_styledef);
 								} else if (action.action_type == 'set_global_attr') {
 									$this.$data.global_attr = action.value || [];
-								} else {
-									uni.showModal({
-										title: this.translateSys("tip"),
-										content: this.translateSys("quotation_mark_left") + action
-											.action_type + this.translateSys(
-												"quotation_mark_right") + this.translate(
-												"tip_action_unprocessed"),
-										showCancel: false,
-										confirmText: this.translateSys("cancel")
-									});
 								}
+
 							}
 						}
 
@@ -1463,7 +1667,7 @@
 						title: this.translateSys("error") + "3.1",
 						content: ex.errMsg,
 						showCancel: false,
-						confirmText: this.translateSys("cancel")
+						confirmText: this.translateSys('close')
 					});
 				});
 			},
@@ -1543,14 +1747,14 @@
 								title: this.translateSys("tip"),
 								content: tip,
 								showCancel: false,
-								confirmText: this.translateSys("cancel")
+								confirmText: this.translateSys('close')
 							});
 						} else uni.showModal({
 							title: this.translateSys("tip"),
 							content: tip + this.translateSys('comma') + this.translate('result') + this
 								.translateSys('colon') + data.ret,
 							showCancel: false,
-							confirmText: this.translateSys("cancel")
+							confirmText: this.translateSys('close')
 						});
 						return false
 					} else {
@@ -1560,7 +1764,7 @@
 							title: this.translateSys("tip"),
 							content: tip,
 							showCancel: false,
-							confirmText: this.translateSys("cancel")
+							confirmText: this.translateSys('close')
 						});
 
 						var actionlist = data.action;
@@ -1717,7 +1921,7 @@
 												"quotation_mark_right") + this.translate(
 												"tip_action_unprocessed"),
 										showCancel: false,
-										confirmText: this.translateSys("cancel")
+										confirmText: this.translateSys('close')
 									});
 								}
 							}
@@ -1790,7 +1994,7 @@
 						title: this.translateSys("error") + "7.1",
 						content: ex.errMsg,
 						showCancel: false,
-						confirmText: this.translateSys("cancel")
+						confirmText: this.translateSys('close')
 					});
 				});
 			},
@@ -1896,13 +2100,13 @@
 								title: this.translateSys("tip"),
 								content: tip,
 								showCancel: false,
-								confirmText: this.translateSys("cancel")
+								confirmText: this.translateSys('close')
 							});
 						} else uni.showModal({
 							title: this.translateSys("tip"),
 							content: tip + ',' + this.translateSys('tip') + ':' + data.ret,
 							showCancel: false,
-							confirmText: this.translateSys("cancel")
+							confirmText: this.translateSys('close')
 						});
 						this.saving = false
 						return false
@@ -1913,7 +2117,7 @@
 							title: this.translateSys("tip"),
 							content: tip,
 							showCancel: false,
-							confirmText: this.translateSys("cancel")
+							confirmText: this.translateSys('close')
 						});
 
 						var result = data.result;
@@ -1937,7 +2141,7 @@
 						title: this.translateSys("error") + "8.1",
 						content: ex.errMsg,
 						showCancel: false,
-						confirmText: this.translateSys("cancel")
+						confirmText: this.translateSys('close')
 					});
 				});
 			},
@@ -1962,7 +2166,6 @@
 <style>
 	.popup-content {
 		@include flex;
-
 	}
 
 	.popup-height {
@@ -2030,7 +2233,8 @@
 
 		.uni-icon {
 			/* border: 1px solid red; */
-			width: 8%;
+			width: 30rpx;
+			padding: 10rpx 5rpx;
 			font-family: uniicons;
 			font-size: 40rpx;
 			font-weight: 400;
@@ -2110,30 +2314,6 @@
 			/* border: 1rpx solid red; */
 		}
 
-		button.btn_cancel {
-			width: 49.5%;
-			margin-top: 50rpx;
-			padding: 20rpx;
-			line-height: 1.5;
-			border: none;
-			font-size: 38rpx;
-			font-weight: bold;
-			float: left;
-			display: inline-block;
-		}
-
-		button.btn_add {
-			width: 49.5%;
-			margin-top: 50rpx;
-			padding: 20rpx;
-			line-height: 1.5;
-			border: none;
-			font-size: 38rpx;
-			font-weight: bold;
-			float: right;
-			display: inline-block;
-		}
-
 		#dv_select {
 			display: inline-block;
 			width: 66%;
@@ -2209,9 +2389,11 @@
 			margin-top: 50rpx;
 			padding: 20rpx;
 			line-height: 1.5;
-			background: #27A6E1;
-			border: none;
-			color: #fff;
+			// background: #27A6E1;
+			// border: none;
+			// color: #fff;
+			background: #fff;
+			color: #000;
 			font-size: 38rpx;
 			font-weight: bold;
 			float: left;
@@ -2358,7 +2540,7 @@
 		.popup-footer {
 			float: right;
 			position: absolute;
-			bottom: 0;
+			bottom: 10rpx;
 			right: 20rpx;
 		}
 
@@ -2382,9 +2564,11 @@
 			margin-top: 50rpx;
 			padding: 15rpx;
 			line-height: 1.5;
-			background: #27A6E1;
-			border: none;
-			color: #fff;
+			// background: #27A6E1;
+			// border: none;
+			// color: #fff;
+			background: #fff;
+			color: #000;
 			font-size: 38rpx;
 			font-weight: bold;
 			/* float: right; */

--
Gitblit v1.9.1