vue2 实现卡片模板编辑

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

🚀 个人简介:某大型测绘遥感企业资深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实现卡片数据模板编辑

### 基于 Vue2 的商品卡片展示组件设计 在 Vue2 中构建一个商品卡片展示组件可以通过多种方式实现,通常涉及模板渲染、样式控制以及数据绑定等功能。以下是关于如何创建此类组件的一些核心概念和技术细节。 #### 数据驱动的卡片结构 为了使商品卡片具备灵活性和可配置性,可以定义一组基础属性用于初始化卡片的状态,例如 `id`、`title`、`price` 和图片路径等字段。这些属性可通过父级组件传递给子组件[^1]: ```html <template> <div class="card"> <img :src="imageUrl" alt="Product Image" /> <h3>{{ title }}</h3> <p>Price: {{ price }} USD</p> <button @click="$emit('addToCart', id)">Add to Cart</button> </div> </template> <script> export default { props: { id: { type: Number, required: true }, imageUrl: { type: String, required: true }, title: { type: String, required: true }, price: { type: Number, required: true } } }; </script> <style scoped> .card { width: 200px; border: 1px solid #ccc; padding: 10px; margin: 10px; } </style> ``` 以上代码片段展示了如何利用 Vue 的 `props` 来接收外部传入的数据,并将其应用到组件内部。 #### 动态交互与事件处理 如果需要支持更复杂的操作(如点击按钮触发购物车逻辑),可以在组件中监听自定义事件并通知父组件执行相应动作。这一步骤已在上例中的 `$emit` 方法体现出来。 对于更加高级的功能,比如拖拽调整位置或者尺寸变化,则可能需要用到第三方库或原生 DOM API 结合 Vue 生命周期钩子完成。 #### 表格形式的商品列表管理 当面对大量商品时,采用表格布局可能是更好的选择之一。此时可以借助 Element UI 这样的框架简化开发流程。每一行代表一件商品,在回调函数里能够获取当前记录的信息及其索引号以便进一步加工使用[^2]: ```javascript methods: { handleEdit(index, row) { console.log(`Editing item at index ${index}:`, row); }, handleDelete(index, row) { this.$confirm('Are you sure?', 'Warning').then(() => { // Remove the product from your dataset here. }); } }, ``` 这里演示了一个简单的编辑删除功能样例,实际项目可根据业务场景扩展更多选项卡导航栏切换视图等内容。 另外值得注意的是,虽然本文提到的例子主要围绕静态呈现展开讨论,但在某些特殊场合下也可能追求更为生动的效果——就像之前介绍过的动态圣诞贺卡那样充满节日气氛的设计风格同样适用于电商促销活动期间吸引顾客眼球的好办法哦!当然具体实现起来会稍微复杂一点涉及到动画帧计算等问题不过只要掌握了基本原理相信各位都能顺利完成任务[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

柳晓黑胡椒

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

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

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

打赏作者

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

抵扣说明:

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

余额充值