From df481aebfb7a19eea5d6c02f93c6f5776b0fdc19 Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期五, 23 五月 2025 18:30:41 +0800
Subject: [PATCH] 界面大模式

---
 locale/es.json                                      |    1 
 components/oi-form/list/select/index.vue            |    5 
 pages/selpsn/index.vue                              |    3 
 pages/modal/5601.vue                                |   30 
 pages/modal/3037_2.vue                              |    3 
 pages/modal/3202.vue                                |    3 
 locale/en.json                                      |    1 
 components/oi-form/list/index.vue                   |   16 
 components/oi-form/list/input/index.vue             |   20 +
 components/oi-form/list/date-picker-range/index.vue |   17 
 pages/login/language.vue                            |    5 
 pages/login/index.vue                               |   40 +-
 pages/modal/classAttr.vue                           |    3 
 components/oi-form/list/time-picker/index.vue       |   10 
 components/oi-form/list/date-picker/index.vue       |   18 
 components/oi-form/list/input-number/index.vue      |   30 +
 pages/modal/3018_2.vue                              |    3 
 /dev/null                                           |  624 ----------------------------------
 pages/modal/3200_view.vue                           |    3 
 pages/modal/5602.vue                                |    3 
 pages/modal/ms_classAttr.vue                        |    3 
 locale/zh-Hans.json                                 |    3 
 pages/index/index.vue                               |   47 +-
 App.vue                                             |   69 +++
 components/oi-form/list/text/index.vue              |    9 
 pages/modal/3202_view.vue                           |    3 
 pages/login/set.vue                                 |   48 +
 locale/zh-Hant.json                                 |    1 
 pages/modal/form/index.vue                          |    3 
 pages/modal/3201.vue                                |    3 
 pages/modal/3018.vue                                |   19 
 components/oi-form/index.vue                        |   10 
 pages/selPrj/index.vue                              |    3 
 pages/modal/3037.vue                                |    3 
 pages/modal/3200.vue                                |    3 
 manifest.json                                       |    4 
 pages/modal/5600.vue                                |    3 
 37 files changed, 327 insertions(+), 745 deletions(-)

diff --git a/App.vue b/App.vue
index bcb407c..6d5eefa 100644
--- a/App.vue
+++ b/App.vue
@@ -1,6 +1,7 @@
 <script>
 	export default {
 		globalData: {
+			largeMode: false,
 			isMobox3: true,
 			deviceId: "",
 			cname: "",
@@ -95,4 +96,72 @@
 	@import '@/fonts/mobox-plm/style.css';
 	@import '@/fonts/mobox-sys/style.css';
 	@import '@/fonts/mobox-wms/style.css';
+
+	.large-mode {
+		font-size: 24px !important;
+
+		uni-input {
+			height: 36px;
+
+			.uni-input-placeholder,
+			.uni-input-input {
+				font-size: 24px !important;
+			}
+		}
+
+		uni-button,
+		.uni-forms-item__label,
+		.uni-section__content-title {
+			font-size: 24px !important;
+		}
+
+		uni-checkbox {
+			.uni-checkbox-input {
+				height: 32px;
+				width: 32px;
+			}
+
+			.uni-checkbox-input-checked:before {
+				font-size: 30px;
+			}
+		}
+
+		uni-radio {
+			.uni-radio-input {
+				height: 32px;
+				width: 32px;
+			}
+
+			.uni-radio-input-checked:before {
+				font-size: 30px;
+			}
+		}
+
+		.uni-date__x-input {
+			font-size: 24px !important;
+			height: 40px !important;
+
+			.uniui-clear {
+				font-size: 30px !important;
+			}
+		}
+
+		.uni-data-tree {
+			font-size: 24px !important;
+			.input-value {
+				height: 45px !important;
+				font-size: 24px !important;
+			}
+			.placeholder {
+			 font-size: 24px !important;
+			}
+		}
+		.segmented-control__text {
+			font-size: 24px !important;
+			height: 45px;
+			
+		}
+		
+
+	}
 </style>
\ No newline at end of file
diff --git a/components/oi-form/index.vue b/components/oi-form/index.vue
index bc92baf..3d23cc7 100644
--- a/components/oi-form/index.vue
+++ b/components/oi-form/index.vue
@@ -1,5 +1,5 @@
 <template>
-	<uni-forms class="oi-form" ref="baseForm" label-align="right">
+	<uni-forms class="oi-form"  ref="baseForm" :label-align="largeMode?'left':'right'" :label-position="largeMode?'top':'left'" >
 		<view v-for="(item,index) in form.items" :key="index">
 			<!-- 鏍呮牸甯冨眬 -->
 			<uni-row v-if="item.name == 'Layout'" v-show="!item.isHidden" :gutter="item.setting.gutter">
@@ -48,7 +48,7 @@
 		},
 		data() {
 			return {
-
+				largeMode: getApp().globalData?.largeMode || false,
 			}
 		},
 		methods: {
@@ -97,5 +97,9 @@
 </script>
 
 <style lang="less">
-	.oi-form {}
+	.oi-form {
+	
+	}
+	
+	
 </style>
\ No newline at end of file
diff --git a/components/oi-form/list/date-picker-range/index.vue b/components/oi-form/list/date-picker-range/index.vue
index 698ae8f..81910bd 100644
--- a/components/oi-form/list/date-picker-range/index.vue
+++ b/components/oi-form/list/date-picker-range/index.vue
@@ -1,9 +1,11 @@
 <template>
-	<uni-datetime-picker v-if="model"  type="daterange" :value="toDate(model[data.fieldId])"
-		:placeholder="data.placeholder" :rangeSeparator="data.setting.separator" border :disabled="data.disabled"
-		@change="onChange" />
-	<uni-datetime-picker v-else type="daterange" :value="data.value" :placeholder="data.placeholder"
-		:rangeSeparator="data.setting.separator" border :disabled="data.disabled" @change="onChange" />
+	<view class="oi-form-date-picker-range">
+		<uni-datetime-picker v-if="model" type="daterange" :value="toDate(model[data.fieldId])"
+			:placeholder="data.placeholder" :rangeSeparator="data.setting.separator" border :disabled="data.disabled"
+			@change="onChange" />
+		<uni-datetime-picker v-else type="daterange" :value="data.value" :placeholder="data.placeholder"
+			:rangeSeparator="data.setting.separator" border :disabled="data.disabled" @change="onChange" />
+	</view>
 </template>
 
 <script>
@@ -70,5 +72,8 @@
 	}
 </script>
 
-<style>
+<style lang="scss">
+	.oi-form-date-picker-range {
+		width: 100%;
+	}
 </style>
\ No newline at end of file
diff --git a/components/oi-form/list/date-picker/index.vue b/components/oi-form/list/date-picker/index.vue
index d78bf70..c94a682 100644
--- a/components/oi-form/list/date-picker/index.vue
+++ b/components/oi-form/list/date-picker/index.vue
@@ -1,8 +1,10 @@
 <template>
-	<uni-datetime-picker v-if="model" type="date" :value="model[data.fieldId]" :placeholder="data.placeholder" border
-		:disabled="data.disabled" clearIcon @change="onChange" />
-	<uni-datetime-picker v-else type="date" :value="data.value" :placeholder="data.placeholder" border
-		:disabled="data.disabled" clearIcon @change="onChange" />
+	<view class="oi-form-date-picker">
+		<uni-datetime-picker v-if="model" type="date" :value="model[data.fieldId]" :placeholder="data.placeholder"
+			border :disabled="data.disabled" clearIcon @change="onChange" />
+		<uni-datetime-picker v-else type="date" :value="data.value" :placeholder="data.placeholder" border
+			:disabled="data.disabled" clearIcon @change="onChange" />
+	</view>
 </template>
 
 <script>
@@ -19,8 +21,7 @@
 		data() {
 			return {}
 		},
-		computed: {
-		},
+		computed: {},
 		methods: {
 			onChange(date) {
 				let format = "YYYY-MM-DD";
@@ -78,5 +79,8 @@
 	}
 </script>
 
-<style>
+<style lang="scss">
+	.oi-form-date-picker {
+		width: 100%;
+	}
 </style>
\ No newline at end of file
diff --git a/components/oi-form/list/index.vue b/components/oi-form/list/index.vue
index a32dd99..693b9f9 100644
--- a/components/oi-form/list/index.vue
+++ b/components/oi-form/list/index.vue
@@ -1,8 +1,8 @@
 <template>
-	<view class="oi-form-item">
+	<view class="oi-form-item" :class="largeMode?'large-mode':''">
 		<uni-forms-item v-show="!hiddenIds.includes(data.fieldId)"
 			:label="data.labelWidth === 0 ? '' : data.label? data.label+'锛�:''"
-			:label-width="data.labelWidth || data.labelWidth === 0 ? data.labelWidth : 100+'px'"
+			:label-width="largeMode?'100%': data.labelWidth || data.labelWidth === 0 ? data.labelWidth : 100+'px'"
 			:style="{ textAlign: data.setting.align }">
 			<OIFormText v-if="viewMode && data.disabled" :data="data" :model="model">
 			</OIFormText>
@@ -85,6 +85,11 @@
 				default: () => [],
 			},
 		},
+		data() {
+			return {
+				largeMode: getApp().globalData?.largeMode || false,
+			}
+		},
 		methods: {
 			onChange(e) {
 				this.$emit("on-change", this.data)
@@ -112,5 +117,10 @@
 		}
 	}
 
-
+	.oi-form-item.large-mode {
+		.uni-forms-item {
+			margin-left: 10rpx;
+			margin-right: 10rpx;
+		}
+	}
 </style>
\ No newline at end of file
diff --git a/components/oi-form/list/input-number/index.vue b/components/oi-form/list/input-number/index.vue
index 22e57c6..190fe2c 100644
--- a/components/oi-form/list/input-number/index.vue
+++ b/components/oi-form/list/input-number/index.vue
@@ -1,11 +1,11 @@
 <template>
 	<view class="oi-form-input-number">
-			<input v-if="model" type="number" class="oi-input-number" :class="data.disabled?'input-disabled':''" v-model="model[data.fieldId]" :focus="focus"
-			:placeholder="data.placeholder" @blur="onChange" @confirm="onConfirm" @click="onClick"
-			:disabled="data.disabled"></input>
-		<input v-else type="number" class="oi-input-number" :class="data.disabled?'input-disabled':''" v-model="data.value"
-			:focus="focus" :placeholder="data.placeholder" @blur="onChange" @confirm="onConfirm" @click="onClick"
-			:disabled="data.disabled"></input>
+		<input v-if="model" type="number" class="oi-input-number" :class="data.disabled?'input-disabled':''"
+			v-model="model[data.fieldId]" :focus="focus" :placeholder="data.placeholder" @blur="onChange"
+			@confirm="onConfirm" @click="onClick" :disabled="data.disabled"></input>
+		<input v-else type="number" class="oi-input-number" :class="data.disabled?'input-disabled':''"
+			v-model="data.value" :focus="focus" :placeholder="data.placeholder" @blur="onChange" @confirm="onConfirm"
+			@click="onClick" :disabled="data.disabled"></input>
 	</view>
 </template>
 
@@ -22,6 +22,11 @@
 				type: Boolean,
 				default: false
 			},
+		},
+		data() {
+			return {
+				largeMode: getApp().globalData?.largeMode || false,
+			}
 		},
 		methods: {
 			onChange(e) {
@@ -41,7 +46,7 @@
 	};
 </script>
 
-<style lang="less" scoped>
+<style lang="less">
 	.oi-form-input-number {
 		width: 100%;
 
@@ -60,7 +65,7 @@
 			background: #FFF;
 			line-height: 20px;
 			border-radius: 6px !important;
-			font-size: 14px;
+			font-size: 15px;
 			font-family: inherit;
 			box-shadow: none !important;
 			transition-duration: 0.1s;
@@ -71,4 +76,13 @@
 			border: 1px solid rgb(41, 121, 255);
 		}
 	}
+
+	.large-mode {
+		.oi-form-input-number {
+			.oi-input-number {
+				font-size: 24px;
+				height: 36px;
+			}
+		}
+	}
 </style>
\ No newline at end of file
diff --git a/components/oi-form/list/input/index.vue b/components/oi-form/list/input/index.vue
index 5c0c04a..47c85ff 100644
--- a/components/oi-form/list/input/index.vue
+++ b/components/oi-form/list/input/index.vue
@@ -38,6 +38,11 @@
 				default: false
 			},
 		},
+		data() {
+			return {
+				largeMode: getApp().globalData?.largeMode || false,
+			}
+		},
 		methods: {
 			onChange(e) {
 				this.$emit("on-change", e)
@@ -119,4 +124,19 @@
 	.oi-form-input:hover {
 		border: 1px solid rgb(41, 121, 255);
 	}
+
+	.large-mode {
+		.oi-form-input {
+			.oi-input {
+				font-size: 24px;
+				height: 36px;
+			}
+
+			.form-input-icon {
+				font-size: 30px;
+				height: 36px;
+				width: 36px;
+			}
+		}
+	}
 </style>
\ No newline at end of file
diff --git a/components/oi-form/list/select/index.vue b/components/oi-form/list/select/index.vue
index 8dd294c..e9bbfb4 100644
--- a/components/oi-form/list/select/index.vue
+++ b/components/oi-form/list/select/index.vue
@@ -29,9 +29,10 @@
 	};
 </script>
 
-<style lang="less" scoped>
+<style lang="less">
 	.oi-form-select {
 		width: 100%;
+
 		.data-picker {
 			width: 100%;
 			background: #FFF;
@@ -63,4 +64,6 @@
 			background-color: #f3f3f3 !important;
 		}
 	}
+
+
 </style>
\ No newline at end of file
diff --git a/components/oi-form/list/text/index.vue b/components/oi-form/list/text/index.vue
index beb95c3..4cbe40e 100644
--- a/components/oi-form/list/text/index.vue
+++ b/components/oi-form/list/text/index.vue
@@ -22,10 +22,17 @@
 <style lang="scss" scoped>
 	.oi-form-text {
 		word-break: break-all;
-
+		color: #2db7f5;
 		.align-fixed {
 			line-height: 1;
 			padding: 10px 12px 10px 0;
 		}
+
+	}
+
+	.large-mode {
+		.oi-form-text {
+			font-size: 24px !important;
+		}
 	}
 </style>
\ No newline at end of file
diff --git a/components/oi-form/list/time-picker/index.vue b/components/oi-form/list/time-picker/index.vue
index b694250..8a73cb9 100644
--- a/components/oi-form/list/time-picker/index.vue
+++ b/components/oi-form/list/time-picker/index.vue
@@ -89,4 +89,14 @@
 			border: 1px solid #e5e5e5;
 		}
 	}
+	.large-mode {
+		.oi-time-picker-x {
+				font-size: 24px !important;
+		}
+		.oi-time-picker-input {
+			font-size: 24px  !important;
+			height: 40px  !important;
+		}
+		
+	}
 </style>
\ No newline at end of file
diff --git a/locale/en.json b/locale/en.json
index 2b771dc..8770792 100644
--- a/locale/en.json
+++ b/locale/en.json
@@ -65,6 +65,7 @@
 	"page.mobox3_port": "Mobox3 service port",
 	"page.mobox3_bind_classes_when_logging_in": "Bind classes when logging in to mobox3",
 	"page.bind_class": "Bind classes",
+	"page.interface_large_mode": "Large mode interface",
 	"page.classes": "Classes",
 	"page.input_server": "Please enter the server",
 	"page.set_server": "Set up services",
diff --git a/locale/es.json b/locale/es.json
index 0a10653..84858fb 100644
--- a/locale/es.json
+++ b/locale/es.json
@@ -64,6 +64,7 @@
 	"page.mobox3_port": "Puerto de servicio mobox3",
 	"mobox3_bind_classes_when_logging_in": "Mobox3 se une a los turnos al iniciar sesi贸n",
 	"page.bind_classes": "Turnos vinculados",
+	"page.interface_large_mode": "Interfaz de gran modo",
 	"page.classes": "Turnos",
 	"page.input_server": "Por favor, introduzca el servidor",
 	"page.set_server": "Establecer servicio",
diff --git a/locale/zh-Hans.json b/locale/zh-Hans.json
index 9f4ec51..0737703 100644
--- a/locale/zh-Hans.json
+++ b/locale/zh-Hans.json
@@ -64,6 +64,7 @@
 	"page.mobox3_port": "mobox3鏈嶅姟绔彛",
 	"page.mobox3_bind_classes_when_logging_in": "mobox3 鐧诲綍鏃剁粦瀹氱彮娆�,
 	"page.bind_classes": "缁戝畾鐝",
+	"page.interface_large_mode": "澶фā寮忕晫闈�,
 	"page.classes": "鐝",
 	"page.input_server": "璇疯緭鍏ユ湇鍔″湴鍧�,
 	"page.set_server": "璁剧疆鏈嶅姟",
@@ -77,7 +78,7 @@
 	"page.update_fail": "鏇存柊澶辫触",
 	"page.get_classes_fail": "鑾峰彇鐝澶辫触",
 	"page.please_login_after_admin_add_classes": "鐝鍒楄〃涓虹┖锛岃鑱旂郴绠$悊鍛樻坊鍔犵彮娆″悗鍐嶇櫥褰�",
-	
+
 
 
 	"page.tip_no_app_param": "璇ュ姛鑳界偣鏈厤缃弬鏁帮紝璇烽噸鏂伴厤缃弬鏁�,
diff --git a/locale/zh-Hant.json b/locale/zh-Hant.json
index 1c20212..815dd1d 100644
--- a/locale/zh-Hant.json
+++ b/locale/zh-Hant.json
@@ -64,6 +64,7 @@
 	"page.mobox3_port": "mobox3鏈嶅嫏鍩�,
 	"page.mobox3_bind_classes_when_logging_in": "mobox3鐧诲叆鏅傜秮瀹氱彮娆�,
 	"page.bind_classes": "缍佸畾鐝",
+	"page.interface_large_mode": "澶фā寮忎粙闈�,
 	"page.classes": "鐝",
 	"page.input_server": "璜嬭几鍏ユ湇鍕欏湴鍧�,
 	"page.set_server": "瑷畾鏈嶅嫏",
diff --git a/manifest.json b/manifest.json
index eb5fc7f..71004fd 100644
--- a/manifest.json
+++ b/manifest.json
@@ -2,8 +2,8 @@
     "name" : "MoboxPDA",
     "appid" : "__UNI__56D451E",
     "description" : "",
-    "versionName" : "1.1.58",
-    "versionCode" : 1158,
+    "versionName" : "1.1.59",
+    "versionCode" : 1159,
     "transformPx" : false,
     /* 5+App鐗规湁鐩稿叧 */
     "app-plus" : {
diff --git a/pages/index/index.vue b/pages/index/index.vue
index 01c53d5..65923ce 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="uni-page-index">
+	<view class="uni-page-index" :class="largeMode?'large-mode':''">
 		<view class="area-list" v-if="isMobox3">
 			<view class="v-area" v-for="(area,index) in data">
 				<view class="area-name">{{ area.name }}</view>
@@ -52,6 +52,7 @@
 		},
 		data() {
 			return {
+				largeMode: getApp().globalData.largeMode || false,
 				title: 'Hello',
 				data: [],
 				isMobox3: getApp().globalData.isMobox3,
@@ -298,7 +299,6 @@
 				width: calc(100% - 40rpx);
 
 				.area-name {
-					font-size: 40rpx;
 					width: 100%;
 					padding: 10rpx;
 				}
@@ -313,7 +313,6 @@
 					.app {
 						padding: 20rpx 25rpx 15rpx 25rpx;
 						text-align: center;
-						font-size: 14px;
 						width: 125rpx;
 						display: flex;
 						flex-direction: column;
@@ -328,8 +327,8 @@
 
 							.ico {
 								color: #000000;
-								font-size: 40px;
 								line-height: 105rpx;
+								font-size: 24px;
 							}
 						}
 
@@ -343,17 +342,6 @@
 		}
 
 
-		.areaList li {
-			/* border: 1px solid #0062CC; */
-			list-style: none;
-			/* width: 120rpx; */
-			display: inline-block;
-			padding: 30rpx 10rpx 16rpx 10rpx;
-			text-align: center;
-			font-size: 14px;
-			width: 140rpx;
-			vertical-align: text-top;
-		}
 
 		.logo {
 			height: 120rpx;
@@ -366,10 +354,31 @@
 			border: 0px solid rgb(221, 221, 221);
 		}
 
-		.logo i {
-			color: #000000;
-			font-size: 40px;
-			line-height: 120rpx;
+	}
+
+	.uni-page-index.large-mode {
+		.area-name {
+			font-size: 30px;
 		}
+
+		.app {
+			padding: 20rpx 25rpx 15rpx 25rpx;
+			width: 175rpx  !important;
+
+			.logo {
+				height: 150rpx  !important;
+				width: 150rpx  !important;
+
+				.ico {
+					line-height: 150rpx  !important;
+					font-size: 30px  !important;
+				}
+			}
+
+			.app-name {
+				padding-top: 10rpx !important;
+			}
+		}
+
 	}
 </style>
\ No newline at end of file
diff --git a/pages/login/index.vue b/pages/login/index.vue
index 67148bb..0406e93 100644
--- a/pages/login/index.vue
+++ b/pages/login/index.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="uni-page-login" style="width: 100vw;height: 64vh;">
+	<view class="uni-page-login " :class="largeMode?'large-mode':''" style="width: 100vw;height: 64vh;">
 		<div id="headr" class="mui-bar mui-bar-nav">
 			<image class="logo" src="../../images/login/mobox_log_200.png"></image>
 		</div>
@@ -13,7 +13,6 @@
 						<image class="logo_input" src="../../images/login/person_30.png"></image>
 					</label>
 					<input type="text" class="mui-input" v-model="userName" :placeholder="translateSys('input_login')">
-					<!-- <label class="mui-navigate-right" id="namsel"><image class="logo_icon" src="../../images/login/user-photo.png</image></label> -->
 				</div>
 				<div class="mui-input-row">
 					<label class="la_icon">
@@ -121,6 +120,9 @@
 				showBtns: true,
 				selectedClasses: "",
 				classesLst: [],
+				largeMode: false,
+
+
 			}
 		},
 		onShow() {
@@ -288,12 +290,15 @@
 			inputDialogToggle() {
 				// this.$refs.inputDialog.open()
 				const $this = this
+				
 				uni.navigateTo({
 					url: "./set",
 					events: {
 						exitSetEvent(val) {
 							$this.userServer = val;
 							$this.query(); //鐗堟湰鍗囩骇
+							$this.largeMode = 	getApp().globalData.largeMode 
+					
 						}
 					}
 				})
@@ -493,7 +498,7 @@
 						showCancel: false,
 						confirmText: this.translateSys('close')
 					});
