From c9c263dc43ad90f95f24a036cee9e6b47afb596c Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期六, 21 十二月 2024 18:44:20 +0800
Subject: [PATCH] 新建盐城德森项目

---
 uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue | 1018 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 509 insertions(+), 509 deletions(-)

diff --git a/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue b/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue
index a5ae8ab..679b12f 100644
--- a/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue
+++ b/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue
@@ -1,509 +1,509 @@
-<template>
-	<view class="uni-forms-item" :class="{ 'uni-forms-item--border': border, 'is-first-border': border && isFirstBorder, 'uni-forms-item-error': msg }">
-		<view class="uni-forms-item__box">
-			<view class="uni-forms-item__inner" :class="['is-direction-' + labelPos]">
-				<view class="uni-forms-item__label" :style="{ width: labelWid , justifyContent: justifyContent }">
-					<slot name="label">
-						<text v-if="required" class="is-required">*</text>
-						<uni-icons v-if="leftIcon" class="label-icon" size="16" :type="leftIcon" :color="iconColor" />
-						<text class="label-text">{{ label }}</text>
-
-						<view v-if="label" class="label-seat"></view>
-					</slot>
-				</view>
-				<view class="uni-forms-item__content" :class="{ 'is-input-error-border': msg }"><slot></slot></view>
-			</view>
-			<view
-				v-if="msg"
-				class="uni-error-message"
-				:class="{ 'uni-error-msg--boeder': border }"
-				:style="{
-					paddingLeft: labelLeft
-				}"
-			>
-				<text class="uni-error-message-text">{{ showMsg === 'undertext' ? msg : '' }}</text>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-/**
- * Field 杈撳叆妗�
- * @description 姝ょ粍浠跺彲浠ュ疄鐜拌〃鍗曠殑杈撳叆涓庢牎楠岋紝鍖呮嫭 "text" 鍜� "textarea" 绫诲瀷銆�
- * @tutorial https://ext.dcloud.net.cn/plugin?id=21001
- * @property {Boolean} 	required 			鏄惁蹇呭~锛屽乏杈规樉绀虹孩鑹�"*"鍙凤紙榛樿false锛�
- * @property {String} validateTrigger = [bind|submit]	鏍¢獙瑙﹀彂鍣ㄦ柟寮� 榛樿 submit 鍙��
- * 	@value bind 	鍙戠敓鍙樺寲鏃惰Е鍙�
- * 	@value submit 	鎻愪氦鏃惰Е鍙�
- * @property {String } 	leftIcon 			label宸﹁竟鐨勫浘鏍囷紝闄� uni-ui 鐨勫浘鏍囧悕绉�
- * @property {String } 	iconColor 			宸﹁竟閫氳繃icon閰嶇疆鐨勫浘鏍囩殑棰滆壊锛堥粯璁�#606266锛�
- * @property {String } 	label 				杈撳叆妗嗗乏杈圭殑鏂囧瓧鎻愮ず
- * @property {Number } 	labelWidth 			label鐨勫搴︼紝鍗曚綅px锛堥粯璁�65锛�
- * @property {String } 	labelAlign = [left|center|right] label鐨勬枃瀛楀榻愭柟寮忥紙榛樿left锛�
- * 	@value left		label 宸︿晶鏄剧ず
- * 	@value center	label 灞呬腑
- * 	@value right	label 鍙充晶瀵归綈
- * @property {String } 	labelPosition = [top|left] label鐨勬枃瀛楃殑浣嶇疆锛堥粯璁eft锛�
- * 	@value top	椤堕儴鏄剧ず label
- * 	@value left	宸︿晶鏄剧ず label
- * @property {String } 	errorMessage 		鏄剧ず鐨勯敊璇彁绀哄唴瀹癸紝濡傛灉涓虹┖瀛楃涓叉垨鑰協alse锛屽垯涓嶆樉绀洪敊璇俊鎭�
- * @property {String } 	name 				琛ㄥ崟鍩熺殑灞炴�у悕锛屽湪浣跨敤鏍¢獙瑙勫垯鏃跺繀濉�
- */
-
-export default {
-	name: 'uniFormsItem',
-	props: {
-		// 鑷畾涔夊唴瀹�
-		custom: {
-			type: Boolean,
-			default: false
-		},
-		// 鏄惁鏄剧ず鎶ラ敊淇℃伅
-		showMessage: {
-			type: Boolean,
-			default: true
-		},
-		name: String,
-		required: Boolean,
-		validateTrigger: {
-			type: String,
-			default: ''
-		},
-		leftIcon: String,
-		iconColor: {
-			type: String,
-			default: '#606266'
-		},
-		label: String,
-		// 宸﹁竟鏍囬鐨勫搴﹀崟浣峱x
-		labelWidth: {
-			type: [Number, String],
-			default: ''
-		},
-		// 瀵归綈鏂瑰紡锛宭eft|center|right
-		labelAlign: {
-			type: String,
-			default: ''
-		},
-		// lable鐨勪綅缃紝鍙�変负 left-宸﹁竟锛宼op-涓婅竟
-		labelPosition: {
-			type: String,
-			default: ''
-		},
-		errorMessage: {
-			type: [String, Boolean],
-			default: ''
-		},
-		// 琛ㄥ崟鏍¢獙瑙勫垯
-		rules: {
-			type: Array,
-			default() {
-				return [];
-			}
-		}
-	},
-	data() {
-		return {
-			errorTop: false,
-			errorBottom: false,
-			labelMarginBottom: '',
-			errorWidth: '',
-			errMsg: '',
-			val: '',
-			labelPos: '',
-			labelWid: '',
-			labelAli: '',
-			showMsg: 'undertext',
-			border: false,
-			isFirstBorder: false,
-			isArray: false,
-			arrayField: ''
-		};
-	},
-	computed: {
-		msg() {
-			return this.errorMessage || this.errMsg;
-		},
-		fieldStyle() {
-			let style = {};
-			if (this.labelPos == 'top') {
-				style.padding = '0 0';
-				this.labelMarginBottom = '6px';
-			}
-			if (this.labelPos == 'left' && this.msg !== false && this.msg != '') {
-				style.paddingBottom = '0px';
-				this.errorBottom = true;
-				this.errorTop = false;
-			} else if (this.labelPos == 'top' && this.msg !== false && this.msg != '') {
-				this.errorBottom = false;
-				this.errorTop = true;
-			} else {
-				// style.paddingBottom = ''
-				this.errorTop = false;
-				this.errorBottom = false;
-			}
-			return style;
-		},
-
-		// uni涓嶆敮鎸佸湪computed涓啓style.justifyContent = 'center'鐨勫舰寮忥紝鏁呯敤姝ゆ柟娉�
-		justifyContent() {
-			if (this.labelAli === 'left') return 'flex-start';
-			if (this.labelAli === 'center') return 'center';
-			if (this.labelAli === 'right') return 'flex-end';
-		},
-		labelLeft(){
-			return (this.labelPos === 'left' ? parseInt(this.labelWid) : 0) + 'px'
-		}
-	},
-	watch: {
-		validateTrigger(trigger) {
-			this.formTrigger = trigger;
-		}
-	},
-	created() {
-		this.form = this.getForm();
-		this.group = this.getForm('uniGroup');
-		this.formRules = [];
-		this.formTrigger = this.validateTrigger;
-		// 澶勭悊 name锛屾槸鍚︽暟缁�
-		if (this.name && this.name.indexOf('[') !== -1 && this.name.indexOf(']') !== -1) {
-			this.isArray = true;
-			this.arrayField = this.name
-			// fix by mehaotian 淇敼涓嶄慨鏀圭殑鎯呭喌锛屽姩鎬佸�间笉妫�楠岀殑闂
-			this.form.formData[this.name] = this.form._getValue(this.name, '')
-		}
-	},
-	mounted() {
-		if (this.form) {
-			this.form.childrens.push(this);
-		}
-		this.init();
-	},
-	// #ifndef VUE3
-	destroyed() {
-		if(this.__isUnmounted) return
-		this.unInit()
-	},
-	// #endif
-	// #ifdef VUE3
-	unmounted(){
-		this.__isUnmounted = true
-		this.unInit()
-	},
-	// #endif
-	methods: {
-		init() {
-			if (this.form) {
-				let { formRules, validator, formData, value, labelPosition, labelWidth, labelAlign, errShowType } = this.form;
-				this.labelPos = this.labelPosition ? this.labelPosition : labelPosition;
-
-				if(this.label){
-					this.labelWid = (this.labelWidth ? this.labelWidth : (labelWidth||70))
-				}else{
-					this.labelWid =( this.labelWidth ? this.labelWidth : (labelWidth||'auto'))
-				}
-				if(this.labelWid && this.labelWid !=='auto') {
-					this.labelWid +='px'
-				}
-				this.labelAli = this.labelAlign ? this.labelAlign : labelAlign;
-
-				// 鍒ゆ柇绗竴涓� item
-				if (!this.form.isFirstBorder) {
-					this.form.isFirstBorder = true;
-					this.isFirstBorder = true;
-				}
-
-				// 鍒ゆ柇 group 閲岀殑绗竴涓� item
-				if (this.group) {
-					if (!this.group.isFirstBorder) {
-						this.group.isFirstBorder = true;
-						this.isFirstBorder = true;
-					}
-				}
-
-				this.border = this.form.border;
-				this.showMsg = errShowType;
-				let name = this.isArray ? this.arrayField : this.name;
-				if(!name) return
-				if (formRules && this.rules.length > 0) {
-					if (!formRules[name]) {
-						formRules[name] = {
-							rules: this.rules
-						}
-					}
-					validator.updateSchema(formRules);
-				}
-				this.formRules = formRules[name] || {};
-				this.validator = validator;
-			} else {
-				this.labelPos = this.labelPosition || 'left';
-				this.labelWid = this.labelWidth || 65;
-				this.labelAli = this.labelAlign || 'left';
-			}
-		},
-		unInit(){
-			if (this.form) {
-				this.form.childrens.forEach((item, index) => {
-					if (item === this) {
-						this.form.childrens.splice(index, 1)
-						delete this.form.formData[item.name]
-					}
-				})
-			}
-		},
-		/**
-		 * 鑾峰彇鐖跺厓绱犲疄渚�
-		 */
-		getForm(name = 'uniForms') {
-			let parent = this.$parent;
-			let parentName = parent.$options.name;
-			while (parentName !== name) {
-				parent = parent.$parent;
-				if (!parent) return false;
-				parentName = parent.$options.name;
-			}
-			return parent;
-		},
-
-		/**
-		 * 绉婚櫎璇ヨ〃鍗曢」鐨勬牎楠岀粨鏋�
-		 */
-		clearValidate() {
-			this.errMsg = '';
-		},
-		/**
-		 * 瀛愮粍浠惰皟鐢紝濡� easyinput
-		 * @param {Object} value
-		 */
-		setValue(value) {
-			let name = this.isArray ? this.arrayField : this.name;
-			if (name) {
-				if (this.errMsg) this.errMsg = '';
-				// 缁欑粍浠惰祴鍊�
-				this.form.formData[name] = this.form._getValue(name, value);
-				if (!this.formRules || (typeof this.formRules && JSON.stringify(this.formRules) === '{}')) return;
-				this.triggerCheck(this.form._getValue(this.name, value));
-			}
-		},
-
-		/**
-		 * 鏍¢獙瑙勫垯
-		 * @param {Object} value
-		 */
-		async triggerCheck(value,formTrigger) {
-			let promise = null;
-			this.errMsg = '';
-			// fix by mehaotian 瑙e喅娌℃湁妫�楠岃鍒欑殑鎯呭喌涓嬶紝鎶涘嚭閿欒鐨勯棶棰�
-			if (!this.validator || Object.keys(this.formRules).length === 0) return;
-			const isNoField = this.isRequired(this.formRules.rules || []);
-			let isTrigger = this.isTrigger(this.formRules.validateTrigger, this.validateTrigger, this.form.validateTrigger);
-			let result = null;
-			if (!!isTrigger || formTrigger) {
-				let name = this.isArray ? this.arrayField : this.name;
-				result = await this.validator.validateUpdate(
-					{
-						[name]: value
-					},
-					this.form.formData
-				);
-			}
-			// 鍒ゆ柇鏄惁蹇呭~,闈炲繀濉紝涓嶅~涓嶆牎楠岋紝濉啓鎵嶆牎楠�
-			if (!isNoField && (value === undefined || value === '')) {
-				result = null;
-			}
-			const inputComp = this.form.inputChildrens.find(child => child.rename === this.name);
-			if ((isTrigger ||銆�formTrigger) && result && result.errorMessage) {
-				if (inputComp) {
-					inputComp.errMsg = result.errorMessage;
-				}
-				if (this.form.errShowType === 'toast') {
-					uni.showToast({
-						title: result.errorMessage || '鏍¢獙閿欒',
-						icon: 'none'
-					});
-				}
-				if (this.form.errShowType === 'modal') {
-					uni.showModal({
-						title: '鎻愮ず',
-						content: result.errorMessage || '鏍¢獙閿欒'
-					});
-				}
-			} else {
-				if (inputComp) {
-					inputComp.errMsg = '';
-				}
-			}
-
-			this.errMsg = !result ? '' : result.errorMessage;
-			// 瑙﹀彂validate浜嬩欢
-			this.form.validateCheck(result ? result : null);
-			// typeof callback === 'function' && callback(result ? result : null);
-			// if (promise) return promise
-			return result ? result : null;
-		},
-		/**
-		 * 瑙﹀彂鏃舵満
-		 * @param {Object} event
-		 */
-		isTrigger(rule, itemRlue, parentRule) {
-			let rl = true;
-			//  bind  submit
-			if (rule === 'submit' || !rule) {
-				if (rule === undefined) {
-					if (itemRlue !== 'bind') {
-						if (!itemRlue) {
-							return parentRule === 'bind' ? true : false;
-						}
-						return false;
-					}
-					return true;
-				}
-				return false;
-			}
-			return true;
-		},
-		// 鏄惁鏈夊繀濉瓧娈�
-		isRequired(rules) {
-			let isNoField = false;
-			for (let i = 0; i < rules.length; i++) {
-				const ruleData = rules[i];
-				if (ruleData.required) {
-					isNoField = true;
-					break;
-				}
-			}
-			return isNoField;
-		}
-	}
-};
-</script>
-
-<style lang="scss" >
-.uni-forms-item {
-	position: relative;
-	padding: 0px;
-	text-align: left;
-	color: #333;
-	font-size: 14px;
-	// margin-bottom: 22px;
-}
-
-.uni-forms-item__box {
-	position: relative;
-}
-
-.uni-forms-item__inner {
-	/* #ifndef APP-NVUE */
-	display: flex;
-	/* #endif */
-	// flex-direction: row;
-	// align-items: center;
-	padding-bottom: 22px;
-	// margin-bottom: 22px;
-}
-
-.is-direction-left {
-	flex-direction: row;
-}
-
-.is-direction-top {
-	flex-direction: column;
-}
-
-.uni-forms-item__label {
-	/* #ifndef APP-NVUE */
-	display: flex;
-	flex-shrink: 0;
-	box-sizing: border-box;
-	/* #endif */
-	flex-direction: row;
-	align-items: center;
-	width: 65px;
-	// line-height: 2;
-	// margin-top: 3px;
-	padding: 5px 0;
-	height: 36px;
-	// margin-right: 5px;
-
-	.label-text {
-		font-size: 13px;
-		color: #666666;
-	}
-	.label-seat {
-		margin-right: 5px;
-	}
-}
-
-.uni-forms-item__content {
-	/* #ifndef APP-NVUE */
-	width: 100%;
-	box-sizing: border-box;
-	min-height: 36px;
-	/* #endif */
-	flex: 1;
-}
-
-.label-icon {
-	margin-right: 5px;
-	margin-top: -1px;
-}
-
-// 蹇呭~
-.is-required {
-	// color: $uni-color-error;
-	color: #dd524d;
-	font-weight: bold;
-}
-
-.uni-error-message {
-	position: absolute;
-	bottom: 0px;
-	left: 0;
-	text-align: left;
-}
-
-.uni-error-message-text {
-	line-height: 22px;
-	color: #dd524d;
-	font-size: 12px;
-}
-
-.uni-error-msg--boeder {
-	position: relative;
-	bottom: 0;
-	line-height: 22px;
-}
-
-.is-input-error-border {
-	border-color: #dd524d;
-}
-
-.uni-forms-item--border {
-	margin-bottom: 0;
-	padding: 10px 0;
-	// padding-bottom: 0;
-	border-top: 1px #eee solid;
-
-	.uni-forms-item__inner {
-		padding: 0;
-	}
-}
-
-.uni-forms-item-error {
-	// padding-bottom: 0;
-}
-
-.is-first-border {
-	/* #ifndef APP-NVUE */
-	border: none;
-	/* #endif */
-	/* #ifdef APP-NVUE */
-	border-width: 0;
-	/* #endif */
-}
-
-.uni-forms--no-padding {
-	padding: 0;
-}
-</style>
+<template>
+	<view class="uni-forms-item" :class="{ 'uni-forms-item--border': border, 'is-first-border': border && isFirstBorder, 'uni-forms-item-error': msg }">
+		<view class="uni-forms-item__box">
+			<view class="uni-forms-item__inner" :class="['is-direction-' + labelPos]">
+				<view class="uni-forms-item__label" :style="{ width: labelWid , justifyContent: justifyContent }">
+					<slot name="label">
+						<text v-if="required" class="is-required">*</text>
+						<uni-icons v-if="leftIcon" class="label-icon" size="16" :type="leftIcon" :color="iconColor" />
+						<text class="label-text">{{ label }}</text>
+
+						<view v-if="label" class="label-seat"></view>
+					</slot>
+				</view>
+				<view class="uni-forms-item__content" :class="{ 'is-input-error-border': msg }"><slot></slot></view>
+			</view>
+			<view
+				v-if="msg"
+				class="uni-error-message"
+				:class="{ 'uni-error-msg--boeder': border }"
+				:style="{
+					paddingLeft: labelLeft
+				}"
+			>
+				<text class="uni-error-message-text">{{ showMsg === 'undertext' ? msg : '' }}</text>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+/**
+ * Field 杈撳叆妗�
+ * @description 姝ょ粍浠跺彲浠ュ疄鐜拌〃鍗曠殑杈撳叆涓庢牎楠岋紝鍖呮嫭 "text" 鍜� "textarea" 绫诲瀷銆�
+ * @tutorial https://ext.dcloud.net.cn/plugin?id=21001
+ * @property {Boolean} 	required 			鏄惁蹇呭~锛屽乏杈规樉绀虹孩鑹�"*"鍙凤紙榛樿false锛�
+ * @property {String} validateTrigger = [bind|submit]	鏍¢獙瑙﹀彂鍣ㄦ柟寮� 榛樿 submit 鍙��
+ * 	@value bind 	鍙戠敓鍙樺寲鏃惰Е鍙�
+ * 	@value submit 	鎻愪氦鏃惰Е鍙�
+ * @property {String } 	leftIcon 			label宸﹁竟鐨勫浘鏍囷紝闄� uni-ui 鐨勫浘鏍囧悕绉�
+ * @property {String } 	iconColor 			宸﹁竟閫氳繃icon閰嶇疆鐨勫浘鏍囩殑棰滆壊锛堥粯璁�#606266锛�
+ * @property {String } 	label 				杈撳叆妗嗗乏杈圭殑鏂囧瓧鎻愮ず
+ * @property {Number } 	labelWidth 			label鐨勫搴︼紝鍗曚綅px锛堥粯璁�65锛�
+ * @property {String } 	labelAlign = [left|center|right] label鐨勬枃瀛楀榻愭柟寮忥紙榛樿left锛�
+ * 	@value left		label 宸︿晶鏄剧ず
+ * 	@value center	label 灞呬腑
+ * 	@value right	label 鍙充晶瀵归綈
+ * @property {String } 	labelPosition = [top|left] label鐨勬枃瀛楃殑浣嶇疆锛堥粯璁eft锛�
+ * 	@value top	椤堕儴鏄剧ず label
+ * 	@value left	宸︿晶鏄剧ず label
+ * @property {String } 	errorMessage 		鏄剧ず鐨勯敊璇彁绀哄唴瀹癸紝濡傛灉涓虹┖瀛楃涓叉垨鑰協alse锛屽垯涓嶆樉绀洪敊璇俊鎭�
+ * @property {String } 	name 				琛ㄥ崟鍩熺殑灞炴�у悕锛屽湪浣跨敤鏍¢獙瑙勫垯鏃跺繀濉�
+ */
+
+export default {
+	name: 'uniFormsItem',
+	props: {
+		// 鑷畾涔夊唴瀹�
+		custom: {
+			type: Boolean,
+			default: false
+		},
+		// 鏄惁鏄剧ず鎶ラ敊淇℃伅
+		showMessage: {
+			type: Boolean,
+			default: true
+		},
+		name: String,
+		required: Boolean,
+		validateTrigger: {
+			type: String,
+			default: ''
+		},
+		leftIcon: String,
+		iconColor: {
+			type: String,
+			default: '#606266'
+		},
+		label: String,
+		// 宸﹁竟鏍囬鐨勫搴﹀崟浣峱x
+		labelWidth: {
+			type: [Number, String],
+			default: ''
+		},
+		// 瀵归綈鏂瑰紡锛宭eft|center|right
+		labelAlign: {
+			type: String,
+			default: ''
+		},
+		// lable鐨勪綅缃紝鍙�変负 left-宸﹁竟锛宼op-涓婅竟
+		labelPosition: {
+			type: String,
+			default: ''
+		},
+		errorMessage: {
+			type: [String, Boolean],
+			default: ''
+		},
+		// 琛ㄥ崟鏍¢獙瑙勫垯
+		rules: {
+			type: Array,
+			default() {
+				return [];
+			}
+		}
+	},
+	data() {
+		return {
+			errorTop: false,
+			errorBottom: false,
+			labelMarginBottom: '',
+			errorWidth: '',
+			errMsg: '',
+			val: '',
+			labelPos: '',
+			labelWid: '',
+			labelAli: '',
+			showMsg: 'undertext',
+			border: false,
+			isFirstBorder: false,
+			isArray: false,
+			arrayField: ''
+		};
+	},
+	computed: {
+		msg() {
+			return this.errorMessage || this.errMsg;
+		},
+		fieldStyle() {
+			let style = {};
+			if (this.labelPos == 'top') {
+				style.padding = '0 0';
+				this.labelMarginBottom = '6px';
+			}
+			if (this.labelPos == 'left' && this.msg !== false && this.msg != '') {
+				style.paddingBottom = '0px';
+				this.errorBottom = true;
+				this.errorTop = false;
+			} else if (this.labelPos == 'top' && this.msg !== false && this.msg != '') {
+				this.errorBottom = false;
+				this.errorTop = true;
+			} else {
+				// style.paddingBottom = ''
+				this.errorTop = false;
+				this.errorBottom = false;
+			}
+			return style;
+		},
+
+		// uni涓嶆敮鎸佸湪computed涓啓style.justifyContent = 'center'鐨勫舰寮忥紝鏁呯敤姝ゆ柟娉�
+		justifyContent() {
+			if (this.labelAli === 'left') return 'flex-start';
+			if (this.labelAli === 'center') return 'center';
+			if (this.labelAli === 'right') return 'flex-end';
+		},
+		labelLeft(){
+			return (this.labelPos === 'left' ? parseInt(this.labelWid) : 0) + 'px'
+		}
+	},
+	watch: {
+		validateTrigger(trigger) {
+			this.formTrigger = trigger;
+		}
+	},
+	created() {
+		this.form = this.getForm();
+		this.group = this.getForm('uniGroup');
+		this.formRules = [];
+		this.formTrigger = this.validateTrigger;
+		// 澶勭悊 name锛屾槸鍚︽暟缁�
+		if (this.name && this.name.indexOf('[') !== -1 && this.name.indexOf(']') !== -1) {
+			this.isArray = true;
+			this.arrayField = this.name
+			// fix by mehaotian 淇敼涓嶄慨鏀圭殑鎯呭喌锛屽姩鎬佸�间笉妫�楠岀殑闂
+			this.form.formData[this.name] = this.form._getValue(this.name, '')
+		}
+	},
+	mounted() {
+		if (this.form) {
+			this.form.childrens.push(this);
+		}
+		this.init();
+	},
+	// #ifndef VUE3
+	destroyed() {
+		if(this.__isUnmounted) return
+		this.unInit()
+	},
+	// #endif
+	// #ifdef VUE3
+	unmounted(){
+		this.__isUnmounted = true
+		this.unInit()
+	},
+	// #endif
+	methods: {
+		init() {
+			if (this.form) {
+				let { formRules, validator, formData, value, labelPosition, labelWidth, labelAlign, errShowType } = this.form;
+				this.labelPos = this.labelPosition ? this.labelPosition : labelPosition;
+
+				if(this.label){
+					this.labelWid = (this.labelWidth ? this.labelWidth : (labelWidth||70))
+				}else{
+					this.labelWid =( this.labelWidth ? this.labelWidth : (labelWidth||'auto'))
+				}
+				if(this.labelWid && this.labelWid !=='auto') {
+					this.labelWid +='px'
+				}
+				this.labelAli = this.labelAlign ? this.labelAlign : labelAlign;
+
+				// 鍒ゆ柇绗竴涓� item
+				if (!this.form.isFirstBorder) {
+					this.form.isFirstBorder = true;
+					this.isFirstBorder = true;
+				}
+
+				// 鍒ゆ柇 group 閲岀殑绗竴涓� item
+				if (this.group) {
+					if (!this.group.isFirstBorder) {
+						this.group.isFirstBorder = true;
+						this.isFirstBorder = true;
+					}
+				}
+
+				this.border = this.form.border;
+				this.showMsg = errShowType;
+				let name = this.isArray ? this.arrayField : this.name;
+				if(!name) return
+				if (formRules && this.rules.length > 0) {
+					if (!formRules[name]) {
+						formRules[name] = {
+							rules: this.rules
+						}
+					}
+					validator.updateSchema(formRules);
+				}
+				this.formRules = formRules[name] || {};
+				this.validator = validator;
+			} else {
+				this.labelPos = this.labelPosition || 'left';
+				this.labelWid = this.labelWidth || 65;
+				this.labelAli = this.labelAlign || 'left';
+			}
+		},
+		unInit(){
+			if (this.form) {
+				this.form.childrens.forEach((item, index) => {
+					if (item === this) {
+						this.form.childrens.splice(index, 1)
+						delete this.form.formData[item.name]
+					}
+				})
+			}
+		},
+		/**
+		 * 鑾峰彇鐖跺厓绱犲疄渚�
+		 */
+		getForm(name = 'uniForms') {
+			let parent = this.$parent;
+			let parentName = parent.$options.name;
+			while (parentName !== name) {
+				parent = parent.$parent;
+				if (!parent) return false;
+				parentName = parent.$options.name;
+			}
+			return parent;
+		},
+
+		/**
+		 * 绉婚櫎璇ヨ〃鍗曢」鐨勬牎楠岀粨鏋�
+		 */
+		clearValidate() {
+			this.errMsg = '';
+		},
+		/**
+		 * 瀛愮粍浠惰皟鐢紝濡� easyinput
+		 * @param {Object} value
+		 */
+		setValue(value) {
+			let name = this.isArray ? this.arrayField : this.name;
+			if (name) {
+				if (this.errMsg) this.errMsg = '';
+				// 缁欑粍浠惰祴鍊�
+				this.form.formData[name] = this.form._getValue(name, value);
+				if (!this.formRules || (typeof this.formRules && JSON.stringify(this.formRules) === '{}')) return;
+				this.triggerCheck(this.form._getValue(this.name, value));
+			}
+		},
+
+		/**
+		 * 鏍¢獙瑙勫垯
+		 * @param {Object} value
+		 */
+		async triggerCheck(value,formTrigger) {
+			let promise = null;
+			this.errMsg = '';
+			// fix by mehaotian 瑙e喅娌℃湁妫�楠岃鍒欑殑鎯呭喌涓嬶紝鎶涘嚭閿欒鐨勯棶棰�
+			if (!this.validator || Object.keys(this.formRules).length === 0) return;
+			const isNoField = this.isRequired(this.formRules.rules || []);
+			let isTrigger = this.isTrigger(this.formRules.validateTrigger, this.validateTrigger, this.form.validateTrigger);
+			let result = null;
+			if (!!isTrigger || formTrigger) {
+				let name = this.isArray ? this.arrayField : this.name;
+				result = await this.validator.validateUpdate(
+					{
+						[name]: value
+					},
+					this.form.formData
+				);
+			}
+			// 鍒ゆ柇鏄惁蹇呭~,闈炲繀濉紝涓嶅~涓嶆牎楠岋紝濉啓鎵嶆牎楠�
+			if (!isNoField && (value === undefined || value === '')) {
+				result = null;
+			}
+			const inputComp = this.form.inputChildrens.find(child => child.rename === this.name);
+			if ((isTrigger ||銆�formTrigger) && result && result.errorMessage) {
+				if (inputComp) {
+					inputComp.errMsg = result.errorMessage;
+				}
+				if (this.form.errShowType === 'toast') {
+					uni.showToast({
+						title: result.errorMessage || '鏍¢獙閿欒',
+						icon: 'none'
+					});
+				}
+				if (this.form.errShowType === 'modal') {
+					uni.showModal({
+						title: '鎻愮ず',
+						content: result.errorMessage || '鏍¢獙閿欒'
+					});
+				}
+			} else {
+				if (inputComp) {
+					inputComp.errMsg = '';
+				}
+			}
+
+			this.errMsg = !result ? '' : result.errorMessage;
+			// 瑙﹀彂validate浜嬩欢
+			this.form.validateCheck(result ? result : null);
+			// typeof callback === 'function' && callback(result ? result : null);
+			// if (promise) return promise
+			return result ? result : null;
+		},
+		/**
+		 * 瑙﹀彂鏃舵満
+		 * @param {Object} event
+		 */
+		isTrigger(rule, itemRlue, parentRule) {
+			let rl = true;
+			//  bind  submit
+			if (rule === 'submit' || !rule) {
+				if (rule === undefined) {
+					if (itemRlue !== 'bind') {
+						if (!itemRlue) {
+							return parentRule === 'bind' ? true : false;
+						}
+						return false;
+					}
+					return true;
+				}
+				return false;
+			}
+			return true;
+		},
+		// 鏄惁鏈夊繀濉瓧娈�
+		isRequired(rules) {
+			let isNoField = false;
+			for (let i = 0; i < rules.length; i++) {
+				const ruleData = rules[i];
+				if (ruleData.required) {
+					isNoField = true;
+					break;
+				}
+			}
+			return isNoField;
+		}
+	}
+};
+</script>
+
+<style lang="scss" >
+.uni-forms-item {
+	position: relative;
+	padding: 0px;
+	text-align: left;
+	color: #333;
+	font-size: 14px;
+	// margin-bottom: 22px;
+}
+
+.uni-forms-item__box {
+	position: relative;
+}
+
+.uni-forms-item__inner {
+	/* #ifndef APP-NVUE */
+	display: flex;
+	/* #endif */
+	// flex-direction: row;
+	// align-items: center;
+	padding-bottom: 22px;
+	// margin-bottom: 22px;
+}
+
+.is-direction-left {
+	flex-direction: row;
+}
+
+.is-direction-top {
+	flex-direction: column;
+}
+
+.uni-forms-item__label {
+	/* #ifndef APP-NVUE */
+	display: flex;
+	flex-shrink: 0;
+	box-sizing: border-box;
+	/* #endif */
+	flex-direction: row;
+	align-items: center;
+	width: 65px;
+	// line-height: 2;
+	// margin-top: 3px;
+	padding: 5px 0;
+	height: 36px;
+	// margin-right: 5px;
+
+	.label-text {
+		font-size: 13px;
+		color: #666666;
+	}
+	.label-seat {
+		margin-right: 5px;
+	}
+}
+
+.uni-forms-item__content {
+	/* #ifndef APP-NVUE */
+	width: 100%;
+	box-sizing: border-box;
+	min-height: 36px;
+	/* #endif */
+	flex: 1;
+}
+
+.label-icon {
+	margin-right: 5px;
+	margin-top: -1px;
+}
+
+// 蹇呭~
+.is-required {
+	// color: $uni-color-error;
+	color: #dd524d;
+	font-weight: bold;
+}
+
+.uni-error-message {
+	position: absolute;
+	bottom: 0px;
+	left: 0;
+	text-align: left;
+}
+
+.uni-error-message-text {
+	line-height: 22px;
+	color: #dd524d;
+	font-size: 12px;
+}
+
+.uni-error-msg--boeder {
+	position: relative;
+	bottom: 0;
+	line-height: 22px;
+}
+
+.is-input-error-border {
+	border-color: #dd524d;
+}
+
+.uni-forms-item--border {
+	margin-bottom: 0;
+	padding: 10px 0;
+	// padding-bottom: 0;
+	border-top: 1px #eee solid;
+
+	.uni-forms-item__inner {
+		padding: 0;
+	}
+}
+
+.uni-forms-item-error {
+	// padding-bottom: 0;
+}
+
+.is-first-border {
+	/* #ifndef APP-NVUE */
+	border: none;
+	/* #endif */
+	/* #ifdef APP-NVUE */
+	border-width: 0;
+	/* #endif */
+}
+
+.uni-forms--no-padding {
+	padding: 0;
+}
+</style>

--
Gitblit v1.9.1