vue+element+admin实现增删改查

2022.10.18今天我学习了如何使用vue+element+admin来实现简单的增删改查功能,用死数据来进行展示。

先给大家看看效果:

日历实现筛选功能:

 

 下拉框实现筛选:

 输入关键字进行模糊查询:

添加功能实现:

 

修改功能实现: 

 

 删除功能实现:

 

 接下来让我详细向大家介绍如何实现:

一、日历选择器

(1)编写日历选择器

<!-- 选择开始日期 -->
      <!-- v-model绑定formData的数组,先进行初始化数据 -->
      <el-date-picker
        v-model="formData.start"
        type="datetime"
        placeholder="选择日期"
        value-format="yyyy-MM-dd HH:mm:ss"
        :default-time="'00:00:00'"
      >
      </el-date-picker>
      -
      <!-- 选择结束日期 -->
      <el-date-picker
        v-model="formData.end"
        type="datetime"
        placeholder="选择日期"
        value-format="yyyy-MM-dd HH:mm:ss"
        :default-time="'23:59:59'"
      >
      </el-date-picker>
<!-- 表格 -->
      <!-- :data模糊查询方法 -->
      <el-table
        :data="
          showtableData.filter(
            (data) =>
              !search || data.name.toLowerCase().includes(search.toLowerCase())
          )
        "
        
        style="width: 100%"
      >
        <el-table-column prop="zt" label="状态" width="200"></el-table-column>
        <el-table-column prop="date" label="日期" width="200"></el-table-column>
        <el-table-column prop="name" label="姓名" width="200"></el-table-column>
        <el-table-column prop="sex" label="性别" width="200"></el-table-column>
        <el-table-column prop="age" label="年龄" width="200"></el-table-column>
        <el-table-column prop="number" label="电话" width="200"></el-table-column>
        <el-table-column
          prop="address"
          label="地址"
          width="200"
        ></el-table-column>
  
        <el-table-column label="操作">

 

这个样式使用的是element里面的日历选择器,具体可以去https://element.eleme.cn/#/zh-CN/component/date-picker查看。

然后是data里面的数据:

// 存放原始数据
        tableData: [
          {
            id: "1",
            ztbh: "1",
            zt: "正常",
            date: "2014-08-02",
            name: "张三",
            sex: "男",
            age: 17,
            number: 1111111,
            address: "上海市",
          },
          {
            id: "2",
            ztbh: "2",
            zt: "不正常",
            date: "2018-06-03",
            name: "李四",
            sex: "女",
            age: 20,
            number: 2222222,
            address: "泉州市",
          },
          {
            id: "3",
            ztbh: "1",
            zt: "正常",
            date: "2022-01-05",
            name: "王五",
            sex: "男",
            age: 25,
            number: 3333333,
            address: "厦门市",
          },
          {
            id: "4",
            ztbh: "2",
            zt: "不正常",
            date: "2011-04-05",
            name: "赵六",
            sex: "男",
            age: 30,
            number: 4444444,
            address: "上海市",
          },
        ],
  
        // 新数据初始化
        showtableData: [],
      };

(2)实现日历选择器的筛选功能

html的内容和一、(1)编写日历选择器中的代码一样,然后你看它使用v-model绑定了formData数组,所以我们先在data里面让formData数组进行一个初始化,如:为什么

// 存放初始时间
        formData: {
          start: "",
          end: "",
        },

为什么要进行初始化呢,可以存放全新的数据。(以下类似)

 存放的初始化数据写好之后,就可以开始使用一个for循环,来得到一个需要选中的值,首先要将日期转换成时间戳进行比大小,如:

 // 查询功能
      searchs() {

        //存放初始化数据
        this.showtableData = [];
        for (let i = 0; i < this.tableData.length; i++) {
          console.log(this.tableData[i].date);
  
          // 用户日期转换时间戳
          let date = new Date(this.tableData[i].date);
          let newdate = date.getTime(date);
          console.log(newdate);
  
          // 用户选择开始时间转换时间戳
          let start = new Date(this.formData.start);
          let newstart = start.getTime(start);
          console.log(newstart);
  
          // 用户选择结束时间转换时间戳
          let end = new Date(this.formData.end);
          let newend = end.getTime(end);
          console.log(newend);
  
          if (newdate >= newstart && newdate <= newend) {
            console.log("在这个范围里面");
  
            // tableData的数据赋值给showtableData
            this.showtableData[i] = this.tableData[i];
            alert('查询成功!')
            break;
          } else {
            console.log("不在这个范围里面");
            alert('查询失败!')
            break;
          }
        }
        console.log(11111, this.showtableData);
      },
    },
  };

