user.vue 2.12 KB
<script setup lang="ts">
import { reactive, onMounted } from "vue";
import { useRoute } from 'vue-router';
import { roleUser } from "@/api/user/role";
import { back } from '@/utils/tool';
import Pagination from "@/components/Pagination/index.vue";
interface Form {
  page: number;
  pageSize: number;
  roleId: string | number;
}
interface Params {
  total: number;
  query: Form;
}
interface Data {
  loading: boolean;
  list: any[] | null;
  params: Params;
}
let data: Data = reactive({
  list: [],
  loading: false,
  params: {
    total: 0,
    query: {
      page: 1,
      pageSize: 10,
      roleId: '',
    },
  },
});
/**
 * 状态值
 */
enum statusEnum {
  "禁用" = 0,
  "启用",
}
/**
 * 列表
 */
const getList = async () => {
  data.loading = true;
  try {
    const res = await roleUser(data.params.query);
    data.list = res?.data?.data?.list;
    data.params.total = res?.data?.data?.total;
  } catch (e) {
    console.log(e);
  } finally {
    data.loading = false;
  }
};
onMounted(() => {
  data.params.query.roleId = useRoute().query.id;
  getList();
});
</script>

<template>
  <div class="page-container">
    <h1>角色用户</h1>
    <el-row style="padding-bottom: 20px">
      <el-button type="info" @click="back">返回</el-button>
    </el-row>
    <el-table
      :data="data.list"
      style="width: 100%"
      border
      v-loading="data.loading"
      align="center"
      element-loading-text="拼命加载中"
    >
      <el-table-column prop="id" label="ID" align="center"> </el-table-column>
      <el-table-column prop="userName" label="用户名称" align="center">
      </el-table-column>
      <el-table-column prop="cellphone" label="手机号码" align="center">
      </el-table-column>
      <el-table-column prop="status" label="状态" align="center">
        <template #default="scope">
          {{ statusEnum[scope.row.status] }}
        </template>
      </el-table-column>
    </el-table>
    <Pagination
      :total="data.params.total"
      v-model:currentPage="data.params.query.page"
      v-model:pageSize="data.params.query.pageSize"
      @pageChange="getList"
    ></Pagination>
  </div>
</template>