From 625badef071d0931b3868b2ba672d51ce2cc5b91 Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期三, 19 二月 2025 10:01:20 +0800
Subject: [PATCH] action set_subtable_page_row 处理 condition

---
 locale/es.json            |    7 
 pages/modal/3018_2.vue    |   75 +++
 pages/modal/3200_view.vue |   43 +-
 pages/modal/5602.vue      |  158 +++++++-
 pages/modal/5601.vue      |  342 +++++++++++++++---
 pages/modal/3037_2.vue    |   80 +++-
 locale/zh-Hans.json       |    7 
 App.vue                   |   10 
 locale/en.json            |    4 
 locale/zh-Hant.json       |   11 
 What's New.txt            |    2 
 pages/modal/3200.vue      |   66 ++-
 manifest.json             |   10 
 pages/modal/5600.vue      |  221 +++++++++---
 pages/login/index.vue     |   22 +
 15 files changed, 820 insertions(+), 238 deletions(-)

diff --git a/App.vue b/App.vue
index 514d2de..9c61ef0 100644
--- a/App.vue
+++ b/App.vue
@@ -22,6 +22,16 @@
 			this.initscan();
 		},
 		onShow: function() {
+			const args = plus.runtime.arguments || ""
+			if(args)
+			{
+				uni.showModal({
+					title: "App鍙傛暟",
+					content: args,
+					showCancel: false,
+					confirmText:"cancel"
+				});
+			}
 			console.log('App Show')
 		},
 		onHide: function() {
diff --git "a/What\047s New.txt" "b/What\047s New.txt"
index e61cc1d..b6850bf 100644
--- "a/What\047s New.txt"
+++ "b/What\047s New.txt"
@@ -1,3 +1,5 @@
+2025.02.19
+1.action set_subtable_page_row 澶勭悊 condition 
 2024.08.20
 1.鑾峰彇pda鍔熻兘闇�鍒ゆ柇鏉冮檺
 2024.08.16
diff --git a/locale/en.json b/locale/en.json
index eafed40..5e94d7c 100644
--- a/locale/en.json
+++ b/locale/en.json
@@ -120,5 +120,7 @@
 	"page.cannot_related_function": "Do not support jumping to function points",
 	"page.function_not_exist": "Function point does not exist!",
 	"page.function_not_edit_dlg": "This function point does not have an editing window configured!",
-	"page.no_find_attr_diaplay": "No attributes found to display!"
+	"page.no_find_attr_diaplay": "No attributes found to display!",
+	"page.illegal_dividend":  "Illegal dividend ",
+	"page.unrecognized_operator": "unrecognized operator "
 }
\ No newline at end of file
diff --git a/locale/es.json b/locale/es.json
index 19be636..dbe3803 100644
--- a/locale/es.json
+++ b/locale/es.json
@@ -119,8 +119,7 @@
 	"page.cannot_related_function": "No se admite saltar a un punto funcional",
 	"page.function_not_exist": "隆隆 los puntos funcionales no existen!",
 	"page.function_not_edit_dlg": "隆隆 el punto de funci贸n no est谩 configurado para la ventana de edici贸n!",
-	"page.no_find_attr_diaplay": "隆隆 no se han encontrado atributos visibles!"
-
-
-
+	"page.no_find_attr_diaplay": "隆隆 no se han encontrado atributos visibles!",
+	"page.illegal_dividend":  "Divisi贸n ilegal ",
+	"page.unrecognized_operator": "Operador no reconocido "
 }
\ No newline at end of file
diff --git a/locale/zh-Hans.json b/locale/zh-Hans.json
index 663d4f8..331d2c4 100644
--- a/locale/zh-Hans.json
+++ b/locale/zh-Hans.json
@@ -125,10 +125,9 @@
 	"page.function_not_exist": "鍔熻兘鐐逛笉瀛樺湪锛�,
 	"page.function_not_edit_dlg": "璇ュ姛鑳界偣鏈厤缃紪杈戠獥鍙o紒",
 	"page.no_find_attr_diaplay": "鏈壘鍒板彲鏄剧ず鐨勭殑灞炴�锛�,
-
-
-	"page.cannot_prj_function": "鏆傛椂鏈敮鎸侀�鎷╅」鐩帴鍙o紒"
-
+	"page.cannot_prj_function": "鏆傛椂鏈敮鎸侀�鎷╅」鐩帴鍙o紒",
+	"page.illegal_dividend": "闈炴硶琚櫎鏁�,
+	"page.unrecognized_operator": "鏃犳硶璇嗗埆鐨勬搷浣滅"
 
 
 }
\ No newline at end of file
diff --git a/locale/zh-Hant.json b/locale/zh-Hant.json
index dbfd844..2d0fbe9 100644
--- a/locale/zh-Hant.json
+++ b/locale/zh-Hant.json
@@ -58,11 +58,11 @@
 	"sys.unrealized": "鏈鐝�,
 	"sys.select": "閫夋嫨",
 	"sys.please": "璇�,
-	
+
 	"page.server": "鏈嶅嫏鍦板潃",
 	"page.mobox3_app_type": "mobox3 pda鎳夌敤椤炲瀷",
 	"page.mobox3_port": "mobox3鏈嶅嫏鍩�,
-	"page.input_server": "璜嬭几鍏ユ湇鍕欏湴鍧�,	
+	"page.input_server": "璜嬭几鍏ユ湇鍕欏湴鍧�,
 	"page.set_server": "瑷畾鏈嶅嫏",
 	"page.tip_app_update": "绯荤当鏈夋柊鐗堟湰锛屾槸鍚﹂渶瑕佹洿鏂帮紵",
 	"page.tip_no_web_server": "鏈几鍏ョ恫绔欏湴鍧�紝璜嬮噸鏂伴厤瀵樿几鍏�,
@@ -119,9 +119,8 @@
 	"page.cannot_related_function": "涓嶆敮鎸佽烦杞夊埌鍔熻兘榛�,
 	"page.function_not_exist": "鍔熻兘榛炰笉瀛樺湪锛�,
 	"page.function_not_edit_dlg": "瑭插姛鑳介粸鏈厤瀵樼法杓绐楋紒",