showtableData一样的也是用来初始化数据然后进行存储。searchs方法要写在查询功能的@click点击事件方法里面,如:

<!-- 查询功能 -->
      <!-- searchs()点击事件方法 -->
      <el-button style="margin-left: 50px" type="primary" @click="searchs()"
        >查询</el-button
      >

二、输入关键字搜索

(1)编写输入关键字搜索

 <!-- 输入名字关键字进行搜索 -->
      <!-- v-model绑定search数据,进行初始化 -->
      <el-input
        v-model="search"
        size="mini"
        placeholder="输入名字搜索"
        style="width: 200px; margin-left: 100px"
      />

因为v-model绑定了search,所以在data里面同样写个search:''用于初始化数据。

search:''

:data可以进行一个模糊查询,写在table里。

 :data="
          showtableData.filter(
            (data) =>
              !search || data.name.toLowerCase().includes(search.toLowerCase())
          )
        "

这个代码在一、(1)编写日历选择器中有。

写到这里,应该可以完成日历筛选功能和输入关键字模糊查询功能,没有办法实现没关系,后面我会给出完整代码参考。

三、下拉筛选框实现模糊查询

(1)编写下拉框

<!-- 下拉框 -->
      <!-- @change改变事件 -->
      <!-- 设置id() -->
      <select name="状态" @change="zt()" id="pid">

        <!-- selected下拉框的初始值 -->
        <option disabled selected>状态</option>

        <!-- value设置值 -->
        <option value="1">正常</option>
        <option value="2">不正常</option>
      </select>
 // 存放原始数据
        tableData: [
          {
            id: "1",
            ztbh: "1",
            zt: "正常",
            date: "2014-08-02",
            name: "张三",
            sex: "男",
            age: 17,
            number: 1111111,
            address: "上海市",
          },
          {
            id: "2",
            ztbh: "2",
            zt: "不正常",
            date: "2018-06-03",
            name: "李四",
            sex: "女",
            age: 20,
            number: 2222222,
            address: "泉州市",
          },
          {
            id: "3",
            ztbh: "1",
            zt: "正常",
            date: "2022-01-05",
            name: "王五",
            sex: "男",
            age: 25,
            number: 3333333,
            address: "厦门市",
          },
          {
            id: "4",
            ztbh: "2",
            zt: "不正常",
            date: "2011-04-05",
            name: "赵六",
            sex: "男",
            age: 30,
            number: 4444444,
            address: "上海市",
          },
        ],

option不能直接设置点击事件,所以要在select添加onchange方法,然后设置一个id后面在script里面有用,给你的option一个value值,disabled是不能选中,selected是下拉框的初始值展示。

(2)下拉框逻辑代码

methods:{
 // 状态按钮方法
      zt() {

        // 获取id
        var objs = document.getElementById('pid')

        // 获取option的值
        var values = objs.value;

        // showtableData存放初始化数据
        this.showtableData = [];
        console.log("点击状态");

        for (let i = 0; i < this.tableData.length; i++) {
          console.log(this.tableData[i].ztbh);

        //   判断values的值是否和ztbh的值相等
          if (this.tableData[i].ztbh == values) {

            // tableData[i]中所有的数据赋值给showtableData[i]
            this.showtableData[i] = this.tableData[i];
          }
        }
      },
}

写zt()方法的目的就是为了能取到option的value值,然后进行判断。先遍历数组然后就可以拿到数组里面的ztbh值(ztbh用来代替状态,1为正常,2为不正常)

然后就与option里面的value值作比较,当你点击的option与tableData[i].ztbh相同时就会筛选出来,存放在一个新数组中。

四、添加功能实现

