美文网首页
vue中在表格中添加输入框增删改

vue中在表格中添加输入框增删改

作者: 帆_44fc | 来源:发表于2019-12-20 09:59 被阅读0次
    <template>
      <div class="block">
        <el-form :model="formData" ref="formData">
          <el-table :data="formData.tableData" border stripe style="width: 100%;">
            <el-table-column prop="name" label="姓名">
              <template slot-scope="scope">
                <el-form-item v-if="scope.row.edit" :prop="'tableData.' + scope.$index + '.name'" :rules='rules.name'>
                  <el-input v-model="scope.row.name" placeholder="姓名"></el-input>
                </el-form-item>
                <span v-else>{{scope.row.name}}</span>
              </template>
            </el-table-column>
            <el-table-column prop="sex" label="性别">
              <template slot-scope="scope">
                <el-form-item v-if="scope.row.edit" :prop="'tableData.' + scope.$index + '.sex'" :rules='rules.sex'>
                  <el-select v-model="scope.row.sex" placeholder="请选择">
                    <el-option label="男" value="1">男</el-option>
                    <el-option label="女" value="2">女</el-option>
                  </el-select>
                </el-form-item>
                <span v-else>
                  <p v-if="scope.row.sex==1">男</p>
                  <p v-if="scope.row.sex==2">女</p>
                </span>
              </template>
            </el-table-column>
            <el-table-column label="操作">
              <template slot-scope="scope">
                <el-button v-if="scope.row.edit" type="text" size="medium" @click="confirmAdd(scope.row,'formData')">
                  <i class="el-icon-check" aria-hidden="true"></i>
                </el-button>
                <div v-else>
                  <el-button type="text" size="medium" @click="editData(scope.row)">
                    <i class="el-icon-edit" aria-hidden="true"></i>
                  </el-button>
                  <el-button type="text" size="medium" @click="deleteData(scope.row,scope.$index)">
                    <i class="el-icon-delete" aria-hidden="true"></i>
                  </el-button>
                </div>
              </template>
            </el-table-column>
          </el-table>
        </el-form>
        <el-button type="text" @click="addData">添加数据</el-button>
        <el-divider></el-divider>
        <el-button @click="submitData('formData')">提交 </el-button>
      </div>
    </template>
    <script>
      export default {
        // https://blog.csdn.net/weixin_43753330/article/details/89963135
        name: "demo",
        data() {
          return {
            formData: {
              tableData: [],
            },
            rules: {
              name: {
                required: true,
                message: '请输入名字',
              },
              sex: {
                required: true,
                message: '请选择性别',
              },
            },
          }
        },
        methods: {
          //添加
          addData() {
            this.formData.tableData.push({
              edit: true,
            });
          },
          //确认添加
          confirmAdd(row, formName) {
            this.$refs[formName].validate((valid) => {
              if (valid) {
                row.edit = false;
              }
            })
          },
          //修改
          editData(row) {
            row.edit = true;
          },
          //删除
          deleteData(row, index) {
            this.formData.tableData.splice(index, 1);
          },
          submitData(formName) {
    
            this.$refs[formName].validate((valid) => {
              if (valid) {
                let data = this.formData.tableData;
                console.log
                alert(JSON.stringify(data))
              }
            })
          }
        }
      }
    
    </script>
    
    
    

    相关文章

      网友评论

          本文标题:vue中在表格中添加输入框增删改

          本文链接:https://www.haomeiwen.com/subject/xzybnctx.html