vue-elementui-admin 增删改查

<template>
  <div>
    <div style="width: 100%;height: 100px;">

      <!-- 搜索 -->
      <div style="margin-top: 30px;margin-left: 30px;float: left;width: 600px;">
        <div style="float: left;margin-top: 10px;">
          请输入名称:
        </div>
        <div style="width: 300px;float: left">
          <!-- 搜索 -->
          <el-input v-model="quere.input" placeholder="请输入内容">
            <el-button slot="append" icon="el-icon-search" @click="getData"></el-button>
          </el-input>
        </div>
      </div>
    </div>

    <!-- 添加拼团商品 -->
    <el-button type="primary" @click="addto" style="float: left; margin-left: 30px;margin-bottom: 25px;">添加拼团商品</el-button>

    <!-- 表格 -->
    <el-table :data="DataList" style="width: 100%">
      <el-table-column label="登录账号" prop="number">
      </el-table-column>
      <el-table-column label="姓名" prop="name">
      </el-table-column>
      <el-table-column label="权限组" prop="permission">
      </el-table-column>
      <el-table-column label="简单说明" prop="desc">
      </el-table-column>
      <el-table-column label="状态">
        <template slot-scope="{row}">
          <el-switch v-model="row.state" class="switch" :active-value="1" :inactive-value="0"
            @change="handleStatusChange($event, row)" />
        </template>
      </el-table-column>
      <el-table-column label="操作">
        <template slot-scope="scope">
          <el-button size="mini" @click="handleEdit(scope.row)">修改</el-button>
          <el-button size="mini" type="danger" @click="handleDelete(scope.row)">删除</el-button>
        </template>
      </el-table-column>
    </el-table>
    <!-- 页码 -->
    <div>
        <pagination v-show="total>0" :page-sizes="[3,5,7]" :total="total" :page.sync="quere.page" :limit.sync="quere.limit"  @pagination="getData" />
    </div>

      <!-- 弹出的页面内容 -->
      <div>
        <!-- 新增 -->
        <el-dialog :visible.sync="getmessage">
            <el-form :model="ruleForm" label-width="100px" class="demo-ruleForm">
            <el-form-item label="登陆账号" prop="pass">
                <el-input v-model="ruleForm.number"></el-input>
            </el-form-item>
            <el-form-item label="姓名" prop="checkPass">
                <el-input v-model="ruleForm.name"></el-input>
            </el-form-item>
            <el-form-item label="密码" prop="age">
                <el-input v-model="ruleForm.password" type="password"></el-input>
            </el-form-item>
            <el-form-item label="简单说明" prop="checkPass">
                <el-input v-model="ruleForm.desc"></el-input>
            </el-form-item>
            <el-form-item>
                <el-button type="primary" @click="submitForm">提交</el-button>
                <el-button @click="resetForm('ruleForm')">重置</el-button>
            </el-form-item>
            </el-form>
        </el-dialog>
      </div>

      <!-- 弹出的页面内容 -->
      <div>
        <!-- 修改 -->
        <el-dialog :visible.sync="modify">
            <el-form :model="ruleItem" label-width="100px" class="demo-ruleForm">
            <el-form-item label="登陆账号" prop="pass">
                <el-input v-model="ruleItem.number"></el-input>
            </el-form-item>
            <el-form-item label="姓名" prop="checkPass">
                <el-input v-model="ruleItem.name"></el-input>
            </el-form-item>
            <el-form-item label="密码" prop="age">
                <el-input v-model="ruleItem.password" type="password"></el-input>
            </el-form-item>
            <el-form-item label="简单说明" prop="checkPass">
                <el-input v-model="ruleItem.desc"></el-input>
            </el-form-item>
            <el-form-item>
                <el-button type="primary" @click="submitModify(ruleItem)">提交</el-button>
                <el-button @click="resetForm('ruleItem')">重置</el-button>
            </el-form-item>
            </el-form>
        </el-dialog>
      </div>

  </div>
</template>

<script>
import {CustomerList,handleDelete,CustomerAdd,getItem,submitModify,handleStatusChange} from '@/api/charts' 
import Pagination from '@/components/Pagination'