(1)编写添加功能

<!-- 添加界面 -->
<!-- :visible.sync可以让页面显示隐藏 -->
      <el-dialog :visible.sync="isAddMembers">

        <!-- 数据绑定在editForm -->
        <!-- addForm存放初始化数据 -->
        <el-form :model="addForm">

          <!-- 状态 -->
            <!-- v-model绑定addForm数组,进行初始化数据 -->
          <el-form-item label="状态">
            <select v-model="addForm.zt">
              <option value="正常">正常</option>
              <option value="不正常">不正常</option>
            </select>
          </el-form-item>
  
          <!-- 选择日期 -->
          <el-form-item label="日期" :picker-options="pickerOptions">
            <el-date-picker
              v-model="addForm.date"
              type="date"
              placeholder="选择日期"
              value-format="yyyy-MM-dd"
            ></el-date-picker>
          </el-form-item>
  
          <!-- 姓名 -->
          <el-form-item label="姓名">
            <el-input v-model="addForm.name"></el-input>
          </el-form-item>
  
          <!-- 性别 -->
          <el-form-item label="性别" v-model="addForm.sex">  
            <el-input v-model="addForm.sex"></el-input>
          </el-form-item>
  
          <!-- 年龄 -->
          <el-form-item label="年龄">
            <el-input v-model="addForm.age"></el-input>
          </el-form-item>
  
          <!-- 电话 -->
          <el-form-item label="电话">
            <el-input v-model="addForm.number"></el-input>
          </el-form-item>
  
          <!-- 地址 -->
          <el-form-item label="地址">
            <el-input v-model="addForm.address"></el-input>
          </el-form-item>
        </el-form>
        <div>

          <!-- 添加页面的取消事件 -->
          <el-button @click="closeDialog()">取消</el-button>
  
          <!-- 添加页面的保存事件 -->
          <el-button type="primary" @click="sumbitAddRow()">确定</el-button>
        </div>
      </el-dialog>

这里也绑定了一个addForm数组,同样的在data里就要写一个addForm用来存放新数组。

data(){
return{
 addForm:[]
}
}

v-model中绑定的值和prop里面的值对应,无论是下拉框还是日期选择器都可以绑定v-model="addForm.xxx"。

取消按钮的实现可以使用false让弹窗不显示。

确定按钮的逻辑代码如下:

 // 添加页面确定按钮方法
      sumbitAddRow() {
        this.tableData = this.tableData;
        this.tableData.push({
          zt: this.addForm.zt,
          date: this.addForm.date,
          name: this.addForm.name,
          sex: this.addForm.sex,
          age: this.addForm.age,
          number: this.addForm.number,
          address: this.addForm.address,
        });
        alert('添加成功!')
        // 添加页面关闭
        this.isAddMembers = false;
      },

五、修改功能实现

(1)编写修改功能

 <!-- 编辑按钮 -->
          <!-- scope.$index拿到每一行的index,
            scope.row拿到每一行的数据。 -->
          <el-button
            type="primary"
            size="mini"
            @click="Edit(scope.$index, scope.row)"
            >编辑</el-button
          >
<!-- visible.sync用于显示隐藏弹框 -->
      <!-- 修改界面 -->
      <el-dialog :visible.sync="centerDialogVisible">

        <!-- 数据绑定在editForm -->
        <el-form :model="editForm">

          <!-- 状态 -->
          <!-- v-model绑定editForm数组,进行初始化数据 -->
          <el-form-item label="状态">
            <select v-model="editForm.zt">

              <option value="正常">正常</option>
              <option value="不正常">不正常</option>
            </select>
          </el-form-item>
  
          <!-- 选择日期 -->
          <el-form-item label="日期" :picker-options="pickerOptions">
            <el-date-picker
              v-model="editForm.date"
              type="date"
              placeholder="选择日期"
              value-format="yyyy-MM-dd"
            ></el-date-picker>
          </el-form-item>
  
          <!-- 姓名 -->
          <el-form-item label="姓名">
            <el-input v-model="editForm.name"></el-input>
          </el-form-item>
  
          <!-- 性别 -->
          <el-form-item label="性别">
            <el-input v-model="editForm.sex"></el-input>
          </el-form-item>
  
          <!-- 年龄 -->
          <el-form-item label="年龄">
            <el-input v-model="editForm.age"></el-input>
          </el-form-item>
  
          <!-- 电话 -->
          <el-form-item label="电话">
            <el-input v-model="editForm.number"></el-input>
          </el-form-item>
  
          <!-- 地址 -->
          <el-form-item label="地址">
            <el-input v-model="editForm.address"></el-input>
          </el-form-item>
        </el-form>
        <div>

          <!-- 编辑页面的取消事件 -->
          <!-- closeDialog()绑定点击取消事件,点击之后弹窗页面不展示 -->
          <el-button @click="closeDialog()">取消</el-button>
  
          <!-- 编辑页面的确定事件 -->
          <el-button type="primary" @click="sumbitEditRow()">确定</el-button>
        </div>
      </el-dialog>

