vue-iview动态新增和删除的方法


Posted in Javascript onJune 17, 2020

本文实例为大家分享了vue-iview动态新增和删除的具体代码,供大家参考,具体内容如下

参考链接:vue iview动态新增和删除

我根据上面的博客进行了test和小修改,效果如下:

源码如下:

html代码

<template>
 <Form ref="capsuleAttr" :model="capsuleAttr" :label-width="100" style="width: 80%">
  <ul>
  <li v-for="(item, index) in capsuleAttr.attrList" v-if="item.status" :key="index">
  <FormItem
   style="width:80%;"
   label="属性名称:"
   :prop="'attrList.' + index + '.AttrName'"
   :rules="{required: true, message: '属性名称不能为空', trigger: 'blur'}"
  >
   <Col span="7">
   <Input v-model.trim="item.AttrName" placeholder="属性名称" />
   </Col>
   <Col span="2" style="margin-left:20%;">
   <Button @click="handleRemove(item,index)" type="error" icon="md-close">删除</Button>
   </Col>
  </FormItem>
  <FormItem
   style="width:80%;"
   label="温度:"
   :prop="'attrList.' + index + '.Temperature'"
   :rules="{required: true, message: '温度不能为空', trigger: 'blur',type:'string', transform(val) {
  return String(val)}}"
  >
   <Input v-model.trim="item.Temperature" placeholder="温度" />
  </FormItem>
  <FormItem
   style="width:80%;"
   label="流量:"
   :prop="'attrList.' + index + '.Volume'"
   :rules="{required: true, message: '流量不能为空', trigger: 'blur'}"
  >
   <Input v-model.trim="item.Volume" placeholder="流量" />
  </FormItem>
  <FormItem label="推荐流量:" style="width:80%;">
   <Input v-model.trim="item.RcommendVolume" placeholder="流量" />
  </FormItem>
  <FormItem label="吹气时间:" style="width:80%;">
   <Input v-model.trim="item.Blow" placeholder="吹气时间" />
  </FormItem>
  <FormItem label="浸泡时间:" style="width:80%;">
   <Input v-model.trim="item.Soak" placeholder="浸泡时间" />
  </FormItem>

  <FormItem
   label="作业过程描述:"
   style="width:80%;"
   :prop="'attrList.' + index + '.WorkDesc'"
   :rules="{required: true, message: '作业过程描述不能为空', trigger: 'blur'}"
  >
   <Input
   v-model="item.WorkDesc"
   type="textarea"
   :autosize="{minRows: 5,maxRows: 10}"
   placeholder="输入作业过程描述..."
   />
  </FormItem>
  <FormItem style="width:80%;" label="作业顺序:">
   <!-- :rules="ruleWorkSort" -->
   <Input v-model.trim="item.WorkSort" placeholder="作业顺序" />
  </FormItem>
  <Divider dashed />
  </li>
  </ul>

  <FormItem>
  <Row>
  <Col span="8">
   <Button type="dashed" long @click="handleAttrAdd" icon="md-add">增加属性</Button>
  </Col>
  </Row>
  </FormItem>
  <FormItem>
  <Button type="primary" @click="handleAttrSubmit('capsuleAttr')">保存</Button>
  <Button @click="$router.go( -1)" style="margin-left: 8px">返回</Button>
  </FormItem>
  </Form>
</template>

JS代码

<script>
export default {
 data () {
 return {
 capsuleAttr: {
 // 胶囊属性
 index: 1,
 attrList: [
  {
  AttrName: '',
  Temperature: '',
  Volume: '',
  CapsuleId: '', // 属性ID
  RcommendVolume: '', // 推荐流量
  WorkDesc: '',
  Blow: '', // 吹气时间
  Soak: '', // 浸泡时间
  WorkSort: '',
  index: 1,
  status: 1
  }
 ]
 }
 }
 },
 method: {
 // 添加属性
 handleAttrAdd () {
 this.capsuleAttr.index++
 this.capsuleAttr.attrList.push({
 AttrName: '',
 Temperature: '',
 Volume: '',
 WorkDesc: '',
 WorkSort: '',
 RcommendVolume: '', // 推荐流量
 Blow: '', // 吹气时间
 Soak: '', // 浸泡时间
 index: this.capsuleAttr.index,
 status: 1
 })
 },
 handleRemove (item, index) {
 console.log(item.Id)
 if (item.Id) {
 this.$Modal.confirm({
  title: '删除本条记录',
  onOk: () => {
  ProductModule.getCapsuleAttributeDel(item.Id).then(res => {
  if (res.data.Success) {
  this.capsuleAttr.attrList[index].status = 0
  this.$Message.success('删除成功')
  }
  })
  },
  onCancel: () => {
  console.log('onCancel')
  }
 })
 return
 }
 this.capsuleAttr.attrList[index].status = 0
 },
 // 胶囊属性保存新增
 handleAttrSubmit (name) {
 this.$refs[name].validate(valid => {
 if (valid) {
  if (this.userId) {
  this.getCapsuleAttrEditAdd()
  } else {
  if (this.capsuleId) {
  this.getSaveAttrCreate()
  } else {
  this.$Message.error('请先保存胶囊数据')
  }
  }
 } else {
  this.$Message.error('保存失败!')
 }
 })
 }
 }

}
</script>

