From e1f70a62b31f326a6627d7975b17dd8304af7d90 Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期五, 06 十月 2023 16:23:24 +0800
Subject: [PATCH] #

---
 components/z-input/z-input.vue |   64 +++++++++++++++++++++-----------
 1 files changed, 42 insertions(+), 22 deletions(-)

diff --git a/components/z-input/z-input.vue b/components/z-input/z-input.vue
index ab8a105..d87d95a 100644
--- a/components/z-input/z-input.vue
+++ b/components/z-input/z-input.vue
@@ -3,11 +3,13 @@
 		<view class="main">
 			<view class="inner1">{{desc}}</view>
 			<view class="put inner2">
-				<input class="p-input" type="text" :placeholder="placeholder" @input="input" v-model="val">
-				<uni-icons class="p-icon" type="closeempty" size="16" color="#707070" v-show="val.length" @click="clear"></uni-icons>
+				<input class="p-input" type="text" :placeholder="placeholder" v-model="data" :focus="focusData">
+				<uni-icons class="p-icon" type="closeempty" size="16" color="#707070" 
+					v-show="data.length" @click="clear">
+				</uni-icons>
 			</view>
 			<view class="inner3" v-show="btn">
-				<button class="m-btn" size="mini">{{btnName}}</button>
+				<button class="m-btn" size="mini" @click="clickBtn">{{btnName}}</button>
 			</view>
 		</view>
 	</view>
@@ -16,6 +18,12 @@
 <script>
 	export default {
 		name:"z-input",
+		data() {
+			return {
+				data:'',
+				focusData: false
+			};
+		},
 		props: {
 			desc: {
 				type: String,
@@ -34,39 +42,51 @@
 				default: '璇疯緭鍏�'
 			},
 			value: {
-				type: String,
+				type: [String,Number],
 				default: ''
 			},
 			lenCheck: {
 				type: [Number],
 				default: null
 			},
+			focus: {
+				type: Boolean,
+				default: false
+			}
 		},
 		watch: {
-			value(val) {
-				console.log(1);
-				this.val = val
+			data(val) {
+				if (!this.lenCheck) {
+					this.$emit('input',val)
+					return
+				}
+				if (val.length != this.lenCheck) {
+					setTimeout(()=>{
+						this.data = ''
+						this.$emit('input','')
+					},10)
+				} else {
+					this.$emit('input',val)
+				}
 			},
+			focus(f) {
+				console.log(f);
+				this.focusData = !f
+				setTimeout(()=>{
+					this.focusData = f
+				},10)
+			}
 		},
 		created() {
-			this.val = this.value
-		},
-		data() {
-			return {
-				val:'',
-			};
+			this.data = this.value
+			this.focusData = this.focus
 		},
 		methods: {
-			input() {
-				console.log(3);
-				if(this.val.length != this.lenCheck) {
-					this.val = ''
-				}
-				this.$emit('input',this.val);
-			},
 			clear() {
-				this.val = ''
-				this.input()
+				this.data = ''
+			},
+			clickBtn() {
+				this.$emit('clickBtn');
 			}
 		}
 	}

--
Gitblit v1.9.1