这个和添加页面类似。

(2)修改功能逻辑代码

// 修改按钮方法
    Edit(index, row) {
      // 修改页面打开
      this.centerDialogVisible = true;
      
      //重置对象
      this.editForm = Object.assign({}, row);
      _index = index;
    },

    //  修改页面确定按钮方法
    sumbitEditRow() {
      var editData = _index;
      this.tableData[editData].zt = this.editForm.zt;
      this.tableData[editData].date = this.editForm.date;
      this.tableData[editData].name = this.editForm.name;
      this.tableData[editData].sex = this.editForm.sex;
      this.tableData[editData].age = this.editForm.age;
      this.tableData[editData].number = this.editForm.number;
      this.tableData[editData].address = this.editForm.address;
      alert("修改成功!");
      // 修改好信息之后关闭修改页面
      this.centerDialogVisible = false;
    },

六、删除功能实现

(1)编写删除功能

<!-- 删除按钮 -->
          <!-- @onConfirm 点击确定按钮绑定click事件 -->
          <!-- 点击确定按钮实现删除功能 -->
          <el-popconfirm
            title="确定删除吗?"
            @onConfirm="Delete(scope.$index, scope.row)"
          >
            <!-- 删除按钮 -->
            <el-button size="mini" type="danger" slot="reference"
              >删除</el-button
            >
          </el-popconfirm>

(2)删除功能逻辑代码

 // 删除按钮功能实现
    // confirm点击确定时触发
    Delete(index) {
      this.tableData.splice(index, 1);
      console.log("确定删除");
      alert("删除成功!");
    },

七、完整代码

