• vue点击编辑按钮,内容变成input可以修改,也可以删除


    vue点击编辑按钮,内容变成input可以修改,也可以删除

     

    一、效果

    图1

    图2,点击报错之后,又变成图1的效果

    二、使用到了element UI中的以下组件:

    <el-button>

    <el-input>

    三、使用的关键点是vue中的v-if指令

    四、关键代码如下

    HTML部分

    复制代码
     1       <div class="content-wrapper">
     2         <div>
     3           <el-button type="primary" icon="el-icon-plus" @click.stop="handleShowDialog(0)">添加街道</el-button>
     4           <el-button type="primary" icon="el-icon-edit" @click.stop="handleEditStreet">编辑</el-button>
     5           <el-button type="primary" icon="el-icon-setting" @click.stop="handleSaveStreet">保存</el-button>
     6         </div>
     7         <div class="street-wrapper">
     8           <template v-for="(item, index) in streetsData">
     9             <el-button v-if="!isEditStreet" :type="activeButton === index ? 'primary' : 'info'" :key="index"
    10               @click.stop="handleButtonClick(index)">{{item.name}}</el-button>
    11             <el-input v-else-if="isEditStreet" :key="index" v-model="item.name" style="300px;margin-right:5px;margin-bottom:5px;">
    12               <i slot="append" class="remove el-icon-remove"></i>
    13             </el-input>
    14           </template>
    15         </div>
    16       </div>
    复制代码

    JS部分

    复制代码
     1 <script>
     2 export default {
     3   name: 'official',
     4   data () {
     5     return {
     6       activeButton: 0,
     7       dialogTitle: '添加街道', // 控制弹出框title的变量
     8       dialogVisible: false, // 弹出框显示隐藏的控制变量
     9       isAddStreet: true, // true表示是添加街道数据,false表示添加的是社区工作站的数据
    10       streetNameOrCommunityName: '', // 添加的时候用于保存街道的名称获取社区工作站的名称
    11       isEditStreet: false, // 编辑街道
    12       isEditCommunity: false, // 编辑社区
    13       streetsData: [
    14         {id: 1, name: '观湖街道'},
    15         {id: 1, name: '民治街道'},
    16         {id: 3, name: '观澜街道'},
    17         {id: 4, name: '龙华街道'},
    18         {id: 5, name: '大浪街道'},
    19         {id: 6, name: '福城街道'}
    20       ],
    21       communityData: [
    22       ]
    23     }
    24   },
    25   methods: {
    26     handleButtonClick (index) {
    27       this.activeButton = index
    28     },
    29     /**
    30      * flag:0表示添加街道,1表示添加社区
    31      */
    32     handleShowDialog (flag) {
    33       this.isAddStreet = !flag
    34       this.dialogTitle = flag ? '添加社区工作站' : '添加街道'
    35       this.$nextTick(() => {
    36         this.dialogVisible = true
    37       })
    38     },
    39     addStreetOrCommunity () {
    40       // 校验输入的内容不能为空
    41       if (!this.streetNameOrCommunityName.length) {
    42         this.$message.error('填写的名称不能为空或者空字符串')
    43         return
    44       }
    45       // 1.校验一下当前添加的街道名称是否已经存在??街道名称是唯一的
    46       // 2.添加成功之后,关闭弹出框,并且要重新请求数据
    47       if (this.isAddStreet) {
    48         // 调用添加街道的接口
    49         this.streetsData.push({id: 10, name: this.streetNameOrCommunityName})
    50       } else {
    51         // 调用社区工作站的接口
    52         this.communityData.push({id: 10, name: this.streetNameOrCommunityName})
    53       }
    54       // 清空streetNameOrCommunityName的数据,避免下次添加的时候显示上次的数据
    55       this.streetNameOrCommunityName = ''
    56       this.dialogVisible = false
    57     },
    58     handleBeforeClose (done) {
    59       this.dialogVisible = false
    60       done()
    61     },
    62     handleEditCommunity () {
    63       this.isEditCommunity = true
    64     },
    65     handleSaveCommunity () {
    66       this.isEditCommunity = false
    67     },
    68     handleEditStreet () {
    69       this.isEditStreet = true
    70     },
    71     handleSaveStreet () {
    72       this.isEditStreet = false
    73     },
    74     enterSystem () {
    75       this.$router.push('/dashboard')
    76     }
    77   }
    78 }
    79 </script>
    复制代码
  • 相关阅读:
    ubuntu set/unset proxy
    Caffe Ubuntu14.04 64位 的最快安装 (cuda7.5 + cudnn7.0 2016最新)
    OpenCV3.0.0+win10 64位+vs2015环境的下载,安装,配置
    Hadoop学习第一天
    PDF在xp或2003下正常在win7下乱码的问题
    android入门到熟练(五)---广播
    android入门到熟练(三)----UI界面
    android入门到熟练(二)----活动
    android入门到熟练(一)
    jQuery慢慢啃之回调(十三)
  • 原文地址:https://www.cnblogs.com/onesea/p/12981150.html
Copyright © 2020-2023  润新知