From b1233b1089142611698e913e565ec232334ba261 Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期三, 14 五月 2025 08:37:16 +0800
Subject: [PATCH] form selections

---
 pages/modal/3200.vue |  122 +++++++++++++---------------------------
 1 files changed, 39 insertions(+), 83 deletions(-)

diff --git a/pages/modal/3200.vue b/pages/modal/3200.vue
index 4815484..f07e6d6 100644
--- a/pages/modal/3200.vue
+++ b/pages/modal/3200.vue
@@ -25,42 +25,8 @@
 							</div>
 							<div class="dv-panel-input" v-if="!ListHtml_Panel"
 								:style="param.ListPage.CheckBox==true && param.ListPage.Click_View==true?'width:85%;':param.ListPage.CheckBox==false && param.ListPage.Click_View==true?'width:91%;':param.ListPage.CheckBox==true && param.ListPage.Click_View==false?'width:88%;':'width:100%;'">
-								<uni-forms class="v-area dv-panel" label-align="right">
-									<view v-for="(item,index) in style.form.items" :key="index">
-										<!-- 鏍呮牸甯冨眬 -->
-										<uni-row v-if="item.name == 'Layout'" :gutter="item.setting.gutter">
-											<uni-col
-												:span="item.setting.spanList && item.setting.spanList[key]? item.setting.spanList[key] : 24 / item.setting.col"
-												v-for="(col,key) in item.setting.colList" :key="key">
-												<uni-forms-item v-if="col != null"
-													:label="col.labelWidth === 0 ? '' : col.label? col.label+'锛�:''"
-													:label-width="col.labelWidth || col.labelWidth === 0 ? col.labelWidth : 100+'px'">
-													<view v-if="col.disabled">{{col.value}}</view>
-													<input class="uni-input"
-														v-else-if="col.name=='Input' || col.name=='InputNumber'"
-														:type="col.name=='InputNumber'?'number':'text'"
-														v-model="col.value" :placeholder="col.placeholder"
-														:maxlength="-1" />
-													<view v-else>{{col.value}}</view>
+								<OIForm class="v-area dv-panel" :form="style.form.items" viewMode></OIForm>
 
-												</uni-forms-item>
-												<uni-forms-item v-else label=""></uni-forms-item>
-											</uni-col>
-										</uni-row>
-										<uni-forms-item v-else
-											:label="item.labelWidth === 0 ? '' : item.label? item.label+'锛�:''"
-											:label-width="item.labelWidth || item.labelWidth === 0 ? item.labelWidth : 100+'px'"
-											:style="{ textAlign: item.setting.align }">
-											<view v-if="item.disabled">{{item.value}}</view>
-											<input v-else-if="item.name=='Input' || item.name=='InputNumber' "
-												class="uni-input" :type="item.name=='InputNumber'?'number':'text'"
-												v-model="item.value" :disabled="item.disabled"
-												:placeholder="item.placeholder" :maxlength="-1" />
-											<view v-else>{{item.value}}</view>
-
-										</uni-forms-item>
-									</view>
-								</uni-forms>
 							</div>
 							<div class="dv-panel-button" v-if="param.ListPage.Click_View==true">
 								<a @click="onViewPageClick(style)"><i class="mobox-normal-right-arrow" /></a>
@@ -89,7 +55,7 @@
 			<view class="uni-padding-wrap" v-if="param.ListPage.Page_Button.length>0">
 				<view class="uni-btn-v">
 					<a @tap="actionSheetTap">
-						<Icon class="mobox-normal-more" />
+						<text class="mobox-normal-more" />
 					</a>
 				</view>
 			</view>
@@ -98,7 +64,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,
@@ -112,11 +80,10 @@
 	} from "@/api/data.js"
 	import dayjs from "dayjs";
 	import OIForm from '@/components/oi-form/index.vue'
+	import buttonClickMixin from '@/mixins/button-click.js';
 
 	export default {
-		modules: {
-			Base64,
-		},
+		mixins: [buttonClickMixin],
 		components: {
 			OIForm
 		},
@@ -186,8 +153,8 @@
 			uni.setNavigationBarTitle({
 				title: options.titlename
 			}); //璁剧疆椤堕儴鏍囬 
-			this.$data.title = options.titlename;
-			this.$data.param = JSON.parse(options.param);
+			this.title = options.titlename;
+			this.param = JSON.parse(options.param);
 
 
 			this.styledef = {};
@@ -245,7 +212,7 @@
 			//   this.query_id = "";
 			//   await this.loadDataGetList();
 			// }
-			// console.log(this.$data.param);
+			// console.log(this.param);
 			//椤甸潰鍒濆鍖栬幏鍙栫劍鐐� 			// this.focusMateria=true; 
 		},