<template>
  <div>
    <!-- 标题 -->
    <h1>人员管理</h1>

    <!-- 选择开始日期 -->
    <!-- v-model绑定formData的数组,先进行初始化数据 -->
    <el-date-picker
      v-model="formData.start"
      type="datetime"
      placeholder="选择日期"
      value-format="yyyy-MM-dd HH:mm:ss"
      :default-time="'00:00:00'"
    >
    </el-date-picker>
    -
    <!-- 选择结束日期 -->
    <el-date-picker
      v-model="formData.end"
      type="datetime"
      placeholder="选择日期"
      value-format="yyyy-MM-dd HH:mm:ss"
      :default-time="'23:59:59'"
    >
    </el-date-picker>

    <!-- 查询功能 -->
    <!-- searchs()点击事件方法 -->
    <el-button style="margin-left: 50px" type="primary" @click="searchs()"
      >查询</el-button
    >

    <!-- 下拉框 -->
    <!-- @change改变事件 -->
    <!-- 设置id() -->
    <select name="状态" @change="zt()" id="pid">
      <!-- selected下拉框的初始值 -->
      <option disabled selected>状态</option>

      <!-- value设置值 -->
      <option value="1">正常</option>
      <option value="2">不正常</option>
    </select>

    <!-- 输入名字关键字进行搜索 -->
    <!-- v-model绑定search数据,进行初始化 -->
    <el-input
      v-model="search"
      size="mini"
      placeholder="输入名字搜索"
      style="width: 200px; margin-left: 100px"
    />

    <!-- 添加用户信息按钮 -->
    <!-- add()点击事件 -->
    <el-button type="primary" @click="add()" style="margin-left: 50px">
      增加用户</el-button
    >

    <!-- 表格 -->
    <!-- :data模糊查询方法 -->
    <el-table
      :data="
        showtableData.filter(
          (data) =>
            !search || data.name.toLowerCase().includes(search.toLowerCase())
        )
      "
      style="width: 100%"
    >
      <el-table-column prop="zt" label="状态" width="200"></el-table-column>
      <el-table-column prop="date" label="日期" width="200"></el-table-column>
      <el-table-column prop="name" label="姓名" width="200"></el-table-column>
      <el-table-column prop="sex" label="性别" width="200"></el-table-column>
      <el-table-column prop="age" label="年龄" width="200"></el-table-column>
      <el-table-column prop="number" label="电话" width="200"></el-table-column>
      <el-table-column
        prop="address"
        label="地址"
        width="200"
      ></el-table-column>

      <el-table-column label="操作">
        <!-- 编辑表单 -->
        <template slot-scope="scope">
          <!-- 编辑按钮 -->
          <!-- scope.$index拿到每一行的index,
            scope.row拿到每一行的数据。 -->
          <el-button
            type="primary"
            size="mini"
            @click="Edit(scope.$index, scope.row)"
            >编辑</el-button
          >

          <!-- 删除按钮 -->
          <!-- @onConfirm 点击确定按钮绑定click事件 -->
          <!-- 点击确定按钮实现删除功能 -->
          <el-popconfirm
            title="确定删除吗?"
            @onConfirm="Delete(scope.$index, scope.row)"
          >
            <!-- 删除按钮 -->
            <el-button size="mini" type="danger" slot="reference"
              >删除</el-button
            >
          </el-popconfirm>
        </template>
      </el-table-column>
    </el-table>

    <!-- visible.sync用于显示隐藏弹框 -->
    <!-- 修改界面 -->
    <el-dialog :visible.sync="centerDialogVisible">
      <!-- 数据绑定在editForm -->
      <el-form :model="editForm">
        <!-- 状态 -->
        <!-- v-model绑定editForm数组,进行初始化数据 -->
        <el-form-item label="状态">
          <select v-model="editForm.zt">
            <option value="正常">正常</option>
            <option value="不正常">不正常</option>
          </select>
        </el-form-item>

        <!-- 选择日期 -->
        <el-form-item label="日期" :picker-options="pickerOptions">
          <el-date-picker
            v-model="editForm.date"
            type="date"
            placeholder="选择日期"
            value-format="yyyy-MM-dd"
          ></el-date-picker>
        </el-form-item>

        <!-- 姓名 -->
        <el-form-item label="姓名">
          <el-input v-model="editForm.name"></el-input>
        </el-form-item>

        <!-- 性别 -->
        <el-form-item label="性别">
          <el-input v-model="editForm.sex"></el-input>
        </el-form-item>

        <!-- 年龄 -->
        <el-form-item label="年龄">
          <el-input v-model="editForm.age"></el-input>
        </el-form-item>

        <!-- 电话 -->
        <el-form-item label="电话">
          <el-input v-model="editForm.number"></el-input>
        </el-form-item>

        <!-- 地址 -->
        <el-form-item label="地址">
          <el-input v-model="editForm.address"></el-input>
        </el-form-item>
      </el-form>
      <div>
        <!-- 编辑页面的取消事件 -->
        <!-- closeDialog()绑定点击取消事件,点击之后弹窗页面不展示 -->
        <el-button @click="closeDialog()">取消</el-button>

        <!-- 编辑页面的确定事件 -->
        <el-button type="primary" @click="sumbitEditRow()">确定</el-button>
      </div>
    </el-dialog>

    <!-- 添加界面 -->
    <!-- :visible.sync可以让页面显示隐藏 -->
    <el-dialog :visible.sync="isAddMembers">
      <!-- 数据绑定在editForm -->
      <!-- addForm存放初始化数据 -->
      <el-form :model="addForm">
        <!-- 状态 -->
        <!-- v-model绑定addForm数组,进行初始化数据 -->
        <el-form-item label="状态">
          <select v-model="addForm.zt">
            <option value="正常">正常</option>
            <option value="不正常">不正常</option>
          </select>
        </el-form-item>

        <!-- 选择日期 -->
        <el-form-item label="日期" :picker-options="pickerOptions">
          <el-date-picker
            v-model="addForm.date"
            type="date"
            placeholder="选择日期"
            value-format="yyyy-MM-dd"
          ></el-date-picker>
        </el-form-item>

        <!-- 姓名 -->
        <el-form-item label="姓名">
          <el-input v-model="addForm.name"></el-input>
        </el-form-item>

        <!-- 性别 -->
        <el-form-item label="性别" v-model="addForm.sex">
          <el-input v-model="addForm.sex"></el-input>
        </el-form-item>

        <!-- 年龄 -->
        <el-form-item label="年龄">
          <el-input v-model="addForm.age"></el-input>
        </el-form-item>

        <!-- 电话 -->
        <el-form-item label="电话">
          <el-input v-model="addForm.number"></el-input>
        </el-form-item>

        <!-- 地址 -->
        <el-form-item label="地址">
          <el-input v-model="addForm.address"></el-input>
        </el-form-item>
      </el-form>
      <div>
        <!-- 添加页面的取消事件 -->
        <el-button @click="closeDialog()">取消</el-button>

        <!-- 添加页面的保存事件 -->
        <el-button type="primary" @click="sumbitAddRow()">确定</el-button>
      </div>
    </el-dialog>
  </div>
