From 00814401bba75825126baa6675e542ea3c82a5bb Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期五, 14 三月 2025 12:19:39 +0800
Subject: [PATCH] 日期

---
 pages/modal/3037_2.vue |  746 ++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 524 insertions(+), 222 deletions(-)

diff --git a/pages/modal/3037_2.vue b/pages/modal/3037_2.vue
index 6e08aaa..9487d2a 100644
--- a/pages/modal/3037_2.vue
+++ b/pages/modal/3037_2.vue
@@ -7,40 +7,33 @@
 				<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"
+					v-model="item.value" :localdata="item.dict" @change="onEnterChange(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>
+						@click="classAttr_extButton(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)" :maxlength="-1" />
+						:focus="focusMateria" @focus="ontap(item)" @keyup.enter="onEnterChange(item)"
+						@blur="onEnterChange(item)" :maxlength="-1" />
 					<text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]"
-						@click="onchange(item)">&#xe568;</text>
+						@click="classAttr_extButton(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>
+					<textarea class="uni-input" :class="item.disabled?'input-disabled':''" v-model="item.value"
+						:placeholder="item.placeholder"  @blur="onEnterChange(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':''" :disabled="item.disabled" @change="onCheckBoxValue"
-					:data-attr="item.fieldId">
+					:data-attr="item.fieldId" :data-index="index">
 					<label v-for="(item2) in item.selections" :key="item2.value">
 						<checkbox :value="item2.value" :checked="item.value.includes(item2.value)" />
 						<text>{{item2.label}}</text>
@@ -49,7 +42,7 @@
 				<!-- 鍗曢�妗�-->
 				<radio-group class="check_rememberPwd" v-if="item.name=='Radio'"
 					:class="item.disabled?'input-disabled':''" :disabled="item.disabled" @change="onRadioBoxValue"
-					:data-attr="item.fieldId">
+					:data-attr="item.fieldId" :data-index="index">
 					<label v-for="(item2) in item.selections" :key="item2.value">
 						<radio :value="item2.value" :checked="item2.value === item.value" />
 						<text>{{item2.label}}</text>
@@ -59,11 +52,26 @@
 				<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'">
+				<!-- 	<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 class="input-wrapper"
+					v-if="item.name=='TimePicker' || item.name=='DatePicker'|| item.name=='DatePickerRange'">
+					<OIDatePicker v-if="item.name=='DatePicker'" :class="item.disabled?'input-disabled':''"
+						:disabled="item.disabled" v-model="item.value" :placeholder="item.placeholder"
+						:defaultToday="item.setting.defaultToday" :format="item.setting.format"
+						@change="onModelValue(item)" />
+					<OIDatePickerRange v-if="item.name=='DatePickerRange'" :rangeSeparator="item.setting.separator"
+						:format="item.setting.format" :class="item.disabled?'input-disabled':''"
+						:disabled="item.disabled" v-model="item.value" :placeholder="item.placeholder"
+						@change="onModelValue(item)" />
+					<OITimePicker v-if="item.name=='TimePicker'" :class="item.disabled?'input-disabled':''"
+						:disabled="item.disabled" v-model="item.value" :placeholder="item.placeholder"
+						@change="onModelValue(item)" />
 				</view>
 			</view>
 
@@ -104,58 +112,10 @@
 							<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)" :maxlength="-1" />
-								<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':''" :disabled="item.disabled" @change="onCheckBoxValue"
-								:data-attr="item.fieldId">
-								<label v-for="(item2) in item.selections" :key="item2.value">
-									<checkbox :value="item2.value" :checked="item.value.includes(item2.value)" />
-									<text>{{item2.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="onRadioBoxValue" :data-attr="cols.fieldId">
-								<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 v-else class="input-wrapper">
+								<input :type="item.name=='InputNumber'?'number':'text'" v-model="item.value"
+									:placeholder="item.placeholder" :maxlength="-1"
+									@on-enter="onDetail1EnterChange(item)" />
 							</view>
 						</view>
 						<!-- 鏍呮牸甯冨眬 -->
@@ -166,62 +126,11 @@
 									<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)"
-											:maxlength="-1" />
-										<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="onCheckBoxValue" :data-attr="cols.fieldId">
-										<label v-for="(cols2) in cols.selections" :key="cols2.value">
-											<checkbox :value="cols2.value"
-												:checked="cols.value.includes(cols2.value)" />
-											<text>{{cols2.label}}</text>
-										</label>
-									</checkbox-group>
-									<!-- 鍗曢�妗�-->
-									<radio-group class="check_rememberPwd" v-if="cols.name=='Radio'"
-										:class="cols.disabled?'input-disabled':''" :disabled="cols.disabled"
-										@change="onRadioBoxValue " :data-attr="cols.fieldId">
-										<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 v-else class="input-wrapper">
+										<input :type="cols.name=='InputNumber'?'number':'text'" v-model="cols.value"
+											:placeholder="cols.placeholder" :maxlength="-1"
+											@on-enter="onDetail1EnterChange(cols)" />
 									</view>
 
 								</view>
@@ -252,8 +161,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'}">
@@ -288,10 +198,19 @@
 		dataObjCreate,
 		dataObjDel
 	} from "@/api/data.js"