-	"page.no_find_attr_diaplay": "鏈壘鍒板彲椤ず鐨勭殑鍐呭锛�
-
-
-
+	"page.no_find_attr_diaplay": "鏈壘鍒板彲椤ず鐨勭殑鍐呭锛�,
+	"page.illegal_dividend": "闈炴硶琚櫎鏁�,
+	"page.unrecognized_operator": "鐒℃硶璀樺垾鐨勬搷浣滅"
 
 }
\ No newline at end of file
diff --git a/manifest.json b/manifest.json
index cbf700e..2169946 100644
--- a/manifest.json
+++ b/manifest.json
@@ -2,8 +2,8 @@
     "name" : "MoboxPDA",
     "appid" : "__UNI__56D451E",
     "description" : "",
-    "versionName" : "1.1.38",
-    "versionCode" : 1138,
+    "versionName" : "1.1.40",
+    "versionCode" : 1140,
     "transformPx" : false,
     /* 5+App鐗规湁鐩稿叧 */
     "app-plus" : {
@@ -42,11 +42,13 @@
                     "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
                     "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
                 ],
-                "abiFilters" : [ "armeabi-v7a", "arm64-v8a" ]
+                "abiFilters" : [ "armeabi-v7a", "arm64-v8a" ],
+                "schemes" : "wmspda"
             },
             /* ios鎵撳寘閰嶇疆 */
             "ios" : {
-                "dSYMs" : false
+                "dSYMs" : false,
+                "urltypes" : "wmspda"
             },
             /* SDK閰嶇疆 */
             "sdkConfigs" : {
diff --git a/pages/login/index.vue b/pages/login/index.vue
index 7958b0d..de15e2d 100644
--- a/pages/login/index.vue
+++ b/pages/login/index.vue
@@ -70,7 +70,10 @@
 			</uni-popup>
 			<!-- 鐗堟湰鍗囩骇寮圭獥缁撴潫 -->
 		</view>
-
+		<!-- <button @click="onClickWms">鐧诲綍wms</button>
+		<view class="webview">
+			<web-view ref="webview" src="http://115.29.185.26:5000/mobox3/#/"></web-view>
+		</view> -->
 	</view>
 
 </template>
@@ -400,6 +403,13 @@
 				}
 
 			},
+			onClickWms()
+			{
+				let otherAppSchemeURL = "testapp://pages/index/index"; // 鏇挎崲涓虹洰鏍嘺pp鐨剆cheme URL
+				plus.runtime.openURL(otherAppSchemeURL, function(error) {
+					console.error('鎵撳紑搴旂敤澶辫触: ', error);
+				}, "uni.TeatApp");
+			},
 			translate(t) {
 				if (typeof this.$t == "function") return this.$t(`page.${t}`)
 				else return t;
@@ -409,8 +419,16 @@
 				else return t;
 			},
 		},
-		onLoad() {
+		onLoad(options) {
 			//鑾峰彇mac鍦板潃
+			let tip=`login:account:${options.account || ""},password:${options.password || ""}`
+			// console.log(options);
+			uni.showModal({
+				title: "鍙傛暟",
+				content: tip,
+				showCancel: false,
+				confirmText:"cancel"
+			});
 			var url = utils.session.getValue('server');
 			var username = utils.session.getValue('account');
 			var userpwd = utils.session.getValue('password');
diff --git a/pages/modal/3018_2.vue b/pages/modal/3018_2.vue
index 4c59b99..ab196d0 100644
--- a/pages/modal/3018_2.vue
+++ b/pages/modal/3018_2.vue
@@ -5,7 +5,7 @@
 			<uni-forms ref="baseForm" label-align="right">
 				<view class="v-headStyle" v-for="(item,index) in head_styledef.form.items">
 					<!-- 鏅�甯冨眬 -->
-					<uni-forms-item v-if="item.name != 'Layout'&& item.show==true" :label="item.label +'锛� "
+					<uni-forms-item v-if="item.name != 'Layout'&& item.show==true" :label="item.label ? item.label +'锛�:'' "
 						:label-width="item.labelWidth+'px'">
 						<!-- <text class="txt_title" :style="{'width':item.labelWidth+'px'}">{{item.label}}锛�/text> -->
 						<!-- 涓嬫媺妗�鍗曢� item.useDict?item.dict:item.selections-->
@@ -36,17 +36,17 @@
 						</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">
-							<label>
-								<checkbox :value="item.value" :checked="item.value" />
-								<text>{{item.label}}</text>
+							: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"
-							@change="onModelValue(item)">
+							@change="onRadioBoxValue" :data-attr="item.fieldId">
 							<label v-for="(item2) in item.selections" :key="item2.value">
 								<radio :value="item2.value" :checked="item2.value === item.value" />
 								<text>{{item2.label}}</text>
@@ -68,7 +68,7 @@
 					<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">
-							<uni-forms-item v-if="cols!=null  && cols.show==true" :label="cols.label +'锛�"
+							<uni-forms-item v-if="cols!=null  && cols.show==true" :label="cols.label? cols.label +'锛�:''"
 								:label-width="cols.labelWidth+'px'">
 								<view class="input-wrapper" v-if="(cols.name=='Input' || cols.name=='InputNumber') ">
 									<text v-if="cols.setting.prefix" class="uni-icon" :class="[cols.setting.prefix]"
@@ -98,17 +98,16 @@
 								<!-- 澶嶉�妗�-->
 								<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>
+									@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="onModelValue(cols)">
+									@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>
@@ -388,6 +387,24 @@
 									await $this.DictGetInfo(ele.bind.dict,
 										styledefHead.form.model,
 										ele);
+								} else {
+									if (ele?.name === "Select") {
+										const selections = ele?.selections || []
+										//鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ�
+										let itemName = ele.value || "";
+										if (itemName) {
+											styledefHead.form
+												.model[ele.fieldId] = itemName;
+										}
+										ele.dict = selections.map((a) => {
+											return {
+												value: a.value,
+												text: a.label
+											}
+										})
+
+									}
+
 								}
 								if ($this.focusFieldId == "") {
 									if (ele.name == 'Input' || ele.name ==
@@ -408,6 +425,25 @@
 												.dict,
 												styledefHead.form
 												.model, col);
+										} else {
+											if (col?.name === "Select") {
+												const selections = col?.selections || []
+												//鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ�
+												let itemName = col.value || "";
+												if (itemName) {
+													styledefHead.form
+														.model[col.fieldId] = itemName;
+												}
+												col.dict = selections.map((a) => {
+													return {
+														value: a.value,
+														text: a.label
+													}
+												})
+
+
+											}
+
 										}
 										if ($this.focusFieldId == "") {
 											if (col.name == 'Input' || col
@@ -828,6 +864,17 @@
 			onModelValue(item) { //缁戝畾Model鍊� 				var attr = item.fieldId;
 				this.head_styledef.form.model[attr] = item.value;
+				console.log(item.value)
+			},
+			onCheckBoxValue(e) { //缁戝畾Model鍊�+				let values = e.detail.value || []
+				let attr = e.currentTarget?.dataset?.attr || ""
+				this.head_styledef.form.model[attr] = values;
+			},
+			onRadioBoxValue(e) { //缁戝畾Model鍊�+				let value = e.detail.value || ""
+				let attr = e.currentTarget?.dataset?.attr || ""
+				this.head_styledef.form.model[attr] = value;
 			},
 			classAttr_extButton(item) {
 				var onSuffixClickCallbackEvent = item.bind.onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑讳簨浠�diff --git a/pages/modal/3037_2.vue b/pages/modal/3037_2.vue
index 3c4dbe2..6e08aaa 100644
--- a/pages/modal/3037_2.vue
+++ b/pages/modal/3037_2.vue
@@ -39,16 +39,17 @@
 				</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>
+					: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" @change="onModelValue(item)">
+					:class="item.disabled?'input-disabled':''" :disabled="item.disabled" @change="onRadioBoxValue"
+					:data-attr="item.fieldId">
 					<label v-for="(item2) in item.selections" :key="item2.value">
 						<radio :value="item2.value" :checked="item2.value === item.value" />
 						<text>{{item2.label}}</text>
@@ -128,17 +129,17 @@
 							</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>
+								: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="onModelValue(item)">
+								: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>
@@ -194,17 +195,17 @@
 									<!-- 澶嶉�妗�-->
 									<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>
+										@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="onModelValue(cols)">
+										@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>
@@ -411,6 +412,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
+										}
+									})
+								}
+
 							}
 						});
 					}
