vue iview实现动态新增和删除

本文实例为大家分享了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("保存失败!");
  }
  });
 },

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

(0)

相关推荐

  • vue+iview 实现可编辑表格的示例代码

    先简单说明一下,这个Demo引入的vue,iview的方式是标签引入的,没有用到webpack之类的构建工具... 毕竟公司还在用angularjs+jq. 这也是我第一次写文章,大家看看思路就行了,要是有大佬指点指点就更好了 话不多说,先来个效果图 我们再看下极为简单的目录结构 IViewEditTable ## vue+iview 实现的可编辑表格 └── index.html ## 首页 └── js └── editTable.js ## 首页JS └── ivew ## iview相关

  • vue iview实现动态新增和删除

    本文实例为大家分享了vue iview动态新增和删除的具体代码,供大家参考,具体内容如下 <Form ref="capsuleAttr" :model="capsuleAttr" :label-width="100" style="width: 80%"> <ul> <li v-for="(item, index) in capsuleAttr.attrList" v-if=&

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

    本文实例为大家分享了vue-iview动态新增和删除的具体代码,供大家参考,具体内容如下 参考链接:vue iview动态新增和删除 我根据上面的博客进行了test和小修改,效果如下: 源码如下: html代码 <template> <Form ref="capsuleAttr" :model="capsuleAttr" :label-width="100" style="width: 80%"> &l

  • vue iview实现动态路由和权限验证功能

    github上关于vue动态添加路由的例子很多,本项目参考了部分项目后,在iview框架基础上完成了动态路由的动态添加和菜单刷新.为了帮助其他需要的朋友,现分享出实现逻辑,欢迎一起交流学习. Github地址 iview-dynamicRouter 实现目标 客户端从服务端拿到路由和权限数据后,刷新项目的路由和菜单列表,并进行权限控制. 项目基础 基础框架: iview组件库官方模板项目 iview-admin 的template分支项目,此项目为 iview-admin 的基础框架代码.项目地

  • 在Vue组件上动态添加和删除属性方法

    如下所示: 在组件上添加属性 this.$set(this.data,"obj",value'); 删除属性this.$delete(this.data,"obj",value'); 以上这篇在Vue组件上动态添加和删除属性方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: Vue.js动态添加.删除选题的实例代码 详解Vue 动态添加模板的几种方法

  • Vue 实现列表动态添加和删除的两种方法小结

    下面将介绍两种方式实现动态添加和删除列表 1.不使用组件 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Vue 测试实例 - vue实现列表增加和删除</title> <script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script&g

  • Vue之Vue.set动态新增对象属性方法

    当我们给一个比如props中,或者data中被观测的对象添加一个新的属性的时候,不能直接添加,必须使用Vue.set方法 Vue.set方法用来新增对象的属性.如果要增加属性的对象是响应式的,那该方法可以确保属性被创建后也是响应式的,同时触发视图更新 这里本来food对象是没有count属性的,我们要给其添加count属性就必须使用Vue.set方法,而不能写成'this.food.count = 1' 以上这篇Vue之Vue.set动态新增对象属性方法就是小编分享给大家的全部内容了,希望能给大

  • Vue实现动态创建和删除数据的方法

    视图: 代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> //导入vue.js <script type="text/javascript" src="./vue.js"></script> //非常简单了设置了一下css样式 <style typ

  • vue 实现在同一界面实现组件的动态添加和删除功能

    1.插入静态组件,将自己想要循环的组件显示在页面上,利用v-for进行循环操作,操作包括增删. //所有要显示的子组件,写在一个li标签,有 v-for循环.   <li v-for="(item, index) in questionList" v-bind:key="index">           <el-row :gutter="20">             <el-col offset="2

  • vue+iview框架实现左侧动态菜单功能的示例代码

    最近在使用vue-cli3配合iview框架搭建新的项目中用到了iview中的menu菜单,按照官网写法固定不太好,因为一般项目都是从后端动态获取菜单列表,所以我们需要将官网代码稍作修改,代码如下: 注意事项: [1]菜单高亮部分动态绑定路由跳转的页面 Menu组件中有一个active-name反映的是当前高亮区域,因此可以动态的绑定active-name来实现高亮显示.前提是需要将MenuItem绑定的name也设置成页面路由的name [2]动态获取菜单数据,需要更新菜单 this.$nex

  • vue iView 上传组件之手动上传功能

    基于 Vue 的 UI 组件库现在已经有很多了,尤其是移动端的.现在又多了一个 iView . iView 主要服务于 PC 界面的中后台业务,是一套高质量的开源 UI 组件库,先上地址: https://github.com/iview/iview 官网是: https://www.iviewui.com/ 特性 使用单文件的 Vue 组件化开发模式 基于 npm + webpack + babel 开发,支持 ES2015 高质量.功能丰富 友好的 API ,自由灵活地使用空间 详细.友好的

随机推荐