@@ -285,7 +252,7 @@
 					//浼犲叆鍙傛暟鍊� 					if (paramValue) {
 						const attrs = paramValue.attrs || [];
-						(this.$data.head_styledef?.form?.items || []).forEach(async (ele, index) => {
+						(this.head_styledef?.form?.items || []).forEach(async (ele, index) => {
 							if (ele.name != "Layout") {
 								attrs.forEach(async (ele2, index2) => {
 									if (ele.fieldId == ele2.name) {
@@ -357,9 +324,9 @@
 						if (!result.style_def.includes('"')) styledef = Base64.decode(result
 							.style_def);
 					}
-					$this.$data.head_styledef = result.style_def ? JSON.parse(styledef) : {};
+					$this.head_styledef = result.style_def ? JSON.parse(styledef) : {};
 					// this.form = this.head_styledef.form.model;
-					// console.log($this.$data.head_styledef);
+					// console.log($this.head_styledef);
 					if ($this.head_styledef.form?.items) {
 						$this.head_styledef.form.items.forEach(async (ele, index) => {
 							console.log(ele.useDict);
@@ -374,7 +341,7 @@
 										$this.head_styledef.form
 											.model[ele.fieldId] = itemName;
 									}
-									$this.head_styledef.form.items[index].dict = selections.map((a) => {
+									$this.head_styledef.form.items[index].selections = selections.map((a) => {
 										return {
 											value: a.value,
 											text: a.label
@@ -416,8 +383,8 @@
 						if (!result.style_def.includes('"')) styledef = Base64.decode(result
 							.style_def);
 					}
-					$this.$data.detail1_styledef = result.style_def ? JSON.parse(styledef) : {};
-					$this.$data.detail1_styledef.SelBut_Checked = false;
+					$this.detail1_styledef = result.style_def ? JSON.parse(styledef) : {};
+					$this.detail1_styledef.SelBut_Checked = false;
 				} catch (ex) {
 					// console.log(ex);
 					let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex
@@ -769,7 +736,7 @@
 				//鍒锋柊褰撳墠椤甸潰
 				this.initial();
 				// uni.redirectTo({
-				// 	url:'../modal/3200?param='+JSON.stringify(this.$data.param)+"&titlename="+this.$data.title,
+				// 	url:'../modal/3200?param='+JSON.stringify(this.param)+"&titlename="+this.title,
 				// });
 			},
 			//鐐瑰嚮鏄剧ず娴忚瀵硅薄鏄剧ず椤甸潰
@@ -842,7 +809,14 @@
 							}
 						}
 					});
-				} else that.onButtonClicked(btn, style);
+				} else {
+					this.handleButtonClick((done) => {
+						that.onButtonClicked(btn, style);
+						setTimeout(() => {
+							done(); // 閲嶇疆鐘舵�
+						}, 1000);
+					});
+				}
 			},
 			//鐐瑰嚮鎸夐挳鍒楄〃
 			actionSheetTap() {
@@ -1321,7 +1295,7 @@
 						var dataInfo = {
 							ed_type: 0,
 							start_transaction: true,
-							class_id: this.$data.head_styledef.form.clsId,
+							class_id: this.head_styledef.form.clsId,
 							class_name: '',
 							event_id: event.id,
 							event_name: '',
@@ -1950,37 +1924,9 @@
 		.dv-panel {
 			background-color: #efefef;
 			padding: 20rpx 20rpx 20rpx 0px;
-			
-			.uni-forms-item {
-				padding-bottom: 5rpx;
-				margin-bottom: 0;
-			
-				.uni-forms-item__label {
-					height: 20px !important;
-					padding: 0 10rpx 0 0 !important;
-				}
-			
-				.uni-input {
-					width: calc(100% - 12rpx);
-					padding: 5rpx;
-					border: 1px solid #d5d5d5;
-					color: #2d8cf0;
-					height: 20px;
-					background: #FFF;
-					line-height: 20px;
-					border-radius: 6px !important;
-					font-size: 14px;
-					font-family: inherit;
-					box-shadow: none !important;
-					transition-duration: 0.1s;
-					vertical-align: middle;
-				}
-			
-				.uni-input:hover {
-					border: 1px solid rgb(41, 121, 255);
-				}
-			}
-			
+			border-radius: 12rpx;
+			margin-bottom: 20rpx;
+			text-align: right;
 		}
 
 		.dv-listHtml-Panel,
@@ -1989,6 +1935,16 @@
 			width: 91%;
 			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