@@ -455,6 +473,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
+										}
+									})
+								}
 							}
 						});
 					}
@@ -965,6 +998,17 @@
 					}
 				}
 			},
+			
+			onCheckBoxValue(e) { //缁戝畾Model鍊�+				let values = e.detail.value || []
+				let attr = e.currentTarget?.dataset?.attr || ""
+				this.head_styledef.form.model[attr] = values;
+			},
+			onRadioBoxValue(e) { //缁戝畾Model鍊�+				let value = e.detail.value || ""
+				let attr = e.currentTarget?.dataset?.attr || ""
+				this.head_styledef.form.model[attr] = value;
+			},
 			onModelValue(item) { //缁戝畾Model鍊� 				//console.log(e.target)
 				var attr = item.fieldId;
diff --git a/pages/modal/3200.vue b/pages/modal/3200.vue
index 27a704d..dc03306 100644
--- a/pages/modal/3200.vue
+++ b/pages/modal/3200.vue
@@ -16,7 +16,7 @@
 						: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"/>
+						@blur="onEnterChange(item)" :maxlength="-1" />
 					<text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]"
 						@click="onEnterChange(item)">&#xe568;</text>
 				</view>
@@ -50,9 +50,8 @@
 									<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')">
+										<!-- 鏂囨湰妗�鏁板瓧妗�-->
+										<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>
 											<input class="uni-input" :class="item.disabled?'input-disabled':''"
@@ -60,7 +59,8 @@
 												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)" @blur="onevent(item)"
+												:maxlength="-1" />
 											<text v-if="item.setting.suffix" class="uni-icon"
 												:class="[item.setting.suffix]" @click="onChange(item)">&#xe568;</text>
 										</view>
@@ -79,18 +79,20 @@
 										</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>
+											: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="onModelValue(item)">
+											:style="{'margin-left':'10rpx'}" @change="onModelValue(item)"
+											:data-attr="item.fieldId">
 											<label v-for="(item2) in item.selections" :key="item2.value">
 												<radio :value="item2.value" :checked="item2.value === item.value" />
 												<text>{{item2.label}}</text>
@@ -127,21 +129,19 @@
 														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="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'"
+												<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>
 												<!-- 澶氳鏂囨湰 -->
-												<view class="input-wrapper"
-													v-if="cols.name=='Textarea'">
+												<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)"
@@ -150,12 +150,12 @@
 												</view>
 												<!-- 澶嶉�妗�-->
 												<checkbox-group class="check_rememberPwd" v-if="cols.name=='Checkbox'"
-													:class="cols.disabled?'input-disabled':''" :disabled="item.disabled"
-													@change="onModelValue(cols)" :data-ischeck="cols.value"
-													:style="{'margin-left':'10rpx'}">
-													<label>
-														<checkbox :value="cols.value" :checked="cols.value" />
-														<text>{{cols.label}}</text>
+													: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>
 												<!-- 鍗曢�妗�-->
@@ -487,7 +487,25 @@
 							console.log(ele.useDict);
 							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
+										}
+									})
+								}
+
 							}
+
 						});
 
 					}
diff --git a/pages/modal/3200_view.vue b/pages/modal/3200_view.vue
index cf928fc..ab5432a 100644
--- a/pages/modal/3200_view.vue
+++ b/pages/modal/3200_view.vue
@@ -17,15 +17,15 @@
 							<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') ">
+								<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>
 									<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)" @blur="onevent(item)"