-					
+
 					this.selectedClasses = ""
 					this.classesLst = []
 					// {
@@ -534,7 +539,8 @@
 			var url = utils.session.getValue('server');
 			var username = utils.session.getValue('account');
 			var userpwd = utils.session.getValue('password');
-
+			this.largeMode = utils.session.getValue('large_mode') ? true : false
+			getApp().globalData.largeMode = this.largeMode
 			var ischecked = false;
 			if (!this.userServer)
 				this.userServer = url;
@@ -666,32 +672,14 @@
 
 		.mui-input-row input {
 			font-family: 'Helvetica Neue', Helvetica, sans-serif;
-			font-size: 15px;
 			width: 480rpx;
-			/* float: right; */
 			margin-bottom: 0;
 			padding-left: 20rpx;
-			/* padding-right: 10rpx; */
-			/* line-height: 30rpx; */
-			height: 85rpx;
-			/* padding: 7px 40px 7px 0px; */
 			-webkit-user-select: text;
-			/* border: 0; */
-			/* border-radius: 0; */
 			box-shadow: none;
 			outline: 0;
 			background: 0 0;
 			-webkit-appearance: none;
-		}
-
-		.mui-input-group label.mui-navigate-right {
-			font-size: 25px;
-			float: right;
-			padding: 0;
-			width: 80rpx;
-			margin-right: 5rpx;
-			margin-top: -88rpx;
-			display: inline-block;
 		}
 
 		button.btn_login {
@@ -723,4 +711,12 @@
 
 		}
 	}
+	
+	.uni-page-login.large-mode{
+		.logo_input {
+			height: 54rpx;
+			width: 54rpx;
+		}
+	}
+	
 </style>
\ No newline at end of file
diff --git a/pages/login/language.vue b/pages/login/language.vue
index e54be5b..6052aec 100644
--- a/pages/login/language.vue
+++ b/pages/login/language.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="uni-page-login-language">
+	<view class="uni-page-login-language" :class="largeMode?'large-mode':''">
 		<view class="uni-line" v-for="item in langList" :key='item.value' @click="clickLanguage(item.value)"><text
 				class="name">{{item.name }}</text> <uni-icons v-if="curLang==item.value " type="checkmarkempty"
 				:size="20"></uni-icons> </view>
@@ -11,6 +11,7 @@
 	export default {
 		data() {
 			return {
+				largeMode: getApp().globalData.largeMode|| false,
 				langList: [{
 						value: "zh-Hans",
 						name: "涓枃绠�綋"
@@ -44,7 +45,7 @@
 			},
 		},
 		onLoad() {
-	
+
 			this.curLang = uni.getLocale()
 			this.oldLang = this.curLang
 		},
diff --git a/pages/login/set.vue b/pages/login/set.vue
index 89bf498..3e6b34c 100644
--- a/pages/login/set.vue
+++ b/pages/login/set.vue
@@ -1,6 +1,6 @@
 <template>
-	<view class="uni-page-login-set">
-		<uni-forms class="form" label-align="right" label-width="100px" :form="form">
+	<view class="uni-page-login-set" :class="form.largeMode?'large-mode':''">
+		<uni-forms class="form" label-align="right" label-width="150px" :form="form">
 			<uni-section :title="translateSys('page.server')" type="line">
 				<input type="text" class="input-wrapper" v-model="form.server"
 					:placeholder="translateSys('page.input_server')">
@@ -23,12 +23,18 @@
 					<input type="number" class="input-wrapper" v-model="form.mongodbSPort">
 				</uni-forms-item>
 			</uni-section>
+
+			<view> {{translateSys('page.interface_large_mode')}}
+				<switch :checked="form.largeMode" :style="form.largeMode? '':'transform:scale(0.7)'"
+					@change="switchLargeMode" />
+			</view>
+
 			<view> {{translateSys('page.mobox3_bind_classes_when_logging_in')}}
-				<switch :checked="form.bindClasses" style="transform:scale(0.7)" @change="switchBindClasses" />
+				<switch :checked="form.bindClasses" :style="form.largeMode? '':'transform:scale(0.7)'"
+					@change="switchBindClasses" />
 			</view>
 		</uni-forms>
-		<button id='ok' type="default" @tap="onOk" class="btn_ok">{{translateSys("sys.ok")}}</button>
-
+		<button class="btn_ok" type="default" @tap="onOk">{{translateSys("sys.ok")}}</button>
 	</view>
 </template>
 
@@ -45,7 +51,8 @@
 					moboxSPort: "",
 					dataSPort: "",
 					mongodbSPort: "",
-					bindClasses: false
+					bindClasses: false,
+					largeMode: false
 				},
 
 			}
@@ -55,10 +62,11 @@
 
 				utils.session.setValue('server', this.form.server);
 				utils.session.setValue('app_type', this.form.appType);
+				utils.session.setValue('large_mode', this.form.largeMode);
 				let bindInfo = utils.session.getValue('bind_classes')
 				utils.session.setValue('bind_classes', {
 					checked: this.form.bindClasses,
-					classes: bindInfo?.classes ||""
+					classes: bindInfo?.classes || ""
 				});
 				utils.session.setValue('mobox3_port', {
 					org: this.form.orgSPort,
@@ -67,6 +75,7 @@
 					mongodb: this.form.mongodbSPort
 				});
 
+				getApp().globalData.largeMode = this.form.largeMode
 				const eventChannel = this.getOpenerEventChannel();
 				eventChannel.emit('exitSetEvent', this.form.server);
 
@@ -81,6 +90,10 @@
 			switchBindClasses(e) {
 				this.form.bindClasses = e.detail.value
 			},
+			switchLargeMode(e) {
+				this.form.largeMode = e.detail.value
+			},
+
 			translateSys(t) {
 				if (typeof this.$t == "function") return this.$t(`${t}`)
 				else return t;
@@ -92,6 +105,8 @@
 			this.form.server = utils.session.getValue('server') || "";
 			this.form.appType = utils.session.getValue('app_type') || "MES";
 			this.form.bindClasses = utils.session.getValue('bind_classes')?.checked || false
+			this.form.largeMode = utils.session.getValue('large_mode') ? true : false
+			console.log(this.form.largeMode)
 			const mobox3Port = utils.session.getValue('mobox3_port');
 			this.form.orgSPort = mobox3Port?.org || 5101
 			this.form.moboxSPort = mobox3Port?.mobox || 5102
@@ -112,16 +127,15 @@
 		.form {
 			padding: 10rpx 20rpx;
 
-		}
+			.input-wrapper {
+				border: 1px solid #d5d5d5;
+				width: calc(100% - 16rpx);
+				padding: 12rpx 8rpx;
+			}
 
-		.input-wrapper {
-			border: 1px solid #d5d5d5;
-			width: calc(100% - 16rpx);
-			padding: 12rpx 8rpx;
-		}
-
-		.uni-forms-item {
-			margin: 20rpx;
+			.uni-forms-item {
+				margin: 20rpx;
+			}
 		}
 
 		button.btn_ok {
@@ -133,5 +147,7 @@
 			border: none;
 			color: #fff;
 		}
+
+
 	}
 </style>
\ No newline at end of file
diff --git a/pages/modal/3018.vue b/pages/modal/3018.vue
index 93a00e0..005fed8 100644
--- a/pages/modal/3018.vue
+++ b/pages/modal/3018.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="uni-page-modal-3018">
+	<view class="uni-page-modal-3018" :class="largeMode?'large-mode':''">
 		<view class="v-area" v-for="(classattr,index) in classAttrList">
 			<div class="class_attr_title" style="display: none;">
 				<div class="title_line"></div>
@@ -304,7 +304,7 @@
 <script>
 	import {
 		Base64
-	} from  '@/js/Base64.js';
+	} from '@/js/Base64.js';
 	import pickerAddress from '../../js/pickerAddress/pickerAddress.vue'
 	import utils from "@/js/utils.js"
 	import {
@@ -338,6 +338,7 @@
 		},
 		data() {
 			return {
+				largeMode: getApp().globalData.largeMode || false,
 				title: this.translateSys('ok'),
 				editMode: false,
 				objAttr: {},
@@ -2814,4 +2815,18 @@
 			transform: translateX(0);
 		}
 	}
+
+	.uni-page-modal-3018.large-mode {
+		font-size: 24px;
+
+		.tx_title,
+		.tx_title2 {
+			font-size: 24px;
+		}
+
+		.class_attr_title {
+			font-size: 24px;
+		}
+
+	}
 </style>
\ No newline at end of file
diff --git a/pages/modal/3018_2.vue b/pages/modal/3018_2.vue
index 674ed56..2565b03 100644
--- a/pages/modal/3018_2.vue
+++ b/pages/modal/3018_2.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="uni-page-modal-3018-2">
+	<view class="uni-page-modal-3018-2" :class="largeMode?'large-mode':''">
 		<view class="view-content">
 			<!-- 琛ㄥご鏍峰紡 -->
 			<OIForm ref="refBaseForm" class="v-headStyle" :form="head_styledef.form" :focusId="focusFieldId"