+	import dayjs from "dayjs";
+	import OIDatePicker from '@/components/oi-date-time-picker/oi-date-picker.vue'
+	import OIDatePickerRange from '@/components/oi-date-time-picker/oi-date-picker-range.vue'
+	import OITimePicker from '@/components/oi-date-time-picker/oi-time-picker.vue'
 
 	export default {
 		modules: {
 			Base64,
+		},
+		components: {
+			OIDatePicker,
+			OIDatePickerRange,
+			OITimePicker
 		},
 		data() {
 			return {
@@ -446,7 +365,7 @@
 						title: this.translateSys("error") + "1.1",
 						content: tip,
 						showCancel: false,
-						confirmText: this.translateSys("cancel")
+						confirmText: this.translateSys('close')
 					});
 				}
 
@@ -505,7 +424,7 @@
 						title: this.translateSys("error") + "2.1",
 						content: tip,
 						showCancel: false,
-						confirmText: this.translateSys("cancel")
+						confirmText: this.translateSys('close')
 					});
 				}
 
@@ -555,7 +474,7 @@
 						title: this.translateSys("error") + "1.3",
 						content: ex.errMsg,
 						showCancel: false,
-						confirmText: this.translateSys("cancel")
+						confirmText: this.translateSys('close')
 					});
 				}
 
@@ -567,7 +486,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);
@@ -587,13 +506,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 {
@@ -603,7 +522,7 @@
 							title: this.translateSys("tip"),
 							content: tip,
 							showCancel: false,
-							confirmText: this.translateSys("cancel")
+							confirmText: this.translateSys('close')
 						});
 
 						var actionlist = data.action;
@@ -748,7 +667,7 @@
 												"quotation_mark_right") + this
 											.translate('tip_action_unprocessed'),
 										showCancel: false,
-										confirmText: this.translateSys("cancel")
+										confirmText: this.translateSys('close')
 									});
 								}
 							}
@@ -763,7 +682,7 @@
 							this.translateSys("full_stop") +
 							this.translate('reason') + this.translateSys("colon") + ex.errMsg,
 						showCancel: false,
-						confirmText: this.translateSys("cancel")
+						confirmText: this.translateSys('close')
 					});
 				});
 			},
@@ -859,39 +778,395 @@
 				}
 
 			},
-			onchange(item) {
-				console.log(item);
-				var $this = this;
-				console.log(item);
+			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] || "",
+						}))
+					)
+				);
+
+				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')
+							});
+						}
+					}
+
+				}).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);
 				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) => ({
-							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,
-						}
-						this.DataObjRunCustomEvent(info);
+					this.head_styledef.form.model[attr] = item.value;
+					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) => {
@@ -998,22 +1273,69 @@
 					}
 				}
 			},
-			
 			onCheckBoxValue(e) { //缁戝畾Model鍊� 				let values = e.detail.value || []
-				let attr = e.currentTarget?.dataset?.attr || ""
-				this.head_styledef.form.model[attr] = values;
+				const item = this.head_styledef.form.items[e.currentTarget?.dataset?.index || 0]
+				if (item?.setting?.colList) {
+					const col = item.setting.colList[e.currentTarget?.dataset?.iindex || 0]
+					if (col) {
+						col.value = values
+						let attr = col.fieldId;
+						this.head_styledef.form.model[attr] = col.value;
+						var onChangeEvent = col.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�+						if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠�+							this.onChange(onChangeEvent);
+						}
+						return
+					}
+				} else {
+					if (item) {
+						item.value = values
+						let attr = item.fieldId;
+						this.head_styledef.form.model[attr] = item.value;
+						var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�+						if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠�+							this.onChange(onChangeEvent);
+						}
+					}
+				}
+
 			},
 			onRadioBoxValue(e) { //缁戝畾Model鍊�-				let value = e.detail.value || ""
-				let attr = e.currentTarget?.dataset?.attr || ""
-				this.head_styledef.form.model[attr] = value;
+				let values = e.detail.value || ""
+				const item = this.head_styledef.form.items[e.currentTarget?.dataset?.index || 0]
+				if (item?.setting?.colList) {
+					const col = item.setting.colList[e.currentTarget?.dataset?.iindex || 0]
+					if (col) {
+						col.value = values
+						let attr = col.fieldId;
+						this.head_styledef.form.model[attr] = col.value;
+						var onChangeEvent = col.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�+						if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠�+							this.onChange(onChangeEvent);
+						}
+						return
+					}
+				} else {
+					if (item) {
+						item.value = values
+						let attr = item.fieldId;
+						this.head_styledef.form.model[attr] = item.value;
+						var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�+						if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠�+							this.onChange(onChangeEvent);
+						}
+					}
+
+				}
+
 			},
 			onModelValue(item) { //缁戝畾Model鍊� 				//console.log(e.target)
 				var attr = item.fieldId;
-				$this.head_styledef.form.model[attr] = item.value;
+				this.head_styledef.form.model[attr] = item.value;
 			},