关于vue.js组件的教程,请大家点击专题vue.js组件学习教程进行学习。

更多vue学习教程请阅读专题《vue实战教程》

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.3
Mar 22 Javascript
JavaScript原生对象之Number对象的属性和方法详解
Mar 13 Javascript
最新最热最实用的15个jQuery插件汇总
Jul 05 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
Sep 17 Javascript
jQuery插件实现静态HTML验证码校验
Nov 06 Javascript
javascript图片滑动效果实现
Jan 28 Javascript
详解网站中图片日常使用以及优化手法
Jan 09 Javascript
微信小程序实战之上拉(分页加载)效果(2)
Apr 17 Javascript
node中的session的具体使用
Sep 14 Javascript
JavaScript实现多球运动效果
Sep 07 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
Nov 17 Javascript
JS高级程序设计之class继承重点详解
Jul 07 Javascript
vue iview实现动态新增和删除
Jun 17 #Javascript
vue如何搭建多页面多系统应用
Jun 17 #Javascript
vue2.0实现列表数据增加和删除
Jun 17 #Javascript
使用next.js开发网址缩短服务的方法
Jun 17 #Javascript
vue实现前端分页完整代码
Jun 17 #Javascript
JS实现网站楼层导航效果代码实例
Jun 16 #Javascript
利用webpack理解CommonJS和ES Modules的差异区别
Jun 16 #Javascript
You might like
一条久听不愿放下的DIY森海MX500,三言两语话神奇
2021/03/02 无线电
php chr() ord()中文截取乱码问题解决方法
2008/09/08 PHP
php表单提交问题的解决方法
2011/04/12 PHP
PHPTree――php快速生成无限级分类
2018/03/30 PHP
Laravel 自动生成验证的实例讲解:login / logout
2019/10/14 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
Js点击弹出下拉菜单效果实例
2013/08/12 Javascript
jquery实现从数组移除指定的值
2015/06/24 Javascript
jQuery插件Validate实现自定义表单验证
2016/01/18 Javascript
JS和jQuery使用submit方法无法提交表单的原因分析及解决办法
2016/05/17 Javascript
js获取指定字符前/后的字符串简单实例
2016/10/27 Javascript
浅谈JavaScript事件绑定的常用方法及其优缺点分析
2016/11/01 Javascript
jQuery中页面返回顶部的方法总结
2016/12/30 Javascript
纯js实现页面返回顶部的动画(超简单)
2017/08/10 Javascript
vue项目中使用axios上传图片等文件操作
2017/11/02 Javascript
vue 使用html2canvas将DOM转化为图片的方法
2018/09/11 Javascript
Vue中多个元素、组件的过渡及列表过渡的方法示例
2019/02/13 Javascript
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
2020/08/20 NodeJs
python批量提交沙箱问题实例
2014/10/08 Python
python遍历 truple list dictionary的几种方法总结
2016/09/11 Python
python笔记:mysql、redis操作方法
2017/06/28 Python
Python之lambda匿名函数及map和filter的用法
2019/03/05 Python
python中如何使用分步式进程计算详解
2019/03/22 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
澳大利亚床上用品、浴巾和家居用品购物网站:Bambury
2020/04/16 全球购物
旅游专业职业生涯规划范文
2014/01/13 职场文书
爸爸的花儿落了教学反思
2014/02/20 职场文书
《在家里》教后反思
2014/03/01 职场文书
挂牌仪式主持词
2014/03/20 职场文书
青年志愿者活动总结
2014/04/26 职场文书
法人任命书范本
2014/06/04 职场文书
小学思想品德教学反思
2016/02/24 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
SQL Server中交叉联接的用法详解
2021/04/22 SQL Server
Vue组件化(ref,props, mixin,.插件)详解
2022/05/15 Vue.js