vxe table 最简单的行内编辑

实例:
在这里插入图片描述

js请求

 editEvent ({ row, column }, event) {
		  		axios({
			    	method:"post",
			    	url:"/newProductOrder/modifyQuantity",
			    	params:{
			    		id:row.id,
			    		purchase_quantity:row.purchase_quantity
			    	}
				}).then((res)=>{
					if(res.status==200){
						if(res.data.state=="fail"){
							this.$message.error(res.data.msg);
						}else{
						}
					}else{
						this.$message.error('网络请求失败');
					}
				})
                },

前端代码

<vxe-grid ref="table" :data="datas" :border="true"
				@sort-change="sortChange" :sort-config={remote:true} stripe
				:edit-config="{trigger: 'click', mode: 'cell'}"
				@edit-closed="editEvent"
				size="mini" :height="tableHeight" style="width: 100%" resizable
				highlight-hover-row highlight-current-row>
				<vxe-table-column
				field="project_code" title="项目代码" show-overflow width="90"></vxe-table-column>
				<vxe-table-column
				field="product_code" title="产品件号" show-overflow width="90" fixed="left"></vxe-table-column>
				<vxe-table-column
				field="part_no" title="零件号" show-overflow width="90" fixed="left"></vxe-table-column>
				<vxe-table-column
				field="product_code" title="零件名称" show-overflow width="90" fixed="left"></vxe-table-column>
				<vxe-table-column
				field="version_no" title="版本号" show-overflow width="90" ></vxe-table-column>
				<vxe-table-column
				field="attribute" title="属性(共用/专用)" show-overflow width="140" ></vxe-table-column>
				<vxe-table-column
				field="orderRequireNum" title="订单需求数量" show-overflow width="90" ></vxe-table-column>
				<vxe-table-column
				field="inTransitOrder" title="在途订单" show-overflow width="90" ></vxe-table-column>
				<vxe-table-column
				field="onHandInventory" title="车间现有库存" show-overflow width="90" ></vxe-table-column>
				<vxe-table-column
				field="outPurchase" title="外购有库存" show-overflow width="90" ></vxe-table-column>
				<vxe-table-column
				field="gapNum" title="满足订单缺口数量" show-overflow width="90" ></vxe-table-column>
				<vxe-table-column
				field="ifHaveBom" title="无BOM提醒" show-overflow width="90" ></vxe-table-column>
				<vxe-table-column
				field="purchase_quantity" title="需求采购量" :edit-render="{}" show-overflow width="90" >
				<template #edit="{ row }">
             		 <vxe-input v-model="row.purchase_quantity" v-if="row.canReview"  type="text"></vxe-input>
           		 </template>
   				</vxe-table-column>
			 </vxe-grid>

小白重点:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

留下疑问:

			不使用表的@edit-closed触发 而使用 vxe-input的@input触发时,我每输入一次,事件触发2次 不知道为什么触发2次不是一次

vxe官方文档:vxe

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vxe-table是一个基于Vue.js的表格组件库,可以实现表格的展示、排序、筛选等功能。要实现可编辑的功能,需要在vxe-table中配置一些参数和方法。以下是实现可编辑的步骤: 1. 首先,在Vue组件中引入vxe-table,并按照文档的说明进行安装和配置。 2. 在表格中的每一列中,可以通过设置`edit-render`属性指定编辑单元格时使用的渲染器。可以使用内置的渲染器,如`input`、`textarea`等,也可以自定义渲染器。 3. 在data中定义表格的数据源,并为每一行数据添加一个`_rowId`属性,用于标识每一行数据的唯一ID。 4. 在methods中定义一个方法,用于编辑单元格时触发的事件,可以在该方法中获取到编辑的值和所在行的唯一ID。 5. 在表格组件中,通过设置`@cell-click`事件监听单元格的点击事件,并在事件处理函数中调用定义的编辑方法。 下面是一个简单的示例代码: ```vue <template> <div> <vxe-table :data="tableData" :edit-config="{ trigger: 'click', mode: 'cell' }" @cell-click="handleCellClick" > <vxe-table-column type="index" title="序号"></vxe-table-column> <vxe-table-column field="name" title="姓名" :edit-render="{ name: 'input' }"></vxe-table-column> <vxe-table-column field="age" title="年龄" :edit-render="{ name: 'input' }"></vxe-table-column> </vxe-table> </div> </template> <script> import 'xe-utils' import VXETable from 'vxe-table' import 'vxe-table/lib/style.css' export default { data() { return { tableData: [ { _rowId: 1, name: '张三', age: 18 }, { _rowId: 2, name: '李四', age: 20 }, { _rowId: 3, name: '王五', age: 22 } ] } }, methods: { handleCellClick({ row, column }) { // 获取编辑的值和所在行的唯一ID const { value } = column.editRender.cellRender.props const { _rowId } = row console.log('编辑的值:', value) console.log('所在行的唯一ID:', _rowId) } }, mounted() { VXETable.use(VXETable) this.$nextTick(() => { VXETable.setup({ version: 0, i18n: key => globalThis.$t(`vxe.${key}`) }) }) } } </script> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值