vue iview实现动态新增和删除


Posted in Javascript onJune 17, 2020

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

<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:50%;"
   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:1%;">
   <Button @click="handleRemove(item,index)" type="error" icon="md-close">删除</Button>
   </Col>
  </FormItem>
  <FormItem
   style="width:20%;"
   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:20%;"
   label="流量:"
   :prop="'attrList.' + index + '.Volume'"
   :rules="{required: true, message: '流量不能为空', trigger: 'blur'}"
  >
   <Input v-model.trim="item.Volume" placeholder="流量" />
  </FormItem>
  <FormItem label="推荐流量:" style="width:20%;">
   <Input v-model.trim="item.RcommendVolume" placeholder="流量" />
  </FormItem>
  <FormItem label="吹气时间:" style="width:20%;">
   <Input v-model.trim="item.Blow" placeholder="吹气时间" />
  </FormItem>
  <FormItem label="浸泡时间:" style="width:20%;">
   <Input v-model.trim="item.Soak" placeholder="浸泡时间" />
  </FormItem>
 
  <FormItem
   label="作业过程描述:"
   style="width:40%;"
   :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:20%;" 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>

data:

capsuleAttr: {
 //胶囊属性
 index: 1,
 attrList: [
  {
  AttrName: "",
  Temperature: "",
  Volume: "",
  CapsuleId: "", //属性ID
  RcommendVolume: "", //推荐流量
  WorkDesc: "",
  Blow: "", //吹气时间
  Soak: "", //浸泡时间
  WorkSort: "",
  index: 1,
  status: 1
  }
 ]
 },

methods:

// 添加属性
 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("保存失败!");
 }
 });
 },

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

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

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

Javascript 相关文章推荐
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
Mar 12 Javascript
FusionCharts图表显示双Y轴双(多)曲线
Nov 22 Javascript
jQuery(非HTML5)可编辑表格实现代码
Dec 11 Javascript
javascript判断office版本示例
Apr 11 Javascript
js四舍五入数学函数round使用实例
May 09 Javascript
jquery图片倾斜层叠切换特效代码分享
Aug 27 Javascript
angularjs实现的前端分页控件示例
Feb 10 Javascript
jquery 手势密码插件
Mar 17 Javascript
Express URL跳转(重定向)的实现方法
Apr 07 Javascript
Vuex和前端缓存的整合策略详解
May 09 Javascript
Node.js Windows Binary二进制文件安装方法
May 16 Javascript
Vue强制组件重新渲染的方法讨论
Feb 03 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
JS 5种遍历对象的方式
Jun 16 #Javascript
You might like
UCenter 批量添加用户的php代码
2012/07/17 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
2015/08/31 PHP
PHP加MySQL消息队列深入理解
2021/02/27 PHP
JSON.parse 解析字符串出错的解决方法
2010/07/08 Javascript
jquery实现表单验证简单实例演示
2015/11/23 Javascript
微信小程序购物商城系统开发系列-工具篇的介绍
2016/11/21 Javascript
深入研究jQuery图片懒加载 lazyload.js使用方法
2017/08/16 jQuery
jQuery事件对象的属性和方法详解
2017/09/09 jQuery
vue实现键盘输入支付密码功能
2018/08/18 Javascript
JavaScript时间与时间戳的转换操作实例分析
2018/12/07 Javascript
npx create-react-app xxx创建项目报错的解决办法
2020/02/17 Javascript
Vue父子之间值传递的实例教程
2020/07/02 Javascript
JS字符串和数组如何实现相互转化
2020/07/02 Javascript
前端vue如何使用高德地图
2020/11/05 Javascript
[05:14]辉夜杯主赛事第二日 RECAP精彩回顾
2015/12/27 DOTA
[05:49]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS 选手采访
2021/03/11 DOTA
利用Python实现颜色色值转换的小工具
2016/10/27 Python
python对html过滤处理的方法
2018/10/21 Python
Python CVXOPT模块安装及使用解析
2019/08/01 Python
CentOS7下安装python3.6.8的教程详解
2020/01/03 Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
2020/02/23 Python
解决django中form表单设置action后无法回到原页面的问题
2020/03/13 Python
html5画布旋转效果示例
2014/01/27 HTML / CSS
英国领先的电动可调床制造商:Laybrook
2019/12/26 全球购物
规范化管理年活动总结
2014/08/29 职场文书
基层党员干部四风问题整改方向和措施
2014/09/25 职场文书
老公给老婆的检讨书(精华篇)
2014/10/18 职场文书
财务整改报告范文
2014/11/05 职场文书
主持人开幕词
2015/01/29 职场文书
农业项目合作意向书
2015/05/08 职场文书
反腐倡廉观后感
2015/06/08 职场文书
海底两万里读书笔记
2015/06/26 职场文书
《童年》读后感(三篇)
2019/08/27 职场文书
Python初识逻辑与if语句及用法大全
2021/08/07 Python
Redis+AOP+自定义注解实现限流
2022/06/28 Redis
Python如何将list中的string转换为int
2022/07/15 Ruby