<template>
	<view class="cell" :class="[oneline?'oneline':'manylines', boder?'boder':'', hboder?'hboder':'']" @click.stop="click">
		<view class="cell-one">
			{{title}}
		</view>
		<view class="cell-two" :class="[noPaddingBottom?'nobottom':'']">
			<slot>
				<template v-if="cellType=='input'">
					<input class="input" style="flex: 1;height: 100%;" placeholder-style="color: #CCCCCC;font-size: 32rpx" :maxlength="maxlength" v-model="myValue" @input="input" :disabled="cellType=='input'&&!disabled?false:'disabled'" :type="inputType" :placeholder="placeholder">
					<text v-if="append" style="margin-left: 10rpx;height: 100%;display: inline-block;">{{append}}</text>
				</template>
				<template v-if="cellType=='textarea'">
						<textarea placeholder-style="color: #CCCCCC;font-size: 30rpx" @input="input" style="width: 100%;height: 140rpx;" v-model="myValue" :disabled="cellType=='textarea'&&!disabled?false:'disabled'" 
						:placeholder="placeholder" :maxlength="maxlength"/>
						<view v-if="textearaNum&&maxlength!=-1" class="textarea-num">
							{{valueStr.length}}/{{maxlength}}
						</view>
				</template>
			</slot>
			<view v-if="arrow">
				<u-icon name="arrow-right" color="#CCCCCC" size="28"></u-icon>
			</view>
		</view>
		<view class="cell-three" v-if="oneline&&$slots.three">
			<slot name="three"></slot>
		</view>
	</view>
</template>

<script>
	export default {
		computed:{
			valueStr(){
				return this.value + ''
			}
		},
		props: {
			append: {
				type: String,
				default: ""
			},
			value: {
				type: String | Number,
				default: ""
			},
			noPaddingBottom: {
				type: Boolean,
				default: false
			},
			title: {
				type: String,
				default: ""
			},
			disabled:{
				type: Boolean,
				default: false
			},
			cellType:{
				type: String,
				default: "input"
			},
			maxlength:{
				type: Number,
				default: -1
			},
			textearaNum: {
				type: Boolean,
				default: true
			},
			inputType: {
				type: String,
				default: "text"
			},
			boder: {
				type: Boolean,
				default: true
			},
			hboder: {
				type: Boolean,
				default: false
			},
			oneline: {
				type: Boolean,
				default: false
			},
			arrow:{
				type: Boolean,
				default: false
			},
			placeholder: {
				type: String,
				default: ""
			}
		},
		data() {
			return {
				myValue: ""
			}
		},
		watch: {
			value(newValue, oldValue) {
				this.myValue = newValue
			}
		},
		created() {
			this.myValue = this.value
		},
		methods: {
			input(e){
				// 1. 限制位数
				// 2. 只能输入数字
				// 3. 可以输入负数
				console.log(e);
				let myValue = this.myValue + ''
				console.log("before,"+myValue);
				// if(myValue.indexOf('.')!=myValue.lastIndexOf(".")){
				// 	let a = myValue.split("")
				// 	a.splice(myValue.lastIndexOf("."),1)
				// 	myValue = a.join('')
				// }
				// if(myValue.indexOf('.')!=myValue.lastIndexOf(".")){
				// 	let a = myValue.split("")
				// 	a.splice(myValue.lastIndexOf("."),1)
				// 	myValue = a.join('')
				// }
				// if(myValue.indexOf('.') == -1 && myValue){
				// 	// 去除输入的其他字符
				// 	myValue = myValue.replace(/[^(0-9 | \-)]/g,'')
				// } else if (myValue.indexOf(".") == 0) {
				// 	myValue = myValue.replace(/[^$#$]/g, "0.");
				// 	myValue = myValue.replace(/\.{2,}/g, ".");
				// } else if (myValue.indexOf(".") > 0){
				// 	myValue = myValue.replace(/[^(0-9 | \. | \-)]/g,'')
				// }
				// if (myValue.lastIndexOf("-") > 0) {
				// 	myValue = myValue.replace(/\-/g,'')
				// }
				if(isNaN(+myValue)){
					
				}else this.myValue = myValue
				// 替换非数字输入
				// if(myValue.indexOf('.') != -1){
				// 	let value = myValue.slice(0,1)
				// 	myValue = +(''+value).replace(/[^0-9]/g,'')+'.'
				// }else{
				// 	myValue = +(''+myValue).replace(/[^0-9]/g,'')
				// }
				// this.myValue = myValue
				// console.log("after,"+myValue);
				// if(isNaN(+this.myValue)){
				// 	this.myValue = 0	
				// }
				// if(this.myValue> 5){
				// 	this.myValue = 5
				// }
				console.log("after,"+myValue);
				this.$emit("input", this.myValue)
			},
			click(e) {
				this.$emit("click", e)
			}
		},
	}
</script>

<style lang="scss" scoped>
	.cell-two .input{
		outline: 0;
		border: 0;
		background: transparent;
		text-align: inherit;
	}
	.cell{
		padding-right: 32rpx;
		margin-left: 32rpx;
		&.boder{
			border-bottom: 1px solid #EEEEEE;
		}
		&.hboder{
			padding: 0 32rpx;
			margin-left: 0;
			border-bottom: 1px solid #EEEEEE;
		}
		.cell-one{
			font-size: 32rpx;
			font-weight: 400;
			color: #666666;
		}
		.cell-two{
			font-size: 32rpx;
		}
		.cell-three{
			font-size: 32rpx;
		}
		&.oneline{
			display: flex;
			align-items: center;
			height: 104rpx;
			line-height: 104rpx;
			.cell-one{
				padding-right: 20rpx;
			}
			.cell-two{
				flex: 1;
				width: 0;
				height: 100%;
				text-align: right;
				display: flex;
				align-items: center;
			}
			.cell-three{
				display: flex;
				height: 100%;
				align-items: center;
				padding-left: 12rpx;
				&.no{
					padding-left: 0;
				}
			}
		}
		&.manylines{
			.cell-one{
				line-height: 92rpx;
			}
			.cell-two{
				padding-bottom: 32rpx;
			}
			.cell-two.nobottom{
				padding-bottom: 0;
			}
		}
		.textarea-num{
			font-size: 18rpx;
			padding-top: 6rpx;
			font-weight: 400;
			text-align: right;
			line-height: 1;
			color: #999999;
		}
	}
</style>