使用axios获取token用户列表数据

这是一个关于Vue.js的示例代码,展示了如何创建一个带有搜索、数据表格、开关按钮和分页功能的界面。数据从API获取,并通过axios库进行请求。用户可以搜索姓名、切换用户状态,并通过分页浏览用户列表。
摘要由CSDN通过智能技术生成
<template>
  <div class="about">
    <!-- 搜索框 -->
    <header>
      <el-input
      v-model="search"
      size="mini"
      placeholder="输入关键字搜索"
      clearable
      style="height:40px;width:200px"
    />
    </header>
    
    <el-table
      :data="list.filter(data => !search || data.username.toLowerCase().includes(search.toLowerCase()))
    "
      border
      style="width: 100%"
    >
      <el-table-column type="index"></el-table-column>
      <el-table-column label="姓名" prop="username"></el-table-column>
      <el-table-column prop="email" label="邮箱"></el-table-column>
      <el-table-column property="mobile" label="电话"></el-table-column>
      <el-table-column property="role_name" label="角色"></el-table-column>
      <el-table-column label="状态">
        <template slot-scope="scope">
          <el-switch
            v-model="scope.row.mg_state"
            active-color="#13ce66"
            inactive-color="#ff4949"
            @change="change(scope.row.mg_state,scope.row.id)"
          ></el-switch>
        </template>
      </el-table-column>
      <el-table-column prop="address" label="操作">
         <el-button type="primary" icon="el-icon-edit" circle></el-button>
         <el-button type="danger" icon="el-icon-delete" circle></el-button>
         <el-button type="warning" icon="el-icon-star-off" circle></el-button>
      </el-table-column>
    </el-table>
    <el-pagination
      @current-change="currentchange"
      @size-change="handleSizeChange"
      :current-page="1"
      :page-sizes="[2, 4,]"
      :page-size="100"
      layout="total, sizes, prev, pager, next, jumper"
      :total="length"
    ></el-pagination>
  </div>
</template>

  </div>
</template>


<script>
export default {
  data() {
    return {
      list: [],
      search: "",
      length: 0,
    };
  },
  mounted() {
    this.$axios({
      method: "get",
      url: `https://www.liulongbin.top:8888/api/private/v1/users`,
      headers: {
        Authorization: localStorage.getItem("TOKEN"),
      },
      params: {
        pagesize: 2,
        pagenum: 1,
      },
    }).then((res) => {
      this.list = res.data.data.users;
      this.length = res.data.data.total;
      console.log(res);
    });
  },
  beforeRouteEnter(to, from, next) {
    // 在渲染该组件的对应路由被 confirm 前调用
    // 不!能!获取组件实例 `this`
    // 因为当守卫执行前,组件实例还没被创建
    let token = localStorage.getItem("TOKEN") === null;

    // console.log(token);

    if (token) {
      next({ path: "/" });
    } else {
      next();
    }
  },

  methods: {
    handleSizeChange(val) {
      this.$axios({
        method: "get",
        url: `https://www.liulongbin.top:8888/api/private/v1/users`,
        headers: {
          Authorization: localStorage.getItem("TOKEN"),
        },
        params: {
          pagesize: val,
          pagenum: 1,
        },
      }).then((res) => {
        this.list = res.data.data.users;
        console.log(res);
      });
    },
    // 分页器
    currentchange(page) {
      // console.log(page)
      console.log(page);
      this.$axios({
        method: "get",
        url: `https://www.liulongbin.top:8888/api/private/v1/users`,
        headers: {
          Authorization: localStorage.getItem("TOKEN"),
        },
        params: {
          pagesize: 2,
          pagenum: page,
        },
      }).then((res) => {
        this.list = res.data.data.users;
        console.log(res);
      });
    },
  },
};
</script>

<style scoped>
header {
  width: 80%;
  display: flex;
  justify-content: space-between;
}
</style>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

前端张子豪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值