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/3200_view.vue |  231 ++++++++++++++++++++++-----------------------------------
 1 files changed, 90 insertions(+), 141 deletions(-)

diff --git a/pages/modal/3200_view.vue b/pages/modal/3200_view.vue
index 67413ef..63b1fa5 100644
--- a/pages/modal/3200_view.vue
+++ b/pages/modal/3200_view.vue
@@ -19,32 +19,32 @@
 								<!-- 鏂囨湰妗�鏁板瓧妗�-->
 								<view class="dv_input" 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="onEnterChange(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="onEnterChange(item)">&#xe568;</text>
 								</view>
 								<!-- 涓嬫媺妗�鍗曢� 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"
+									:localdata="item.dict" @change="onEnterChange(item)" :disabled="item.disabled"
 									:clear="false"></uni-data-select>
 								<!-- 澶氳鏂囨湰 -->
 								<view class="input-wrapper" v-if="item.name=='Textarea'">
 									<textarea class="uni-input" :value="item.value"
 										:class="item.disabled?'input-disabled':''" :placeholder="item.placeholder"
-										@blur="onModelValue(item)" style="height:60px;" :style="{'width':'96%'}"
+										@blur="onEnterChange(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">
+									@change="onCheckBoxValue" :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>
@@ -53,7 +53,8 @@
 								<!-- 鍗曢�妗�-->
 								<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)">
+									:style="{'margin-left':'10rpx'}" @change="onRadioBoxValue" :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>
@@ -64,12 +65,29 @@
 									:disabled="item.disabled" v-model="item.value" @change="onModelValue(item)"
 									:style="{'margin-left':'10rpx'}" />
 								<!-- 鏃ユ湡鏃堕棿 -->
-								<view class="input-wrapper"
+								<!-- <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>
 							<!-- 鏍呮牸甯冨眬 -->
@@ -81,34 +99,37 @@
 											:style="{'width':cols.labelWidth+'px'}">{{cols.label}}锛�/text>
 										<view class="dv_input" v-if="(cols.name=='Input' || cols.name=='InputNumber') ">
 											<text v-if="cols.setting.prefix" class="uni-icon"
-												:class="[cols.setting.prefix]" @change="onChange(cols)">&#xe568;</text>
+												:class="[cols.setting.prefix]"
+												@click="onEnterChange(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" />
+												:focus="focusMateria" @focus="ontap(cols)" @blur="onEnterChange(cols)"
+												@keyup.enter="onEnterChange(cols)" :maxlength="-1" />
 											<text v-if="cols.setting.suffix" class="uni-icon"
-												:class="[cols.setting.suffix]" @click="onChange(cols)">&#xe568;</text>
+												:class="[cols.setting.suffix]"
+												@click="onEnterChange(cols)">&#xe568;</text>
 										</view>
 										<!-- 涓嬫媺妗�鍗曢� cols.useDict?cols.dict:cols.selections-->
 										<uni-data-select id="dv_select" v-if="cols.name=='Select' "
 											:class="cols.disabled?'input-disabled':''" v-model="cols.value"
-											:localdata="cols.dict" @change="onChange(cols)" :disabled="cols.disabled"
-											:clear="false"></uni-data-select>
+											:localdata="cols.dict" @change="onEnterChange(cols)"
+											:disabled="cols.disabled" :clear="false"></uni-data-select>
 										<!-- 澶氳鏂囨湰 -->
 										<view class="input-wrapper" v-if="cols.name=='Textarea' ">
 											<textarea class="uni-input" :value="cols.value"
 												:class="cols.disabled?'input-disabled':''"
-												:placeholder="cols.placeholder" @blur="onModelValue(cols)"
+												:placeholder="cols.placeholder" @blur="onEnterChange(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">
+											@change="onCheckBoxValue" :data-attr="cols.fieldId" :data-index="index"
+											:data-iindex="key">
 											<label v-for="(cols2) in cols.selections" :key="cols2.value">
 												<checkbox :value="cols2.value"
 													:checked="cols.value.includes(cols2.value)" />