</template>
    
<script>
import index from "@/components/BackToTop/index.vue";
var _index;

export default {
  components: { index },
  data() {
    return {
      //开始结束时间
      Times: [],

      // 存放初始时间
      formData: {
        start: "",
        end: "",
      },

      // 存放搜索初始数据
      search: "",

      // 存放编辑和添加初始数据
      editForm: [],
      addForm: [],

      // 弹框不展示
      centerDialogVisible: false,
      isAddMembers: false,

      id: "",

      show: true,

      // 时间选择器
      pickerOptions: {
        disabledDate(time) {
          return time.getTime() > Date.now();
        },
      },

      // 存放原始数据
      tableData: [
        {
          id: "1",
          ztbh: "1",
          zt: "正常",
          date: "2014-08-02",
          name: "张三",
          sex: "男",
          age: 17,
          number: 1111111,
          address: "上海市",
        },
        {
          id: "2",
          ztbh: "2",
          zt: "不正常",
          date: "2018-06-03",
          name: "李四",
          sex: "女",
          age: 20,
          number: 2222222,
          address: "泉州市",
        },
        {
          id: "3",
          ztbh: "1",
          zt: "正常",
          date: "2022-01-05",
          name: "王五",
          sex: "男",
          age: 25,
          number: 3333333,
          address: "厦门市",
        },
        {
          id: "4",
          ztbh: "2",
          zt: "不正常",
          date: "2011-04-05",
          name: "赵六",
          sex: "男",
          age: 30,
          number: 4444444,
          address: "上海市",
        },
      ],

      // 新数据初始化
      showtableData: [],
    };
  },

  // 数据实例创建之后
  created() {
    // tableData的数据赋值给showtableData
    this.showtableData = this.tableData;
  },

  methods: {
    // 状态按钮方法
    zt() {
      // 获取id
      var objs = document.getElementById("pid");

      // 获取option的值
      var values = objs.value;

      // showtableData存放初始化数据
      this.showtableData = [];
      console.log("点击状态");

      for (let i = 0; i < this.tableData.length; i++) {
        console.log(this.tableData[i].ztbh);

        //   判断values的值是否和ztbh的值相等
        if (this.tableData[i].ztbh == values) {
          // tableData[i]中所有的数据赋值给showtableData[i]
          this.showtableData[i] = this.tableData[i];
        }
      }
    },

    // 添加按钮方法
    add() {
      // 弹窗页面显示
      this.isAddMembers = true;

      // 数据初始化
      this.addForm = {
        zt: "",
        date: "",
        name: "",
        sex: "",
        age: "",
        number: "",
        address: "",
      };
    },

    // 添加页面确定按钮方法
    sumbitAddRow() {
      this.tableData = this.tableData;
      this.tableData.push({
        zt: this.addForm.zt,
        date: this.addForm.date,
        name: this.addForm.name,
        sex: this.addForm.sex,
        age: this.addForm.age,
        number: this.addForm.number,
        address: this.addForm.address,
      });
      alert("添加成功!");
      // 添加页面关闭
      this.isAddMembers = false;
    },

    // 修改按钮方法
    Edit(index, row) {
      // 修改页面打开
      this.centerDialogVisible = true;
      
      //重置对象
      this.editForm = Object.assign({}, row);
      _index = index;
    },

    //  修改页面确定按钮方法
    sumbitEditRow() {
      var editData = _index;
      this.tableData[editData].zt = this.editForm.zt;
      this.tableData[editData].date = this.editForm.date;
      this.tableData[editData].name = this.editForm.name;
      this.tableData[editData].sex = this.editForm.sex;
      this.tableData[editData].age = this.editForm.age;
      this.tableData[editData].number = this.editForm.number;
      this.tableData[editData].address = this.editForm.address;
      alert("修改成功!");
      // 修改好信息之后关闭修改页面
      this.centerDialogVisible = false;
    },

    // 关闭所有弹框
    closeDialog() {
      // 弹窗页面不显示
      this.centerDialogVisible = false;
      this.isAddMembers = false;

      console.log("editfrom", this.editForm);
      console.log("addfrom", this.addForm);
    },

    // 删除按钮功能实现
    // confirm点击确定时触发
    Delete(index) {
      this.tableData.splice(index, 1);
      console.log("确定删除");
      alert("删除成功!");
    },

    // 查询按钮功能实现
    searchs() {
      //存放初始化数据
      this.showtableData = [];
      for (let i = 0; i < this.tableData.length; i++) {
        console.log(this.tableData[i].date);

        // 用户日期转换时间戳
        let date = new Date(this.tableData[i].date);
        let newdate = date.getTime(date);
        console.log(newdate);

        // 用户选择开始时间转换时间戳
        let start = new Date(this.formData.start);
        let newstart = start.getTime(start);
        console.log(newstart);

        // 用户选择结束时间转换时间戳
        let end = new Date(this.formData.end);
        let newend = end.getTime(end);
        console.log(newend);

        if (newdate >= newstart && newdate <= newend) {
          console.log("在这个范围里面");

          // tableData的数据赋值给showtableData
          this.showtableData[i] = this.tableData[i];
          alert("查询成功!");
          break;
        } else {
          console.log("不在这个范围里面");
          alert("查询失败!");
          break;
        }
      }
      console.log(11111, this.showtableData);
    },
  },
};
</script>
    
    <style>
