VUE-26 element 修改用户信息

本文档展示了如何在Vue.js和Element-UI环境下实现用户信息的修改功能。首先,通过点击事件获取用户ID,然后在表单中展示待修改的用户信息。用户输入新的信息后,点击提交按钮,调用接口更新用户数据。同时,提供了路由配置以展示用户列表。代码示例中详细说明了各个组件和方法的实现,包括获取用户ID、修改用户信息的接口调用以及表单的交互逻辑。
摘要由CSDN通过智能技术生成

本节:修改用户信息,点击修改,获取用户id,修改对应的用户信息。

1.div

(1.)点击修改,获取修改的用户ID,传参数,写一个获取id的点击事件,连接获取id接口。

ps:在element表单里面,要使用自定义的变量,必须使用<template slot-scope="scope">  </template>,而且点击使用的变量:scope.row.变量名。scope.row.组合等于表单里面的指针

<template slot-scope="scope">

       <el-button type="primary" plain @click="updata(scope.row.id)">修改</el-button>

   </template>

(2.)输入框绑定要修改的用户id

(3.)提交修改,设置点击事件,连接提交修改的接口

2.script

(1.)变量的设置,定义变量接收输入框修改的用户信息数组。 

(2.)点击事件,连接接口。获取用户ID,提交修改。

3.路由的配置

import add   from "../pages/admin/goods_add"   //第一个add是指针,要和compoent的一致,第二个add是.vue文件的名字

const routes = [{
path: "/main", component: Main, children:

[{path: "/main/Goods_add", component: add},]//第一个Goods_add是网址的名字,第二个是指针

},]//这里是子路由
 

最后,完整代码

<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/element-ui@2.14.1/lib/index.js"></script>
<template>
  <div>
    <div class="usermange">用户管理</div>
    <div style="display: flex">
      <el-form label-width="180px">
        <el-form-item label="根据用户id查找用户信息:">
          <el-input v-model="ida"></el-input>
        </el-form-item>
      </el-form>
      <el-button
        type="primary"
        @click="suos()"
        style="height: 40px; margin-left: 10px"
        >搜索</el-button
      >
    </div>
    <div style="display:flex">
      <el-form  label-width="180px">
        <el-form-item label="修改用户名字:">
          <el-input v-model="updataUser.name"></el-input>
        </el-form-item>
      </el-form>
               <el-button
        type="primary"
        @click="toupdataname()"
        style="height: 40px; margin-left: 10px"
        >提交修改</el-button
      >
    </div>
    <!-- 第一个显示为真 -->
    <div v-if="one">
      <el-table :data="userList" border style="width: 100%">
        <el-table-column prop="id" label="编号" width="180"> </el-table-column>
        <el-table-column
          prop="name"
          label="用户名"
          width="180"
        ></el-table-column>
        <el-table-column prop="phone" label="电话"> </el-table-column>
        <el-table-column prop="createTime" label="创建时间">
          <!-- {{ filterTime }} -->
        </el-table-column>
        <el-table-column prop="lastLoginTime" label="最后一次登录时间">
          <!-- {{ filterTime }} -->
        </el-table-column>
        <el-table-column prop="email" label="邮箱"> </el-table-column>
        <el-table-column prop="pwd" label="密码"> </el-table-column>
        <el-table-column prop="money" label="余额"> </el-table-column>
        <el-table-column prop="" label="操作">
        <template slot-scope="scope">
          <el-button type="primary" plain @click="updata(scope.row.id)">修改</el-button>
   </template>
        </el-table-column>
      </el-table>
    </div>

    <!-- 第2个显示为假 -->
    <div v-if="two">
      <el-table :data="ccc" border style="width: 100%">
        <el-table-column prop="id" label="编号" width="180"> </el-table-column>
        <el-table-column
          prop="name"
          label="用户名"
          width="180"
        ></el-table-column>
        <el-table-column prop="phone" label="电话"> </el-table-column>
        <el-table-column prop="createTime" label="创建时间">
          <!-- {{ filterTime }} -->
        </el-table-column>
        <el-table-column prop="lastLoginTime" label="最后一次登录时间">
          <!-- {{ filterTime }} -->
        </el-table-column>
        <el-table-column prop="email" label="邮箱"> </el-table-column>
        <el-table-column prop="pwd" label="密码"> </el-table-column>
        <el-table-column prop="money" label="余额"> </el-table-column>
      </el-table>
    </div>
    <div style="margin-top: 30px">
      <!-- 标签页 -->
      <el-pagination
        background
        :page-size="pagesize"
        layout="prev, pager, next"
        :total="total"
        @current-change="handleCurrentChange"
      >
      </el-pagination>
    </div>
  </div>
</template>


<script>
export default {
  data() {
    return {
      one: true,
      two: false,
      userList: [],
      ida: "",
      id: 0,
      keyword: "",
      pagenum: 1, //默认第一页
      pagesize: 10, //限制有几个显示
      pages: 0,
      total: 0,
      updataUser: {},
      // 接收修改的用户名字
      ccc: [],
      // filterTime:"",
    };
  },
  created() {
    // created()是初始化程序,就是一打开界面就执行的内容
    this.loadUserList(); //一开始就调用
  },
  methods: {
    handleCurrentChange(val) {
      this.pagenum = val;
      this.loadUserList();
    },

    // 获取用户id,然后修改用户名字
    updata(id) {
      var that = this; //方便指对象
      this.axios //axios的接口的调用,根据接口要求进行数据的接收
        .get(`/user/loadById/${id}`)
        .then(function (response) {
          console.log(response);
          that.updataUser = response.data.data;
        });
    },

    toupdataname() {
      // 修改用户名字
      var that = this;
      this.axios
        .post(`/user/update/`,this.updataUser, {
          headers: {
            adminToken: that.common.token, //根据接口要求,填写要传的参数
          },
        })
        .then(function (response) {
          // this.three = true;
          console.log(response); //在控制台输出接收到的信息,response是从服务器接收到的信息,自定义的名字
          that.loadUserList(); //5执行列表的循环输出
          alert("成功修改名字!");
        });
    },
    suos() {
      var that = this;
      this.axios.get(`/user/loadById/${this.ida}`).then(function (response) {
        console.log(response);
        that.ccc = [response.data.data];
        that.one = false;
        that.two = true;

        // this.loadUserList();
      });
    },
    // filters: {
    //   filterTime(val) {
    //     let d = new Date(val);
    //     return d.toLocaleString();
    //   },
    // },

    loadUserList() {
      //显示列表
      var that = this;
      //访问上面的数组,就是把上面之前的东西赋值到that上,就不需要再引入一遍,只需要that即可指到之前的对象
      this.axios
        .get(
          `/user/list/${this.pagenum}/${this.pagesize}?keyword=${this.keyword}`
        )
        //axios.get方式传参。这里注意是`,pagenum是参数,所以上面要先定义
        //${this.}是拼装
        // 这里要传什么内容主要是看接口要传什么内容
        .then(function (response) {
          console.log(response);
          that.userList = response.data.data.records;
          that.pages = response.data.data.pages;
          that.total = response.data.data.total;
          // 因为上面有var that =this;所以这里用that来指数组,至于要怎么.data要看控制台传过来的服务器有几层
        });
    },
  },
};
</script>

<style>
.usermange {
  margin: 30px;
  font-size: 25px;
}
.rightnr {
  text-align: right;
  height: 40px;
  background-color: #f3f3f3;
  width: 100%;
}
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值