@@ -118,7 +139,8 @@
 										<!-- 鍗曢�妗�-->
 										<radio-group class="check_rememberPwd" v-if="cols.name=='Radio'"
 											:class="cols.disabled?'input-disabled':''" :disabled="cols.disabled"
-											:style="{'margin-left':'10rpx'}" @change="onModelValue(cols)">
+											:style="{'margin-left':'10rpx'}" @change="onRadioBoxValue"
+											:data-attr="cols.fieldId" :data-index="index" :data-iindex="key">
 											<label v-for="(cols2) in cols.selections" :key="cols2.value">
 												<radio :value="cols2.value" :checked="cols2.value === cols.value" />
 												<text>{{cols2.label}}</text>
@@ -126,16 +148,30 @@
 										</radio-group>
 										<!-- Switch寮�叧 -->
 										<switch v-if="cols.name=='Switch'" :class="cols.disabled?'input-disabled':''"
-											:disabled="item.disabled" v-model="cols.value" @change="onModelValue(cols)"
+											: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"
+											<!-- <picker mode="date" class="date_iput"
 												:class="cols.disabled?'input-disabled':''" :disabled="item.disabled"
 												:value="cols.value" @change="onModelValue(cols)">
 												<view class="picker">{{cols.value}}</view>
-											</picker>
+											</picker> -->
+											<OIDatePicker v-if="cols.name=='DatePicker'"
+												:class="cols.disabled?'input-disabled':''" :disabled="cols.disabled"
+												v-model="cols.value" :placeholder="cols.placeholder"
+												:defaultToday="cols.setting.defaultToday" :format="cols.setting.format"
+												@change="onModelValue(cols)" />
+											<OIDatePickerRange v-if="cols.name=='DatePickerRange'"
+												:rangeSeparator="cols.setting.separator" :format="cols.setting.format"
+												:class="cols.disabled?'input-disabled':''" :disabled="cols.disabled"
+												v-model="cols.value" :placeholder="cols.placeholder"
+												@change="onModelValue(cols)" />
+											<OITimePicker v-if="cols.name=='TimePicker'"
+												:class="cols.disabled?'input-disabled':''" :disabled="cols.disabled"
+												v-model="cols.value" :placeholder="cols.placeholder"
+												@change="onModelValue(cols)" />
 										</view>
 
 									</view>
@@ -177,10 +213,17 @@
 		runCustomEvent,
 		dataObjQuery
 	} from "@/api/data.js"
-
+	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
 		},
 		onBackPress(e) {
 			// console.log("鐩戝惉杩斿洖鎸夐挳浜嬩欢",e);
@@ -441,123 +484,24 @@
 					});
 				}
 			},