+										:maxlength="-1" />
 									<text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]"
 										@click="onChange(item)">&#xe568;</text>
 								</view>
@@ -43,18 +43,17 @@
 								</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>
+									: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="onModelValue(item)">
+									: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>
@@ -80,8 +79,7 @@
 									<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') ">
+										<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>
 											<input class="uni-input" :class="cols.disabled?'input-disabled':''"
@@ -89,7 +87,8 @@
 												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="onevent(cols)"
+												:maxlength="-1" />
 											<text v-if="cols.setting.suffix" class="uni-icon"
 												:class="[cols.setting.suffix]" @click="onChange(cols)">&#xe568;</text>
 										</view>
@@ -108,18 +107,18 @@
 										</view>
 										<!-- 澶嶉�妗�-->
 										<checkbox-group class="check_rememberPwd" v-if="cols.name=='Checkbox'"
-											:class="cols.disabled?'input-disabled':''" :disabled="item.disabled"
-											@change="onModelValue(cols)" :data-ischeck="cols.value"
-											:style="{'margin-left':'10rpx'}">
-											<label>
-												<checkbox :value="cols.value" :checked="cols.value" />
-												<text>{{cols.label}}</text>
+											: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" :style="{'margin-left':'10rpx'}"
-											@change="onModelValue(cols)">
+											:class="cols.disabled?'input-disabled':''" :disabled="cols.disabled"
+											:style="{'margin-left':'10rpx'}" @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>
diff --git a/pages/modal/5600.vue b/pages/modal/5600.vue
index 3db80aa..b1f2596 100644
--- a/pages/modal/5600.vue
+++ b/pages/modal/5600.vue
@@ -20,7 +20,7 @@
 						:placeholder="item.placeholder"
 						:style="{'width':item.setting.prefix && item.setting.suffix?'78%':item.setting.prefix || item.setting.suffix?'87%':'96%'}"
 						:focus="focusFieldId == item.fieldId" @focus="ontap(index,item)" @click="onClick(item)"
-						@keyup.enter="onEnterChange(item)" @blur="onEnterChange(item)"  :maxlength="-1"/>
+						@keyup.enter="onEnterChange(item)" @blur="onEnterChange(item)" :maxlength="-1" />
 					<text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]"
 						@click="classAttr_extButton(item)">&#xe568;</text>
 				</view>
@@ -59,7 +59,7 @@
 													<input class="uni-input" v-if="!item.disabled"
 														:type="item.name=='InputNumber'?'number':'text'"
 														v-model="item.value" :disabled="item.disabled"
-														:placeholder="item.placeholder"  :maxlength="-1"/>
+														:placeholder="item.placeholder" :maxlength="-1" />
 												</view>
 												<!-- 鏍呮牸甯冨眬 -->
 												<uni-row class="demo-uni-row" v-if="item.name=='Layout'">
@@ -73,7 +73,7 @@
 															<input class="uni-input" v-if="!cols.disabled"
 																:type="cols.name=='InputNumber'?'number':'text'"
 																v-model="cols.value" :disabled="cols.disabled"
-																:placeholder="cols.placeholder"  :maxlength="-1"/>
+																:placeholder="cols.placeholder" :maxlength="-1" />
 														</view>
 													</uni-col>
 												</uni-row>
@@ -163,7 +163,7 @@
 				</div>
 			</view>
 		</view>
-	<view>
+		<view>
 			<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' }"
@@ -238,8 +238,8 @@
 				selectAttrObj: {},
 				okLoading: false,
 				ok2Loading: false,
-				
-				
+
+
 				global_attr: [],
 				refdatastore: [], //寮曠敤鏁版嵁瀛樺偍鍖�/ {attr:'G_PRJ_' + bindattr + '_ID', value:info.id}
 				popupType: "center",
@@ -375,6 +375,23 @@
 						$this.$data.head_styledef.form.items.forEach(async (ele, index) => {
 							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
+										}
+									})
+								}
+
 							}
 							if ($this.focusFieldId == "") {
 								if (ele.name == 'Input' || ele.name == 'InputNumber') {
@@ -426,6 +443,23 @@
 						$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
+											.model[ele.fieldId] = itemName;
+									}
+									$this.detail1_styledef.form.items[index].dict = selections.map((a) => {
+										return {
+											value: a.value,
+											text: a.label
+										}
+									})
+								}
+
 							}
 						});
 					}