@@ -75,6 +75,7 @@
 		},
 		data() {
 			return {
+					largeMode: getApp().globalData.largeMode || false,
 				title: this.translateSys('add2'),
 				btnName: "",
 				param: {},
diff --git a/pages/modal/3037.vue b/pages/modal/3037.vue
index 8355d50..8705578 100644
--- a/pages/modal/3037.vue
+++ b/pages/modal/3037.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="content">
+	<view class="content" :class="largeMode?'large-mode':''">
 		<!-- 涓绘暟鎹�-->
 		<view class="v-area" v-for="(classattr,index) in classAttrList">
 			<div class="class_attr_title" style="display: none;">
@@ -679,6 +679,7 @@
 		},
 		data() {
 			return {
+					largeMode: getApp().globalData.largeMode || false,
 				title: '鏂板',
 				param: {},
 				classAttrList: [],
diff --git a/pages/modal/3037_2.vue b/pages/modal/3037_2.vue
index 4ed0626..d75271d 100644
--- a/pages/modal/3037_2.vue
+++ b/pages/modal/3037_2.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="uni-page-modal-3017-2">
+	<view class="uni-page-modal-3017-2" :class="largeMode?'large-mode':''">
 		<!-- 琛ㄥご鏍峰紡 -->
 		<OIForm ref="refBaseForm" class="v-headStyle" :form="head_styledef.form" @on-focus="ontap"
 			@on-change="onEnterChange" @on-click-prefix="classAttr_extButton" @on-click-suffix="classAttr_extButton">
@@ -137,6 +137,7 @@
 		},
 		data() {
 			return {
+					largeMode: getApp().globalData.largeMode || false,
 				title: this.translateSys('add2'),
 				param: {},
 				edit_inital_event: "", //寮圭獥鍒濆鍖栦簨浠禝D
diff --git a/pages/modal/3200.vue b/pages/modal/3200.vue
index dc46f40..cea6edd 100644
--- a/pages/modal/3200.vue
+++ b/pages/modal/3200.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="uni-page-modal-3200">
+	<view class="uni-page-modal-3200" :class="largeMode?'large-mode':''">
 		<view class="v-content">
 			<!-- 琛ㄥご鏍峰紡 -->
 			<OIForm ref="refBaseForm" class="v-headStyle" :form="head_styledef.form" @on-focus="ontap"
@@ -108,6 +108,7 @@
 		},
 		data() {
 			return {
+					largeMode: getApp().globalData.largeMode || false,
 				title: this.translateSys('add2'),
 				isFilter: true,
 				param: {},
diff --git a/pages/modal/3200_view.vue b/pages/modal/3200_view.vue
index d93b89e..8eb16dd 100644
--- a/pages/modal/3200_view.vue
+++ b/pages/modal/3200_view.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="uni-page-modal-3200-view">
+	<view class="uni-page-modal-3200-view" :class="largeMode?'large-mode':''">
 		<view class="v-content">
 			<view class="dv-panel dv-panel-bkcolor">
 				<div class="dv-panel-input">
@@ -67,6 +67,7 @@
 		},
 		data() {
 			return {
+					largeMode: getApp().globalData.largeMode || false,
 				title: this.translateSys('add2'),
 				param: {},
 				styleDef: {
diff --git a/pages/modal/3201.vue b/pages/modal/3201.vue
index a2cefb1..5e6160a 100644
--- a/pages/modal/3201.vue
+++ b/pages/modal/3201.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="uni-page-modal-3201">
+	<view class="uni-page-modal-3201" :class="largeMode?'large-mode':''">
 		<view class="dv_head">
 			<uni-section :title="title">
 				<view class="example"
@@ -51,6 +51,7 @@
 		mixins: [buttonClickMixin],
 		data() {
 			return {
+					largeMode: getApp().globalData.largeMode || false,
 				title: '3201棣栭〉',
 				param: {},
 				show: true,
diff --git a/pages/modal/3202.vue b/pages/modal/3202.vue
index 3da57fa..c88597c 100644
--- a/pages/modal/3202.vue
+++ b/pages/modal/3202.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="uni-page-modal-3202">
+	<view class="uni-page-modal-3202" :class="largeMode?'large-mode':''">
 		<view class="v-content">
 			<!-- 琛ㄥご鏍峰紡 -->
 			<OIForm ref="refBaseForm" class="v-headStyle" :form="head_styledef.form" @on-focus="ontap"
@@ -51,6 +51,7 @@
 		},
 		data() {
 			return {
+					largeMode: getApp().globalData.largeMode || false,
 				title: this.translateSys('add2'),
 				isFilter: true,
 				param: {},
diff --git a/pages/modal/3202_view.vue b/pages/modal/3202_view.vue
index 2fd3cfb..0ab4c7e 100644
--- a/pages/modal/3202_view.vue
+++ b/pages/modal/3202_view.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="uni-page-modal-3202-view">
+	<view class="uni-page-modal-3202-view" :class="largeMode?'large-mode':''">
 		<view class="v-content">
 			<!-- 琛ㄥご鏍峰紡 -->
 			<OIForm ref="refBaseForm" class="v-headStyle" :form="head_styledef.form" viewMode></OIForm>
@@ -55,6 +55,7 @@
 		},
 		data() {
 			return {
+					largeMode: getApp().globalData.largeMode || false,
 				title: this.translateSys('add2'),
 				param: {},
 				styledef: {},
diff --git a/pages/modal/5600.vue b/pages/modal/5600.vue
index 4918b6d..85050d8 100644
--- a/pages/modal/5600.vue
+++ b/pages/modal/5600.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="uni-page-modal-5600">
+	<view class="uni-page-modal-5600" :class="largeMode?'large-mode':''">
 		<!-- 琛ㄥご鏍峰紡 -->
 		<view class="view-header">
 			<view class="v-headStyle" v-for="(item,index) in head_styledef.form.items">
@@ -209,6 +209,7 @@
 	export default {
 		data() {
 			return {
+					largeMode: getApp().globalData.largeMode || false,
 				title: this.translateSys("coding_disk"),
 				ClsID: 'CG_Detail',
 				param: {},
diff --git a/pages/modal/5601.vue b/pages/modal/5601.vue
index 50bea59..7a5a586 100644
--- a/pages/modal/5601.vue
+++ b/pages/modal/5601.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="uni-page-modal-5601">
+	<view class="uni-page-modal-5601" :class="largeMode?'large-mode':''">
 		<!-- 琛ㄥご鏍峰紡 -->
 		<OIForm ref="refBaseForm" class="v-headStyle" :form="head_styledef.form" :focusId="focusFieldId"
 			@on-click="onClick" @on-focus="ontap" @on-change="onEnterChange" @on-click-prefix="classAttr_extButton"
@@ -17,7 +17,7 @@
 				<swiper class="view-tabpage" :current="current" @change="changeSwiper">
 					<!-- 瀛愮晫闈�-->
 					<swiper-item v-for="(pageData, pageIndex) in pageDetail" :key="pageIndex">
-						<view class="uni-panel-content">
+						<view class="tab-content">
 							<view class="view-tab-content" :id="'tabpanel' + pageData.Name">
 								<image class="logo" v-if="pageData.DefList.length==0"
 									src="../../images/mobox_log_200x40.png">
@@ -139,6 +139,7 @@
 
 		data() {
 			return {
+				largeMode: getApp().globalData.largeMode || false,
 				title: this.translateSys("inventory"),
 				ClsID: '',
 				param: {},
@@ -2957,6 +2958,12 @@
 			flex-direction: column !important;
 		}
 
+		.tab-content {
+			display: flex;
+			width: 100%;
+			height: 100%;
+			flex-direction: column !important;
+		}
 
 		.view-bottom {
 			display: flex;
@@ -2972,7 +2979,6 @@
 			.btn-left {
 				padding: 20rpx;
 				line-height: 1.5;
-				font-size: 38rpx;
 				font-weight: bold;
 				float: left;
 				display: inline-block;
@@ -2982,7 +2988,6 @@
 			.btn-one {
 				padding: 20rpx;
 				line-height: 1.5;
-				font-size: 38rpx;
 				font-weight: bold;
 				float: left;
 				display: inline-block;
@@ -2993,7 +2998,6 @@
 			.btn-right {
 				padding: 20rpx;
 				line-height: 1.5;
-				font-size: 38rpx;
 				font-weight: bold;
 				float: right;
 				display: inline-block;
@@ -3078,7 +3082,7 @@
 			.dv-panel-button {
 				width: 100%;
 				text-align: left;
-				min-height: 30rpx;
+				min-height: 16px;
 				padding-bottom: 10rpx;
 
 				checkbox {
@@ -3090,7 +3094,7 @@
 					text-align: left;
 					line-height: 1.5;
 					border: none;
-					font-size: 30rpx;
+
 					margin-right: 10rpx;
 					display: inline-block;
 					float: right;
@@ -3150,7 +3154,6 @@
 			background: #94D5EF;
 			display: block;
 			width: 100%;
-			font-size: 36rpx;
 			line-height: 80rpx;
 			font-weight: 500;
 		}
@@ -3169,8 +3172,6 @@
 			background: #FFF;
 			border-radius: 0 !important;
 			color: #2d8cf0;
-			/* padding: 10rpx 8rpx 12rpx; */
-			font-size: 34rpx;
 			font-family: inherit;
 			box-shadow: none !important;
 			transition-duration: 0.1s;
@@ -3224,7 +3225,6 @@
 		}
 
 		.popup-header {
-			font-size: 42rpx;
 			font-weight: bold;
 			margin: 20rpx 20rpx 0px 20rpx;
 		}
@@ -3249,7 +3249,6 @@
 			background: #27A6E1;
 			border: none;
 			color: #fff;
-			font-size: 38rpx;
 			font-weight: bold;
 			/* float: left; */
 			display: inline-block;
@@ -3265,7 +3264,6 @@
 			// color: #fff;
 			background: #fff;
 			color: #000;
-			font-size: 38rpx;
 			font-weight: bold;
 			/* float: right; */
 			display: inline-block;
@@ -3273,4 +3271,10 @@
 
 
 	}
+
+	.uni-page-modal-5601.large-mode {
+		.dv-panel-button {
+			min-height: 32px !important;
+		}
+	}
 </style>
\ No newline at end of file
diff --git a/pages/modal/5602.vue b/pages/modal/5602.vue
index d045b65..2214147 100644
--- a/pages/modal/5602.vue
+++ b/pages/modal/5602.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="uni-page-modal-5602">
+	<view class="uni-page-modal-5602" :class="largeMode?'large-mode':''">
 		<!-- 琛ㄥご鏍峰紡 -->
 		<view class="view-header">
 			<view class="v-headStyle" v-for="(item,index) in head_styledef.form.items">
@@ -214,6 +214,7 @@
 	export default {
 		data() {
 			return {
+					largeMode: getApp().globalData.largeMode || false,
 				title: this.translateSys("sorting"),
 				ClsID: "Distribution_CNTR_Detail",
 				ClsID2: "Picking_Result",
diff --git a/pages/modal/classAttr.vue b/pages/modal/classAttr.vue
index ecd1e62..b3066d4 100644
--- a/pages/modal/classAttr.vue
+++ b/pages/modal/classAttr.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="content">
+	<view class="content" :class="largeMode?'large-mode':''">
 		<view class="v-area" v-for="(classattr,index) in classAttrList">
 			<div class="class_attr_title" style="display: none;">
 				<div class="title_line"></div>
@@ -311,6 +311,7 @@
 		},
 		data() {
 			return {
+					largeMode: getApp().globalData.largeMode || false,
 				title: '鏂板',
 				param: {},
 				focusField: "",
diff --git a/pages/modal/form/index.vue b/pages/modal/form/index.vue
index aee1e43..2d008d7 100644
--- a/pages/modal/form/index.vue
+++ b/pages/modal/form/index.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="uni-page-modal-form">
+	<view class="uni-page-modal-form" :class="largeMode?'large-mode':''">
 		<view class="view-content">
 			<!-- 琛ㄥご鏍峰紡 -->
 			<OIForm ref="refBaseForm" class="v-head-style" :form="head_styledef.form" :focusId="focusFieldId"
@@ -64,6 +64,7 @@
 		},
 		data() {
 			return {
+					largeMode: getApp().globalData.largeMode || false,
 				okLoading: false,
 				title: this.translateSys('add2'),
 				type: '',
diff --git a/pages/modal/ms_classAttr.vue b/pages/modal/ms_classAttr.vue
index 61959ae..9aefc3d 100644
--- a/pages/modal/ms_classAttr.vue
+++ b/pages/modal/ms_classAttr.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="content">
+	<view class="content" :class="largeMode?'large-mode':''">
 		<!-- 涓绘暟鎹�-->
 		<view class="v-area" v-for="(classattr,index) in classAttrList">
 			<div class="class_attr_title" style="display: none;">
@@ -669,6 +669,7 @@
 		},
 		data() {
 			return {
+					largeMode: getApp().globalData.largeMode || false,
 				title: '鏂板',
 				param: {},
 				focusField: "",
diff --git a/pages/modal/small-wnd/ext-button.vue b/pages/modal/small-wnd/ext-button.vue
deleted file mode 100644
index d73c6b3..0000000
--- a/pages/modal/small-wnd/ext-button.vue
+++ /dev/null
@@ -1,658 +0,0 @@
-<template>
-	<view class="uni-page-modal-small-wnd-ref-ext-button">
-		<view class="uni-panel-ext-button">
-			<input class="uni-panel-input" type="text" v-model="visible" :disabled="disabled" @on-blur="onChange" />
-			<view class="uni-panel-right-ico">
-				<a @click="onClick"><i class="ace-icon fa fa-plus-circle"></i></a>
-			</view>
-		</view>
-	</view>
-</template>
-<script>
-	import {
-		Base64
-	} from  '@/js/Base64.js';
-	import lua from "@/lua";
-	import {
-		showError
-	} from "@/libs/util";
-	import {
-		runCustomEvent,
-	} from "@/api/data.js"
-
-	export default {
-		name: "OIDataSmallDialogRefExtButton",
-		components: {
-
-		},
-		props: {
-			clsId: String,
-			icon: String,
-			action: String,
-			beforeClickEvent: String,
-			callbackEvent: String,
-			enviroment: Object,
-			objAttr: Object,
-			modelValue: String,
-			form: Object,
-			disabled: Boolean,
-		},
-		data() {
-			return {
-				openDataQueryDlg: {
-					visible: false,
-					title: "",
-					param: {},
-				},
-				openSelectUserDlg: {
-					visible: false,
-					title: "",
-					subTitle: "",
-					orgShowDept: false,
-					orgShowUser: true,
-					orgShowRole: false,
-					showOrgTab: true,
-					showUserTab: true,
-					multi: false,
-				},
-				openCommonDlg: {
-					visible: false,
-					param: {},
-				},
-			};
-		},
-		computed: {
-			visible: {
-				get() {
-					return this.modelValue;
-				},
-				set(value) {
-					this.$emit("update:modelValue", value);
-				},
-			},
-			actionId() {
-				let id = this.action;
-				if (!id) return "";
-				if (id[0] != "{" && id[id.length - 1] != "}") id = `{${id}}`;
-				return id;
-			},
-			beforeClickEventId() {
-				let id = this.beforeClickEvent;
-				if (!id) return "";
-				if (id[0] != "{" && id[id.length - 1] != "}") id = `{${id}}`;
-				return id;
-			},
-			callbackEventId() {
-				let id = this.callbackEvent;
-				if (!id) return "";
-				if (id[0] != "{" && id[id.length - 1] != "}") id = `{${id}}`;
-				return id;
-			},
-		},
-		methods: {
-			setData(obj) {
-				let that = this;
-				let keys = [];
-				let val, data;
-			
-				Object.keys(obj).forEach(function(key) {
-					keys = key.split(".");
-					val = obj[key];
-					data = that.$data;
-					keys.forEach(function(key2, index) {
-						if (index + 1 == keys.length) {
-							that.$set(data, key2, val);
-						} else {
-							if (!data[key2]) {
-								that.$set(data, key2, {});
-							}
-						}
-						data = data[key2];
-					});
-				});
-			},
-			
-			async onClick() {
-				try {
-					if (!this.beforeClickEventId)
-						return this.$Message.warning("鏈寚瀹氣�鐐瑰嚮鎸夐挳鍓嶁�浜嬩欢");
-					if (!this.callbackEventId)
-						return this.$Message.warning("鏈寚瀹氣�鎸夐挳鍥炶皟鈥濅簨浠�);
-					this.dataObjRunCustomEvent_Return();
-
-				} catch (ex) {
-					this.showError(ex);
-				}
-			},
-			async onClicked({
-				inputParameter = {},
-				dataJson = []
-			}) {
-				try {
-					let extInfo = {
-						...this.enviroment,
-						edit_dlg: {
-							type: "small",
-							class_id: this.clsId,
-						},
-					};
-					if (typeof inputParameter == "object")
-						inputParameter = JSON.stringify(inputParameter);
-					await lua(
-						this,
-						await runCustomEvent({
-							ed_type: 0,
-							class_id: this.clsId,
-							event_id: this.callbackEventId,
-							obj_attr: this.objAttr,
-							ext_info: Base64.encode(JSON.stringify(extInfo)),
-							data_json: Base64.encode(JSON.stringify(dataJson)),
-							input_param: Base64.encode(inputParameter),
-						})
-					);
-				} catch (ex) {
-					this.showError(ex);
-				}
-			},
-			dataObjRunCustomEvent(info, data_attr) {
-				var $this = this;
-				let extInfo = {
-					...this.enviroment,
-					edit_dlg: {
-						type: "small",
-						class_id: this.clsId,
-					},
-				};
-
-				var global_attr = Base64.encode(JSON.stringify({})); //灏嗗瓧绗︿覆杞崲涓篵as}e64缂栫爜
-				if (info.dataJson)
-					info.dataJson = Base64.encode(JSON.stringify(info.dataJson)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
-				var obj_attr = {};
-				info.attr.forEach(item => {
-					obj_attr[item.attr] = item.val;
-				});
-				extinfo = Base64.encode(JSON.stringify(extinfo)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
-				var dataInfo = {
-					ed_type: info.edtype,
-					start_transaction: '',
-					class_id: info.clsid,
-					class_name: '',
-					event_id: info.eventid,
-					event_name: '',
-					data_obj_id: info.objid,
-					obj_attr: obj_attr,
-					prj_id: info.projectid,
-					ref_cls_id: info.rclsid,
-					rel_obj_id: info.robjid,
-					user_login: info.userlogin,
-					data_json: info.dataJson,
-					compose_info: '',
-					ext_info: extinfo,
-					global_attr: global_attr,
-					input_param: '',
-				};
-				console.log(dataInfo);
-				// return;
-				runCustomEvent(dataInfo).then(data => {
-					console.log(data);
-					if (data.ret != 0) {
-						var tip = data.err_info ? typeof data.err_info == 'string' ? data.err_info :
-							data
-							.err_info.join('<br/>') : '';
-						if (data.ret == 801) uni.showModal({
-							title: this.translateSys('tip'),
-							content: tip,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
-						else uni.showModal({
-							title: this.translateSys('tip'),
-							content: tip + ',鎻愮ず:' + data.ret,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
-						return false
-					} else {
-						var tip = data.info ? typeof data.info == 'string' ? data.info : data.info
-							.join(
-								'<br/>') : '';
-						if (tip) uni.showModal({
-							title: this.translateSys('tip'),
-							content: tip,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
-
-						var actionlist = data.action;
-						if (actionlist) {
-							console.log(actionlist);
-							for (var i = 0; i < actionlist.length; i++) {
-								var action = actionlist[i];
-								if (action.action_type == 'set_dlg_attr') {
-									var result = action.value;
-									for (var i = 0; i < result.length; i++) {
-										if (result[i].choice_list) {
-											for (var c = 0; c < $this.$data.classAttrList
-												.length; c++) {
-												var attr = $this.$data.classAttrList[c].Attr;
-												for (var j = 0; j < attr.length; j++) {
-													if (attr[j].Name == result[i].attr) {
-														if (utils.classUtils.attrTypeIsDict(attr[j]
-																.Type)) {
-															var dictItemList = [];
-															for (var d in result[i].choice_list) {
-																var val = result[i].choice_list[d];
-																dictItemList.push({
-																	"CN_S_NAME": val,
-																	"Name": val,
-																	"label": val,
-																	"value": val
-																});
-															}
-															attr[j].dictitem = dictItemList;
-															// attr[j].dictitem = result[i].choice_list;
-														}
-													}
-												}
-											}
-										}
-										for (var c = 0; c < $this.$data.classAttrList.length; c++) {
-											var attr = $this.$data.classAttrList[c].Attr;
-											for (var j = 0; j < attr.length; j++) {
-												console.log(attr[j].Name + '==' + result[i].attr);
-												if (attr[j].Name == result[i].attr) {
-													attr[j].Value = result[i].value;
-												}
-											}
-										}
-										var length = 0;
-										if (!$this.$data.refdatastore.filter(function(s) {
-												return result[i].attr == s.attr
-											}).length) {
-											length = 1;
-											$this.$data.refdatastore.push(result[i]);
-										}
-										if (length == 0) {
-											for (var j = 0; j < $this.$data.refdatastore.length; j++) {
-												if ($this.$data.refdatastore[j].attr == result[i]
-													.attr) {
-													$this.$data.refdatastore[j].value = result[i]
-														.value;
-												}
-											}
-										}
-									}
-								} else if (data.action[i].action_type == 'set_global_attr') {
-									$this.$data.global_attr = data.action[i].value || [];
-								}
-							}
-						}
-
-						if (data.result) {
-							var result = data.result;
-							for (var i = 0; i < result.length; i++) {
-								for (var c = 0; c < $this.$data.classAttrList.length; c++) {
-									var attr = $this.$data.classAttrList[c].Attr;
-									for (var j = 0; j < attr.length; j++) {
-										if (attr[j].Name == result[i].attr) {
-											attr[j].Value = result[i].value;
-										}
-									}
-								}
-
-								var length = 0;
-								if (!$this.$data.refdatastore.filter(function(s) {
-										return result[i].attr == s.attr
-									}).length) {
-									length = 1;
-									$this.$data.refdatastore.push(result[i]);
-								}
-								if (length == 0) {
-									for (var j = 0; j < $this.$data.refdatastore.length; j++) {
-										if ($this.$data.refdatastore[j].attr == result[i].attr) {
-											$this.$data.refdatastore[j].value = result[i].value;
-										}
-									}
-								}
-							}
-						}
-					}
-
-				}).catch(ex => {
-					// console.log(ex);
-					uni.showModal({
-						title: this.translateSys('error') + " 3.1",
-						content: ex.errMsg,
-						showCancel: false,
-						confirmText: this.translateSys('cancel')
-					});
-				});
-			},
-
-			dataObjRunCustomEvent_Return() {
-				let extInfo = {
-					...this.enviroment,
-					edit_dlg: {
-						type: "small",
-						class_id: this.clsId,
-					},
-				};
-				extinfo = Base64.encode(JSON.stringify(extinfo)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
-				var global_attr = Base64.encode(JSON.stringify({})); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
-				var dataInfo = {
-					ed_type: "0",
-					class_id: this.clsId,
-					event_id: this.beforeClickEventId,
-					obj_attr: this.objAttr,
-					ext_info: extinfo,
-					global_attr: global_attr,
-				};
-				console.log(dataInfo);
-				// return;
-				runCustomEvent(dataInfo).then(data => {
-					console.log(data);
-					if (data.ret != 0) {
-						var tip = data.err_info ? typeof data.err_info == 'string' ? data.err_info :
-							data
-							.err_info.join('<br/>') : '';
-						if (data.ret == 801) uni.showModal({
-							title: this.translateSys('tip'),
-							content: tip,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
-						else uni.showModal({
-							title: this.translateSys('tip'),
-							content: tip + ',鎻愮ず:' + data.ret,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
-						return false
-					} else {
-						var tip = data.info ? typeof data.info == 'string' ? data.info : data.info
-							.join(
-								'<br/>') : '';
-						if (tip) uni.showModal({
-							title: this.translateSys('tip'),
-							content: tip,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
-
-						if (data != "") {
-							var actions = data.action;
-							console.log(actions);
-							if (actions) {
-								for (var i = 0; i < actions.length; i++) {
-									var action = actions[i];
-									var val = action.value;
-									var enviroment = JSON.stringify(enviroment);
-
-									if (action.action_type == 'open_panel') {
-
-										uni.showModal({
-											title: this.translateSys('tip'),
-											content: action.action_type + '姝ction灏氭湭澶勭悊锛�
-											showCancel: false,
-											confirmText: this.translateSys('close')
-										})
-
-									} else if (action.action_type == 'open_select_userdlg') {
-										var style = val.style;
-										var $this = this;
-										var param = {
-											button_callback: ,
-											req: req,
-											data_attr: data_attr
-										}
-										uni.navigateTo({
-											url: '../selpsn/index?mulit=false&param=' + JSON
-												.stringify(
-													param),
-											events: {
-												AddPer(data, param) {
-													console.log(data, param);
-													let inputParameter = data;
-													this.onClicked({
-														inputParameter
-													});
-												}
-											}
-										});
-									} else if (action.action_type == 'open_data_query_dlg') {
-										uni.showModal({
-											title: this.translateSys('tip'),
-											content: action.action_type + '姝ction灏氭湭澶勭悊锛�
-											showCancel: false,
-											confirmText: this.translateSys('close')
-										})
-									} else if (action.action_type == 'open_common_dlg') {
-										var $this = this;
-										if (val.common_dlg_id == 'check_list') {
-											$this.$data.check_list = val.config;
-											if (val.config.appear_style == 'sideslip') //鍒ゆ柇鏄惁鏄晶婊�-												$this.$data.popupType = 'right';
-											else
-												$this.$data.popupType = 'center'
-											// open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴�
-											$this.$refs.popup.open($this.$data.popupType);
-											var popupParam = {
-												index: index,
-												iindex: iindex,
-												button_callback: button_callback,
-												req: req,
-												data_attr: data_attr
-											}
-											$this.$data.popupParam = popupParam;
-										}
-									} else if (action.action_type == 'open_project_query_dlg') {
-										var priRel = '-1';
-										if (action.value.select_range == '鍏ㄩ儴鐩稿叧')
-											priRel = '0';
-										else if (action.value.select_range == '鎴戣礋璐g殑椤圭洰')
-											priRel = '1';
-										else if (action.value.select_range == '鎴戝垱寤虹殑')
-											priRel = '2';
-										else if (action.value.select_range == '鎴戝弬涓庣殑' || action.value
-											.select_range == '鎴戝弬鍔犵殑')
-											priRel = '3';
-										else if (action.value.select_range == '鎴戝叧娉ㄧ殑')
-											priRel = '4';
-										else if (action.value.select_range == '鎴戜笅灞炵殑椤圭洰')
-											priRel = '5';
-
-										var $this = this;
-										var param_ = {
-											index: index,
-											iindex: iindex,
-											button_callback: button_callback,
-											req: req
-										}
-										uni.navigateTo({
-											url: '../selPrj/index?relation=' + priRel +
-												'&param=' +
-												JSON.stringify(param_),
-											events: {
-												AddPer(data, param) {
-													$this.$data.classAttrList[param.index]
-														.Attr[param
-															.iindex].Value = data[0].Name;
-													$this.$data.classAttrList[param.index]
-														.Attr[param
-															.iindex].ValID = data[0].ID + ';' +
-														data[0]
-														.Name;
-													var callback_eventid = param
-														.button_callback
-														.trim();
-													if ($this.callbackEventId) {
-														var info = {
-															eventid: $this.callbackEventId,
-															edtype: "2",
-															projectid: data[0].ID,
-															rclsid: "",
-															robjid: "",
-															userlogin: "",
-															clsid: $this.clsId,
-															objid: "",
-															attr: param.req,
-															dataJson: [],
-														}
-
-														$this.DataObjRunCustomEvent(info);
-													}
-												}
-											}
-										});
-									} else {
-										var d = dialog({
-											title: '<i class="ace-icon fa fa-info-circle"></i> ' +
-												this.translateSys('tip'),
-											content: action.action_type + '姝ction灏氭湭澶勭悊锛�
-										});
-										d.show();
-									}
-								}
-							}
-						} else {
-							uni.showModal({
-								title: this.translateSys('tip') + "5.2",
-								content: '璋冪敤 before_click_button 鑴氭湰杩斿洖绌猴紝event_id' + eventid,
-								showCancel: false,
-								confirmText: this.translateSys('cancel')
-							});
-						}
-					}
-
-				}).catch(ex => {
-					// console.log(ex);
-					uni.showModal({
-						title: this.translateSys('tip') + "5.1",
-						content: ex.errMsg,
-						showCancel: false,
-						confirmText: this.translateSys('cancel')
-					});
-				});
-			},
-
-			async onChange() {
-				try {
-					if (!this.actionId) return;
-					let extInfo = {
-						...this.enviroment,
-					};
-					await lua(
-						this,
-						await runCustomEvent({
-							ed_type: 0,
-							class_id: this.clsId,
-							event_id: this.actionId,
-							obj_attr: this.objAttr,
-							ext_info: Base64.encode(JSON.stringify(extInfo)),
-						})
-					);
-				} catch (ex) {
-					this.showError(ex);
-				}
-			},
-			async onOpenDataQueryDlgOK(data) {
-				if (!data) throw new Error("鏈幏鍙栧埌閫変腑鏁版嵁");
-				let dataJson = [];
-				if (data instanceof Array) {
-					// 澶氶�
-					data.forEach((d) => {
-						let id = d.id;
-						let attrs = [];
-						Object.keys(d).forEach((attr) => {
-							let value = (d[attr] || "").replace(/&nbsp;/g, " ");
-							attrs.push({
-								attr,
-								value
-							});
-						});
-						dataJson.push({
-							id,
-							attrs
-						});
-					});
-				} else if (data instanceof Object) {
-					// 鍗曢�
-					let id = data.id;
-					let attrs = [];
-					Object.keys(data).forEach((attr) => {
-						let value = (data[attr] || "").replace(/&nbsp;/g, " ");
-						attrs.push({
-							attr,
-							value
-						});
-					});
-					// dataJson.push({ id, attrs });
-					dataJson = {
-						id,
-						attrs
-					};
-				}
-				this.onClicked({
-					dataJson
-				});
-			},
-			onOpenSelectUserDlgOK(list) {
-				let inputParameter = "";
-				let datas = [];
-				list.forEach((l) => {
-					datas.push({
-						id: l.id,
-						name: l.name,
-						type: l.type,
-					});
-				});
-				inputParameter = datas;
-				this.onClicked({
-					inputParameter
-				});
-			},
-			onOpenCommonDlgOK(datas) {
-				let inputParameter = "";
-				if (typeof datas == "string") inputParameter = datas;
-				else inputParameter = JSON.stringify(datas);
-				this.onClicked({
-					inputParameter
-				});
-			},
-			setFormValues(attrs) {
-				this.refSmallDialog.setFormValues(attrs);
-			},
-			hideFormItems(attrs) {
-				this.refSmallDialog.hideFormItems(attrs);
-			},
-			setFormAllValues(attrs) {
-				this.$emit("on-set-all-value", attrs);
-			},
-			showError(ex) {
-				showError(this, ex);
-			},
-		},
-		setup() {
-
-		},
-	};
-</script>
-
-<style lang="less">
-	.uni-page-modal-small-wnd-ref-ext-button {
-		.uni-panel-input-content {
-			display: flex;
-			flex-direction: row;
-			width: 100%;
-
-			.uni-panel-input {
-				flex: 1;
-			}
-
-			.uni-panel-right-ico {
-				padding: 5rpx;
-				margin: 5rpx;
-			}
-		}
-	}
-</style>
\ No newline at end of file
diff --git a/pages/modal/small-wnd/index.vue b/pages/modal/small-wnd/index.vue
deleted file mode 100644
index 4fdd1ee..0000000
--- a/pages/modal/small-wnd/index.vue
+++ /dev/null
@@ -1,2740 +0,0 @@
-<template>
-	<view class="uni-page-modal-small-wnd">
-		<view class="v-area" v-for="(classattr,index) in classAttrList">
-			<div class="class_attr_title" style="display: none;">
-				<div class="title_line"></div>
-				<div class="title_icon" :style="{'background-color':classattr.BkColor}">
-					<i class="ace-icon fa" :class="classattr.ImgFontStyle"></i>
-				</div>
-				<span class="title">{{classattr.Name}}</span>
-				<a href="javascript:;" class="arrow" @tap="onarrow(index,classattr.Open)"><i class="ace-icon fa "
-						:class="classattr.Open?'fa-angle-down':'fa-angle-up'"></i></a>
-			</div>
-			<div class="class_attr_body" :style="{'display':classattr.Open?'block':'none'}">
-				<div class="dv_field_div" v-for="(attr,iindex) in classattr.Attr">
-					<view class="form-group"
-						v-if="attr.Type=='瀛楃涓� || attr.Type=='鍙彉闀垮瓧绗︿覆' || attr.Type=='鏁存暟' || attr.Type=='娴偣鏁� ||attr.Type=='char' || attr.Type=='varchar' || attr.Type=='int' || attr.Type=='float'"
-						:style="{'display':attr.hidden == true?'none':''}">
-						<view v-if="classattr.control_style=='涓婁笅甯冨眬'">
-							<text class="tx_title" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:<i
-									class="i_tishi" v-if="attr.notempty==true">*</i></text> <!-- attr.NotEmpty=='1' -->
-							<div class="text-right" v-if="attr.ext_button==true">
-								<a @tap="classAttr_extButton(index,iindex)"><i
-										class="ace-icon fa fa-plus-circle"></i></a>
-							</div>
-							<input
-								:type="attr.Type=='鏁存暟' || attr.Type=='娴偣鏁� || attr.Type=='int' || attr.Type=='float'?'number':'text'"
-								:value="attr.Value" @focus="ontap" @blur="onevent" v-if="attr.Height=='1'"
-								:data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}"
-								:disabled="attr.edit?false:true">
-							<!-- =='flase'?true:false -->
-							<textarea :value="attr.Value" @focus="ontap" @blur="onevent" v-else-if="attr.Height=='2'"
-								:data-index="index" :data-iindex="iindex" style="height:60px;"
-								:style="{'width':attr.Width}" :disabled="attr.edit?false:true"></textarea>
-							<textarea :value="attr.Value" @focus="ontap" @blur="onevent" v-else-if="attr.Height=='3'"
-								:data-index="index" :data-iindex="iindex" style="height:90px;"
-								:style="{'width':attr.Width}" :disabled="attr.edit?false:true"></textarea>
-							<!-- 鎵爜鍚庝簨浠惰繑鍥�-->
-							<div class="input_vallist">
-								<ul v-for="(inputval,vindex) in inputValList">
-									<li><span>{{inputval.Name}}</span><a href="javascript:;"
-											@tap="inputValListIsDel(vindex)"><i class="ace-icon fa fa-times"></i></a>
-									</li>
-								</ul>
-							</div>
-						</view>
-						<view v-if="classattr.control_style=='宸﹀彸甯冨眬'">
-							<p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
-							<input
-								:type="attr.Type=='鏁存暟' || attr.Type=='娴偣鏁� || attr.Type=='int' || attr.Type=='float' ?'number':'text'"
-								class="attr_field" :value="attr.Value" @focus="ontap" @blur="onevent"
-								v-if="attr.Height=='1'" :data-index="index" :data-iindex="iindex"
-								:style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true?10:5) - (attr.ext_button==true?9:0) +'%'}"
-								:disabled="attr.edit?false:true">
-							<textarea class="attr_field" :value="attr.Value" @focus="ontap" @blur="onevent"
-								v-else-if="attr.Height=='2'" :data-index="index" :data-iindex="iindex"
-								style="height:60px;"
-								:style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true?10:5) - (attr.ext_button==true?9:0) +'%'}"
-								:disabled="attr.edit?false:true"></textarea>
-							<textarea class="attr_field" :value="attr.Value" @focus="ontap" @blur="onevent"
-								v-else-if="attr.Height=='3'" :data-index="index" :data-iindex="iindex"
-								style="height:90px;"
-								:style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true?10:5) - (attr.ext_button==true?9:0) +'%'}"
-								:disabled="attr.edit?false:true"></textarea>
-							<div class="text-right2" v-if="attr.ext_button==true">
-								<a @tap="classAttr_extButton(index,iindex)"><i
-										class="ace-icon fa fa-plus-circle"></i></a>
-							</div>
-							<i class="i_tishi" v-if="attr.notempty==true">*</i>
-						</view>
-					</view>
-					<view class="form-group" v-if="attr.Type=='甯冨皵鍊� || attr.Type=='bool'"
-						:style="{'display':attr.hidden == true?'none':''}">
-						<checkbox-group class="check_rememberPwd" @change="oncheck" :data-ischeck="attr.Value"
-							:data-index="index" :data-iindex="iindex"
-							:style="{'margin-left': classattr.control_style=='宸﹀彸甯冨眬'?classattr.title_p_wdith+2 +'%':'10rpx'}">
-							<label>
-								<checkbox :value="attr.Value" :checked="attr.Value" />
-								<text>{{attr.DispName}}<i class="i_tishi" v-if="attr.notempty==true">*</i></text>
-							</label>
-						</checkbox-group>
-					</view>
-					<view class="form-group"
-						v-if="attr.Type=='鏃ユ湡' || attr.Type=='鏃堕棿' || attr.Type=='date' || attr.Type=='datetime'"
-						:style="{'display':attr.hidden == true?'none':''}">
-						<view v-if="classattr.control_style=='涓婁笅甯冨眬'">
-							<text class="tx_title" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:<i
-									class="i_tishi" v-if="attr.notempty==true">*</i></text>
-							<picker mode="date" :value="attr.Value" @change="ondateTime" class="date_iput"
-								:data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}">
-								<view class="picker">{{attr.Value}}</view>
-							</picker>
-						</view>
-						<view v-if="classattr.control_style=='宸﹀彸甯冨眬'">
-							<p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
-							<picker mode="date" :value="attr.Value" @change="ondateTime" class="date_iput attr_field"
-								:data-index="index" :data-iindex="iindex"
-								:style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true?10:5) +'%'}">
-								<view class="picker">{{attr.Value}}</view>
-							</picker>
-							<i class="i_tishi" v-if="attr.notempty==true">*</i>
-						</view>
-					</view>
-					<view class="form-group"
-						v-if="attr.Type=='瀛楀吀' || attr.Type=='瀛楀吀-瀛楃涓� || attr.Type=='瀛楀吀-鏁存暟' || attr.Type=='dict' || attr.Type=='dict-char' || attr.Type=='dict-int'"
-						:style="{'display':attr.hidden == true?'none':''}">
-						<view v-if="classattr.control_style=='涓婁笅甯冨眬'">
-							<text class="tx_title">{{attr.DispName}}:<i class="i_tishi"
-									v-if="attr.notempty==true">*</i></text>
-							<picker class="section_iput" @change="onchange" :range="attr.dictitem" range-key="CN_S_NAME"
-								v-if="attr.select==false" :data-index="index" :data-iindex="iindex"
-								:style="{'width':attr.Width}" :disabled="attr.edit?false:true">
-								<label class="">{{ attr.Value }}</label>
-							</picker>
-							<select-cy :value="attr.Value" :name="attr.Name" :options="attr.dictitem"
-								showClearIcon="true" @change="onchange2" v-else-if="attr.select==true"
-								:data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}"
-								:disabled="attr.edit?false:true"></select-cy>
-						</view>
-						<view v-if="classattr.control_style=='宸﹀彸甯冨眬'">
-							<p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
-							<picker class="section_iput attr_field" @change="onchange" :range="attr.dictitem"
-								range-key="CN_S_NAME" v-if="attr.select==false" :data-index="index"
-								:data-iindex="iindex"
-								:style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true?10:5) +'%'}">
-								<label class="">{{ attr.Value }}</label>
-							</picker>
-							<select-cy :value="attr.Value" :name="attr.Name" :options="attr.dictitem"
-								showClearIcon="true" @change="onchange2" v-else-if="attr.select==true"
-								:data-index="index" :data-iindex="iindex"
-								:style="{'display':'inline-block','margin-left':'8px','width':attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true?10:5) +'%'}"></select-cy>
-							<i class="i_tishi" v-if="attr.notempty==true">*</i>
-						</view>
-					</view>
-					<view class="form-group"
-						v-if="attr.Type=='寮曠敤瀵硅薄(鍗曚釜)' || attr.Type=='寮曠敤瀵硅薄(澶氫釜)' ||attr.Type=='obj-ref' || attr.Type=='obj-ref-multi'"
-						:style="{'display':attr.hidden == true?'none':''}">
-						<view v-if="classattr.control_style=='涓婁笅甯冨眬'">
-							<text class="tx_title">{{attr.DispName}}:<i class="i_tishi"
-									v-if="attr.notempty==true">*</i></text>
-							<div class="text-right" v-if="attr.Type=='寮曠敤瀵硅薄(鍗曚釜)'|| attr.Type=='obj-ref'">
-								<a @tap="classAttr_AddRef" :data-classid="attr.RelCls[0].id"
-									:data-classname="attr.RelCls[0].name"><i class="ace-icon fa fa-plus-circle"></i></a>
-							</div>
-							<div class="text-right" v-if="attr.Type=='寮曠敤瀵硅薄(澶氫釜)'|| attr.Type=='obj-ref-multi'">
-								<picker class="select" @change="classAttr_AddRef" :range="attr.RelClsList"
-									range-key="name" :data-index="index" :data-iindex="iindex">
-									<label class="">{{ attr.Value }}</label>
-								</picker>
-								<a class="class_attr_add_ref"><i class="ace-icon fa fa-plus-circle"></i></a>
-							</div>
-							<input type="text" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}"
-								disabled="true">
-						</view>
-						<view v-if="classattr.control_style=='宸﹀彸甯冨眬'">
-							<p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
-							<input type="text" class="attr_field" :data-index="index" :data-iindex="iindex"
-								:style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true?10:5) - 9 +'%'}"
-								disabled="true">
-							<div class="text-right2" v-if="attr.Type=='寮曠敤瀵硅薄(鍗曚釜)'|| attr.Type=='obj-ref'">
-								<a @tap="classAttr_AddRef" :data-classid="attr.RelCls[0].id"
-									:data-classname="attr.RelCls[0].name"><i class="ace-icon fa fa-plus-circle"></i></a>
-							</div>
-							<div class="text-right2" v-if="attr.Type=='寮曠敤瀵硅薄(澶氫釜)'|| attr.Type=='obj-ref-multi'">
-								<picker class="select" @change="classAttr_AddRef" :range="attr.RelClsList"
-									range-key="name" :data-index="index" :data-iindex="iindex">
-									<label class="">{{ attr.Value }}</label>
-								</picker>
-								<a class="class_attr_add_ref"><i class="ace-icon fa fa-plus-circle"></i></a>
-							</div>
-							<i class="i_tishi" v-if="attr.notempty==true">*</i>
-						</view>
-					</view>
-					<view class="form-group" v-if="attr.Type=='寮曠敤浜哄憳' ||attr.Type=='user' "
-						:style="{'display':attr.hidden == true?'none':''}">
-						<view v-if="classattr.control_style=='涓婁笅甯冨眬'">
-							<text class="tx_title">{{attr.DispName}}:<i class="i_tishi"
-									v-if="attr.notempty==true">*</i></text>
-							<div class="text-right">
-								<a class="class_attr_add_per" @tap="classAttr_AddPer(index,iindex)"><i
-										class="ace-icon fa fa-plus-circle"></i></a>
-							</div>
-							<input type="text" :value="attr.Value" :style="{'width':attr.Width}" disabled="true">
-						</view>
-						<view v-if="classattr.control_style=='宸﹀彸甯冨眬'">
-							<p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
-							<input type="text" class="attr_field" :value="attr.Value"
-								:style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true?10:5) - 9 +'%'}"
-								disabled="true">
-							<div class="text-right2">
-								<a class="class_attr_add_per" @tap="classAttr_AddPer(index,iindex)"><i
-										class="ace-icon fa fa-plus-circle"></i></a>
-							</div>
-							<i class="i_tishi" v-if="attr.notempty==true">*</i>
-						</view>
-					</view>
-					<view class="form-group" v-if="attr.Type=='寮曠敤椤圭洰' ||attr.Type=='project'"
-						:style="{'display':attr.hidden == true ?'none':''}">
-						<view v-if="classattr.control_style=='涓婁笅甯冨眬'">
-							<text class="tx_title">{{attr.DispName}}:<i class="i_tishi"
-									v-if="attr.notempty==true">*</i></text>
-							<div class="text-right">
-								<a href="#" class="class_attr_add_prj" @tap="classAttr_AddPrj(index,iindex)"><i
-										class="ace-icon fa fa-plus-circle"></i></a>
-							</div>
-							<input type="text" :value="attr.Value" :style="{'width':attr.Width}" disabled="true">
-						</view>
-						<view v-if="classattr.control_style=='宸﹀彸甯冨眬'">
-							<p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
-							<input type="text" class="attr_field" :value="attr.Value"
-								:style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true?10:5) - 9 +'%'}"
-								disabled="true">
-							<div class="text-right2">
-								<a class="class_attr_add_prj" @tap="classAttr_AddPrj(index,iindex)"><i
-										class="ace-icon fa fa-plus-circle"></i></a>
-							</div>
-							<i class="i_tishi" v-if="attr.notempty==true">*</i>
-						</view>
-					</view>
-					<view class="form-group" v-if="attr.Type=='缂栫爜' || attr.Type=='code'"
-						:style="{'display':attr.hidden == true ?'none':''}">
-						<view v-if="classattr.control_style=='涓婁笅甯冨眬'">
-							<text class="tx_title">{{attr.DispName}}:<i class="i_tishi"
-									v-if="attr.notempty==true">*</i></text>
-							<input type="text" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}"
-								:disabled="attr.edit?false:true">
-						</view>
-						<view v-if="classattr.control_style=='宸﹀彸甯冨眬'">
-							<p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
-							<input type="text" class="attr_field" :data-index="index" :data-iindex="iindex"
-								:style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true?10:5) +'%'}"
-								:disabled="attr.edit?false:true">
-							<i class="i_tishi" v-if="attr.notempty==true">*</i>
-						</view>
-					</view>
-					<view class="form-group" v-if="attr.Type=='鐪佸競鍖� ||attr.Type=='region'"
-						:style="{'display':attr.hidden == true?'none':''}">
-						<view v-if="classattr.control_style=='涓婁笅甯冨眬'">
-							<text class="tx_title">{{attr.DispName}}:<i class="i_tishi"
-									v-if="attr.notempty==true">*</i></text>
-							<pickerAddress class="date_iput" @change="addresschange" :data-index="index"
-								:data-iindex="iindex" :style="{'width':attr.Width}">{{attr.Value}}</pickerAddress>
-						</view>
-						<view v-if="classattr.control_style=='宸﹀彸甯冨眬'">
-							<p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
-							<pickerAddress class="date_iput attr_field" @change="addresschange" :data-index="index"
-								:data-iindex="iindex"
-								:style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true?10:5) +'%'}">
-								{{attr.Value}}
-							</pickerAddress>
-							<i class="i_tishi" v-if="attr.notempty==true">*</i>
-						</view>
-					</view>
-				</div>
-			</div>
-
-		</view>
-		<button type="default" @tap="cancel" class="btn_cancel">{{translateSys('cancel')}}</button>
-		<button type="default" @tap="sava" class="btn_add">{{title}}</button>
-		<!-- 鏅�寮圭獥 top bottom center left right -->
-		<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' }"
-					:style="{'width':check_list.width?check_list.width+'px':'200px','height':check_list.height?check_list.height+'px':'88%'}">
-					<view class="popup-cont" :style="{'height':check_list.height?check_list.height-45+'px':'415px'}">
-						<view class="view_popup_CheckList" v-for="(item,index) in check_list.items">
-							<checkbox-group class="check_list" @change="checkChange" :data-ischeck="item.check"
-								:data-index="index" :style="{'margin-left': '10rpx'}">
-								<label>
-									<checkbox :value="item.check" :checked="item.check" />
-									<text>{{item.name}}</text>
-								</label>
-							</checkbox-group>
-						</view>
-					</view>
-					<view class="popup-footer">
-						<button type="default" @tap="popup_sava" class="btn_popup_add">{{translateSys('ok')}}</button>
-						<button type="default" @tap="popup_cancel"
-							class="btn_popup_cancel">{{translateSys('cancel')}}</button>
-					</view>
-				</view>
-			</uni-popup>
-		</view>
-		<!-- <button class="button" type="primary" @click="classAttr_extButton('right')"><text class="button-text">鍙充晶</text></button> -->
-
-	</view>
-</template>
-
-<script>
-	import {
-		Base64
-	} from  '@/js/Base64.js';
-	import pickerAddress from '../../js/pickerAddress/pickerAddress.vue'
-	import utils from "@/js/utils.js"
-	import {
-		dictGetInfo,
-		dictItemGetInfo
-	} from "@/api/mobox.js"
-	import {
-		getUIStyleInfo,
-		classAttrGetList,
-		runCustomEvent,
-		dataObjCreate,
-		dataObjDel
-	} from "@/api/data.js"
-	export default {
-		name: "PageModalSmallWnd",
-		modules: {
-			Base64,
-		},
-		components: {
-			pickerAddress
-		},
-		onBackPress(e) {
-			// console.log("鐩戝惉杩斿洖鎸夐挳浜嬩欢",e);
-			if (this.type) {
-				const eventChannel = this.getOpenerEventChannel();
-				// const eventChannel = this.getOpenerEventChannel();
-				eventChannel.emit(this.type, "");
-			}
-		},
-		data() {
-			return {
-				title: this.translateSys('add2'),
-				style_def: {},
-				show_style_list: [],
-				attrList: [],
-				param: {},
-				dictList: [],
-				type: '',
-				classAttrList: [],
-				classGridStyle: [],
-				edit_inital_event: "", //寮圭獥鍒濆鍖栦簨浠禝D
-				edit_ok_event: "", //寮圭獥鐐瑰嚮OK 瑙﹀彂浜嬩欢ID
-				edit_select_compose_event: "", //閫夋嫨缁勬垚瀵硅薄鏃惰皟鐢�-				edit_compose_cls_id: "",
-				global_attr: [],
-				refdatastore: [], //寮曠敤鏁版嵁瀛樺偍鍖�/ {attr:'G_PRJ_' + bindattr + '_ID', value:info.id}
-				inputValList: [{
-					Name: "test"
-				}, {
-					Name: "test2"
-				}, {
-					Name: "test3"
-				}, {
-					Name: "test4"
-				}, {
-					Name: "test5"
-				}, {
-					Name: "test6"
-				}, {
-					Name: "test7"
-				}],
-				popupType: "center",
-				check_list: {},
-				popupParam: {},
-			}
-		},
-		computed: {
-			editMode() {
-				return !isNullOrEmpty(this.objId);
-			},
-		},
-		onLoad(options) {
-			// console.log(options);
-			this.title = options.titlename || (editMode ? this.translateSys('modify') : this.translateSys('add2') + param
-				.clsName); //璁剧疆鎸夐挳鏂囧瓧
-			uni.setNavigationBarTitle({
-				title: this.title
-			}); //璁剧疆椤堕儴鏍囬 
-			var param = JSON.parse(options.param);
-
-			if (options.type) {
-				this.$data.type = options.type;
-			}
-			console.log(param);
-			if (!param.clsId) {
-				uni.showModal({
-					title: this.translateSys('tip') + "",
-					content: this.translate("tip_no_master_class"),
-					showCancel: false,
-					confirmText: this.translateSys('cancel')
-				});
-				return;
-			}
-
-			this.$data.param = param;
-			this.loadData()
-		},
-		methods: {
-			setData(obj) {
-				let that = this;
-				let keys = [];
-				let val, data;
-
-				Object.keys(obj).forEach(function(key) {
-					keys = key.split(".");
-					val = obj[key];
-					data = that.$data;
-					keys.forEach(function(key2, index) {
-						if (index + 1 == keys.length) {
-							that.$set(data, key2, val);
-						} else {
-							if (!data[key2]) {
-								that.$set(data, key2, {});
-							}
-						}
-						data = data[key2];
-					});
-				});
-			},
-
-			async loadData() {
-
-
-				// uistyle
-				await this.loadStyleDef();
-				// show_style
-				this.loadShowStyle();
-				// attrList
-				await this.loadAttrList();
-			},
-			async loadAttrList() {
-
-				try {
-					var dataInfo = {
-						class_id: this.param.clsId,
-						class_name: this.param.clsName,
-						group_name: ''
-					};
-					this.$data.attrList == await classAttrGetList(dataInfo) || []
-
-				} catch (ex) {
-					// console.log(ex);
-					let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex
-					uni.showModal({
-						title: this.translateSys("error") + "1.1",
-						content: tip,
-						showCancel: false,
-						confirmText: this.translateSys("cancel")
-					});
-				}
-			},
-			async DictItemGetList(attr, name) { //Mobox3寰楀埌瀛楀吀椤瑰垪琛�-
-				try {
-					this.data = [];
-					var dataInfo = {
-						dict_id: undefined,
-						dict_name: name
-					};
-					const result = await dictItemGetInfo(dataInfo)
-					let dicList = result?.dict_item_list || [];
-					this.dictList[attr.attr] = dicList;
-
-					let dictName = "";
-					if (dicList?.length > 0) {
-						let defaultValue = dicList
-							.find(
-								(d) => d.is_default ==
-								1
-							)?.name;
-						if (defaultValue) dictName =
-							defaultValue;
-						else dictName = dicList[0]
-							.name;
-
-					}
-					this.form[attr.attr] = dictName;
-
-				} catch (ex) {
-					uni.showModal({
-						title: this.translateSys('error') + " 1.3",
-						content: ex.errMsg,
-						showCancel: false,
-						confirmText: this.translateSys('cancel')
-					});
-					return []
-				}
-
-
-			},
-			async loadStyleDef() {
-				try {
-					var $this = this;
-
-					var gridstyleInfo = {};
-					if (param.editDlg.id) {
-						gridstyleInfo = {
-							class_id: this.param.clsId,
-							ui_style_id: this.param.editDlg.id,
-						};
-					} else {
-						gridstyleInfo = {
-							class_id: $this.param.clsId,
-							ui_style_type: 2,
-							ui_style_name: this.param.editDlg.name
-						};
-					}
-					const result = await getUIStyleInfo(gridstyleInfo)
-					var styledef = Base64.decode(result?.style_def);
-					this.$data.style_def = JSON.parse(styledef);
-				} catch (ex) {
-					uni.showModal({
-						title: this.translateSys('error') + " 1.5,
-						content: ex.errMsg,
-						showCancel: false,
-						confirmText: this.translateSys('cancel')
-					});
-					return []
-				}
-			},
-
-			async loadShowStyle() {
-				if (parseInt(this.style_def.lines) > 1)
-					this.show_style_list = this.style_def.show_style;
-				else if (this.style_def.show_style)
-					this.show_style_list = [{
-						line: 1,
-						lineName: "",
-						attr_group: this.style_def.show_style,
-					}, ];
-				else {
-					uni.showModal({
-						title: this.translateSys('error'),
-						content: `鏁版嵁绫烩�${this.param.clsName}鈥濅腑鐨勫皬绐楀彛鈥�{this.param.editDlg.name}鈥濇湭瀹氫箟鈥滄樉绀烘牱寮忊�`,
-						showCancel: false,
-						confirmText: this.translateSys('cancel')
-					});
-
-				}
-			},
-			async loadForm() {
-				this.form = {};
-				this.errTip = {};
-
-				await Promise.all(
-					this.show_style_list.map(async (show_style) => {
-						await Promise.all(
-							show_style.map(async (group) => {
-								let group_def = this.attrList.find(
-									(a) => a.name == group.attrgroup_name
-								);
-								group.def = {
-									bk_color: group_def.bk_color,
-									img_font_style: group_def.img_font_style ||
-										"mobox-sys-mobox",
-								};
-								await Promise.all(
-									group.attrs.map(async (attr) => {
-										let attr_def = group_def.attr_list.find(
-											(a) => a.name == attr.attr
-										);
-
-										// 鈥滃皬绐楀彛鈥濅腑鈥滄樉绀洪厤缃�鎸囧畾鐨勫睘鎬у湪褰撳墠鏁版嵁绫讳腑宸插彉鏇达紝鏃犳硶寰楀埌鐩稿簲鐨勫畾涔�-										if (!attr_def) {
-											uni.showModal({
-												title: this.translateSys(
-													'error'),
-												content: `褰撳墠鏁版嵁绫烩�${this.clsName}(${this.clsId})鈥濅腑鎵句笉鍒板悕涓衡�${attr.name}(${attr.attr})鈥濈殑灞炴�`,
-												showCancel: false,
-												confirmText: this
-													.translateSys('cancel')
-											});
-											return;
-										}
-										attr.def = attr_def;
-										attr.type = this.getAttrType(show_style,
-											attr.def);
-										this.form[attr.attr] = this.defaultValue(
-											attr.type);
-										this.errTip[attr.attr] = "";
-										if (attr.type == "select") {
-											if (attr.def.dict_name) {
-												let res = await dictInfo(attr,
-													attr.def
-													.dict_name);
-												let dicList = res.dict_item_list;
-												this.dicList[attr.attr] = dicList;
-												let dictName = "";
-												if (dicList?.length > 0) {
-													let defaultValue = dicList
-														.find(
-															(d) => d.is_default ==
-															1
-														)?.name;
-													if (defaultValue) dictName =
-														defaultValue;
-													else dictName = dicList[0]
-														.name;
-												}
-												this.form[attr.attr] = dictName;
-											} else {
-												this.dicList[attr.attr] = [];
-												this.form[attr.attr] = "";
-											}
-										}
-									})
-								);
-							})
-						);
-
-					})
-				);
-
-				// this.opened = this.show_style
-				// 	.filter((a) => a.open)
-				// 	.map((a) => a.attrgroup_name);
-
-			},
-			async loadFormData() {
-				if (isNullOrEmpty(this.dataObj)) {
-					let obj = await getDataObjInfo({
-						class_id: this.clsId,
-						obj_id: this.objId,
-					});
-					this.show_style_list.forEach((show_style) => {
-						this.$refs[`line${show_style.line}`][0].loadFormData(obj);
-					});
-				} else {
-					this.show_style_list.forEach((show_style) => {
-						this.$refs[`line${show_style.line}`][0].loadFormDataViaDataObj(
-							this.dataObj
-						);
-					});
-				}
-			},
-			getAttrType(show_style, def) {
-				let type = def?.type;
-				let height = def?.height;
-				let ctrlType = "";
-				show_style?.forEach((group) => {
-					ctrlType = group.attrs?.find((a) => a.attr == def.name)?.ctrl_type;
-				});
-
-				let guid = ["GUID"];
-				let char = ["瀛楃涓�, "鍙彉闀垮瓧绗︿覆", "char", "varchar"];
-				let select = ["瀛楀吀-瀛楃涓�, "瀛楀吀-鏁存暟", "dict-char", "dict-int"];
-				let int = ["鏁存暟", "int"];
-				let float = ["娴偣鏁�, "float"];
-				let bool = ["甯冨皵鍊�, "bool"];
-				let date = ["鏃ユ湡", "date"];
-				let time = ["鏃堕棿", "datetime"];
-				let refPsn = ["寮曠敤浜哄憳", "user"];
-
-				if (guid.includes(type) || char.includes(type))
-					return ctrlType == "dropdown" ?
-						"select" :
-						height == 2 ?
-						"textarea" :
-						height == 3 ?
-						"textarea" :
-						"input";
-				else if (select.includes(type)) return "select";
-				else if (int.includes(type)) return "int";
-				else if (float.includes(type)) return "float";
-				else if (bool.includes(type)) return "checkbox";
-				else if (date.includes(type)) return "date";
-				else if (time.includes(type)) return "time";
-				else if (refPsn.includes(type)) return "ref-psn";
-				else return "unknown";
-			},
-			defaultValue(type) {
-				let value = undefined;
-				switch (type) {
-					case "input":
-						value = "";
-						break;
-					case "select":
-						value = "";
-						break;
-					case "int":
-						value = "";
-						break;
-					case "float":
-						value = 0.0;
-						break;
-					case "checkbox":
-						value = false;
-						break;
-					case "date":
-						value = "";
-						break;
-					case "time":
-						value = "";
-						break;
-					case "ref-psn":
-						value = {};
-						break;
-				}
-				return value;
-			},
-			attrLabel(attr) {
-				if (attr.notempty || attr.def?.not_empty == 1)
-					return `${attr.name}锛堝繀濉級`;
-				else return attr.name;
-			},
-			attrRequired(attr) {
-				if (attr.notempty || attr.def?.not_empty == 1) return true;
-				else return false;
-			},
-			toHexColor(num) {
-				return `#${parseInt(num).toString(16)}`;
-			},
-			reset() {
-				this.form = {};
-				this.errTip = {};
-				this.opened = [];
-				this.dicList = {};
-			},
-			viewParam() { //灏唌obox3灏忓啓鍙傛暟杞崲涓簃obox2澶у啓鍙傛暟
-				var class_gridStyle = {
-					ID: this.$data.classGridStyle.id,
-					Name: this.$data.classGridStyle.name,
-					Type: this.$data.classGridStyle.type,
-					IsDefault: this.$data.classGridStyle.is_defaul,
-					StyleDef: this.$data.classGridStyle.style_def,
-				};
-				this.$data.classGridStyle = class_gridStyle;
-				var class_attrList = [];
-				this.$data.classAttrList.forEach(data => {
-					var attrs = [];
-					if (data.attr_list) {
-						data.attr_list.forEach(attr => {
-							var dictitems = [];
-							if (attr.dictitem) {
-								attr.dictitem.forEach(dict => {
-									dictitems.push({
-										ID: dict.id,
-										Name: dict.name,
-										Note: dict.note,
-										Order: dict.order,
-										ImgUrl: null,
-										Code: dict.code,
-										HasSub: null,
-										ParentID: null,
-										ParentName: null,
-										Lvl: dict.lvl,
-										IsDefault: dict.is_default,
-										Value: dict.value,
-										CN_G_ID: dict.id,
-										CN_G_DICT_ID: null,
-										CN_S_NAME: dict.name,
-										CN_S_NOTE: dict.note,
-										CN_N_ORDER: dict.order,
-										CN_S_IMG_URL: null,
-										CN_S_CODE: dict.code,
-										CN_C_HAS_SUB: null,
-										CN_G_PARENT_ITEM_ID: null,
-										CN_G_PARENT_ITEM_NAME: null,
-										CN_N_LVL: dict.lvl,
-										CN_C_IS_DEFAULT: dict.is_default,
-										CN_S_VALUE: dict.value
-									});
-								});
-							}
-							attrs.push({
-								ID: attr.id,
-								Name: attr.name,
-								Type: attr.type,
-								Size: attr.size,
-								NotEmpty: attr.not_empty,
-								DefValue: attr.def_value,
-								Order: attr.order,
-								DictName: attr.dict_name,
-								DictID: attr.dict_id,
-								CodeDefName: attr.code_def_name,
-								CodeDefID: attr.code_def_id,
-								RelClsID: null,
-								RelCls: attr.ref_cls,
-								Width: attr.width,
-								Height: attr.height,
-								CtrlStyle: attr.ctrl_style,
-								HasAce: attr.has_ace,
-								CanShow: attr.can_show,
-								CanQuery: attr.can_query,
-								ReadOnly: attr.read_only,
-								IsKey: attr.is_key,
-								IsFixed: attr.is_fixed,
-								DispName: attr.disp_name,
-								LuaAttr: attr.lua_attr,
-								Desc: attr.desc,
-								ActionDef: attr.action_def ? Base64.decode(attr
-									.action_def) : '',
-								Multilingual: attr.multilingual,
-								RefCondition: attr.ref_condition,
-								GroupName: data.group,
-								Value: null,
-								dictitem: dictitems
-							});
-						});
-					}
-					class_attrList.push({
-						Name: data.group,
-						Order: data.order,
-						HasAce: data.has_ace,
-						BkColor: data.bk_color,
-						ImgFontStyle: data.img_font_style,
-						Attr: attrs
-					});
-				});
-				this.$data.classAttrList = class_attrList;
-				// console.log(this.$data.classGridStyle);
-				// console.log(this.$data.classAttrList);
-				this.class_attr_init();
-			},
-			class_attr_init() {
-				var attrlist = this.$data.classGridStyle.StyleDef.show_style
-				var newattrlist = [];
-				if (this.$data.classAttrList.length > 0) {
-					for (var i = 0; i < attrlist.length; i++) {
-						var open = attrlist[i].open;
-						var name = attrlist[i].attrgroup_name;
-						var attrs = attrlist[i].attrs;
-						for (var s = 0; s < this.$data.classAttrList.length; s++) {
-							var clsattr = this.$data.classAttrList[s];
-							// if (name == clsattr.Name) {
-							var attr = [];
-							for (var j = 0; j < attrs.length; j++) {
-								for (var l = 0; l < clsattr.Attr.length; l++) {
-									var ca = clsattr.Attr[l];
-									if (attrs[j].attr == ca.Name) {
-										ca.action = attrs[j].action;
-										ca.edit = attrs[j].edit;
-										ca.notempty = attrs[j].notempty;
-										ca.ext_button = attrs[j].ext_button;
-										ca.button_img = attrs[j].button_img;
-										ca.button_tooltip = attrs[j].button_tooltip;
-										ca.before_click_button = attrs[j].before_click_button;
-										ca.button_callback = attrs[j].button_callback;
-										ca.hidden = attrs[j].hidden;
-										ca.select = attrs[j].select == undefined ? false : attrs[j].select;
-										ca.Value = "";
-										if (ca.dictitem.length > 0) {
-											if (ca.select == true)
-												ca.Value = []; //ca.dictitem[0].CN_S_NAME;
-											else
-												ca.Value = '璇烽�鎷�; //ca.dictitem[0].CN_S_NAME;
-											var dictitemlist = [];
-											for (var d = 0; d < ca.dictitem.length; d++) {
-												ca.dictitem[d].label = ca.dictitem[d].CN_S_NAME;
-												ca.dictitem[d].value = ca.dictitem[d].CN_S_NAME;
-												ca.dictitem[d].attr = ca.Name;
-												if (ca.dictitem[d].CN_C_IS_DEFAULT == '1')
-													ca.Value = ca.dictitem[d].CN_S_NAME;
-											}
-										}
-										if (utils.classUtils.attrTypeIsDateTime(ca.Type)) {
-											var nowDate = new Date();
-											var date = {
-												year: nowDate.getFullYear(),
-												month: nowDate.getMonth() + 1,
-												day: nowDate.getDate()
-											}
-											ca.Value = date.year + '-' + (date.month >= 10 ? date.month : '0' +
-												date
-												.month) + '-' + (date.day >= 10 ? date.day : '0' + date.day);
-										}
-										if (utils.classUtils.attrTypeIsObjRefMulti(ca.Type)) {
-											ca.RelClsList = ca.RelCls;
-											ca.Value = '璇�;
-										}
-										if (utils.classUtils.attrTypeIsRegion(ca.Type))
-											ca.Value = '璇烽�鎷�;
-										if (utils.classUtils.attrTypeIsBool(ca.Type))
-											ca.Value = false;
-
-										attr.push(ca);
-									}
-								}
-							}
-							newattrlist.push({
-								BkColor: clsattr.BkColor,
-								HasAce: clsattr.HasAce,
-								ImgFontStyle: clsattr.ImgFontStyle,
-								Name: clsattr.Name,
-								Order: clsattr.Order,
-								Open: open,
-								Attr: attr,
-								control_style: this.$data.classGridStyle.StyleDef.control_style,
-								title_p_wdith: this.$data.classGridStyle.StyleDef.title_p_wdith
-							})
-							// }
-						}
-					}
-					if (newattrlist.length > 0) {
-						this.$data.classAttrList = newattrlist;
-					}
-					var req = [];
-					if (this.$data.classGridStyle.StyleDef) {
-						if (this.$data.classGridStyle.StyleDef.show_style.length > 0) {
-							var attrlist = this.$data.classGridStyle.StyleDef.show_style
-							// $el.find('.attr_field').prop('readonly', true);
-							// $el.find('.attr_field').prop('disabled', true);
-							for (var i = 0; i < attrlist.length; i++) {
-								var attr = attrlist[i].attrs
-								for (var j = 0; j < attr.length; j++) {
-									var ar = attr[j];
-									req.push({
-										attr: ar.attr,
-										val: ar.value ? ar.value : ''
-									});
-								}
-							}
-						}
-					}
-
-					var eventlist = this.$data.classGridStyle.StyleDef.event;
-					// console.log(eventlist);
-					if (eventlist) {
-						if (eventlist.length > 0) {
-							for (var i = 0; i < eventlist.length; i++) {
-								if (eventlist[i].event_id == 'before_ok') {
-									this.$data.edit_ok_event = eventlist[i];
-								} else if (eventlist[i].event_id == 'initial') {
-									this.$data.edit_inital_event = eventlist[i];
-								} else if (eventlist[i].event_id == 'before_select_compose') {
-									this.$data.edit_select_compose_event = eventlist[i].scrip_id;
-									this.$data.edit_compose_cls_id = eventlist[i].compose_cls_id;
-								}
-							}
-						}
-					}
-					// console.log(req);
-					if (this.$data.edit_inital_event) {
-						var eventid = this.$data.edit_inital_event.scrip_id;
-						var info = {
-							eventid: eventid,
-							edtype: "0",
-							projectid: '',
-							rclsid: '',
-							robjid: '',
-							userlogin: '',
-							clsid: this.$data.param.clsId,
-							objid: "",
-							attr: req,
-						}
-						this.ini_DataObjRunCustomEvent(info);
-					}
-					console.log(this.$data.classGridStyle);
-					console.log(this.$data.classAttrList);
-
-				} else {
-					uni.showModal({
-						title: this.translateSys('tip') + "",
-						content: "鏈壘鍒板彲鏄剧ず鐨勭殑灞炴�",
-						showCancel: false,
-						confirmText: this.translateSys('cancel')
-					});
-				}
-			},
-
-			classAttr_extButton(index, iindex) { //寮规灞傛樉绀�type:top bottom center left right
-				var $this = this;
-				$this.$data.popupType = 'right'
-				// open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴�
-				$this.$refs.popup.open($this.popupType);
-				var data_attr = $this.$data.classAttrList[index].Attr[iindex];
-				// var value = action.value;
-				// var action ={"action_type":"open_common_dlg","value":{"common_dlg_id":"check_list","config":{"title":"鐢熶骇宸ュ崟","appear_style":"sideslip","width":250,"multiple_choice":"1","items":[{"id":"133D50D7-D798-4D2E-A15F-308365092DF5","name":"5100691673", "check":false},{"id":"22992021-7D3B-4959-86B7-EF184B596AC6","name":"5100691674", "check":false},{"id":"48FBBE8E-594D-45D5-8C24-385C661C4A1C","name":"5100691675", "check":false},{"id":"4E429C60-325A-42ED-BEA3-B3397C07CCA1","name":"5100691668", "check":false}]}}}
-				// if (action.action_type == 'open_common_dlg') {
-				// 	var value = action.value;
-				// 	if(value.common_dlg_id == 'check_list'){
-				// 	   $this.$data.check_list= value.config;
-				// 	}
-				// }
-				// var popupParam={
-				// 	index: index,
-				// 	iindex: iindex,
-				// 	button_callback:"",
-				// 	req:"",
-				// 	data_attr:data_attr
-				// }
-				// $this.$data.popupParam= popupParam;
-				// return;
-				var before_click_button = $this.$data.classAttrList[index].Attr[iindex].before_click_button;
-				var button_callback = $this.$data.classAttrList[index].Attr[iindex].button_callback;
-				if (!before_click_button) {
-					uni.showModal({
-						title: this.translateSys('tip') + "",
-						content: "before_click_button-event_id涓虹┖锛�,
-						showCancel: false,
-						confirmText: this.translateSys('cancel')
-					});
-					return;
-				}
-				if (!button_callback) {
-					uni.showModal({
-						title: this.translateSys('tip') + "",
-						content: "button_callback-event_id涓虹┖锛�,
-						showCancel: false,
-						confirmText: this.translateSys('cancel')
-					});
-					return;
-				}
-				this.DataObjRunCustomEvent_Return(before_click_button, data_attr, button_callback, index, iindex);
-			},
-			popupChange(e) {
-				console.log('褰撳墠妯″紡锛� + e.type + ',鐘舵�锛� + e.show);
-			},
-			checkChange(e) { //寮规check閫夋嫨
-				// console.log(e.target.dataset);
-				var index = e.target.dataset.index;
-				var ischeck = e.target.dataset.ischeck;
-				var data = this.$data.check_list.items;
-				// this.$data.check_list.items=[];
-				if (this.$data.check_list.multiple_choice == "0") { //鍒ゆ柇鏃跺崟閫夎繕鏄閫�-					for (var i in data) {
-						data[i].check = false;
-					}
-				}
-				data[index].check = ischeck ? false : true;
-				this.$data.check_list.items = data;
-
-			},
-			popup_cancel(e) { //寮规鍙栨秷
-				this.$refs.popup.close();
-			},
-			popup_sava(e) { //寮规纭畾
-				var $this = this;
-				var items = $this.$data.check_list.items;
-				var data = [];
-				var name = "";
-				for (var i = 0; i < items.length; i++) {
-					if (items[i].check == true) {
-						if (name)
-							name += ';';
-						name += items[i].name;
-						data.push({
-							id: items[i].id,
-							name: items[i].name
-						});
-					}
-				}
-				if (!$this.$data.popupParam) {
-					uni.showModal({
-						title: this.translateSys('tip') + "",
-						content: "popupParam涓虹┖锛�,
-						showCancel: false,
-						confirmText: this.translateSys('cancel')
-					});
-					return;
-				}
-				$this.$data.classAttrList[$this.$data.popupParam.index].Attr[$this.$data.popupParam.iindex].Value =
-					name;
-				console.log(data);
-				var callback_eventid = $this.$data.popupParam.button_callback.trim();
-				var info = {
-					eventid: callback_eventid,
-					edtype: "0",
-					projectid: '',
-					rclsid: '',
-					robjid: '',
-					userlogin: '',
-					clsid: $this.$data.param.clsId,
-					objid: "",
-					attr: $this.$data.popupParam.req,
-					dataJson: data
-				}
-				$this.DataObjRunCustomEvent(info, $this.$data.popupParam.data_attr);
-				this.$refs.popup.close();
-			},
-			cancel(e) {
-				if (this.type) {
-					const eventChannel = this.getOpenerEventChannel();
-					// const eventChannel = this.getOpenerEventChannel();
-					eventChannel.emit(this.type, "");
-				}
-				uni.navigateBack({
-					delta: 1 //杩斿洖灞傛暟锛�鍒欎笂涓婇〉
-				});
-			},
-			ontap(e) { //鎵爜鍔熻兘
-				var $ele = e;
-				//console.log(e.target)
-				getApp().onScan((result) => {
-					console.log(result);
-					this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']]
-						.Value =
-						result.decodedata;
-					uni.hideKeyboard();
-					this.onevent($ele, result.decodedata);
-				})
-			},
-			onarrow(index, open) {
-				// console.log(index+'--'+open);
-				this.$data.classAttrList[index].Open = open == true ? false : true;
-			},
-			ondateTime(e) {
-				//console.log(e.target)
-				this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = e
-					.target
-					.value;
-			},
-			onchange(e) {
-				// console.log(e.target);
-				var value = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']]
-					.dictitem[e
-						.detail.value];
-				var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset[
-					'iindex']];
-				// console.log(data_attr);
-				if (value.Name != data_attr.Value) {
-					this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value =
-						value
-						.Name;
-					// console.log(this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value);
-					var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset[
-							'iindex']]
-						.action;
-					if (eventid) {
-						// self.event_no_sub = 1;
-						var req = [];
-						var attrlist = this.$data.classAttrList;
-						for (var i = 0; i < attrlist.length; i++) {
-							var attr = attrlist[i].Attr;
-							for (var j = 0; j < attr.length; j++) {
-								var ar = attr[j];
-								req.push(this.formatAttr(ar))
-
-							}
-						}
-						var info = {
-							eventid: eventid,
-							edtype: "0",
-							projectid: '',
-							rclsid: '',
-							robjid: '',
-							userlogin: '',
-							clsid: this.$data.param.clsId,
-							objid: "",
-							attr: req,
-							dataJson: []
-						}
-						this.DataObjRunCustomEvent(info);
-					}
-				}
-
-			},
-			onchange2(item, value, delvalue) {
-				// console.log(item);
-				// console.log(value);
-				// console.log(delvalue);
-				//涓虹┖鏃讹紝娓呯┖灞炴�value
-				if (item.length == 0) {
-					var index, iindex, dindex = 0;
-					for (var i in this.$data.classAttrList) {
-						for (var j in this.$data.classAttrList[i].Attr) {
-							if (delvalue[0].attr == this.$data.classAttrList[i].Attr[j].Name) {
-								this.$data.classAttrList[i].Attr[j].Value = "";
-							}
-						}
-					}
-				}
-
-				for (var v in item) {
-					var index, iindex, dindex = 0;
-					for (var i in this.$data.classAttrList) {
-						for (var j in this.$data.classAttrList[i].Attr) {
-							if (item[v].attr == this.$data.classAttrList[i].Attr[j].Name) {
-								index = i;
-								iindex = j;
-							}
-						}
-					}
-					var itemvalue = item[v];
-					var data_attr = this.$data.classAttrList[index].Attr[iindex];
-
-					// console.log(data_attr);
-					if (itemvalue.Name != data_attr.Value) {
-						this.$data.classAttrList[index].Attr[iindex].Value = value;
-						// console.log(this.$data.classAttrList[index].Attr[iindex].Value);
-						var eventid = this.$data.classAttrList[index].Attr[iindex].action;
-						if (eventid) {
-							// self.event_no_sub = 1;
-							var req = [];
-							var attrlist = this.$data.classAttrList;
-							for (var i = 0; i < attrlist.length; i++) {
-								var attr = attrlist[i].Attr;
-								for (var j = 0; j < attr.length; j++) {
-									var ar = attr[j];
-									if (utils.classUtils.attrTypeIsDict(ar.Type))
-										req.push({
-											attr: ar.Name,
-											value: itemvalue.Name
-										});
-									else
-										req.push(this.formatAttr(ar))
-								}
-							}
-							var info = {
-								eventid: eventid,
-								edtype: "0",
-								projectid: '',
-								rclsid: '',
-								robjid: '',
-								userlogin: '',
-								clsid: this.$data.param.clsId,
-								objid: "",
-								attr: req,
-								dataJson: [],
-							}
-							this.DataObjRunCustomEvent(info);
-						}
-					}
-				}
-
-
-			},
-			onevent(e, decodedata) {
-				// console.log(e.target);
-				var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset[
-					'iindex']];
-				// console.log(decodedata);
-				if (e.detail.value != data_attr.Value) {
-					this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value =
-						decodedata ? decodedata : e.detail.value;
-					var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset[
-							'iindex']]
-						.action;
-					if (eventid) {
-						// self.event_no_sub = 1;
-						var req = [];
-						var attrlist = this.$data.classAttrList;
-						for (var i = 0; i < attrlist.length; i++) {
-							var attr = attrlist[i].Attr;
-							for (var j = 0; j < attr.length; j++) {
-								var ar = attr[j];
-								req.push(this.formatAttr(ar))
-							}
-						}
-						var info = {
-							eventid: eventid,
-							edtype: "0",
-							projectid: '',
-							rclsid: '',
-							robjid: '',
-							userlogin: '',
-							clsid: this.$data.param.clsId,
-							objid: "",
-							attr: req,
-							dataJson: [],
-						}
-						this.DataObjRunCustomEvent(info, data_attr);
-					}
-				}
-
-			},
-			oncheck(e) {
-				// console.log(e.target);
-				var ischecked = e.target.dataset.ischeck ? false : true;
-				var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset[
-					'iindex']];
-				// console.log(data_attr);
-				if (ischecked != data_attr.Value) {
-					this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value =
-						ischecked;
-					var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset[
-							'iindex']]
-						.action;
-					if (eventid) {
-						// self.event_no_sub = 1;
-						var req = [];
-						var attrlist = this.$data.classAttrList;
-						for (var i = 0; i < attrlist.length; i++) {
-							var attr = attrlist[i].Attr;
-							for (var j = 0; j < attr.length; j++) {
-								var ar = attr[j];
-								req.push(this.formatAttr(ar))
-							}
-						}
-						var info = {
-							eventid: eventid,
-							edtype: "0",
-							projectid: '',
-							rclsid: '',
-							robjid: '',
-							userlogin: '',
-							clsid: this.$data.param.clsId,
-							objid: "",
-							attr: req,
-							dataJson: [],
-						}
-						this.DataObjRunCustomEvent(info);
-					}
-				}
-
-			},
-			inputValListIsDel(index) {
-				// console.log(index);
-				this.$data.inputValList.splice(index, 1); //鍒犻櫎tabPagejson鐨勫唴瀹�-				// console.log(this.$data.inputValList);
-			},
-			addresschange(e) {
-				// console.log(e.target);
-				console.log(e.data.join(';'))
-				this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = e.data
-					.join(
-						';');
-			},
-			classAttr_AddPer(index, iindex) {
-				var param = {
-					index: index,
-					iindex: iindex
-				};
-				var $this = this;
-				uni.navigateTo({
-					url: '../selpsn/index?mulit=false&param=' + JSON.stringify(param),
-					events: {
-						AddPer(data, param) {
-							// console.log(param);
-							console.log(data);
-							$this.$data.classAttrList[param.index].Attr[param.iindex].Value = data[0].Name;
-							$this.$data.classAttrList[param.index].Attr[param.iindex].ValID = data[0]
-								.Login + ';' +
-								data[0].Name;
-
-							var eventid = $this.$data.classAttrList[param.index].Attr[param.iindex].action;
-							if (eventid) {
-								eventid = eventid.trim();
-								if (eventid) {
-									var info = {
-										eventid: eventid,
-										edtype: "4",
-										projectid: "",
-										rclsid: "",
-										robjid: "",
-										userlogin: data[0].Login,
-										clsid: $this.$data.param.clsId,
-										objid: "",
-										attr: [],
-										dataJson: [],
-									}
-
-									// var data_attr = $this.$data.classAttrList[param.index].Attr[param.iindex];
-									$this.DataObjRunCustomEvent(info);
-								}
-							}
-						}
-					}
-				});
-			},
-			classAttr_AddRef(e) {
-				console.log(e.target);
-				uni.showModal({
-					title: this.translateSys('tip') + "",
-					content: "姝ゅ姛鑳借繕鏈疄鐜帮紒",
-					showCancel: false,
-					confirmText: this.translateSys('cancel')
-				});
-				// var value=this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].RelCls[e.detail.value];
-				// this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value=value;
-			},
-			classAttr_AddPrj(index, iindex) {
-				var param = {
-					index: index,
-					iindex: iindex
-				};
-				var $this = this;
-				uni.navigateTo({
-					url: '../selPrj/index?relation=-1&param=' + JSON.stringify(param),
-					events: {
-						AddPer(data, param) {
-							// console.log(param);
-							// console.log(data);
-							$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 eventid = $this.$data.classAttrList[param.index].Attr[param.iindex].action;
-							if (eventid) {
-								eventid = eventid.trim();
-								if (eventid) {
-									var info = {
-										eventid: eventid,
-										edtype: "2",
-										projectid: data[0].ID,
-										rclsid: "",
-										robjid: "",
-										userlogin: "",
-										clsid: $this.$data.param.clsId,
-										objid: "",
-										attr: [],
-										dataJson: [],
-									}
-
-									// var data_attr = $this.$data.classAttrList[param.index].Attr[param.iindex];
-									$this.DataObjRunCustomEvent(info);
-								}
-							}
-						}
-					}
-				});
-			},
-			//纭畾
-			sava() {
-				if (this.$data.edit_ok_event)
-					this.OKDataObjRunCustomEvent();
-				else
-					this.add();
-			},
-			add() {
-				uni.showLoading({
-					title: "鍔犺浇涓�..",
-					mask: true
-				});
-				var req = [];
-				var attrlist = this.$data.classAttrList;
-				for (var i = 0; i < attrlist.length; i++) {
-					var attr = attrlist[i].Attr;
-					for (var j = 0; j < attr.length; j++) {
-						var ar = attr[j];
-						if (ar.Value == '璇烽�鎷� || ar.Value == '鈥斺�璇烽�鎷┾�鈥�) ar.Value = '';
-						if (utils.classUtils.attrTypeIsDict(ar.Type)) {
-							if (ar.select == true) { //鍒ゆ柇涓嬫媺鏄惁澶氶�
-								var valStr = "";
-								for (var v in ar.Value) {
-									if (valStr)
-										valStr += ";";
-									valStr += ar.Value[v];
-								}
-								req.push({
-									name: ar.Name,
-									value: valStr
-								});
-							} else
-								req.push({
-									name: ar.Name,
-									value: ar.Value
-								});
-						} else {
-							const node = this.formatAttr(ar)
-							req.push({
-								name: node.attr,
-								value: node.value
-							});
-						}
-
-
-						if (ar.notempty == true && !ar.Value) {
-							// if(ar.NotEmpty=='1'){
-							uni.hideLoading();
-							// uni.showToast({title:ar.DispName+'涓嶈兘涓虹┖锛�,icon:"success",duration:3000});
-							uni.showModal({
-								title: this.translateSys('tip') + "",
-								content: ar.DispName + '涓嶈兘涓虹┖锛�,
-								showCancel: false,
-								confirmText: this.translateSys('cancel')
-							});
-							return;
-						}
-					}
-				}
-				var enviroment = {
-					'function': '3000', // 鍔熻兘鐐圭紪鍙�-					cls_id: this.$data.param.clsId, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�-					'button': 'top', // top/bottom
-					button_name: '鏂板',
-					master: {
-						cls_id: this.$data.param.clsId,
-					}
-				};
-
-				enviroment = Base64.encode(JSON.stringify(enviroment)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
-				var obj_attr = {};
-				req.forEach(item => {
-					obj_attr[item.name] = item.value;
-				});
-				// console.log(obj_attr);
-				// var dataInfo={
-				//     class_id: this.$data.param.clsId, data_obj_id: '', masterclsid: '',
-				//     req: JSON.stringify(req), upfile: JSON.stringify([]), post_data: JSON.stringify({}),
-				//     compose: JSON.stringify([]), refdatastore: JSON.stringify([]), extinfo: JSON.stringify(enviroment), 
-				// 	not_trigger_sys_event: ''
-				// };
-				var dataInfo = {
-					class_id: this.$data.param.clsId,
-					class_name: '',
-					master_cls_id: '',
-					master_obj_id: '',
-					creator: '',
-					creator_name: '',
-					not_trigger_event: '',
-					update_exist: '',
-					post_process: '',
-					ext_info: enviroment,
-					obj_attr: obj_attr
-				};
-				console.log(dataInfo);
-				// return
-				dataObjCreate(dataInfo).then(result => {
-					console.log(result);
-					uni.hideLoading();
-					if (result.action) {
-						var action = JSON.parse(result.action);
-						console.log(action);
-						if (action.ret == '0') {
-							if (action.ret != 0) {
-								uni.showModal({
-									title: this.translateSys('tip') + "",
-									content: '鎵ц鑴氭湰澶辫触锛� + action.result,
-									showCancel: false,
-									confirmText: this.translateSys('cancel')
-								});
-								return;
-							}
-							if (action.info) {
-								uni.showModal({
-									title: this.translateSys('tip') + "",
-									content: '鎵ц鑴氭湰澶辫触锛� + action.info,
-									showCancel: false,
-									confirmText: this.translateSys('cancel')
-								});
-								return;
-							}
-							if (action.result_type == '0') {
-								uni.showToast({
-									title: action.result,
-									icon: "success",
-									duration: 3000
-								});
-							}
-
-							// "{"ret":0, "result_type":0, "result":"鍒涘缓鎴愬姛123123123","info":""}"
-						}
-					} else
-						uni.showToast({
-							title: "鍒涘缓鎴愬姛锛�,
-							icon: "success",
-							duration: 3000
-						});
-					//鍒锋柊
-					uni.redirectTo({
-						url: '../modal/3018?param=' + JSON.stringify(this.$data.param) +
-							"&titlename=" + this.$data.title
-					});
-					// this.cancel();
-
-				}).catch(ex => {
-					console.log(ex);
-					uni.hideLoading();
-					uni.showModal({
-						title: this.translateSys('tip') + "",
-						content: ex.errMsg,
-						showCancel: false,
-						confirmText: this.translateSys('cancel')
-					});
-				});
-			},
-			ini_DataObjRunCustomEvent(info) {
-				var param = {
-					EditStyle: this.$data.param.editDlg.name,
-					ViewStyle: this.$data.param.editDlg.name,
-					NotTriggerSysEvent: 0,
-					enviroment: {
-						'function': '3000', // 鍔熻兘鐐圭紪鍙�-						cls_id: this.$data.param.clsId, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�-						'button': 'top', // top/bottom
-						button_name: '鏂板',
-						master: {
-							cls_id: this.$data.param.clsId, // button=bottom鏃�master鐨刢ls_id
-							//obj_id: ''  // button=bottom鏃�master鐨刼bj_id
-						}
-					}
-				}
-				var inputparameter = '';
-				var global_attr = '';
-
-				param.enviroment = Base64.encode(JSON.stringify(param.enviroment)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
-				var obj_attr = {};
-				info.attr.forEach(item => {
-					obj_attr[item.attr] = item.val;
-				});
-				// console.log(obj_attr);
-				// var dataInfo = {
-				//                 edtype: info.edtype, eventid: info.eventid, projectid: info.projectid,
-				//                 rclsid: info.rclsid, robjid: info.robjid, userlogin: info.userlogin, clsid: info.clsid, objid: info.objid,
-				//                 attr: JSON.stringify(info.attr), extinfo: JSON.stringify(param.enviroment), inputparameter: inputparameter, global_attr: global_attr
-				//             }
-				if (!info.eventid.includes('{')) info.eventid = '{' + info.eventid + '}';
-				var dataInfo = {
-					ed_type: info.edtype,
-					start_transaction: '',
-					class_id: info.clsid,
-					class_name: '',
-					event_id: info.eventid,
-					event_name: '',
-					data_obj_id: info.objid,
-					obj_attr: obj_attr,
-					prj_id: info.projectid,
-					ref_cls_id: info.rclsid,
-					rel_obj_id: info.robjid,
-					user_login: info.userlogin,
-					data_json: '',
-					compose_info: '',
-					ext_info: param.enviroment,
-					global_attr: global_attr,
-					input_param: inputparameter,
-				};
-				console.log(dataInfo);
-				// return;
-				runCustomEvent(dataInfo).then(data => {
-					console.log(data);
-					if (data.ret != 0) {
-						var tip = data.err_info ? typeof data.err_info == 'string' ? data.err_info :
-							data
-							.err_info.join('<br/>') : '';
-						if (data.ret == 801) uni.showModal({
-							title: this.translateSys('tip'),
-							content: tip,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
-						else uni.showModal({
-							title: this.translateSys('tip'),
-							content: tip + ',鎻愮ず:' + data.ret,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
-						return false
-					} else {
-						var tip = data.info ? typeof data.info == 'string' ? data.info : data.info
-							.join(
-								'<br/>') : '';
-						if (tip) uni.showModal({
-							title: this.translateSys('tip'),
-							content: tip,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
-
-						if (data.action) {
-							var actionlist = data.action;
-							if (actionlist) {
-								for (var j = 0; j < actionlist.length; j++) {
-									var action = actionlist[j];
-									var action_type = action.action_type;
-									var value = action.value;
-									if (action_type == 'set_dlg_attr') {
-										if (value) {
-											console.log(value);
-											for (var i = 0; i < value.length; i++) {
-												for (var a = 0; a < this.$data.classAttrList
-													.length; a++) {
-													for (var l = 0; l < this.$data.classAttrList[a]
-														.Attr
-														.length; l++) {
-														var ca = this.$data.classAttrList[a].Attr[l];
-														if (value[i].attr == ca.Name) {
-															if (utils.classUtils.attrTypeIsDict(ca
-																	.Type)) {
-																var dictItemList = [];
-																for (var d in value[i].choice_list) {
-																	var list_val = value[i]
-																		.choice_list[d];
-																	dictItemList.push({
-																		"CN_S_NAME": list_val,
-																		"Name": list_val,
-																		"label": list_val,
-																		"value": list_val
-																	});
-
-																}
-																ca.dictitem = dictItemList;
-																// attr[j].dictitem = val[i].choice_list;
-															} else {
-																ca.Value = value[i].value;
-															}
-														}
-													}
-												}
-
-												var length = 0;
-												if (!this.$data.refdatastore.filter(function(s) {
-														return value[i].attr == s.attr
-													}).length) {
-													length = 1;
-													this.$data.refdatastore.push(value[i]);
-												}
-												if (length == 0) {
-													for (var j = 0; j < this.$data.refdatastore
-														.length; j++) {
-														if (this.$data.refdatastore[j].attr == value[i]
-															.attr) {
-															this.$data.refdatastore[j].value = value[i]
-																.value;
-														}
-													}
-												}
-											}
-										}
-									}
-									if (action_type == 'open_select_userdlg') {
-										uni.showModal({
-											title: this.translateSys('error') + " 2.2",
-											content: "open_select_userdlg杩欎釜action_type杩樻湭澶勭悊锛�,
-											showCancel: false,
-											confirmText: this.translateSys('cancel')
-										});
-									}
-									// else if (action_type == 'tip_dlg') {
-
-									// }
-								}
-							}
-						}
-					}
-
-				}).catch(ex => {
-					// console.log(ex);
-					uni.showModal({
-						title: this.translateSys('error') + " 2.1",
-						content: ex.errMsg,
-						showCancel: false,
-						confirmText: this.translateSys('cancel')
-					});
-				});
-			},
-			DataObjRunCustomEvent(info, data_attr) {
-				var $this = this;
-				var enviroment = {
-					'function': '3000', // 鍔熻兘鐐圭紪鍙�-					cls_id: this.$data.param.clsId, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�-					'button': 'top', // top/bottom
-					button_name: '鏂板',
-					master: {
-						cls_id: this.$data.param.clsId, // button=bottom鏃�master鐨刢ls_id
-						//obj_id: ''  // button=bottom鏃�master鐨刼bj_id
-					}
-				};
-				if (data_attr) {
-					enviroment.edit_dlg = {
-						type: 'small', //灏忕獥鍙�-						class_id: this.$data.param.clsId, //褰撳墠鏁版嵁绫籭d
-					}
-					if (data_attr) {
-						enviroment.edit_dlg.form_control = { //鎵�睘鐨勮〃鍗曟帶浠�-							name: data_attr.Name, //瀛楁灞炴�
-							text: data_attr.DispName, //鏄剧ず鏂囨湰
-							group_name: data_attr.GroupName, //灞炴�缁�-							type: data_attr.Type, //瀛楁绫诲瀷
-							readonly: data_attr.ReadOnly, //鏄惁鍙
-							button_img: data_attr.button_img, //寮曠敤鎸夐挳鐨勫浘鏍�-							button_tooltip: data_attr.button_tooltip //寮曠敤鎸夐挳鐨則ooltip
-						}
-					}
-				}
-
-				// var dataInfo = {
-				//     edtype: info.edtype, eventid: info.eventid, projectid: info.projectid.replace('{','').replace('}',''),
-				//     rclsid: info.rclsid, robjid: info.robjid, userlogin: info.userlogin, clsid: info.clsid, objid: info.objid,
-				//     attr: JSON.stringify(info.attr), extinfo: JSON.stringify(enviroment), inputparameter: "",
-				// 	global_attr: JSON.stringify(this.$data.global_attr), dataJson:JSON.stringify(info.dataJson)
-				// }
-				enviroment = Base64.encode(JSON.stringify(enviroment)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
-				var global_attr = Base64.encode(JSON.stringify(this.$data.global_attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
-				if (info.dataJson)
-					info.dataJson = Base64.encode(JSON.stringify(info.dataJson)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
-				var obj_attr = {};
-				info.attr.forEach(item => {
-					obj_attr[item.attr] = item.val;
-				});
-				if (!info.eventid.includes('{')) info.eventid = '{' + info.eventid + '}';
-				var dataInfo = {
-					ed_type: info.edtype,
-					start_transaction: '',
-					class_id: info.clsid,
-					class_name: '',
-					event_id: info.eventid,
-					event_name: '',
-					data_obj_id: info.objid,
-					obj_attr: obj_attr,
-					prj_id: info.projectid,
-					ref_cls_id: info.rclsid,
-					rel_obj_id: info.robjid,
-					user_login: info.userlogin,
-					data_json: info.dataJson,
-					compose_info: '',
-					ext_info: enviroment,
-					global_attr: global_attr,
-					input_param: '',
-				};
-				console.log(dataInfo);
-				// return;
-				runCustomEvent(dataInfo).then(data => {
-					console.log(data);
-					if (data.ret != 0) {
-						var tip = data.err_info ? typeof data.err_info == 'string' ? data.err_info :
-							data
-							.err_info.join('<br/>') : '';
-						if (data.ret == 801) uni.showModal({
-							title: this.translateSys('tip'),
-							content: tip,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
-						else uni.showModal({
-							title: this.translateSys('tip'),
-							content: tip + ',鎻愮ず:' + data.ret,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
-						return false
-					} else {
-						var tip = data.info ? typeof data.info == 'string' ? data.info : data.info
-							.join(
-								'<br/>') : '';
-						if (tip) uni.showModal({
-							title: this.translateSys('tip'),
-							content: tip,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
-
-						var actionlist = data.action;
-						if (actionlist) {
-							console.log(actionlist);
-							for (var i = 0; i < actionlist.length; i++) {
-								var action = actionlist[i];
-								if (action.action_type == 'set_dlg_attr') {
-									var result = action.value;
-									for (var i = 0; i < result.length; i++) {
-										if (result[i].choice_list) {
-											for (var c = 0; c < $this.$data.classAttrList
-												.length; c++) {
-												var attr = $this.$data.classAttrList[c].Attr;
-												for (var j = 0; j < attr.length; j++) {
-													if (attr[j].Name == result[i].attr) {
-														if (utils.classUtils.attrTypeIsDict(attr[j]
-																.Type)) {
-															var dictItemList = [];
-															for (var d in result[i].choice_list) {
-																var val = result[i].choice_list[d];
-																dictItemList.push({
-																	"CN_S_NAME": val,
-																	"Name": val,
-																	"label": val,
-																	"value": val
-																});
-															}
-															attr[j].dictitem = dictItemList;
-															// attr[j].dictitem = result[i].choice_list;
-														}
-													}
-												}
-											}
-										}
-										for (var c = 0; c < $this.$data.classAttrList.length; c++) {
-											var attr = $this.$data.classAttrList[c].Attr;
-											for (var j = 0; j < attr.length; j++) {
-												console.log(attr[j].Name + '==' + result[i].attr);
-												if (attr[j].Name == result[i].attr) {
-													attr[j].Value = result[i].value;
-												}
-											}
-										}
-										var length = 0;
-										if (!$this.$data.refdatastore.filter(function(s) {
-												return result[i].attr == s.attr
-											}).length) {
-											length = 1;
-											$this.$data.refdatastore.push(result[i]);
-										}
-										if (length == 0) {
-											for (var j = 0; j < $this.$data.refdatastore.length; j++) {
-												if ($this.$data.refdatastore[j].attr == result[i]
-													.attr) {
-													$this.$data.refdatastore[j].value = result[i]
-														.value;
-												}
-											}
-										}
-									}
-								} else if (data.action[i].action_type == 'set_global_attr') {
-									$this.$data.global_attr = data.action[i].value || [];
-								}
-							}
-						}
-
-						if (data.result) {
-							var result = data.result;
-							for (var i = 0; i < result.length; i++) {
-								for (var c = 0; c < $this.$data.classAttrList.length; c++) {
-									var attr = $this.$data.classAttrList[c].Attr;
-									for (var j = 0; j < attr.length; j++) {
-										if (attr[j].Name == result[i].attr) {
-											attr[j].Value = result[i].value;
-										}
-									}
-								}
-
-								var length = 0;
-								if (!$this.$data.refdatastore.filter(function(s) {
-										return result[i].attr == s.attr
-									}).length) {
-									length = 1;
-									$this.$data.refdatastore.push(result[i]);
-								}
-								if (length == 0) {
-									for (var j = 0; j < $this.$data.refdatastore.length; j++) {
-										if ($this.$data.refdatastore[j].attr == result[i].attr) {
-											$this.$data.refdatastore[j].value = result[i].value;
-										}
-									}
-								}
-							}
-						}
-					}
-
-				}).catch(ex => {
-					// console.log(ex);
-					uni.showModal({
-						title: this.translateSys('error') + " 3.1",
-						content: ex.errMsg,
-						showCancel: false,
-						confirmText: this.translateSys('cancel')
-					});
-				});
-			},
-			OKDataObjRunCustomEvent() {
-				var enviroment = {
-					'function': '3000', // 鍔熻兘鐐圭紪鍙�-					cls_id: this.$data.param.clsId, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�-					'button': 'top', // top/bottom
-					button_name: '鏂板',
-					master: {
-						cls_id: this.$data.param.clsId, // button=bottom鏃�master鐨刢ls_id
-
-					}
-				};
-				var eventid = this.$data.edit_ok_event.scrip_id;
-				var req = [];
-				var attrlist = this.$data.classAttrList;
-				for (var i = 0; i < attrlist.length; i++) {
-					var attr = attrlist[i].Attr;
-					for (var j = 0; j < attr.length; j++) {
-						var ar = attr[j];
-						if (ar.Value == '璇烽�鎷� || ar.Value == '鈥斺�璇烽�鎷┾�鈥�) ar.Value = '';
-						req.push(this.formatAttr(ar));
-					}
-				}
-				if (this.$data.refdatastore.length > 0) {
-					for (var i = 0; i < this.$data.refdatastore.length; i++) {
-						if (!req.filter(function(s) {
-								return this.$data.refdatastore[i].attr == s.name
-							}).length) {
-							length = 1;
-							req.push({
-								'attr': this.$data.refdatastore[i].attr,
-								'val': this.$data.refdatastore[i].value
-							});
-						}
-					}
-				}
-				var info = {
-					eventid: eventid,
-					edtype: "0",
-					projectid: '',
-					rclsid: '',
-					robjid: '',
-					userlogin: '',
-					clsid: this.$data.param.clsId,
-					objid: "",
-					attr: req,
-				}
-				//  	var dataInfo = {
-				//          edtype: info.edtype, eventid: info.eventid, projectid: info.projectid,rclsid: info.rclsid, 
-				// robjid: info.robjid, userlogin: info.userlogin, clsid: info.clsid, objid: info.objid,
-				// attr: JSON.stringify(info.attr), extinfo: JSON.stringify(enviroment), global_attr: JSON.stringify(this.$data.global_attr)
-				//      }
-
-				enviroment = Base64.encode(JSON.stringify(enviroment)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
-				var global_attr = Base64.encode(JSON.stringify(this.$data.global_attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
-				var obj_attr = {};
-				info.attr.forEach(item => {
-					obj_attr[item.attr] = item.val;
-				});
-				if (!eventid.includes('{')) eventid = '{' + eventid + '}';
-				var dataInfo = {
-					ed_type: info.edtype,
-					start_transaction: '',
-					class_id: info.clsid,
-					class_name: '',
-					event_id: eventid,
-					event_name: '',
-					data_obj_id: info.objid,
-					obj_attr: obj_attr,
-					prj_id: info.projectid,
-					ref_cls_id: info.rclsid,
-					rel_obj_id: info.robjid,
-					user_login: info.userlogin,
-					data_json: '',
-					compose_info: '',
-					ext_info: enviroment,
-					global_attr: global_attr,
-					input_param: '',
-				};
-				console.log(dataInfo);
-				// return;
-				runCustomEvent(dataInfo).then(data => {
-					console.log(data);
-					if (data.ret != 0) {
-						var tip = data.err_info ? typeof data.err_info == 'string' ? data.err_info :
-							data
-							.err_info.join('<br/>') : '';
-						if (data.ret == 801) uni.showModal({
-							title: this.translateSys('tip'),
-							content: tip,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
-						else uni.showModal({
-							title: this.translateSys('tip'),
-							content: tip + ',鎻愮ず:' + data.ret,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
-						return false
-					} else {
-						var tip = data.info ? typeof data.info == 'string' ? data.info : data.info
-							.join(
-								'<br/>') : '';
-						if (tip) uni.showModal({
-							title: this.translateSys('tip'),
-							content: tip,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
-
-						var result = data.result;
-						for (var i = 0; i < result.length; i++) {
-							// self.class_attr_ele.find('.attr_field[data-field="' + result[i].attr + '"]').val(result[i].value).data('val', result[i].value);
-							var length = 0;
-							if (!this.$data.refdatastore.filter(function(s) {
-									return result[i].attr == s.attr
-								}).length) {
-								length = 1;
-								this.$data.refdatastore.push(result[i]);
-							}
-							if (length == 0) {
-								for (var j = 0; j < this.$data.refdatastore.length; j++) {
-									if (this.$data.refdatastore[j].attr == result[i].attr) {
-										this.$data.refdatastore[j].value = result[i].value;
-									}
-								}
-							}
-						}
-
-						this.add();
-					}
-
-				}).catch(ex => {
-					// console.log(ex);
-					uni.showModal({
-						title: this.translateSys('error') + " 4.1",
-						content: ex.errMsg,
-						showCancel: false,
-						confirmText: this.translateSys('cancel')
-					});
-				});
-			},
-			DataObjRunCustomEvent_Return(eventid, data_attr, button_callback, index, iindex) {
-				var enviroment = {
-					'function': '3000', // 鍔熻兘鐐圭紪鍙�-					cls_id: this.$data.param.clsId, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�-					'button': 'top', // top/bottom
-					button_name: '鏂板',
-					master: {
-						cls_id: this.$data.param.clsId, // button=bottom鏃�master鐨刢ls_id
-						//obj_id: ''  // button=bottom鏃�master鐨刼bj_id
-					}
-				};
-				var req = [];
-				var attrlist = this.$data.classAttrList;
-				for (var i = 0; i < attrlist.length; i++) {
-					var attr = attrlist[i].Attr;
-					for (var j = 0; j < attr.length; j++) {
-						var ar = attr[j];
-						req.push(this.formatAttr(ar))
-					}
-				}
-				if (this.$data.refdatastore.length > 0) {
-					for (var i = 0; i < this.$data.refdatastore.length; i++) {
-						if (!req.filter(function(s) {
-								return this.$data.refdatastore[i].attr == s.name
-							}).length) {
-							length = 1;
-							req.push({
-								'attr': this.$data.refdatastore[i].attr,
-								'val': this.$data.refdatastore[i].value
-							});
-						}
-					}
-				}
-				var extinfo = enviroment;
-				extinfo.edit_dlg = {
-					type: 'small', //灏忕獥鍙�-					class_id: this.$data.param.clsId, //褰撳墠鏁版嵁绫籭d
-				}
-				if (data_attr) {
-					extinfo.edit_dlg.form_control = { //鎵�睘鐨勮〃鍗曟帶浠�-						name: data_attr.Name, //瀛楁灞炴�
-						text: data_attr.DispName, //鏄剧ず鏂囨湰
-						group_name: data_attr.GroupName, //灞炴�缁�-						type: data_attr.Type, //瀛楁绫诲瀷
-						readonly: data_attr.ReadOnly, //鏄惁鍙
-						button_img: data_attr.button_img, //寮曠敤鎸夐挳鐨勫浘鏍�-						button_tooltip: data_attr.button_tooltip //寮曠敤鎸夐挳鐨則ooltip
-					}
-				}
-				// var dataInfo = {
-				// 	edtype:  "0", eventid: eventid, projectid: '',rclsid: '', robjid: '', userlogin: '', 
-				// 	clsid: this.$data.param.clsId, objid: '',attr: JSON.stringify(req), 
-				// 	extinfo: JSON.stringify(extinfo), global_attr: JSON.stringify(this.$data.global_attr)
-				// }
-				extinfo = Base64.encode(JSON.stringify(extinfo)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
-				var global_attr = Base64.encode(JSON.stringify(this.$data.global_attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
-				var obj_attr = {};
-				req.forEach(item => {
-					obj_attr[item.attr] = item.val;
-				});
-				if (!eventid.includes('{')) eventid = '{' + eventid + '}';
-				var dataInfo = {
-					ed_type: "0",
-					start_transaction: '',
-					class_id: this.$data.param.clsId,
-					class_name: '',
-					event_id: eventid,
-					event_name: '',
-					data_obj_id: '',
-					obj_attr: obj_attr,
-					prj_id: '',
-					ref_cls_id: '',
-					rel_obj_id: '',
-					user_login: '',
-					data_json: '',
-					compose_info: '',
-					ext_info: extinfo,
-					global_attr: global_attr,
-					input_param: '',
-				};
-				console.log(dataInfo);
-				// return;
-				runCustomEvent(dataInfo).then(data => {
-					console.log(data);
-
-					if (data.ret != 0) {
-						var tip = data.err_info ? typeof data.err_info == 'string' ? data.err_info :
-							data
-							.err_info.join('<br/>') : '';
-						if (data.ret == 801) uni.showModal({
-							title: this.translateSys('tip'),
-							content: tip,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
-						else uni.showModal({
-							title: this.translateSys('tip'),
-							content: tip + ',鎻愮ず:' + data.ret,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
-						return false
-					} else {
-						var tip = data.info ? typeof data.info == 'string' ? data.info : data.info
-							.join(
-								'<br/>') : '';
-						if (tip) uni.showModal({
-							title: this.translateSys('tip'),
-							content: tip,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
-
-						if (data != "") {
-							var actions = data.action;
-							console.log(actions);
-							if (actions) {
-								for (var i = 0; i < actions.length; i++) {
-									var action = actions[i];
-									var val = action.value;
-									var enviroment = JSON.stringify(enviroment);
-
-									if (action.action_type == 'open_panel') {
-										var d = dialog({
-											title: '<i class="ace-icon fa fa-info-circle"></i> ' +
-												this.translateSys('tip'),
-											content: action.action_type + '姝ction灏氭湭澶勭悊锛�
-										});
-										d.show();
-									} else if (action.action_type == 'open_select_userdlg') {
-										var style = val.style;
-										// style == 'user' ? '閫夋嫨浜哄憳' : style == 'department' ? '閫夋嫨閮ㄩ棬' : style == 'role' ? '閫夋嫨瑙掕壊' : ''
-										var $this = this;
-										var param = {
-											index: index,
-											iindex: iindex,
-											button_callback: button_callback,
-											req: req,
-											data_attr: data_attr
-										}
-										uni.navigateTo({
-											url: '../selpsn/index?mulit=false&param=' + JSON
-												.stringify(
-													param),
-											events: {
-												AddPer(data, param) {
-													// console.log(param);
-													console.log(data);
-													var callback_eventid = param
-														.button_callback
-														.trim();
-													var info = {
-														eventid: callback_eventid,
-														edtype: "0",
-														projectid: '',
-														rclsid: '',
-														robjid: '',
-														userlogin: '',
-														clsid: $this.$data.param.clsId,
-														objid: "",
-														attr: param.req,
-														inputparameter: data,
-														dataJson: [],
-													}
-													$this.DataObjRunCustomEvent(info, param
-														.data_attr);
-												}
-											}
-										});
-									} else if (action.action_type == 'open_data_query_dlg') {
-										var d = dialog({
-											title: '<i class="ace-icon fa fa-info-circle"></i> ' +
-												this.translateSys('tip'),
-											content: action.action_type + '姝ction灏氭湭澶勭悊锛�
-										});
-										d.show();
-									} else if (action.action_type == 'open_common_dlg') {
-										var $this = this;
-										if (val.common_dlg_id == 'check_list') {
-											$this.$data.check_list = val.config;
-											if (val.config.appear_style == 'sideslip') //鍒ゆ柇鏄惁鏄晶婊�-												$this.$data.popupType = 'right';
-											else
-												$this.$data.popupType = 'center'
-											// open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴�
-											$this.$refs.popup.open($this.$data.popupType);
-											var popupParam = {
-												index: index,
-												iindex: iindex,
-												button_callback: button_callback,
-												req: req,
-												data_attr: data_attr
-											}
-											$this.$data.popupParam = popupParam;
-										}
-									} else if (action.action_type == 'open_project_query_dlg') {
-										//console.log(action.value.select_range);
-										//console.log(action.value.mulit_select);
-										var priRel = '-1';
-										if (action.value.select_range == '鍏ㄩ儴鐩稿叧')
-											priRel = '0';
-										else if (action.value.select_range == '鎴戣礋璐g殑椤圭洰')
-											priRel = '1';
-										else if (action.value.select_range == '鎴戝垱寤虹殑')
-											priRel = '2';
-										else if (action.value.select_range == '鎴戝弬涓庣殑' || action.value
-											.select_range == '鎴戝弬鍔犵殑')
-											priRel = '3';
-										else if (action.value.select_range == '鎴戝叧娉ㄧ殑')
-											priRel = '4';
-										else if (action.value.select_range == '鎴戜笅灞炵殑椤圭洰')
-											priRel = '5';
-
-										var $this = this;
-										var param_ = {
-											index: index,
-											iindex: iindex,
-											button_callback: button_callback,
-											req: req
-										}
-										uni.navigateTo({
-											url: '../selPrj/index?relation=' + priRel +
-												'&param=' +
-												JSON.stringify(param_),
-											events: {
-												AddPer(data, param) {
-													$this.$data.classAttrList[param.index]
-														.Attr[param
-															.iindex].Value = data[0].Name;
-													$this.$data.classAttrList[param.index]
-														.Attr[param
-															.iindex].ValID = data[0].ID + ';' +
-														data[0]
-														.Name;
-													var callback_eventid = param
-														.button_callback
-														.trim();
-													if (callback_eventid) {
-														var info = {
-															eventid: callback_eventid,
-															edtype: "2",
-															projectid: data[0].ID,
-															rclsid: "",
-															robjid: "",
-															userlogin: "",
-															clsid: $this.$data.param.clsId,
-															objid: "",
-															attr: param.req,
-															dataJson: [],
-														}
-
-														$this.DataObjRunCustomEvent(info);
-													}
-												}
-											}
-										});
-									} else {
-										var d = dialog({
-											title: '<i class="ace-icon fa fa-info-circle"></i> ' +
-												this.translateSys('tip'),
-											content: action.action_type + '姝ction灏氭湭澶勭悊锛�
-										});
-										d.show();
-									}
-								}
-							}
-						} else {
-							uni.showModal({
-								title: this.translateSys('tip') + "5.2",
-								content: '璋冪敤 before_click_button 鑴氭湰杩斿洖绌猴紝event_id' + eventid,
-								showCancel: false,
-								confirmText: this.translateSys('cancel')
-							});
-						}
-					}
-
-				}).catch(ex => {
-					// console.log(ex);
-					uni.showModal({
-						title: this.translateSys('tip') + "5.1",
-						content: ex.errMsg,
-						showCancel: false,
-						confirmText: this.translateSys('cancel')
-					});
-				});
-			},
-
-			formatAttr(attr) {
-				if (utils.classUtils.attrTypeIsObjRefMulti(attr.Type)) //if(ar.Type=='寮曠敤瀵硅薄(澶氫釜)')
-					if (attr.Value == '璇�) ar.Value = '';
-				if (utils.classUtils.attrTypeIsUser(attr.Type) || utils.classUtils.attrTypeIsProject(attr
-						.Type)) //if(ar.Type=='寮曠敤浜哄憳' || ar.Type=='寮曠敤椤圭洰')
-					return {
-						attr: attr.Name,
-						value: attr.ValID ? attr.ValID : ''
-					};
-				else if (utils.classUtils.attrTypeIsBool(attr.Type)) //if(ar.Type=='甯冨皵鍊�)
-					return {
-						attr: attr.Name,
-						value: attr.Value ? '1' : '0'
-					};
-				else
-					return {
-						attr: attr.Name,
-						value: attr.Value ? attr.Value : ''
-					};
-			},
-			translate(t) {
-				if (typeof this.$t == "function") return this.$t(`page.${t}`)
-				else return t;
-			},
-			translateSys(t) {
-				if (typeof this.$t == "function") return this.$t(`sys.${t}`)
-				else return t;
-			},
-		}
-	}
-</script>
-<style lang="less">
-	.uni-page-modal-small-wnd {
-
-
-		.class_attr_title {
-			font-size: 44rpx;
-			padding-bottom: 22rpx;
-			position: relative;
-		}
-
-		.class_attr_title .title_line {
-			border-bottom: 2rpx solid #aaa;
-			position: relative;
-			bottom: -50rpx;
-			width: calc(100% - 290rpx);
-			margin-left: 100px;
-		}
-
-		.class_attr_title .title_icon {
-			border-radius: 50%;
-			width: 100rpx;
-			line-height: 64rpx;
-			display: inline-block;
-			vertical-align: middle;
-			padding-top: 10rpx;
-			padding-left: 20rpx;
-			text-align: center;
-			color: #fff;
-		}
-
-		.class_attr_title i {
-			color: #2c6aa0 !important;
-		}
-
-		.class_attr_title .title_icon i {
-			font-size: 80rpx;
-		}
-
-		.class_attr_title .title {
-			padding-right: 22rpx;
-			display: inline-block;
-			background-color: #fff;
-			position: relative;
-			bottom: -8rpx;
-		}
-
-		.class_attr_title .arrow {
-			position: absolute;
-			top: 6rpx;
-			right: 30rpx;
-			font-size: 60rpx;
-		}
-
-		input::-webkit-input-placeholder {
-			font-size: 12rpx;
-		}
-
-		textarea {
-			width: 98%;
-			border: 1px solid #d5d5d5;
-			padding: 10rpx 8rpx 12rpx;
-			background: #FFF;
-			border-radius: 0 !important;
-			font-size: 34rpx;
-			font-family: inherit;
-			box-shadow: none !important;
-			transition-duration: 0.1s;
-			color: #046db3;
-			margin-top: 4px;
-		}
-
-		input {
-			border: 1px solid #d5d5d5;
-			width: 98%;
-			height: 52rpx;
-			background: #FFF;
-			border-radius: 0 !important;
-			color: #046db3;
-			padding: 10rpx 8rpx 12rpx;
-			font-size: 34rpx;
-			font-family: inherit;
-			box-shadow: none !important;
-			transition-duration: 0.1s;
-			margin-top: 4rpx;
-		}
-
-		.select {
-			width: 20px;
-			position: absolute;
-			opacity: 0;
-		}
-
-		.class_attr_body .form-group {
-			margin: 20rpx 30rpx;
-			/* margin-left: -12px;
-	    margin-right: -12px; */
-		}
-
-		.form-group>label[class*="col-"] {
-			margin-bottom: 8rpx;
-			font-size: 32rpx;
-		}
-
-		.form-group label {
-			vertical-align: middle;
-			line-height: 60rpx;
-		}
-
-		.no-padding-right {
-			padding-right: 0 !important;
-		}
-
-		.col-xs-12 {
-			width: 100%;
-		}
-
-		.tx_title {
-			font-size: 32rpx;
-		}
-
-		.tx_title2 {
-			font-size: 32rpx;
-			text-align: right;
-			display: inline-block;
-			vertical-align: -2px;
-		}
-
-		.text-right {
-			margin-right: 20rpx;
-			margin-top: -6rpx;
-			display: inline-block;
-			float: right;
-			font-size: 48rpx;
-		}
-
-		.text-right a,
-		.text-right2 a {
-			color: #337ab7;
-		}
-
-		.text-right2 {
-			margin: 0;
-			vertical-align: -4px;
-			margin-left: 9px;
-			float: none;
-			font-size: 48rpx;
-			display: inline-block;
-		}
-
-		.section_iput {
-			border: 1px solid #d5d5d5;
-			width: 98%;
-			height: 62rpx;
-			background: #FFF;
-			border-radius: 0 !important;
-			color: #046db3;
-			padding: 10rpx 8rpx 10rpx;
-			font-size: 34rpx;
-			font-family: inherit;
-			box-shadow: none !important;
-			transition-duration: 0.1s;
-		}
-
-		.date_iput {
-			border: 1px solid #d5d5d5;
-			/* width: 98%; */
-			height: 62rpx;
-			background: #FFF;
-			border-radius: 0 !important;
-			color: #046db3;
-			padding: 10rpx 8rpx 4rpx;
-			font-size: 34rpx;
-			font-family: inherit;
-			box-shadow: none !important;
-			transition-duration: 0.1s;
-		}
-
-		button.btn_add {
-			width: 49.5%;
-			margin-top: 50rpx;
-			padding: 20rpx;
-			line-height: 1.5;
-			background: #27A6E1;
-			border: none;
-			color: #fff;
-			font-size: 38rpx;
-			font-weight: bold;
-			float: right;
-			display: inline-block;
-		}
-
-		button.btn_cancel {
-			width: 49.5%;
-			margin-top: 50rpx;
-			padding: 20rpx;
-			line-height: 1.5;
-			background: #27A6E1;
-			border: none;
-			color: #fff;
-			font-size: 38rpx;
-			font-weight: bold;
-			float: left;
-			display: inline-block;
-		}
-
-		.i_tishi {
-			color: red;
-			vertical-align: sub;
-			font-style: initial;
-			margin-left: 20rpx;
-			font-size: 17px;
-		}
-
-		.attr_field {
-			display: inline-block;
-			vertical-align: middle;
-			margin-left: 8px;
-			/* width: 71%; */
-		}
-
-		.input_vallist {
-			max-height: 350rpx;
-			overflow-y: auto;
-			display: none;
-		}
-
-		.input_vallist ul {
-			/* border: 1px solid red; */
-			padding: 0 20rpx;
-		}
-
-		.input_vallist ul li {
-			list-style: none;
-			padding: 20rpx;
-			border-bottom: 1px solid #ccc;
-		}
-
-		.input_vallist ul li a {
-			float: right;
-		}
-
-		.input_vallist ul li a i {
-			font-size: 45rpx;
-		}
-
-		.view-popup {
-			position: relative;
-		}
-
-		.popup-content {
-			@include flex;
-			align-items: center;
-			justify-content: center;
-			padding: 30rpx;
-			background-color: #fff;
-			/* height: 150px; */
-			/* border: 1px solid red; */
-		}
-
-		.popup-cont {
-			overflow-y: auto;
-			/* border: 1px solid red; */
-		}
-
-		.popup-height {
-			@include height;
-			/* width: 200px; */
-		}
-
-		.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;
-			margin-right: 20rpx;
-			padding: 15rpx;
-			line-height: 1.5;
-			background: #27A6E1;
-			border: none;
-			color: #fff;
-			font-size: 38rpx;
-			font-weight: bold;
-			/* float: left; */
-			display: inline-block;
-		}
-
-		button.btn_popup_cancel {
-			width: 180rpx;
-			margin-top: 50rpx;
-			padding: 15rpx;
-			line-height: 1.5;
-			background: #27A6E1;
-			border: none;
-			color: #fff;
-			font-size: 38rpx;
-			font-weight: bold;
-			/* float: right; */
-			display: inline-block;
-		}
-
-		.touch-item {
-			background-color: #F8F9FC;
-			display: flex;
-			justify-content: space-between;
-			width: 100%;
-			overflow: hidden
-		}
-
-		.itemcontent {
-			display: flex;
-			flex-direction: column;
-			padding: 5px 10px;
-			border-bottom: 1px solid #eeeeee;
-			margin-right: 0;
-			margin-left: -100px;
-			width: 100%;
-			-webkit-transition: all 0.4s;
-			transition: all 0.4s;
-			-webkit-transform: translateX(100px);
-			transform: translateX(100px);
-			position: relative;
-		}
-
-		.itembtn {
-			width: 100px;
-			display: flex;
-			flex-direction: column;
-			align-items: center;
-			justify-content: center;
-			background-color: #119bf8;
-			color: white;
-			position: relative;
-			-webkit-transform: translateX(100px);
-			transform: translateX(100px);
-			-webkit-transition: all 0.4s;
-			transition: all 0.4s;
-		}
-
-		.touch-move-active .itemcontent,
-		.touch-move-active .itembtn {
-			-webkit-transform: translateX(0);
-			transform: translateX(0);
-		}
-	}
-</style>
\ No newline at end of file
diff --git a/pages/modal/small-wnd/line.vue b/pages/modal/small-wnd/line.vue
deleted file mode 100644
index a0c0a49..0000000
--- a/pages/modal/small-wnd/line.vue
+++ /dev/null
@@ -1,624 +0,0 @@
-<template>
-	<view class="uni-page-modal-small-wnd-line">
-		<uni-forms ref="baseForm" :modelValue="form" :label-position="control_style=='宸﹀彸甯冨眬' ? 'left':'top'"
-			:label-align="control_style=='宸﹀彸甯冨眬' ? 'right':'left'" :label-width="titleWdith">
-			<view class="uni-group-item" v-for="(group,index) in show_style" :key="group.attrgroup_name">
-				<view class="uni-panel-title" @click="group.open = !group.open">
-					<text class="uni-title-icon" :style="{ backgroundColor: toHexColor(group.def?.bk_color) }"><text
-							class="uni-icon" :class="group.def?.img_font_style"></text></text>
-					<text class="uni-title-text">{{group.attrgroup_name}}</text>
-					<view class="uni-panel-icon-btn">
-						<uni-icons color="#000" type="down" size="18" />
-					</view>
-				</view>
-				<view v-if="group.open" class="uni-head-style" :class="hiddenAttrs.includes(attr.attr)? 'uni-hidden':''"
-					v-for="(attr,i) in group.attrs" :key="`attr-${index}-${i}`">
-					<uni-forms-item :label="attrLabel(attr)" :required="attrRequired(attr)" :error="errTip[attr.attr]">
-						<view class="input-wrapper">
-							<view class="uni-panel-ext-button" v-if="attr.ext_button==true">
-								<input class="uni-panel-input" type="text" v-model="visible" :disabled="disabled" @on-blur="onChange" />
-								<view class="uni-panel-right-ico">
-									<a @click="onClickExtButton"><i class="ace-icon fa fa-plus-circle"></i></a>
-								</view>
-							</view>
-							<input v-if="attr.type == 'input'" :ref="`ref${attr.attr}`" v-model="form[attr.attr]"
-								:ref="`ref${attr.attr}`" :disabled="!attr.edit" @on-blur="onChange(attr)" />
-							<textarea v-else-if="attr.type == 'textarea'" :ref="`ref${attr.attr}`"
-								v-model="form[attr.attr]" :ref="`ref${attr.attr}`" :disabled="!attr.edit"
-								@on-blur="onChange(attr)" />
-							<input v-else-if="attr.type == 'int'" :ref="`ref${attr.attr}`" v-model="form[attr.attr]"
-								type="number" :ref="`ref${attr.attr}`" :disabled="!attr.edit"
-								@on-blur="onChange(attr)" />
-							<input v-else-if="attr.type == 'float'" :ref="`ref${attr.attr}`" v-model="form[attr.attr]"
-								type="digit" :ref="`ref${attr.attr}`" :disabled="!attr.edit"
-								@on-blur="onChange(attr)" />
-							<div v-if="attr.ext_button==true&& (attr.type == 'input' ||attr.type == 'textarea'||attr.type == 'int'||attr.type == 'float') "
-								class="right-ext-btn">
-								<a @tap="onClickExtButton(index,i)"><i class="ace-icon fa fa-plus-circle"></i></a>
-							</div>
-
-							<switch v-else-if="attr.type == 'checkbox'" :ref="`ref${attr.attr}`"
-								:checked="form[attr.attr]" :ref="`ref${attr.attr}`" :disabled="!attr.edit"
-								@change="form[attr.attr]=checked">
-							</switch>
-							<uni-data-select id="dv_select" v-if="attr.type == 'select'" :ref="`ref${attr.attr}`"
-								:class="attr.edit?'':'input-disabled'" v-model="form[attr.attr]"
-								:localdata="dictList[attr.attr]" @change="onChange(attr)" :disabled="!attr.edit"
-								clear></uni-data-select>
-							<picker v-else-if="attr.type == 'date'" :ref="`ref${attr.attr}`" mode="date"
-								style="width: 100%" :value="form[attr.attr]" :ref="`ref${attr.attr}`"
-								:disabled="!attr.edit" @change="form[attr.attr]=value" />
-							<picker v-else-if="attr.type == 'time'" :ref="`ref${attr.attr}`" mode="time"
-								style="width: 100%" :value="form[attr.attr]" :ref="`ref${attr.attr}`"
-								:disabled="!attr.edit" @change="form[attr.attr]=value" />
-							<textarea v-else-if="attr.type == 'ref-psn'" :ref="`ref${attr.attr}`"
-								:value="form[attr.attr]" :ref="`ref${attr.attr}`" disabled />
-							<div v-if="attr.type == 'ref-psn'" class="right-ext-btn">
-								<a @tap="onClickAddPsn(index,i)"><i class="ace-icon fa fa-plus-circle"></i></a>
-							</div>
-							<pickerAddress v-else-if="attr.type == 'region'" :ref="`ref${attr.attr}`"
-								@change="onAddressChange" :data-attr="attr.attr"> {{form[attr.attr]}}
-							</pickerAddress>
-							<div v-else-if="attr.type == 'ref-obj'">
-								<a @tap="classAttr_AddRef" :data-classid="attr.RelCls[0].id"
-									:data-classname="attr.RelCls[0].name"><i class="ace-icon fa fa-plus-circle"></i></a>
-							</div>
-							<div v-else-if="attr.type == 'ref-obj-multi'">
-								<picker class="select" @change="classAttr_AddRef" :range="attr.RelClsList"
-									range-key="name" :data-index="index" :data-iindex="iindex">
-									<label class="">{{ attr.Value }}</label>
-								</picker>
-								<a class="class_attr_add_ref"><i class="ace-icon fa fa-plus-circle"></i></a>
-							</div>
-
-							<textarea v-else-if="attr.type == 'ref-prj'" :ref="`ref${attr.attr}`"
-								:value="form[attr.attr]" :ref="`ref${attr.attr}`" disabled />
-							<div v-if="attr.type == 'ref-prj'" class="right-ext-btn">
-								<a @tap="onClickAddPrj(index,i)"><i class="ace-icon fa fa-plus-circle"></i></a>
-							</div>
-							<input v-if="attr.type == 'code'" :ref="`ref${attr.attr}`" v-model="form[attr.attr]"
-								:ref="`ref${attr.attr}`" :disabled="!attr.edit" />
-						</view>
-					</uni-forms-item>
-				</view>
-			</view>
-		</uni-forms>
-	</view>
-</template>
-
-<script>
-	import {
-		Base64
-	} from  '@/js/Base64.js';
-	import pickerAddress from '../../js/pickerAddress/pickerAddress.vue'
-	import utils from "@/js/utils.js"
-	export default {
-		name: "PageModalSmallWndLine",
-		inject: ["getFormAllAttrObj"],
-		components: {
-			pickerAddress
-		},
-		props: {
-			clsId: {
-				type: String,
-				default: ""
-			},
-			clsName: {
-				type: String,
-				default: ""
-			},
-			show_style: {
-				type: Object,
-				default: {}
-			},
-			attrList: {
-				type: Array,
-				default: []
-			},
-			control_style: {
-				type: String,
-				default: ""
-			},
-			title_p_wdith: {
-				type: Number,
-				default: 0
-			},
-
-		},
-		data() {
-			return {
-				titleWdith: 100,
-				form: {},
-				errTip: {},
-				opened: [],
-				dictList: {},
-				globalAttrs: [],
-				hiddenAttrs: [],
-			};
-		},
-		computed: {
-			formAttrObj() {
-				return this.getFormAllAttrObj();
-			},
-			initialEvent() {
-				let event = this.show_style.Event?.find((e) => e.event_id == "initial");
-				return {
-					id: event?.scrip_id,
-					name: event?.scrip_name,
-				};
-			},
-
-
-		},
-		mounted() {
-			uni.getSystemInfo({
-				success: function(info) {
-
-					// 浣犲彲浠ュ皢灞忓箷瀹藉害淇濆瓨鍦ㄤ竴涓彉閲忎腑渚涘悗缁娇鐢�-					if (this.control_style == '宸﹀彸甯冨眬') {
-						if (this.title_p_wdith > 0 && this.title_p_wdith < 100) {
-							this.titleWdith = this.title_p_wdith * info.windowWidth / 100
-						} else {
-							this.titleWdith = 20 * info.windowWidth / 100
-						}
-					} else {
-						this.titleWdith = info.windowWidth
-					}
-					console.log('灞忓箷瀹藉害锛屾爣棰樺搴�, info.windowWidth, this.titleWdith);
-				}
-			});
-		},
-		methods: {
-			setData(obj) {
-				let that = this;
-				let keys = [];
-				let val, data;
-			
-				Object.keys(obj).forEach(function(key) {
-					keys = key.split(".");
-					val = obj[key];
-					data = that.$data;
-					keys.forEach(function(key2, index) {
-						if (index + 1 == keys.length) {
-							that.$set(data, key2, val);
-						} else {
-							if (!data[key2]) {
-								that.$set(data, key2, {});
-							}
-						}
-						data = data[key2];
-					});
-				});
-			},
-			
-			isValid() {
-				let flag = true;
-				this.show_style.forEach((group) => {
-					group.attrs.forEach((attr) => {
-						let val = this.form[attr.attr];
-						if (utils.classUtils.attrTypeIsDate(attr.def.type)) val = dayjs(val).format(
-							"YYYY-MM-DD");
-						if (attr.def.not_empty == 1 && isNullOrEmpty(val)) {
-							this.errTip[attr.attr] = `${attr.name}${this.translate('cannot_empty')}`;
-							flag = false;
-							if (this.$refs[`ref${attr.attr}`][0].focus)
-								this.$refs[`ref${attr.attr}`][0].focus();
-							else if (this.$refs[`ref${attr.attr}`][0].$el.focus)
-								this.$refs[`ref${attr.attr}`][0].$el.focus();
-						}
-					});
-				});
-				return flag;
-			},
-			async loadForm() {
-				this.form = {};
-				this.errTip = {};
-
-				await Promise.all(
-					this.show_style.map(async (group) => {
-						let group_def = this.attrList.find(
-							(a) => a.name == group.attrgroup_name
-						);
-						group.def = {
-							bk_color: group_def.bk_color,
-							img_font_style: group_def.img_font_style || "mobox-sys-mobox",
-						};
-						await Promise.all(
-							group.attrs.map(async (attr) => {
-								let attr_def = group_def.attr_list.find(
-									(a) => a.name == attr.attr
-								);
-
-								// 鈥滃皬绐楀彛鈥濅腑鈥滄樉绀洪厤缃�鎸囧畾鐨勫睘鎬у湪褰撳墠鏁版嵁绫讳腑宸插彉鏇达紝鏃犳硶寰楀埌鐩稿簲鐨勫畾涔�-								if (!attr_def) {
-									this.showError(
-										`褰撳墠鏁版嵁绫烩�${this.clsName}(${this.clsId})鈥濅腑鎵句笉鍒板悕涓衡�${attr.name}(${attr.attr})鈥濈殑灞炴�`
-									)
-
-									return;
-								}
-
-								attr.def = attr_def;
-
-								attr.type = this.getAttrType(attr.def);
-
-								this.form[attr.attr] = this.defaultValue(attr.type);
-								this.errTip[attr.attr] = "";
-
-								if (attr.type == "select") {
-									if (attr.def.dict_name) {
-										let res = await dictInfo(undefined, attr.def
-											.dict_name);
-										let dicList = res.dict_item_list;
-										this.dictList[attr.attr] = dicList;
-										let dictName = "";
-										if (dicList?.length > 0) {
-											let defaultValue = dicList.find(
-												(d) => d.is_default == 1
-											)?.name;
-											if (defaultValue) dictName = defaultValue;
-											else dictName = dicList[0].name;
-										}
-										this.form[attr.attr] = dictName;
-									} else {
-										this.dictList[attr.attr] = [];
-										this.form[attr.attr] = "";
-									}
-								}
-							})
-						);
-					})
-				);
-				this.opened = this.show_style
-					.filter((a) => a.open)
-					.map((a) => a.attrgroup_name);
-			},
-			async loadFormData(obj) {
-				this.show_style.forEach((group) => {
-					group.attrs.forEach((attr) => {
-						let info = obj.attr_list.find((o) => o.name == attr.attr);
-						if (info) {
-							if (attr.type == "ref-psn")
-								this.form[attr.attr] = {
-									id: info.value.split(";")[0],
-									name: info.value.split(";")[1],
-									type: 0,
-								};
-							else this.form[attr.attr] = info.value;
-						}
-					});
-				});
-			},
-			async loadFormDataViaDataObj(dataObj) {
-				this.show_style.forEach((group) => {
-					group.attrs.forEach((attr) => {
-						if (attr.attr in dataObj) this.form[attr.attr] = dataObj[attr.attr];
-					});
-				});
-			},
-			getAttrType(def) {
-				let type = def?.type;
-				let height = def?.height;
-				let ctrlType = "";
-				this.show_style?.forEach((group) => {
-					ctrlType = group.attrs?.find((a) => a.attr == def.name)?.ctrl_type;
-				});
-				if (utils.classUtils.attrTypeIsGuid(type) || utils.classUtils.attrTypeIsString(type))
-					return ctrlType == "dropdown" ?
-						"select" :
-						height == 2 ?
-						"textarea" :
-						height == 3 ?
-						"textarea" :
-						"input";
-				else if (utils.classUtils.attrTypeIsDict(type)) return "select";
-				else if (utils.classUtils.attrTypeIsInt(type)) return "int";
-				else if (utils.classUtils.attrTypeIsFloat(type)) return "float";
-
-				else if (utils.classUtils.attrTypeIsBool(type)) return "checkbox";
-				else if (utils.classUtils.attrTypeIsDate(type)) return "date";
-				else if (utils.classUtils.attrTypeIsTime(type)) return "time";
-				else if (utils.classUtils.attrTypeIsUser(type)) return "ref-psn";
-				else if (utils.classUtils.attrTypeIsRegion(type)) return "region";
-				else if (utils.classUtils.attrTypeIsObjRefMulti(type)) return "ref-obj-multi";
-				else if (utils.classUtils.attrTypeIsObjRef(type)) return "ref-obj";
-				else if (utils.classUtils.attrTypeIsProject(type)) return "ref-prj";
-				else if (utils.classUtils.attrTypeIsCode(type)) return "code";
-				else return "unknown";
-			},
-			defaultValue(type) {
-				let value = undefined;
-				switch (type) {
-					case "input":
-						value = "";
-						break;
-					case "select":
-						value = "";
-						break;
-					case "int":
-						value = "0";
-						break;
-					case "float":
-						value = "0.0";
-						break;
-					case "checkbox":
-						value = false;
-						break;
-					case "date":
-						value = "";
-						break;
-					case "time":
-						value = "";
-						break;
-					case "region":
-						value = "";
-						break;
-					case "ref-psn":
-						value = {};
-						break;
-					case "ref-obj-multi":
-						value = [];
-						break;
-					case "ref-obj":
-						value = {};
-						break;
-					case "ref-prj":
-						value = {};
-						break;
-					case "code":
-						value = "";
-						break;
-
-
-				}
-				return value;
-			},
-			attrLabel(attr) {
-				if (attr.notempty || attr.def?.not_empty == 1)
-					return `${attr.name}锛�{this.translate('required')}锛塦;
-				else return attr.name;
-			},
-			attrRequired(attr) {
-				if (attr.notempty || attr.def?.not_empty == 1) return true;
-				else return false;
-			},
-			toHexColor(num) {
-				return `#${parseInt(num).toString(16)}`;
-			},
-			reset() {
-				this.form = {};
-				this.errTip = {};
-				this.opened = [];
-				this.dictList = {};
-			},
-			clearTip() {
-				Object.keys(this.errTip).forEach((k) => {
-					this.errTip[k] = "";
-				});
-			},
-			clearData() {
-				Object.keys(this.form).forEach((k) => {
-					this.form[k] = "";
-				});
-			},
-			onAddressChange(e) {
-				console.log(e.data.join(';'))
-				this.form[e.target.dataset['attr']] = e.data
-					.join(
-						';');
-			},
-			async onChange(attr) {
-				if (!this.form[attr.attr]) return;
-				let action = attr.action;
-				if (!action) return;
-				if (action[0] != "{" && action[action.length - 1] != "}")
-					action = `{${action}}`;
-				let extInfo = {
-					...this.enviroment,
-				};
-				try {
-					lua(
-						this,
-						await runCustomEvent({
-							ed_type: 0,
-							class_id: this.clsId,
-							event_id: action,
-							obj_attr: this.formAttrObj,
-							ext_info: Base64.encode(JSON.stringify(extInfo)),
-						})
-					);
-				} catch (ex) {
-					this.showError(ex);
-				}
-			},
-			onClickExtButton(gindex, index) {
-				
-			},
-			onClickAddPsn(gindex, index) {},
-			onClickAddPrj(gindex, index) {},
-
-			findAttrDef(attr) {
-				let def;
-				this.show_style.forEach((group) => {
-					let r = group.attrs.find((a) => a.attr == attr);
-					if (r) def = r;
-				});
-				return def;
-			},
-			setFormValues(attrs) {
-				attrs.forEach((attr) => {
-					if (attr.attr in this.form) {
-						this.form[attr.attr] = attr.value;
-						if (attr.choice_list) {
-							// 鍏堝垽鏂槸鍚︽槸瀛楀吀绫诲瀷
-							let type = this.getAttrType(this.findAttrDef(attr.attr)?.def);
-							if (type == "select")
-								if (attr.choice_list)
-									this.dictList[attr.attr] = attr.choice_list.map((name) => ({
-										name,
-									}));
-						}
-					}
-				});
-			},
-			hideFormItems(attrs) {
-				let attrList = [];
-				this.show_style.forEach((group) => attrList.push(...group.attrs));
-				this.hiddenAttrs = [
-					...attrList.filter((a) => a.hidden === true).map((a) => a.attr),
-					...attrs
-					.filter((attr) => attr.attr in this.form && attr.show === false)
-					.map((attr) => attr.attr),
-				];
-			},
-			setFormAllValues(attrs) {
-				this.$emit("on-set-all-value", attrs);
-			},
-			showError(ex) {
-				uni.showModal({
-					title: this.translateSys('error') + " 1.1",
-					content: typeof ex == "string" ? ex : typeof ex.errMsg == "string" ? ex.errMsg : "",
-					showCancel: false,
-					confirmText: this.translateSys('cancel')
-				})
-			},
-			translate(t) {
-				if (typeof this.$t == "function") return this.$t(`page.${t}`)
-				else return t;
-			},
-			translateSys(t) {
-				if (typeof this.$t == "function") return this.$t(`sys.${t}`)
-				else return t;
-			},
-		},
-	}
-</script>
-
-
-<style lang="scss">
-	.uni-page-modal-small-wnd-line {
-		width: 100%;
-		display: flex;
-		flex-direction: column;
-
-		.uni-group-item {
-			border-radius: 8px;
-			background-color: #fff;
-			margin: 5px;
-			padding-bottom: 5px;
-
-		}
-
-		.uni-select {
-			border: 0;
-		}
-
-		.uni-panel-title {
-			display: flex;
-			width: calc(100% - 10rpx);
-			flex-direction: row;
-		}
-
-
-		.input-wrapper:hover {
-			border: 1px solid rgb(41, 121, 255);
-		}
-
-		.uni-title-icon {
-			background-color: #ffdd00;
-			border-radius: 50%;
-			width: 36px;
-			height: 36px;
-			margin: 5px;
-			margin-right: 12px;
-			display: inline-block;
-			vertical-align: middle;
-			text-align: center;
-			line-height: 40px;
-
-			.uni-icon {
-				color: #fff;
-				font-size: 20px
-			}
-
-		}
-
-		.uni-title-text {
-			flex: 1;
-			font-weight: 600;
-			line-height: 45px;
-		}
-
-		.uni-panel-icon-btn {
-			font-size: 18px;
-			padding: 8px;
-			margin-top: 5px;
-			// height: 36px;
-			// width: 36px;
-
-		}
-
-		.uni-panel-text {
-			flex: 1;
-			color: #000000;
-			font-weight: normal;
-		}
-
-		.uni-head-style {
-			display: flex;
-			flex-direction: column;
-			width: calc(100% - 30rpx);
-			padding: 15rpx;
-		}
-
-		.uni-head-style input {
-			width: calc(100% - 20rpx);
-			height: 52rpx;
-			line-height: 34rpx;
-			background: #FFF;
-			border-radius: 0 !important;
-			color: #2d8cf0;
-			padding: 10rpx 10rpx 12rpx;
-			font-size: 34rpx;
-			font-family: inherit;
-			box-shadow: none !important;
-			transition-duration: 0.1s;
-			margin-top: 4rpx;
-		}
-
-		.input-disabled {
-			background-color: #f3f3f3 !important;
-		}
-
-		.uni-hidden {
-			display: none;
-		}
-
-
-		.input-wrapper {
-			border: 1px solid #d5d5d5;
-			width: 100%;
-			display: flex;
-			flex-direction: row;
-
-			.uni-textarea,
-			.uni-input {
-				flex: 1;
-				padding: 12rpx 8rpx;
-				// height: 40rpx;
-				// line-height: 40rpx;
-			}
-
-			.uni-icon {
-				padding: 8rpx;
-				font-size: 32rpx;
-				color: rgb(192, 196, 204);
-			}
-
-			.right-ext-btn {
-				margin: 5rpx 10rpx 5rpx 5rpx;
-			}
-
-		}
-	}
-</style>
\ No newline at end of file
diff --git a/pages/selPrj/index.vue b/pages/selPrj/index.vue
index 545d8a6..09989bb 100644
--- a/pages/selPrj/index.vue
+++ b/pages/selPrj/index.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="uni-page-selprj">
+	<view class="uni-page-selprj" :class="largeMode?'large-mode':''">
 		<view style="height:90%;">
 			<input type="text" class="txt_search" v-model="searchVal" @keyup="onkeyup"
 				:placeholder="translate('input_project_name_query')">
@@ -38,6 +38,7 @@
 	export default {
 		data() {
 			return {
+					largeMode: getApp().globalData.largeMode || false,
 				title: this.translate('select_project'),
 				relation: '-1',
 				param: {},
diff --git a/pages/selpsn/index.vue b/pages/selpsn/index.vue
index badd763..3eb218a 100644
--- a/pages/selpsn/index.vue
+++ b/pages/selpsn/index.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="uni-page-selpsn">
+	<view class="uni-page-selpsn" :class="largeMode?'large-mode':''">
 		<view style="height:90%;">
 			<input type="text" class="txt_search" v-model="searchVal" @input="onkeyup"
 				:placeholder="translate('input_user_name_jp_query')">
@@ -37,6 +37,7 @@
 	export default {
 		data() {
 			return {
+					largeMode: getApp().globalData.largeMode || false,
 				title: this.translate('select_user'),
 				mulit: '',
 				param: {},

--
Gitblit v1.9.1