6.5【微信小程序全栈开发课程】记录页面(五)--隐藏显示文本框

1、添加data变量

编辑RecordList.vue文件的data函数,添加三个变量:ellipsis、note、src

其中ellipsis用来控制添加或者编辑文本框显示、note是添加或者编辑文本框中的文本(note默认为记录数据里面的备注)、src是编辑按钮图片链接

data () {
  return {
    create_time:formatTime(new Date(this.record.create_time)),
    ellipsis: false,
    note:this.record.note,
    src:"/static/images/bianji.png"
  }
},
2、添加方法

在标签中创建methods函数,添加changeEllipsis、cancel方法

changeEllipsis方法用来修改变量ellipsis,从而控制文本框是否显示

cancel用来修改ellipsis,同时将note重置为修改前的状态

//参考数据,无需粘贴
//data () {
  //...
//},


//需要添加的部分,不要忘记在以上一行添加逗号隔开
methods:{
  // ellipsis为true时,显示文本框;为false隐藏文本框
  changeEllipsis () {
    this.ellipsis = !this.ellipsis
  },
  // 点击取消按钮时,要改变ellipsis,同时将note重置为修改前的状态
  cancel () {
    this.ellipsis = !this.ellipsis
    this.note = this.record.note
  },
}
3、添加页面代码

编辑RecordList.vue文件的template部分

<template>
  <div class="book-card">
    <div class="table" width="98%">
      <div class="tr">
        <!-- 时间 -->
        <div class="date">{{create_time}}</div>
        <!-- 分数 -->
        <div class="busi">
          <!-- 为了页面样式比较整齐,如果当前分数>0,在前面加一个+号; 当前分数=0在前面加一个空格-->
          <label v-if="record.add > 0">+{{record.add}}</label>
          <label v-else-if="record.add == 0">&nbsp;0</label>
          <label v-else>{{record.add}}</label>
        </div>
        <!-- 最后得分 -->
        <div class="mark">
          <!-- 如果当前分数大于0,在分数的前面加一个空格,为了页面样式比较整齐 -->
          <label v-if="record.mark >= 0">&nbsp;{{record.mark}}</label>
          <label v-else>{{record.mark}}</label>
        </div>
        <!-- 备注 -->
        <!-- changeEllipsis方法用来控制ellipsis变量为false或者为true -->
        <div class="net" @click='changeEllipsis'>
          <label v-if="note">{{note}}</label>
          <label v-else class="no-note">点击添加</label>
        </div>
        <!-- 编辑或者取消按钮 -->
        <!-- 当点击添加或者编辑按钮,显示文本框,按钮变成取消按钮 -->
        <!-- 点击取消按钮,触发cancel方法,隐藏文本框,按钮重新变成添加或者编辑按钮 -->
        <label v-if="ellipsis">
          <div class="image" @click='cancel'><image class='img' src='/static/images/quxiao.png'></image></div>
        </label>
        <label v-else>
          <!-- note指的记录备注,默认是record.note。如果重新编辑需要根据编辑的文本实时显示,所以将note做成了变量,src变量用到了三元函数。当文本框中有文字,显示编辑按钮;当文本框中没有文字,不显示按钮 -->
          <div class="image" @click='changeEllipsis'><image class='img' :src="note? src : ''"></image></div>
        </label>
      </div>
    </div>
    <!-- 点击添加或者编辑按钮显示的文本框 -->
    <div class="hide" v-if="ellipsis">
      <button class="btn">
        <!-- 当record记录有备注字段不为空,按钮显示为「修改」;当备注字段为空,按钮显示为「添加」 -->
        <label v-if="record.note">修改</label>
        <label v-else>添加</label>
      </button>
      <!-- input文本框绑定了note变量,在编辑文本框时,显示的备注文字,会根据文本框中编辑的文字变化 -->
      <input v-model='note'
            class="input"
            maxlength='10'
            placeholder="最多输入10个字">
    </div>
  </div>
</template>
4、测试效果

作者:猫宁一
全栈程序媛₍ᐢ •⌄• ᐢ₎一枚~ 热爱学习!热爱编程!
可关注【猫宁一】公众号领取我所有全栈项目代码哦~

点击查看课程目录:微信小程序全栈开发课程目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵宁一

点赞是最好的赞赏~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值