@@ -482,7 +516,7 @@
 					var itemName = '';
 					(result.dict_item_list || []).forEach((item) => {
 						if (item.is_default == '1')
-							itemName =  item.name
+							itemName = item.name
 						list.push({
 							text: item.value ? item.value : item.name,
 							value: item.name,
@@ -629,13 +663,13 @@
 					if (onChangeEvent.id) { //鍐呭鍙樺寲鍚庝簨浠� 						this.onChange(onChangeEvent);
 					}
-				
+
 				}
 			},
 			classAttr_extButton(item) {
 				var onSuffixClickCallbackEvent = item.bind.onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑讳簨浠� 				var onSuffixClickEvent = item.bind.onSuffixClickEvent; //鍚庡浘鏍囩偣鍑诲洖璋�-			
+
 				if (!onSuffixClickCallbackEvent.id) {
 					uni.showModal({
 						title: this.translateSys("tip"),
@@ -657,11 +691,11 @@
 				this.$data.popupType = 'right'
 				// open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴�
 				this.$refs.popup.open(this.popupType);
-			
+
 				this.dataObjRunCustomEvent_Return(onSuffixClickCallbackEvent.id, '', onSuffixClickEvent.id,
 					item);
 			},
-			
+
 			getDetailAttrList(list, selectButton) {
 				const detailAttrList = [];
 				list.forEach(style => {
@@ -1042,6 +1076,9 @@
 					number1 = parseInt(value1)
 				if (value2)
 					number2 = parseInt(value2)
+				if (!operation) {
+					return value2;
+				}
 				if (operation == "+") {
 					return number1 + number2
 				} else if (operation == "-") {
@@ -1049,11 +1086,17 @@
 				} else if (operation == "*") {
 					return number1 * number2
 				} else if (operation == "/") {
-					if (number2)
-						return number1 / number2
-					else
-						return number1
-				} else return number2
+					if (number2) return number1 / number2;
+					else {
+						throw new Error(`${this.translate("illegal_dividend")}'${value2}'`);
+						return 0;
+					}
+				} else if (operation == "=") {
+					return value2;
+				} else {
+					throw new Error(`${this.translate("unrecognized_operator")}'${operation}'`);
+					return 0;
+				}
 			},
 
 			//鏇存柊鍒嗛〉绛句腑鐨勫垪琛ㄩ」鍐呭
@@ -1067,29 +1110,94 @@
 				}
 				detailStyleDefList.forEach(ele => {
 					value.row.forEach((rowData) => {
-						if (ele.form.objId == rowData.id) {
-							rowData.attrs.forEach(attr => {
-								ele.form.items.forEach(ele2 => {
-									if (ele2.name != 'Layout') {
-										if (ele2.fieldId == attr.attr) {
-											ele2.value = $this.operationNumber(ele2.value,
-												attr.value, attr.operation)
-										}
-									} else if (ele2.name == 'Layout') {
-										ele2.setting.colList.forEach(col => {
-											if (col) {
-												if (col.fieldId == attr.attr) {
-													col.value = $this
-														.operationNumber(col.value,
-															attr.value, attr
-															.operation)
-												}
+						if (rowData.id) {
+							if (ele.form.objId == rowData.id) {
+								rowData.attrs.forEach(attr => {
+									ele.form.items.forEach(ele2 => {
+										if (ele2.name != 'Layout') {
+											if (ele2.fieldId == attr.attr) {
+												ele2.value = $this.operationNumber(ele2
+													.value,
+													attr.value, attr.operation)
 											}
-										})
-									}
+										} else if (ele2.name == 'Layout') {
+											ele2.setting.colList.forEach(col => {
+												if (col) {
+													if (col.fieldId == attr.attr) {
+														col.value = $this
+															.operationNumber(col
+																.value,
+																attr.value, attr
+																.operation)
+													}
+												}
+											})
+										}
+									});
 								});
-							});
+							}
+
+						} else if (rowData.condition) {
+							const conditions = rowData.condition;
+							let bFindCondition = true;
+							for (let i in conditions) {
+								const condition = conditions[i];
+								let bFind = false;
+								for (let i2 in ele.form.items) {
+									const ele2 = ele.form.items[i2];
+									if (ele2.name != "Layout") {
+										if (ele2.fieldId == condition.attr) {
+											if (condition.value == ele2.value) {
+												bFind = true;
+											}
+											break;
+										}
+									} else {
+										const colList = ele2.setting.colList || [];
+										for (let i3 in colList) {
+											const col = colList[i3];
+											if (col.fieldId == condition.attr) {
+												if (condition.value == col.value) {
+													bFind = true;
+												}
+												break;
+											}
+										}
+										if (bFind) break;
+									}
+								}
+								if (!bFind) {
+									bFindCondition = false;
+									break;
+								}
+							}
+							if (bFindCondition) {
+								rowData.attrs.forEach(attr => {
+									ele.form.items.forEach(ele2 => {
+										if (ele2.name != 'Layout') {
+											if (ele2.fieldId == attr.attr) {
+												ele2.value = $this.operationNumber(ele2
+													.value,
+													attr.value, attr.operation)
+											}
+										} else if (ele2.name == 'Layout') {
+											ele2.setting.colList.forEach(col => {
+												if (col) {
+													if (col.fieldId == attr.attr) {
+														col.value = $this
+															.operationNumber(col
+																.value,
+																attr.value, attr
+																.operation)
+													}
+												}
+											})
+										}
+									});
+								});
+							}
 						}
+
 					})
 				});
 				if (value.page_name == $this.$data.param.Sub_Page[1].Name) {
@@ -1540,7 +1648,7 @@
 				}
 				data[index].check = ischeck ? false : true;
 				this.$data.check_list.items = data;
-			
+
 			},
 			popup_cancel(e) { //寮规鍙栨秷
 				this.$refs.popup.close();
@@ -1595,7 +1703,7 @@
 				$this.DataObjRunCustomEvent(info, $this.$data.popupParam.data_attr);
 				this.$refs.popup.close();
 			},
-			
+
 			async DataObjRunCustomEvent(info, data_attr) {
 				var $this = this;
 				var enviroment = {
@@ -1692,7 +1800,7 @@
 							showCancel: false,
 							confirmText: this.translateSys("cancel")
 						});
-			
+
 						var actionlist = data.action;
 						if (actionlist) {
 							console.log(actionlist);
@@ -1799,7 +1907,7 @@
 										});
 									}
 								}
-			
+
 								var length = 0;
 								if (!$this.$data.refdatastore.filter(function(s) {
 										return result[i].attr == s.attr
@@ -1819,7 +1927,7 @@
 							}
 						}
 					}
-			
+
 				}).catch(ex => {
 					// console.log(ex);
 					let exStr = JSON.stringify(ex)
@@ -1864,7 +1972,7 @@
 						}
 					}
 				}
-			
+
 				var extinfo = enviroment;
 				extinfo.edit_dlg = {
 					type: 'small', //灏忕獥鍙�@@ -1884,7 +1992,7 @@
 						}))
 					)
 				);
-			
+
 				if (!eventid.includes('{')) eventid = '{' + eventid + '}';
 				var dataInfo = {
 					ed_type: "0",
@@ -1943,7 +2051,7 @@
 							showCancel: false,
 							confirmText: $this.translateSys("cancel")
 						});
-			
+
 						if (data != "") {
 							var actions = data.action;
 							if (actions) {
@@ -1952,7 +2060,7 @@
 									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> ' +
@@ -2022,7 +2130,7 @@
 										});
 										d.show();
 									} else if (action.action_type == 'open_common_dlg') {
-			
+
 										if (val.common_dlg_id == 'check_list') {
 											$this.setData({
 												check_list: val.config
@@ -2081,7 +2189,7 @@
 															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
@@ -2102,7 +2210,7 @@
 															attr: param.req,
 															dataJson: [],
 														}
-			
+
 														$this.DataObjRunCustomEvent(
 															info);
 													}
@@ -2136,7 +2244,7 @@
 							});
 						}
 					}
