• html+elementui实现表格内容的增删Demo


    全部代码(复制到空的html即可查看效果)

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
      <!-- 引入elmentui样式 -->
      <link href="https://cdn.bootcss.com/element-ui/2.8.2/theme-chalk/index.css" rel="stylesheet">
      <!-- 引入elmentui js -->
      <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.min.js"></script>
      <script src="https://cdn.bootcss.com/element-ui/2.8.2/index.js"></script>
    </head>
    
    <body>
      <div id="app">
        <div class="top">
          <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddDetails">添加</el-button>
          <el-button type="success" icon="el-icon-delete" size="mini" @click="handleDeleteDetails">删除</el-button>
          <el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDeleteAllDetails">清空</el-button>
        </div>
    
        <el-table v-loading="loading" :data="bcglXiangXiList" :row-class-name="rowClassName"
          @selection-change="handleDetailSelectionChange" ref="tb">
          <el-table-column type="selection" width="30" align="center"></el-table-column>
          <el-table-column label="序号" align="center" prop="xh" width="50"></el-table-column>
    
          <el-table-column label="开始时间/最早时间-结束时间/最晚时间" prop="sjfw">
            <template slot-scope="scope">
              <el-time-picker is-range format="HH:mm" value-format="HH:mm" :style="{ '100%'}" start-placeholder="开始时间"
                end-placeholder="结束时间" range-separator="至" clearable @change="changesjfw(scope.row)"
                v-model="bcglXiangXiList[scope.row.xh-1].sjfw"></el-time-picker>
            </template>
          </el-table-column>
    
          <el-table-column label="指定天数" align="center" prop="ts" width="150">
            <template slot-scope="scope">
              <el-select clearable @change="changezdts(scope.row)" v-model="bcglXiangXiList[scope.row.xh-1].ts">
                <el-option v-for="dict in zdtsOptions" :key="dict.dictValue" :label="dict.dictLabel"
                  :value="dict.dictValue" />
              </el-select>
            </template>
          </el-table-column>
          <el-table-column label="打卡地点" align="center" prop="dkdd">
            <template slot-scope="scope">
              <el-select clearable @change="changedkdd(scope.row)" v-model="bcglXiangXiList[scope.row.xh-1].dkdd">
                <el-option v-for="dict in dkddOptions" :key="dict.dictValue" :label="dict.dictLabel"
                  :value="dict.dictValue" />
              </el-select>
            </template>
          </el-table-column>
    
          <el-table-column label="最小井下累计时间-最大井下累计时间" prop="jxsjfw">
            <template slot-scope="scope">
              <el-time-picker is-range format="HH:mm" value-format="HH:mm" :style="{ '100%'}" start-placeholder="开始时间"
                end-placeholder="结束时间" range-separator="至" clearable @change="changejxsjfw(scope.row)"
                v-model="bcglXiangXiList[scope.row.xh-1].jxsjfw"></el-time-picker>
            </template>
          </el-table-column>
        </el-table>
      </div>
    </body>
    
    <script>
      let app = new Vue({
        el: '#app',
        data() {
          return {
            loading: false,
            //详细list
            bcglXiangXiList: [],
            //选中的从表数据
            checkedDetail: [],
            zdtsOptions: [{ dictValue: '1', dictLabel: 1 }, { dictValue: '2', dictLabel: 2 }, { dictValue: '3', dictLabel: 3 }],
            dkddOptions: [{ dictValue: '1', dictLabel: '北京' }, { dictValue: '2', dictLabel: '上海' }, { dictValue: '3', dictLabel: '广州' }]
          }
        },
        methods: {
          rowClassName({ row, rowIndex }) {
            row.xh = rowIndex + 1;
          },
          //单选框选中数据
          handleDetailSelectionChange(selection) {
            if (selection.length > 1) {
              this.$refs.tb.clearSelection();
              this.$refs.tb.toggleRowSelection(selection.pop());
            } else {
              this.checkedDetail = selection;
            }
          },
          handleAddDetails() {
            if (this.bcglXiangXiList == undefined) {
              this.bcglXiangXiList = new Array();
            }
            let obj = {};
            obj.ts = "1";
            obj.dkdd = "1";
            obj.sjfw = ["07:00", "07:30"];
            obj.jxsjfw = ["06:00", "12:00"];
    
            this.bcglXiangXiList.push(obj);
          },
          handleDeleteDetails() {
            if (this.checkedDetail.length == 0) {
              this.$alert("请先选择要删除的数据", "提示", {
                confirmButtonText: "确定",
              });
            } else {
              this.bcglXiangXiList.splice(this.checkedDetail[0].xh - 1, 1);
            }
          },
          handleDeleteAllDetails() {
            this.bcglXiangXiList = undefined;
          },
        }
      })
    
    </script>
    <style>
      .top {
        margin: 20px;
        text-align: center;
      }
    </style>
    
    </html>
    
    
  • 相关阅读:
    POJ 1458 Common Subsequence 【最长公共子序列】
    Codeforces Round #283 (Div. 2) A
    HDU 1009 FatMouse' Trade【贪心】
    HDU 2037 今年暑假不AC【贪心】
    Codeforces Round #282 (Div. 2) A
    HDU 2955 Robberies【01背包】
    bzoj4811
    bzoj2243
    bzoj2325
    bzoj3531
  • 原文地址:https://www.cnblogs.com/wwj007/p/15703252.html
Copyright © 2020-2023  润新知