From 01fa158740467ca0db83b131249beeeb515a73c2 Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期二, 01 四月 2025 16:03:57 +0800
Subject: [PATCH] test

---
 pages/modal/3200_view.vue |  236 ++++++++++------------------------------------------------
 1 files changed, 42 insertions(+), 194 deletions(-)

diff --git a/pages/modal/3200_view.vue b/pages/modal/3200_view.vue
index 63b1fa5..d93b89e 100644
--- a/pages/modal/3200_view.vue
+++ b/pages/modal/3200_view.vue
@@ -4,180 +4,12 @@
 			<view class="dv-panel dv-panel-bkcolor">
 				<div class="dv-panel-input">
 					<!-- HTML椤甸潰绫诲瀷鏄剧ず -->
-					<div class="dv-viewHtml-Panel" v-if="ViewHtml_Panel" v-html="ViewHtml_Panel">
-						<!-- <div>
-						  <label class="item-label">浠诲姟缂栫爜:</label>
-						  <span class="item-span">TA240318-00005</span>
-						</div> -->
-					</div>
+					<view class="dv-viewHtml-Panel" v-if="ViewHtml_Panel" v-html="ViewHtml_Panel"></view>
+
 					<!-- 鑷畾涔夎〃鍗曠被鍨嬫樉绀�-->
 					<div v-if="!ViewHtml_Panel">
-						<div v-for="(item,index) in detail2_styledef.form.items">
-							<!-- 鏅�甯冨眬 -->
-							<view v-if="item.name!='Layout'">
-								<text class="txt_title" :style="{'width':item.labelWidth+'px'}">{{item.label}}锛�/text>
-								<!-- 鏂囨湰妗�鏁板瓧妗�-->
-								<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]"
-										@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)" @keyup.enter="onEnterChange(item)"
-										@blur="onEnterChange(item)" :maxlength="-1" />
-									<text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]"
-										@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="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="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" :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>
-									</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="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>
-									</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 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>
-							<!-- 鏍呮牸甯冨眬 -->
-							<uni-row class="demo-uni-row" v-if="item.name=='Layout'">
-								<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>
-										<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]"
-												@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="onEnterChange(cols)"
-												@keyup.enter="onEnterChange(cols)" :maxlength="-1" />
-											<text v-if="cols.setting.suffix" class="uni-icon"
-												: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="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="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" :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)" />
-												<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"
-											: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>
-											</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="item.disabled"
-												:value="cols.value" @change="onModelValue(cols)">
-												<view class="picker">{{cols.value}}</view>
-											</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>
+						<OIForm :form="detail2_styledef.form" viewMode></OIForm>
 
-									</view>
-								</uni-col>
-							</uni-row>
-						</div>
 					</div>
 				</div>
 			</view>
@@ -193,7 +25,7 @@
 			<view class="uni-padding-wrap" v-if="param.ViewPage.Page_Button.length>2">
 				<view class="uni-btn-v">
 					<a @tap="actionSheetTap">
-						<Icon class="mobox-normal-more" />
+						<text class="mobox-normal-more" />
 					</a>
 				</view>
 			</view>
@@ -202,7 +34,9 @@
 </template>
 
 <script>
-	import Base64 from '../../components/js-base64/base64.js'
+	import {
+		Base64
+	} from '@/js/Base64.js';
 	import classUtils from "@/js/utils.js"
 	import {
 		appGetInfo,
@@ -213,21 +47,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'
+	import OIForm from '@/components/oi-form/index.vue'
+	import buttonClickMixin from '@/mixins/button-click.js';
+
 	export default {
-		modules: {
-			Base64,
-		},
+		mixins: [buttonClickMixin],
 		components: {
-			OIDatePicker,
-			OIDatePickerRange,
-			OITimePicker
+			OIForm
 		},
 		onBackPress(e) {
 			// console.log("鐩戝惉杩斿洖鎸夐挳浜嬩欢",e);
-			var eventChannel = this.$scope.eventChannel;
+			const eventChannel = this.getOpenerEventChannel();
 			// const eventChannel = this.getOpenerEventChannel();
 			eventChannel.emit('ExitViewEvent', "");
 			// uni.navigateBack({
@@ -266,11 +96,11 @@
 			uni.setNavigationBarTitle({
 				title: options.titlename
 			}); //璁剧疆椤堕儴鏍囬 
-			this.$data.title = options.titlename;
-			this.$data.param = JSON.parse(options.param);
-			console.log(this.$data.param);
-			this.$data.styleDef = JSON.parse(options.style);
-			// console.log(this.$data.styleDef);
+			this.title = options.titlename;
+			this.param = JSON.parse(options.param);
+			console.log(this.param);
+			this.styleDef = JSON.parse(options.style);
+			// console.log(this.styleDef);
 			if (this.param.ViewPage.View_UIDef.ui_type == "HTML椤甸潰") {
 				// HTML椤甸潰
 				//鑾峰彇鏁版嵁绫荤殑HTML椤甸潰
@@ -351,9 +181,9 @@
 						if (!result.style_def.includes('"')) styledef = Base64.decode(result
 							.style_def);
 					}
-					$this.$data.detail2_styledef = result.style_def ? JSON.parse(styledef) : {};
-					$this.$data.detail2_styledef.SelBut_Checked = false;
-					// console.log($this.$data.detail2_styledef);
+					$this.detail2_styledef = result.style_def ? JSON.parse(styledef) : {};
+					$this.detail2_styledef.SelBut_Checked = false;
+					// console.log($this.detail2_styledef);
 					if ($this.detail2_styledef.form?.items) {
 						$this.styleDef.form.attrs.forEach((attr) => {
 							// info[attr.name]=attr.value;
@@ -520,7 +350,15 @@
 							}
 						}
 					});
-				} else that.onButtonClicked(btn);
+				} else {
+					this.handleButtonClick((done) => {
+						that.onButtonClicked(btn);
+						setTimeout(() => {
+							done(); // 閲嶇疆鐘舵�
+						}, 1000);
+					});
+
+				}
 			},
 			//鐐瑰嚮鎸夐挳鍒楄〃
 			actionSheetTap() {
@@ -657,7 +495,7 @@
 							result.action.forEach(item => {
 								if (item.action_type == "goback_to_pre_page") { //杩斿洖涓婁竴椤� 									var value = item.value;
-									// const eventChannel = this.$scope.eventChannel;
+									// const eventChannel = this.getOpenerEventChannel();
 									// // const eventChannel = this.getOpenerEventChannel();
 									// eventChannel.emit('ExitViewEvent',"");
 									uni.navigateBack({
@@ -867,7 +705,7 @@
 			},
 
 			cancel(e) { //鍙栨秷
-				var eventChannel = this.$scope.eventChannel;
+				const eventChannel = this.getOpenerEventChannel();
 				// const eventChannel = this.getOpenerEventChannel();
 				eventChannel.emit('ExitViewEvent', "");
 				uni.navigateBack({
@@ -974,6 +812,16 @@
 			width: 100%;
 			display: inline-block;
 			text-align: left;
+
+			.uni-forms-item {
+				padding-bottom: 5rpx;
+				margin-bottom: 0;
+
+				.uni-forms-item__label {
+					height: 20px !important;
+					padding: 0 10rpx 0 0 !important;
+				}
+			}
 		}
 
 		.dv-panel-buticon {

--
Gitblit v1.9.1