-			
+
 				}).catch(ex => {
 					// console.log(ex);
 					let exStr = JSON.stringify(ex)
@@ -2151,8 +2259,8 @@
 					});
 				});
 			},
-			
-			
+
+
 			//纭畾
 			ok() {
 				this.Before_OK_Event = this.param.Sub_Page[0].Before_ok;
@@ -3045,23 +3153,24 @@
 		.demo-uni-row .uni-input {
 			width: calc(100% - 120px);
 		}
+
 		.popup-header {
 			font-size: 42rpx;
 			font-weight: bold;
 			margin: 20rpx 20rpx 0px 20rpx;
 		}
-		
+
 		.view_popup_CheckList {
 			margin-bottom: 20rpx;
 		}
-		
+
 		.popup-footer {
 			float: right;
 			position: absolute;
 			bottom: 0;
 			right: 20rpx;
 		}
-		
+
 		button.btn_popup_add {
 			width: 180rpx;
 			margin-top: 50rpx;
@@ -3076,7 +3185,7 @@
 			/* float: left; */
 			display: inline-block;
 		}
-		
+
 		button.btn_popup_cancel {
 			width: 180rpx;
 			margin-top: 50rpx;
@@ -3090,7 +3199,7 @@
 			/* float: right; */
 			display: inline-block;
 		}
-		
+
 
 	}
 </style>
\ No newline at end of file
diff --git a/pages/modal/5601.vue b/pages/modal/5601.vue
index 52a5dd6..d019952 100644
--- a/pages/modal/5601.vue
+++ b/pages/modal/5601.vue
@@ -4,7 +4,7 @@
 		<uni-forms ref="baseForm" label-align="right">
 			<view v-for="(item,index) in head_styledef.form.items" :key="index" class="v-head-style">
 				<!-- 鏅�甯冨眬 -->
-				<uni-forms-item v-if="item.name != 'Layout'" :label="item.label +'锛� "
+				<uni-forms-item v-if="item.name != 'Layout'" :label="item.label ?item.label +'锛�:'' "
 					:label-width="item.labelWidth+'px'">
 					<uni-data-picker v-if="item.name=='Select'" :class="item.disabled?'input-disabled':''"
 						v-model="item.value" :localdata="item.dict" @change="onEnterChange(item)"
@@ -21,15 +21,36 @@
 						<text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]"
 							@click="classAttr_extButton(item)"></text>
 					</view>
+					<!-- 澶嶉�妗�-->
+					<checkbox-group 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 v-if="item.name=='Radio'" :class="item.disabled?'input-disabled':''"
+						:disabled="item.disabled" @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 class="input-switch" v-if="item.name=='Switch'" :class="item.disabled?'input-disabled':''"
+						:disabled="item.disabled" v-model="item.value" @change="onEnterChange(item)" />
 				</uni-forms-item>
 				<!-- 鏍呮牸甯冨眬 -->
 				<uni-row v-else :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">
-						<uni-forms-item :label="col.label +'锛�" :label-width="col.labelWidth+'px'">
+						<uni-forms-item :label="col.label ? col.label +'锛�:''" :label-width="col.labelWidth+'px'">
 							<uni-data-picker v-if="col.name=='Select'" :class="col.disabled?'input-disabled':''"
-								v-model="col.value" :localdata="col.dict" @change="onEnterChange(item)"
+								v-model="col.value" :localdata="col.dict" @change="onEnterChange(col)"
 								:readonly="col.disabled" :clear-icon="false" :popup-title="col.label"></uni-data-picker>
 							<view class="input-wrapper" v-if="col.name=='Input' || col.name=='InputNumber'">
 								<text v-if="col.setting.prefix" class="uni-icon" :class="[col.setting.prefix]"
@@ -43,6 +64,27 @@
 								<text v-if="col.setting.suffix" class="uni-icon" :class="[col.setting.suffix]"
 									@click="classAttr_extButton(col)"></text>
 							</view>
+							<!-- 澶嶉�妗�-->
+							<checkbox-group v-if="col.name=='Checkbox'" :class="col.disabled?'input-disabled':''"
+								:disabled="col.disabled" @change="onCheckBoxValue" :data-attr="col.fieldId"
+								:data-index="index" :data-iindex="key">
+								<label v-for="(col2) in col.selections" :key="col2.value">
+									<checkbox :value="col2.value" :checked="col.value.includes(col2.value)" />
+									<text>{{col2.label}}</text>
+								</label>
+							</checkbox-group>
+							<!-- 鍗曢�妗�-->
+							<radio-group v-if="col.name=='Radio'" :class="col.disabled?'input-disabled':''"
+								:disabled="col.disabled" @change="onRadioBoxValue" :data-attr="col.fieldId"
+								:data-index="index" :data-iindex="key">
+								<label v-for="(col2) in col.selections" :key="col2.value">
+									<radio :value="col2.value" :checked="col2.value === col.value" />
+									<text>{{col2.label}}</text>
+								</label>
+							</radio-group>
+							<!-- Switch寮�叧 -->
+							<switch v-if="col.name=='Switch'" :class="col.disabled?'input-disabled':''"
+								:disabled="col.disabled" v-model="col.value" @change="onEnterChange(col)" />
 						</uni-forms-item>
 					</uni-col>
 				</uni-row>
@@ -363,7 +405,26 @@
 									await this.DictGetInfo(ele.bind.dict,
 										styledefHead.form.model,
 										ele);
+								} else {
+									if (ele?.name === "Select") {
+										const selections = ele?.selections || []
+										//鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ�
+										let itemName = ele.value || "";
+										if (itemName) {
+											styledefHead.form
+												.model[ele.fieldId] = itemName;
+										}
+										ele.dict = selections.map((a) => {
+											return {
+												value: a.value,
+												text: a.label
+											}
+										})
+
+									}
+
 								}
