vue+element 后台管理项目 表格修改+删除功能

319 阅读1分钟

修改功能

1、封装接口

// 更新用户信息
export const usersPut = (id,data={})=> httpServe({path:'users/'+id,method:'put',data})

2、添加编辑按钮与对话框组件

<el-button @click="update(scope.row)" type="text" size="small" style="margin-right:10px;">编辑</el-button>

<!-- 对话框 -->
<el-dialog title="修改用户信息" :visible.sync="dialogFormVisible">
  <el-form :model="form">
    <el-form-item label="电子邮箱" label-width="100px">
      <el-input v-model="form.email" autocomplete="off"></el-input>
    </el-form-item>
    <el-form-item label="手机号" label-width="100px">
      <el-input v-model="form.mobile" autocomplete="off"></el-input>
    </el-form-item>
  </el-form>
  <div slot="footer" class="dialog-footer">
    <el-button @click="dialogFormVisible = false">取消</el-button>
    <el-button type="primary" @click="submit">确定</el-button>
  </div>
</el-dialog>

3、定义事件

 data() {
    return {
      dialogFormVisible:false,
      form:{
        email:'',
        mobile:''
      }
    };
  },
  created() {
    // 获取数据渲染表格
    this.getTableData();
  },
  methods: {
    // 点击编辑按钮,打开对话框,进行修改用户信息操作
    update(row){
      this.dialogFormVisible = true;
      // 通过深拷贝将每行的数据给到this.form
      // this.form = row 如果直接赋值会出现即使在input框修改信息但并未提交页面也会暂时修改的情况
      this.form = JSON.parse(JSON.stringify(row))
    },
    // 修改用户信息
    async submit(){
      try {
        let res = await usersPut(this.form.id,{
          id:this.form.id,
          email:this.form.email,
          mobile:this.form.mobile
        })
        let {meta:{status,msg}} = res.data;
        if(status==200){
          this.$message.success(msg);
          this.dialogFormVisible = false;
          this.getTableData()
        }else{
          this.$message.error(msg)
        }
      } catch (error) {
        this.$message.error(error);
        console.log(error);
      }
    },
  }

删除功能

1、封装接口

// 删除用户
export const usersDelete = (id)=> httpServe({path:'users/'+id,method:'delete'})

2、添加气泡弹出框与删除按钮

<!-- 气泡弹出框 -->
    <el-popconfirm
    confirm-button-text='好的'
    cancel-button-text='不用了'
    icon="el-icon-info"
    icon-color="red"
    title="确定删除该用户吗?"
    @confirm="delUsers(scope.row.id)"
> 
    <el-button type="text" size="small" slot="reference">删除</el-button>
</el-popconfirm>

3、定义事件

// 删除单个用户
async delUsers(id){
  // console.log(id);
  try {
    let res = await usersDelete(id);
    let {meta:{msg,status}} = res.data;
    if(status==200){
      this.$message.success(msg);
      this.getTableData()
    }else{
      this.$message.error(msg)
    }
  } catch (error) {
    this.$message.error(error)
  }
},