h1 {
  text-align: center;
}
input {
  margin: 20px;
}
.el-input {
  width: 200px;
}
button {
  background-color: red;
  margin-left: 20px;
}
select {
  margin-left: 50px;
}
</style>
    

写到后面写不下去了,大家将就点看看吧,喜欢的话点个赞吧。

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Vue-element-admin 是一个基于 Vue.jsElement UI 的后台管理系统解决方案,其功能包括登录、权限管理、Dashboard、表单等常见的后台管理系统功能。 要进行增删改查的操作,需要先了解 Vue-element-admin 的代码结构和数据流,以下是一些常用的操作指南: 1. 添加新页面:可以在 src/views 目录下新建一个.vue 文件,然后在 src/router/index.js 中添加路由。 2. 修改页面:直接修改 src/views 目录下的相应.vue 文件即可。 3. 删除页面:删除 src/views 目录下的相应.vue 文件,并在 src/router/index.js 中删除相应的路由即可。 4. 增加/修改 API 接口:在 src/api 目录下添加/修改对应的.js 文件即可。 5. 增加/修改菜单项:在 src/layout/components/Sidebar/index.vue 文件中找到对应的位置,添加/修改菜单项。 6. 增加/修改权限:在 src/permission.js 文件中修改对应的权限即可。 需要注意的是,在修改 Vue-element-admin 的代码时,建议先熟悉 Vue.jsElement UI 的使用,以及了解前端的基本知识。此外,修改代码前最好先备份原有代码,以防止出现不可预料的错误。 ### 回答2: vue-element-admin是一个基于Vue.jsElement UI的后台管理系统,它提供了一套完整的后台管理模板和常用组件,方便开发者快速开发管理系统。 在vue-element-admin中,实现增删改查功能是非常常见的需求。下面就来具体介绍一下如何实现增删改查。 增加数据 在vue-element-admin中,我们通常使用表单来添加新的数据。首先需要定义一个表单组件,可以使用Element UI提供的组件,也可以自行编写。然后,在表单组件中,需要监听表单的提交事件,将表单中的数据发送到后端,以添加新的数据。 对于后端,需要提供一个API,用于接收前端传递过来的数据。通过API将数据保存到数据库中。 删除数据 在vue-element-admin中,删除数据通常是通过点击列表项的删除按钮来实现的。首先需要在列表项中加入删除按钮,并定义一个删除方法。当用户点击删除按钮时,会调用该方法。 然后,在该方法中,需要向后端发送一个请求,告诉后端需要删除的数据的ID。后端需要提供一个API,将指定的数据从数据库中删除。 修改数据 在vue-element-admin中,修改数据通常是通过点击列表项的编辑按钮来实现的。首先需要在列表项中加入编辑按钮,并定义一个编辑方法。当用户点击编辑按钮时,会调用该方法。 然后,在该方法中,需要获取需要编辑的数据的ID,并将其发送到后端。后端需要提供一个API,用于获取指定ID的数据,并将其返回给前端。 返回数据后,将其填充到表单组件中,易于修改。当用户修改完数据后,需要将数据发送到后端,以更新到数据库中。 查询数据 在vue-element-admin中,实现查询数据通常是在页面顶部加入一个查询表单。当用户输入查询条件后,需要向后端发送一个请求,告诉后端需要查询的条件。后端需要提供一个API,接收查询条件,并返回查询结果给前端。 查询结果需要渲染到页面中,以便用户查看。同时,如果查询结果很多,可以考虑进行分页,提高查询效率。 以上就是在vue-element-admin实现增删改查的大致过程,需要注意的是,每个步骤都需要前后端协同,才能实现完整的功能。 ### 回答3: vue-element-admin是一个基于Vue.js的后台管理系统解决方案,它提供的各种组件和功能可以帮助我们快速搭建出一个完整的后台管理系统。其中,增删改查是后台管理系统中最常见的功能,下面就来详细介绍一下vue-element-admin增删改查。 一、增加数据 在vue-element-admin中,增加数据分为两种情况:新增数据和批量增加数据。对于新增数据,我们需要引用element-ui的Dialog组件实现弹窗输入新数据,然后将数据通过api的方法传给后端实现数据的插入操作。对于批量增加数据,我们可以使用Vue.js的v-for指令和el-table组件展示已有数据,并通过上传Excel表格的方式批量增加数据。 二、删除数据 删除数据同样需要使用element-ui的Dialog组件来实现删除数据的确认框。在调用删除api接口时,我们需要传递一个或多个需要删除的数据的唯一标识符,并在后端进行相应的删除操作。不过需要注意的是,对于某些敏感数据,我们可以通过后端开发的方式做出逻辑删除而非物理删除的处理。 三、修改数据 修改数据也需要使用element-ui的Dialog组件实现弹窗,并将原有的数据展示在弹窗中,让用户修改之后提交保存。我们需要传递修改后的数据和原有数据的唯一标识符给api接口,然后在后端进行相应的修改操作。 四、查询数据 查询数据是后台管理系统中最常用的功能之一,vue-element-admin通过使用el-form和el-input组件实现数据的模糊查询、精确查询等功能。同时,Vue.js的自定义过滤器可以帮助我们对查询出的数据进行格式化,以便展示给用户。 综上所述,vue-element-admin增删改查功能涉及到多个组件和功能,需要结合具体业务场景进行设计和开发。不过通过使用vue-element-admin提供的各种组件和api接口,我们可以快速实现一个完整的后台管理系统,并满足各种业务需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

敲代码无敌小奶龙

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

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

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

打赏作者

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

抵扣说明:

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

余额充值