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

本文实例为大家分享了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>

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

(0)

相关推荐

  • 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之Vue.set动态新增对象属性方法

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

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

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

  • 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.js动态添加、删除选题的实例代码

    大家先看看页面效果吧,当当当当``````````````````````` 图中第二个选题是小颖点击了"新增选题"按钮,然后出来的,当你点击了"删除选项"或"删除选题"按钮,就会删除相应的选项和选题. html代码 <template> <div class="main-container"> <div class="form-horizontal"> <temp

  • hadoop动态增加和删除节点方法介绍

    上一篇文章中我们介绍了Hadoop编程基于MR程序实现倒排索引示例的有关内容,这里我们看看如何在Hadoop中动态地增加和删除节点(DataNode). 假设集群操作系统均为:CentOS 6.7 x64 Hadoop版本为:2.6.3 一.动态增加DataNode 1.准备新的DataNode节点机器,配置SSH互信,可以直接复制已有DataNode中.ssh目录中的authorized_keys和id_rsa 2.复制Hadoop运行目录.hdfs目录及tmp目录至新的DataNode 3.

  • vue+element-ui动态生成多级表头的方法

    vue+element html配置: <div id="table">{{tableData}} <el-table :data="tabledata01" :span-method="tableSpanMethod" max-height="420"> <el-table-column v-for='item in tableConfig' :label="item.label&qu

  • Vue实现动态添加或者删除对象和对象数组的操作方法

    添加核心代码如下: this.data.push({ type: [{ value: '选项1', label: 'in' }, { value: '选项3', label: 'out' }], value:[{ value: '选项1', label: 'CSV' }, { value: '选项3', label: 'TSV' }], parameter:'', default:'', description:'', isDelete:false, }); 删除核心代码如下: /*遍历数组,然

  • vue中动态添加class类名的方法

    vue 动态添加class类名,灵活得让你发狂,下面示例几个 <template> <div> <h2>动态添加类名</h2> <!-- 第一种方式:对象的形式 --> <!-- 第一个参数 类名, 第二个参数:boolean值 --> <!-- 对象的形式: 用花括号包裹起来,类名用引号, --> <!-- 优点: 以对象的形式可以写多个,用逗号分开 --> <p :class="{'p1'

随机推荐