>웹 프론트엔드 >JS 튜토리얼 >vue-iview를 동적으로 추가하고 삭제하는 방법 알아보기

vue-iview를 동적으로 추가하고 삭제하는 방법 알아보기

coldplay.xixi
coldplay.xixi앞으로
2020-08-08 16:27:291846검색

vue-iview를 동적으로 추가하고 삭제하는 방법 알아보기

이 글의 예시는 참고용으로 vue-iview의 동적 추가 및 삭제를 위한 특정 코드를 공유합니다.

참조 링크: vue iview 동적 추가 및 삭제

위 블로그를 팔로우했습니다. 테스트 및 사소한 수정 결과는 다음과 같습니다.

소스 코드는 다음과 같습니다.

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="&#39;attrList.&#39; + index + &#39;.AttrName&#39;"
   :rules="{required: true, message: &#39;属性名称不能为空&#39;, trigger: &#39;blur&#39;}"
  >
   <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="&#39;attrList.&#39; + index + &#39;.Temperature&#39;"
   :rules="{required: true, message: &#39;温度不能为空&#39;, trigger: &#39;blur&#39;,type:&#39;string&#39;, transform(val) {
  return String(val)}}"
  >
   <Input v-model.trim="item.Temperature" placeholder="温度" />
  </FormItem>
  <FormItem
   style="width:80%;"
   label="流量:"
   :prop="&#39;attrList.&#39; + index + &#39;.Volume&#39;"
   :rules="{required: true, message: &#39;流量不能为空&#39;, trigger: &#39;blur&#39;}"
  >
   <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="&#39;attrList.&#39; + index + &#39;.WorkDesc&#39;"
   :rules="{required: true, message: &#39;作业过程描述不能为空&#39;, trigger: &#39;blur&#39;}"
  >
   <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>
  <pider 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(&#39;capsuleAttr&#39;)">保存</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: &#39;&#39;,
  Temperature: &#39;&#39;,
  Volume: &#39;&#39;,
  CapsuleId: &#39;&#39;, // 属性ID
  RcommendVolume: &#39;&#39;, // 推荐流量
  WorkDesc: &#39;&#39;,
  Blow: &#39;&#39;, // 吹气时间
  Soak: &#39;&#39;, // 浸泡时间
  WorkSort: &#39;&#39;,
  index: 1,
  status: 1
  }
 ]
 }
 }
 },
 method: {
 // 添加属性
 handleAttrAdd () {
 this.capsuleAttr.index++
 this.capsuleAttr.attrList.push({
 AttrName: &#39;&#39;,
 Temperature: &#39;&#39;,
 Volume: &#39;&#39;,
 WorkDesc: &#39;&#39;,
 WorkSort: &#39;&#39;,
 RcommendVolume: &#39;&#39;, // 推荐流量
 Blow: &#39;&#39;, // 吹气时间
 Soak: &#39;&#39;, // 浸泡时间
 index: this.capsuleAttr.index,
 status: 1
 })
 },
 handleRemove (item, index) {
 console.log(item.Id)
 if (item.Id) {
 this.$Modal.confirm({
  title: &#39;删除本条记录&#39;,
  onOk: () => {
  ProductModule.getCapsuleAttributeDel(item.Id).then(res => {
  if (res.data.Success) {
  this.capsuleAttr.attrList[index].status = 0
  this.$Message.success(&#39;删除成功&#39;)
  }
  })
  },
  onCancel: () => {
  console.log(&#39;onCancel&#39;)
  }
 })
 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(&#39;请先保存胶囊数据&#39;)
  }
  }
 } else {
  this.$Message.error(&#39;保存失败!&#39;)
 }
 })
 }
 }

}
</script>

vue.js 구성 요소에 대한 자습서를 보려면 특수 vue.js 구성 요소 학습을 클릭하세요. 배울 수 있는 튜토리얼.

관련 학습 권장 사항: javascript 튜토리얼

위 내용은 vue-iview를 동적으로 추가하고 삭제하는 방법 알아보기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 jb51.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제