+
 								if ($this.focusFieldId == "") {
 									if (ele.name == 'Input' || ele.name ==
 										'InputNumber') {
@@ -381,6 +442,22 @@
 											.dict,
 											styledefHead.form
 											.model, col);
+									} else {
+										if (col?.name === "Select") {
+											const selections = col?.selections || []
+											//鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ�
+											let itemName = col.value || "";
+											if (itemName) {
+												styledefHead.form
+													.model[col.fieldId] = itemName;
+											}
+											col.dict = selections.map((a) => {
+												return {
+													value: a.value,
+													text: a.label
+												}
+											})
+										}
 									}
 									if ($this.focusFieldId == "") {
 										if (col.name == 'Input' || col
@@ -621,10 +698,67 @@
 
 				}
 			},
+			onCheckBoxValue(e) { //缁戝畾Model鍊�+				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);
+						}
+					}
+				}
+
+			},
+			onRadioBoxValue(e) { //缁戝畾Model鍊�+				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);
+						}
+					}
+
+				}
+
+			},
 			classAttr_extButton(item) {
 				var onSuffixClickCallbackEvent = item.bind.onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑讳簨浠� 				var onSuffixClickEvent = item.bind.onSuffixClickEvent; //鍚庡浘鏍囩偣鍑诲洖璋�-			
+
 				if (!onSuffixClickCallbackEvent.id) {
 					uni.showModal({
 						title: this.translateSys("tip"),
@@ -1126,6 +1260,9 @@
 					number1 = parseInt(value1)
 				if (value2)
 					number2 = parseInt(value2)
+				if (!operation) {
+					return value2;
+				}
 				if (operation == "+") {
 					return number1 + number2
 				} else if (operation == "-") {
@@ -1133,11 +1270,17 @@
 				} else if (operation == "*") {
 					return number1 * number2
 				} else if (operation == "/") {
-					if (number2)
-						return number1 / number2
-					else
-						return number1
-				} else return number2
+					if (number2) return number1 / number2;
+					else {
+						throw new Error(`${this.translate("illegal_dividend")}'${value2}'`);
+						return 0;
+					}
+				} else if (operation == "=") {
+					return value2;
+				} else {
+					throw new Error(`${this.translate("unrecognized_operator")}'${operation}'`);
+					return 0;
+				}
 			},
 
 			//鏇存柊鍒嗛〉绛句腑鐨勫垪琛ㄩ」鍐呭
@@ -1153,54 +1296,141 @@
 				var detailStyleDefList = pageData.DefList || []
 				detailStyleDefList.forEach(ele => {
 					value.row.forEach((rowData) => {
-						if (ele.form.objId == rowData.id) {
-							rowData.attrs.forEach(attr => {
-								ele.form.items.forEach(ele2 => {
-									if (ele2.name !=
-										'Layout') {
-										if (ele2.fieldId ==
-											attr
-											.attr) {
-											ele2.value =
-												$this
-												.operationNumber(
-													ele2
-													.value,
-													attr
-													.value,
-													attr
-													.operation
-												)
-										}
-									} else if (ele2.name ==
-										'Layout') {
-										ele2.setting
-											.colList
-											.forEach(
-												col => {
-													if (
-														col) {
-														if (col
-															.fieldId ==
-															attr
-															.attr
-														) {
-															col.value =
-																$this
-																.operationNumber(
-																	col
-																	.value,
-																	attr
-																	.value,
-																	attr
-																	.operation
-																)
+						if (rowData.id) {
+							if (ele.form.objId == rowData.id) {
+								rowData.attrs.forEach(attr => {
+									ele.form.items.forEach(ele2 => {
+										if (ele2.name !=
+											'Layout') {
+											if (ele2.fieldId ==
+												attr
+												.attr) {
+												ele2.value =
+													$this
+													.operationNumber(
+														ele2
+														.value,
+														attr
+														.value,
+														attr
+														.operation
+													)
+											}
+										} else if (ele2.name ==
+											'Layout') {
+											ele2.setting
+												.colList
+												.forEach(
+													col => {
+														if (
+															col) {
+															if (col
+																.fieldId ==
+																attr
+																.attr
+															) {
+																col.value =
+																	$this
+																	.operationNumber(
+																		col
+																		.value,
+																		attr
+																		.value,
+																		attr
+																		.operation
+																	)
+															}
 														}
-													}
-												})
-									}
+													})
+										}
+									});
 								});
-							});
+							}
+						} else if (rowData.condition) {
+							const conditions = rowData.condition;
+							let bFindCondition = true;
+							for (let i in conditions) {
+								const condition = conditions[i];
+								let bFind = false;
+								for (let i2 in ele.form.items) {
+									const ele2 = ele.form.items[i2];
+									if (ele2.name != "Layout") {
+										if (ele2.fieldId == condition.attr) {
+											if (condition.value == ele2.value) {
+												bFind = true;
+											}
+											break;
+										}
+									} else {
+										const colList = ele2.setting.colList || [];
+										for (let i3 in colList) {
+											const col = colList[i3];
+											if (col.fieldId == condition.attr) {
+												if (condition.value == col.value) {
+													bFind = true;
+												}
+												break;
+											}
+										}
+										if (bFind) break;
+									}
+								}
+								if (!bFind) {
+									bFindCondition = false;
+									break;
+								}
+							}
+							if (bFindCondition) {
+
+								rowData.attrs.forEach(attr => {
+									ele.form.items.forEach(ele2 => {
+										if (ele2.name !=
+											'Layout') {
+											if (ele2.fieldId ==
+												attr
+												.attr) {
+												ele2.value =
+													$this
+													.operationNumber(
+														ele2
+														.value,
+														attr
+														.value,
+														attr
+														.operation
+													)
+											}
+										} else if (ele2.name ==
+											'Layout') {
+											ele2.setting
+												.colList
+												.forEach(
+													col => {
+														if (
+															col) {
+															if (col
+																.fieldId ==
+																attr
+																.attr
+															) {
+																col.value =
+																	$this
+																	.operationNumber(
+																		col
+																		.value,
+																		attr
+																		.value,
+																		attr
+																		.operation
+																	)
+															}
+														}
+													})
+										}
+									});
+								});
+
+							}
 						}
 					})
 				});
@@ -1889,7 +2119,7 @@
 				});
 			},
 			dataObjRunCustomEvent_Return(eventid, data_attr, button_callback, item) {
-				console.log("dataObjRunCustomEvent_Return",eventid,data_attr,button_callback)
+				console.log("dataObjRunCustomEvent_Return", eventid, data_attr, button_callback)
 				const $this = this
 				var enviroment = {
 					'function': '3000', // 鍔熻兘鐐圭紪鍙�diff --git a/pages/modal/5602.vue b/pages/modal/5602.vue
index d87a1e8..bb6d4d2 100644
--- a/pages/modal/5602.vue
+++ b/pages/modal/5602.vue
@@ -376,12 +376,26 @@
 							.style_def);
 					}
 					$this.$data.head_styledef = result.style_def ? JSON.parse(styledef) : {};
-					// this.form = this.head_styledef.form.model;
-					// console.log($this.$data.head_styledef);
 					if ($this.head_styledef.form?.items) {
 						$this.head_styledef.form.items.forEach(async (ele, index) => {
 							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
+										}
+									})
+								}
 							}
 							if ($this.focusFieldId == "") {
 								if (ele.name == 'Input' || ele.name == 'InputNumber') {
@@ -433,6 +447,23 @@
 						$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_styledefform
+											.model[ele.fieldId] = itemName;
+									}
+									$this.detail1_styledef.form.items[index].dict = selections.map((a) => {
+										return {
+											value: a.value,
+											text: a.label
+										}
+									})
+								}
+
 							}
 						});
 					}
