vue2 实现卡片模板编辑

文章介绍了如何在Vue2应用中使用卡片模板来管理编辑复杂表单数据,通过卡片结构展示标题、内容和图片等信息,并提供了动态添加和删除卡片的功能,同时展示了具体的HTML和JavaScript代码实现。

🚀 个人简介:某大型测绘遥感企业资深Webgis开发工程师,软件设计师(中级)、优快云优质创作者
💟 作 者:柳晓黑胡椒❣️
📝 专 栏:vue实践
🌈 若有帮助,还请关注点赞收藏,不行的话我再努努力💪💪💪

vue2 实现卡片模板编辑

需求背景

对于复杂表单的数据新增,希望通过卡片模板进行管理编辑

解决效果

在这里插入图片描述

index.vue

html

<!-- ... -->
<div class="tips">
  <span><i></i>传说佳话</span>
  <i class="el-icon-plus" @click="addList('historyStorys')" v-if="!editState"></i>
</div>
<el-row :gutter="15" v-for="(item, index) in formData.historyStorys" :key="index + 'd'">
  <el-col :span="24">
    <el-form-item label="标题" prop="historyTitle">
      <el-input v-model="item.historyTitle" placeholder="请输入标题信息" clearable :style="{width: '100%'}"
                :disabled="editState">
      </el-input>
    </el-form-item>
  </el-col>
  <el-col :span="24">
    <el-form-item label="内容" prop="historyContent">
      <el-input v-model="item.historyContent" type="textarea" placeholder="请输入内容信息"
                :autosize="{minRows: 2, maxRows: 4}" :style="{width: '100%'}" :disabled="editState"
      ></el-input>
    </el-form-item>
  </el-col>
  <el-col :span="24">
    <el-form-item label="图片" prop="coverImg">
      <image-upload
        ref="imagesUpload"
        :limit="4"
        :fileSize="10"
        v-model="item.coverImg"
        :disabled="editState"
      ></image-upload>
    </el-form-item>
  </el-col>
  <el-col :span="24" :push="22">
    <el-button
      type="danger"
      style="margin-bottom: 10px"
      @click="delHistory(item,'historyStorys')"
      v-if="!editState"
    >删除
    </el-button>
  </el-col>
</el-row>
<!-- ... -->

javascript

data() {
 return {
    formData: {
      historyStorys: [
        {
          historyTitle: "",
          historyContent: "",
          coverImg: ""
        }
      ]
    },
  };
},
methods: {
	addList(type) { // 增加表单
	  this.formData[type].push({
	    historyTitle: "",
	    historyContent: "",
	    coverImg: ""
	  });
	},
	delHistory(item, type) {
	  const self = this;
	  this.$modal.confirm('是否确认删除标题为"' + item.historyTitle + '"的数据项?').then(function () {
	    let index = self.formData[type].indexOf(item);
	    if (index !== -1) {
	      self.formData[type].splice(index, 1);
	    }
	    if (!item.historyId) return
	    return delHistory(item.historyId)
	  }).then(() => {
	    this.$modal.msgSuccess('删除成功')
	  })
	},
}

视频效果

vue2实现卡片数据模板编辑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柳晓黑胡椒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值