+			onCheckBoxValue(e) { //缁戝畾Model鍊�+				let values = e.detail.value || []
+				var attr = item.fieldId;
+				this.detail2_styledef.form.model[attr] = values;
 
-			// 鍐呭鍙樺寲鍚庝簨浠�-			async onChange(event) {
-				try {
-					if (event.id) {
-						var obj_attr = this.detail2_styledef.form.model;
-						// console.log(obj_attr);
-						var input_param = Base64.encode(
-							JSON.stringify(
-								Object.keys(obj_attr).map((a) => ({
-									attr: a,
-									value: obj_attr[a] || "",
-								}))
-							)
-						);
-						var $this = this;
-						var dataInfo = {
-							ed_type: 0,
-							start_transaction: true,
-							class_id: this.$data.detail2_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: '',
-							compose_info: '',
-							ext_info: '',
-							global_attr: '',
-							input_param: input_param,
-						};
-						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/>') : '';
-								if (result.ret == 801) uni.showModal({
-									title: this.translateSys("tip"),
-									content: tip,
-									showCancel: false,
-									confirmText: this.translateSys('close')
-								});
-								else uni.showModal({
-									title: this.translateSys("tip"),
-									content: tip + ',' + this.translateSys('tip') + ':' + result
-										.ret,
-									showCancel: false,
-									confirmText: this.translateSys('close')
-								});
-								return false;
-							} else {
-								var tip = result.info ? typeof result.info == 'string' ? result.info :
-									result.info.join('<br/>') : '';
-								if (tip) uni.showModal({
-									title: this.translateSys("tip"),
-									content: tip,
-									showCancel: false,
-									confirmText: this.translateSys('close')
-								});
-
-								if (result.result_type == 0 && result.action) {
-									result.action.forEach(item => {
-										if (item.action_type == "set_dlg_attr") {
-											// value = {"attr":"xxx", "value":"xxx"}
-											var data = item.value;
-											$this.$data.detail2_styledef.form.items.forEach(async (
-												ele, index) => {
-												data.forEach(async (ele2, index) => {
-													if (ele.fieldId == ele2
-														.attr) {
-														ele.value = ele2
-															.value;
-													}
-												});
-											});
-										}
-									});
-								} else {
-									// this.detail2StyleDefList=[];
-									if (result.info) {
-										uni.showModal({
-											title: this.translateSys("tip"),
-											content: result.info,
-											showCancel: false,
-											confirmText: this.translateSys('close')
-										});
-									}
-								}
-							}
-
-
-						}).catch(ex => {
-							// console.log(ex);
-							uni.showModal({
-								title: this.translateSys("error") + "8.1",
-								content: ex.errMsg,
-								showCancel: false,
-								confirmText: this.translateSys('close')
-							});
-						});
-					}
-				} catch (ex) {
-					var tip = typeof ex == "string" ? ex : ex.message;
-					uni.showModal({
-						title: this.translateSys("error") + "8.2",
-						content: this.translate('execute_after_change_event_failed') + this.translateSys(
-								"comma") +
-							this.translate('reason') + this.translateSys("colon") + tip,
-						showCancel: false,
-						confirmText: this.translateSys('close')
-					});
-
-				}
+			},
+			onRadioBoxValue(e) { //缁戝畾Model鍊�+				let values = e.detail.value || ""
+				var attr = item.fieldId;
+				this.detail2_styledef.form.model[attr] = values;
+			},
+			onModelValue(item) {
+				var attr = item.fieldId;
+				this.detail2_styledef.form.model[attr] = item.value;
+			},
+			onEnterChange(item) {
+				var attr = item.fieldId;
+				this.detail2_styledef.form.model[attr] = item.value;
 			},
 			//鐐瑰嚮鎸夐挳
 			onBtnClick(btn) {
@@ -566,8 +510,10 @@
 					uni.showModal({
 						title: this.translateSys("tip"),
 						content: btn.PromptContent || this.translate("are_you_sure"),
+						cancelText: this.translateSys('ok'),
+						confirmText: this.translateSys('cancel'),
 						success: function(res) {
-							if (res.confirm) {
+							if (res.cancel) {
 								that.onButtonClicked(btn);
 								// } else if (res.cancel) {
 								// 	console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷');
@@ -594,8 +540,10 @@
 							uni.showModal({
 								title: this.translateSys("tip"),
 								content: btn.PromptContent || this.translate("are_you_sure"),
+								cancelText: this.translateSys('ok'),
+								confirmText: this.translateSys('cancel'),
 								success: function(res) {
-									if (res.confirm) {
+									if (res.cancel) {
 										that.onButtonClicked(btn);
 										// } else if (res.cancel) {
 										// 	console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷');
@@ -989,7 +937,8 @@
 
 		.uni-icon {
 			/* border: 1px solid red; */
-			width: 8%;
+			width: 30rpx;
+			padding: 10rpx 5rpx;
 			font-family: uniicons;
 			font-size: 40rpx;
 			font-weight: 400;

--
Gitblit v1.9.1