@@ -1054,6 +1085,9 @@
 					number1 = parseInt(value1)
 				if (value2)
 					number2 = parseInt(value2)
+				if (!operation) {
+					return value2;
+				}
 				if (operation == "+") {
 					return number1 + number2
 				} else if (operation == "-") {
@@ -1061,11 +1095,17 @@
 				} else if (operation == "*") {
 					return number1 * number2
 				} else if (operation == "/") {
-					if (number2)
-						return number1 / number2
-					else
-						return number1
-				} else return number2
+					if (number2) return number1 / number2;
+					else {
+						throw new Error(`${this.translate("illegal_dividend")}'${value2}'`);
+						return 0;
+					}
+				} else if (operation == "=") {
+					return value2;
+				} else {
+					throw new Error(`${this.translate("unrecognized_operator")}'${operation}'`);
+					return 0;
+				}
 			},
 			//鏇存柊鍒嗛〉绛句腑鐨勫垪琛ㄩ」鍐呭
 			viewActionSetRow(value) {
@@ -1078,28 +1118,92 @@
 				}
 				detailStyleDefList.forEach(ele => {
 					value.row.forEach((rowData) => {
-						if (ele.form.objId == rowData.id) {
-							rowData.attrs.forEach(attr => {
-								ele.form.items.forEach(ele2 => {
-									if (ele2.name != 'Layout') {
-										if (ele2.fieldId == attr.attr) {
-											ele2.value = $this.operationNumber(ele2.value,
-												attr.value, attr.operation)
-										}
-									} else if (ele2.name == 'Layout') {
-										ele2.setting.colList.forEach(col => {
-											if (col) {
-												if (col.fieldId == attr.attr) {
-													col.value = $this
-														.operationNumber(col.value,
-															attr.value, attr
-															.operation)
-												}
+						if (rowData.id) {
+							if (ele.form.objId == rowData.id) {
+								rowData.attrs.forEach(attr => {
+									ele.form.items.forEach(ele2 => {
+										if (ele2.name != 'Layout') {
+											if (ele2.fieldId == attr.attr) {
+												ele2.value = $this.operationNumber(ele2
+													.value,
+													attr.value, attr.operation)
 											}
-										})
-									}
+										} else if (ele2.name == 'Layout') {
+											ele2.setting.colList.forEach(col => {
+												if (col) {
+													if (col.fieldId == attr.attr) {
+														col.value = $this
+															.operationNumber(col
+																.value,
+																attr.value, attr
+																.operation)
+													}
+												}
+											})
+										}
+									});
 								});
-							});
+							}
+						} else if (rowData.condition) {
+							const conditions = rowData.condition;
+							let bFindCondition = true;
+							for (let i in conditions) {
+								const condition = conditions[i];
+								let bFind = false;
+								for (let i2 in ele.form.items) {
+									const ele2 = ele.form.items[i2];
+									if (ele2.name != "Layout") {
+										if (ele2.fieldId == condition.attr) {
+											if (condition.value == ele2.value) {
+												bFind = true;
+											}
+											break;
+										}
+									} else {
+										const colList = ele2.setting.colList || [];
+										for (let i3 in colList) {
+											const col = colList[i3];
+											if (col.fieldId == condition.attr) {
+												if (condition.value == col.value) {
+													bFind = true;
+												}
+												break;
+											}
+										}
+										if (bFind) break;
+									}
+								}
+								if (!bFind) {
+									bFindCondition = false;
+									break;
+								}
+							}
+							if (bFindCondition) {
+								rowData.attrs.forEach(attr => {
+									ele.form.items.forEach(ele2 => {
+										if (ele2.name != 'Layout') {
+											if (ele2.fieldId == attr.attr) {
+												ele2.value = $this.operationNumber(ele2
+													.value,
+													attr.value, attr.operation)
+											}
+										} else if (ele2.name == 'Layout') {
+											ele2.setting.colList.forEach(col => {
+												if (col) {
+													if (col.fieldId == attr.attr) {
+														col.value = $this
+															.operationNumber(col
+																.value,
+																attr.value, attr
+																.operation)
+													}
+												}
+											})
+										}
+									});
+								});
+
+							}
 						}
 					})
 				});

--
Gitblit v1.9.1