首页 > 其他分享 >可编辑表格

可编辑表格

时间:2024-06-06 09:44:33浏览次数:13  
标签:el form projectContent 编辑表格 item valid contents

<!-- 子组件 --> <template>   <el-form ref="formChild" :model="form" :disabled="isDisabled">     <el-table ref="table" :data="form.contents" size="mini" border>       <el-table-column prop="equipmentName" label="设备名称" align="center" :show-overflow-tooltip="true">         <template slot-scope="{row, $index}">           <el-form-item :prop="'contents.' + $index + '.equipmentName'" :rules="[{ required: true, message: '设备名称不能为空' }]" size="mini">             <el-input v-model="row.equipmentName" placeholder="设备名称" />           </el-form-item>         </template>       </el-table-column>       <el-table-column prop="purchaseQuantity" label="采购数量" align="center" :show-overflow-tooltip="true">         <template slot-scope="{row, $index}">           <el-form-item :prop="'contents.' + $index + '.purchaseQuantity'" :rules="[{ required: true, message: '采购数量不能为空' }]" size="mini">             <el-input-number v-model="row.purchaseQuantity" controls-position="right" :precision="0" :min="1" placeholder="采购数量" />           </el-form-item>         </template>       </el-table-column>       <el-table-column prop="equipmentUnit" label="单位" align="center" :show-overflow-tooltip="true">         <template slot-scope="{row, $index}">           <el-form-item :prop="'contents.' + $index + '.equipmentUnit'" :rules="[{ required: true, message: '单位不能为空' }]" size="mini">             <el-input v-model="row.equipmentUnit" placeholder="单位" />           </el-form-item>         </template>       </el-table-column>       <el-table-column v-if="!isDisabled" label="操作" align="center" class-name="small-padding fixed-width" width="50">         <template slot-scope="{$index}">           <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete($index)" />         </template>       </el-table-column>     </el-table>     <el-button v-if="!isDisabled" plain class="addBtn" icon="el-icon-plus" @click="handleAdd">添加一行数据</el-button>   </el-form> </template>
<script> export default {   name: 'ProjectContent',   props: {     data: {       type: Array,       default: () => []     },     isDisabled: {       type: Boolean,       default: false     }   },   data() {     return {       form: {         contents: []       }     };   },   watch: {     data: {       async handler(val) {         this.form.contents = this.deepClone(val);       },       immediate: true,       deep: true     }   },   created() {   },   methods: {     // 添加一行数据     handleAdd() {       const item = {         equipmentName: undefined,         purchaseQuantity: 1,         equipmentUnit: undefined       };       this.form.contents.push(item);     },     handleDelete(index) {       this.$modal.confirm(`是否确认删除当前数据项?`).then(() => {         this.form.contents.splice(index, 1);       }).catch(() => {       });     }   } }; </script>
<style scoped lang="scss"> .el-form{   .el-form-item--mini.el-form-item{     margin: 0;     .el-input-number{       width: 100%;     }   } } .addBtn{   width: 100%;   margin-top: 20px;   border: 1px dashed #DCDFE6; } ::v-deep{   .el-table--border .el-table__cell{     border-right: none   } } </style>       <!-- 父组件 --> <project-content ref="projectContent" :data="form.contents" :is-disabled="isDisabled || !form.access.contents.write" /> // 校验项目内容表单     validateContentForm(projectContent) {       projectContent.$refs.formChild.validate(async valid => {         if (valid) {           try {             this.btnLoading = true;             const form = this.deepClone(this.form);           } catch (error) {             }         }       });     },     /** 提交按钮 */     submitForm() {       const projectContent = this.$refs.projectContent;       this.form.contents = this.deepClone(projectContent.form.contents) || [];       this.$refs['form'].validate(valid => {         if (valid) {           this.validateContentForm(projectContent);         }       });     }

标签:el,form,projectContent,编辑表格,item,valid,contents
From: https://www.cnblogs.com/wxy84/p/18234462

相关文章

  • 可编辑表格中的两个列分别是用react-hook-form 和antd的inputNumber实现的,需要在开始
    可编辑表格中的两个列分别是用react-hook-form和antd的inputNumber实现的,需要在开始时间的列输入后失焦时,或者按enter键,鼠标聚焦到下一列,即结束时间,该如何设置在React项目中,要实现在一个可编辑表格中,当开始时间列输入后失焦或按下Enter键时,自动将焦点切换至结束时间列,你可以结合......
  • LAYUI - 可编辑表格
    代码/*防止下拉框的下拉列表被隐藏---必须设置---*/.layui-table-cell{overflow:visible;}.layui-table-box{overflow:visible;}.layui-table-body{overflow:visible;}/*使得下拉框与单元格刚好合适*/td.layui-form-select{margin-top:-10px;margin-le......
  • vxe-table 坑:可编辑表格表头不显示编辑图标
    问题"vxe-table":"^3.5.9",官方文档默认显示编辑图标。但实际上没有显示。给vex-table的edit-config添加showIcon:true,也不生效。设置icon也不生效。替代方案给vxe-column设置插槽<template#default="{row}"></template>,内部显示内容添加icon。新的问题插......
  • 可编辑表格
    <template><div><divclass="table-wrap"><divclass="title-wrap"><span>{{name}}</span><span@mouseenter="changeFlag"@mouseleave="changeFlag"&g......
  • vue+element-ui 实现可编辑表格、动态渲染表头和表格数据、列向数据合计(每行末尾合计
    HTML部分代码<template> <div>  <el-container>   <el-header>Header</el-header>   <el-main>    <div>     //表格数据在这里::data="tableData"     <el-table      border    ......
  • 1.element表头居中内容左对齐, 2.自定义el-table中新增编辑表格不刷新的问题。
    一、<el-table :header-cell-style="{'text-align':'left'}">...<el-table-column:cell-style="{'text-align':'left'}">...</el-table-column></el-table> 二、this.$se......
  • 记录--极致舒适的Vue可编辑表格
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助使用ElementPlus的Table啥都好,就是没有可编辑表格!!!......
  • 【React+Antd】可编辑表格
    importReact,{useContext,useState,useEffect,useRef}from"react";import{Table,Input,Button,Popconfirm,Form}from"antd";constEditableContext=React.createContext(null);constEditableRow=(props)=>{//编辑表格行let[f......
  • 可编辑表格
    目录设计思路实现方法核心代码htmljscss设计思路先通过CSS+HTML绘制基础表格样式及布局根据题意:只能修改成绩数据的单元格,给相应td设置name属性,总分则单独设置rname属性,在js文件中获取所有需要修改的元素,通过for循环遍历给需要修改的单元格添加点击事件。......
  • vue element 可编辑表格行内验证
    <template><divclass="page-layoutrataMdel"><el-buttontype="primary"@click="addItem">+添加一行</el-button><el-form:model="ruleFo......