export default {

components:{ Pagination },

  data() {
    return {
      value: '',
      DataList:[],
      total:0,
      quere:{
        page:1,
        limit:3,
        input:'',
      },
       //新增弹框
      getmessage:false,
      ruleForm: {
          number: '',
          name: '',
          password: '',
          desc:''
      },
      //修改弹框
      modify:false,
      ruleItem:{
        number: '',
          name: '',
          password: '',
          desc:''
      }
    }
  },

 created() {
    this.getData()
  },
  methods: {
    //弹框新增
    addto(){
      this.getmessage = true
    },
    //新增
    submitForm() {
        CustomerAdd(this.ruleForm).then((Response) => {
            if(Response.code == 20000){
                this.getmessage = false
                this.getData()
			          this.$notify({ title: '新增', message: '新增成功!', type: 'success', duration: 2000 })
            }
        })
      },
    //状态
    handleStatusChange($event, row){
      console.log($event,row.id)
      handleStatusChange($event,row.id).then((response)=>{
        console.log(response)
        if(response.code == 20000){
            this.getData()
			      this.$notify({ title: '状态', message: '状态修改成功!', type: 'success', duration: 2000 })
        }
      })
    },
    //修改弹框
    handleEdit(row){
      getItem(row.id).then((response)=>{
        if(response.code == 20000){
            this.modify = true
            this.ruleItem = response.data
        }
      })
    },
    //修改数据
    submitModify(){
      console.log(this.ruleItem)
      submitModify(this.ruleItem).then((response)=>{
        console.log(response)
        if(response.code == 20000){
            this.modify = false
            this.getData()
			      this.$notify({ title: '修改', message: '修改成功!', type: 'success', duration: 2000 })
        }
      })
    },
    //删除
    handleDelete(row){
        this.$confirm('你确定要删除该信息, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(async() => {
        await handleDelete(row.id)
        this.getData()
        this.$message({ type: 'success', message: '删除成功!' })
      }).catch(() => {
        this.$message({ type: 'success', message: '已取消删除' })
      })
    },
    //客服列表
    getData(){
       CustomerList( this.quere).then((response) => {
          this.total = response.data.total
          this.DataList = response.data.data
        })
    }
  }
}
</script>

<?php

namespace App\Repository\Repositories;

use App\Models\Customer;
use App\Repository\RepositoryInterface\Jurisdictionface;
use Symfony\Component\VarDumper\Dumper\DataDumperInterface;

class Jurisdiction implements Jurisdictionface
{

    public function CustomerList($input,$limit,$page)
    {
        $where = [];
        if (!empty($input)){
            $where[] = [
                'name','like',"%$input%"
            ];
        }
        $data = Customer::where($where)->paginate($limit)->toArray();
        return success('查询成功',$data);
    }

    public function CustomerDelete($id)
    {
        $res = Customer::where('id',$id)->delete();
        if (!$res) return fail('删除失败');
        return success('删除成功');
    }

    public function CustomerAdd($data)
    {
        $res = Customer::insert($data);
        if (!$res) return fail('添加失败');
        return success('添加成功');
    }

    public function getItem($id)
    {
        $data = Customer::where('id',$id)->first();
        if (!$data) return fail('查询失败');
        return success('查询成功',$data);
    }

    public function submitModify($data)
    {
        $data = Customer::where('id',$data['id'])->update($data);
        if (!$data) return fail('修改失败');
        return success('修改成功');
    }

    public function handleStatusChange($state,$id)
    {
        if ($state == 1){
            $res = Customer::where('id',$id)->update(['state' => 1]);
            if (!$res) return fail('状态修改失败');
            return success('状态修改成功');
        }else{
            $res = Customer::where('id',$id)->update(['state' => 0]);
            if (!$res) return fail('状态修改失败');
            return success('状态修改成功');
        }
    }
}

图片

      <el-table-column label="头像" >
        <template slot-scope="scope">
            <el-image
                style="width: 100px; height: 100px"
                :src="scope.row.headshot"
                fit="contain">
          </el-image>
          </template>
      </el-table-column>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Vue-element-admin 是一个基于 Vue.js 和 Element 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.js 和 Element UI 的使用,以及了解前端的基本知识。此外,修改代码前最好先备份原有代码,以防止出现不可预料的错误。 ### 回答2: vue-element-admin是一个基于Vue.js和Element 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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值