+
 			panel_del(index) { //闈㈡澘鍒犻櫎
 				var $this = this;
 				if (this.$data.subPanelList[index].scanCodeVal == this.$data.scanCodeVal) {
@@ -1041,7 +1363,7 @@
 							title: this.translateSys("tip"),
 							content: this.translate("delete_success"),
 							showCancel: false,
-							confirmText: this.translateSys("cancel")
+							confirmText: this.translateSys('close')
 						});
 
 					}).catch(ex => {
@@ -1051,7 +1373,7 @@
 							title: this.translateSys('tip') + "9.1",
 							content: ex.errMsg,
 							showCancel: false,
-							confirmText: this.translateSys("cancel")
+							confirmText: this.translateSys('close')
 						});
 					});
 				}
@@ -1064,7 +1386,7 @@
 						title: this.translateSys("tip"),
 						content: this.translate("before_select_event_empty"),
 						showCancel: false,
-						confirmText: this.translateSys("cancel")
+						confirmText: this.translateSys('close')
 					});
 					return;
 				}
@@ -1164,7 +1486,7 @@
 						title: this.translateSys("tip"),
 						content: this.translate("after_select_event_empty"),
 						showCancel: false,
-						confirmText: this.translateSys("cancel")
+						confirmText: this.translateSys('close')
 					});
 					return;
 				}
@@ -1187,7 +1509,7 @@
 						title: this.translateSys("tip"),
 						content: this.translate("tip_no_select_data"),
 						showCancel: false,
-						confirmText: this.translateSys("cancel")
+						confirmText: this.translateSys('close')
 					});
 					return;
 				}
@@ -1304,13 +1626,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 {
@@ -1320,7 +1642,7 @@
 							title: this.translateSys("tip"),
 							content: tip,
 							showCancel: false,
-							confirmText: this.translateSys("cancel")
+							confirmText: this.translateSys('close')
 						});
 
 						var actionlist = data.action;
@@ -1500,7 +1822,7 @@
 						title: this.translateSys("error") + "3.1",
 						content: ex.errMsg,
 						showCancel: false,
-						confirmText: this.translateSys("cancel")
+						confirmText: this.translateSys('close')
 					});
 				});
 			},
@@ -1580,14 +1902,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 {
@@ -1597,7 +1919,7 @@
 							title: this.translateSys("tip"),
 							content: tip,
 							showCancel: false,
-							confirmText: this.translateSys("cancel")
+							confirmText: this.translateSys('close')
 						});
 
 						var actionlist = data.action;
@@ -1754,7 +2076,7 @@
 												"quotation_mark_right") + this.translate(
 												"tip_action_unprocessed"),
 										showCancel: false,
-										confirmText: this.translateSys("cancel")
+										confirmText: this.translateSys('close')
 									});
 								}
 							}
@@ -1827,7 +2149,7 @@
 						title: this.translateSys("error") + "7.1",
 						content: ex.errMsg,
 						showCancel: false,
-						confirmText: this.translateSys("cancel")
+						confirmText: this.translateSys('close')
 					});
 				});
 			},
@@ -1933,13 +2255,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
@@ -1950,7 +2272,7 @@
 							title: this.translateSys("tip"),
 							content: tip,
 							showCancel: false,
-							confirmText: this.translateSys("cancel")
+							confirmText: this.translateSys('close')
 						});
 
 						var result = data.result;
@@ -1974,7 +2296,7 @@
 						title: this.translateSys("error") + "8.1",
 						content: ex.errMsg,
 						showCancel: false,
-						confirmText: this.translateSys("cancel")
+						confirmText: this.translateSys('close')
 					});
 				});
 			},
@@ -1999,7 +2321,6 @@
 <style>
 	.popup-content {
 		@include flex;
-
 	}
 
 	.popup-height {
@@ -2067,7 +2388,8 @@
 
 		.uni-icon {
 			/* border: 1px solid red; */
-			width: 8%;
+			width: 30rpx;
+			padding: 10rpx 5rpx;
 			font-family: uniicons;
 			font-size: 40rpx;
 			font-weight: 400;
@@ -2147,30 +2469,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%;
@@ -2246,9 +2544,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;
@@ -2395,7 +2695,7 @@
 		.popup-footer {
 			float: right;
 			position: absolute;
-			bottom: 0;
+			bottom: 10rpx;
 			right: 20rpx;
 		}
 
@@ -2419,9 +2719,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