Немного болтовни перед началом
Front-end Xiaobai ~ В оцепенении я написала платёжку, пришла в Nuggets и представила свою первую работу~
<div class="goods-psd">
<p class="apply-title">
请输入支付密码
</p>
<p style="margin: 0.2rem">确认支付 <span>{{password}}</span> </p>
<div class="psd-container">
<input class="psd-input" type="password" readonly v-for="(value,index) in passwordGroup" :key="index" :value="value.value">
</div>
</div>
<div class="input-pan">
<div class="pan-num" v-for="(value,num) in number" :key="num" @click="inputPsd(value)">{{value}}</div>
</div>
</div>
- Понимаете ли вы логику или нет, всегда правильно сначала написать стиль~
Сортировка идей
1. Поле ввода использует цикл for для вывода 6 входов; 2. Следующие ключи используют цикл for, что удобно для последующего хранения записей; 3. Поместите введенный пароль в массив pasgroup; 4. Определите нижний индекс поля ввода и поместите содержимое массива pasgroup во входные данные в последовательности в соответствии с нижним индексом; 5. Запустите код~
код
data () {
return {
popupVisible1: true,
realInput: '',
password: '111',
passwordGroup: [],
number: ['1','2','3','4','5','6','7','8','9','取消','0','删除'],
pasgroup: [],
currentInputIndex:-1
}
}
Определяем элементы, которые нам нужны в данных
initPasswordGroup () {
this.passwordGroup=[];
for(var i=0;i<6;i++){
this.passwordGroup.push({
value:null
})
}
}
Зациклите ввод, присвойте его содержимому значение: null и отобразите 6 полей ввода в интерфейсе.
watch: {
currentInputIndex (val) {
if(val == 5){
console.log(this.pasgroup)
}else if(val <= -1){
this.currentInputIndex = -1
}
}
}
Следите за изменением нижнего индекса массива и печатайте массив, когда нижний индекс достигает 5
inputPsd (value) {
switch (value) {
case '取消':
this.currentInputIndex = -1
this.pasgroup = []
this.initPasswordGroup ()
break;
case '删除':
this.pasgroup.pop()
console.log(this.pasgroup)
// this.currentInputIndex 下标值,删除添加时改变
this.passwordGroup[this.currentInputIndex].value = null
this.currentInputIndex--
console.log(this.passwordGroup)
break;
default:
this.pasgroup.push(value)
this.currentInputIndex++
this.passwordGroup[this.currentInputIndex].value = value
}
},
Получить щелкнутый элемент, когда вы нажмете «Отмена», очистите содержимое в поле ввода и очистите массив; когда вы нажмете «Удалить», значение нижнего индекса будет уменьшено в свою очередь, а значение будет сброшено до нуля; При щелчке по другим числам значение нижнего индекса в свою очередь увеличивается, а содержимое массива pasgroup[] записывается в passwordGroup[] и отображается в поле ввода. Вот и все~ желаемый эффект достигнут~