|
|
@@ -9,27 +9,24 @@
|
|
|
|
|
|
<template v-slot:body>
|
|
|
<div class="form-layout-wp">
|
|
|
- <lay-form class="form-wp" :model="params" mode="inline">
|
|
|
- <lay-form-item label="用户名" prop="name">
|
|
|
- <lay-input v-model="params.name" />
|
|
|
- </lay-form-item>
|
|
|
- <lay-form-item label="账号" prop="account">
|
|
|
- <lay-input v-model="params.account" />
|
|
|
+ <lay-form class="form-wp" :model="pageParams" mode="inline">
|
|
|
+ <lay-form-item label="昵称" prop="name">
|
|
|
+ <lay-input v-model="pageParams.params.name" />
|
|
|
</lay-form-item>
|
|
|
<div class="form-button-wp">
|
|
|
- <lay-button>搜索</lay-button>
|
|
|
+ <lay-button @click="getPageInfo()">搜索</lay-button>
|
|
|
</div>
|
|
|
</lay-form>
|
|
|
</div>
|
|
|
<div>
|
|
|
- <lay-table :columns="columns" :data-source="dataSource">
|
|
|
+ <lay-table :columns="columns" :data-source="dataSource" :loading="pageInfo.loading">
|
|
|
<template v-slot:operator="{ row }">
|
|
|
<lay-space>
|
|
|
- <TableButton text="禁用" />
|
|
|
+ <TableButton :text="row.status == 0 ? '启用' : '禁用'" @click="handleStatus(row)" />
|
|
|
<TableButton text="编辑" @click="handleUpdate(row)" />
|
|
|
- <TableButton type="danger" text="删除" />
|
|
|
- <TableButton type="danger" text="重置密码"
|
|
|
- /></lay-space>
|
|
|
+ <TableButton type="danger" text="删除" @click="handleDelete(row)" />
|
|
|
+ <TableButton type="danger" text="重置密码" @click="handleResetPassword(row)" />
|
|
|
+ </lay-space>
|
|
|
</template>
|
|
|
</lay-table>
|
|
|
</div>
|
|
|
@@ -39,56 +36,109 @@
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
-import { ref, reactive } from "vue";
|
|
|
+import { ref, reactive, getCurrentInstance } from "vue";
|
|
|
import Update from "./components/Update.vue";
|
|
|
import TableButton from "@/components/TableButton.vue";
|
|
|
+import { get_user_list, delete_user, set_user_status, reset_user_password } from "@/api";
|
|
|
|
|
|
-const requestData = {
|
|
|
- data: {
|
|
|
- list: [
|
|
|
- {
|
|
|
- userId: "123",
|
|
|
- name: "admin",
|
|
|
- status: 1,
|
|
|
- account: "admin",
|
|
|
- groupNames: "第一组,第二组",
|
|
|
- groupIds: "1,2",
|
|
|
- },
|
|
|
- ],
|
|
|
- total: 11,
|
|
|
- pageNum: 1,
|
|
|
- pageSize: 10,
|
|
|
- pages: [1, 2],
|
|
|
- },
|
|
|
-};
|
|
|
-
|
|
|
+const { proxy }: any = getCurrentInstance();
|
|
|
const updateRef = ref();
|
|
|
|
|
|
+interface PageInfo {
|
|
|
+ loading: boolean;
|
|
|
+}
|
|
|
+
|
|
|
+let pageInfo: PageInfo = reactive({
|
|
|
+ loading: false,
|
|
|
+});
|
|
|
+
|
|
|
interface FormItem {
|
|
|
- name?: String;
|
|
|
- account?: String;
|
|
|
+ pageNum?: Number;
|
|
|
+ pageSize?: Number;
|
|
|
+ params: {
|
|
|
+ name?: String;
|
|
|
+ };
|
|
|
}
|
|
|
-const params: FormItem = reactive({});
|
|
|
+const pageParams: FormItem = reactive({ pageNum: 1, pageSize: 10, params: {} });
|
|
|
|
|
|
const columns = ref([
|
|
|
{ title: "昵称", width: "80px", key: "name", sort: "desc" },
|
|
|
{ title: "账号", width: "80px", key: "account", sort: "desc" },
|
|
|
{ title: "组织", width: "80px", key: "groupNames", sort: "desc" },
|
|
|
{ title: "状态", width: "80px", key: "status" },
|
|
|
- { title: "备注", width: "80px", key: "remake" },
|
|
|
+ { title: "备注", width: "80px", key: "remark", ellipsisTooltip: true},
|
|
|
{
|
|
|
title: "操作",
|
|
|
width: "150px",
|
|
|
customSlot: "operator",
|
|
|
key: "operator",
|
|
|
- fixed: "right",
|
|
|
ignoreExport: true,
|
|
|
},
|
|
|
]);
|
|
|
-const dataSource = ref(requestData.data.list);
|
|
|
+let dataSource = ref([]);
|
|
|
+
|
|
|
+const getPageInfo = () => {
|
|
|
+ // 请求用户列表
|
|
|
+ pageInfo.loading = true;
|
|
|
+ get_user_list(pageParams, (data: any) => {
|
|
|
+ pageInfo.loading = false;
|
|
|
+ if (data.code == 200) {
|
|
|
+ dataSource.value = data.data.list;
|
|
|
+ }
|
|
|
+ });
|
|
|
+};
|
|
|
+getPageInfo();
|
|
|
|
|
|
-const handleUpdate = (value?: any) => {
|
|
|
- updateRef.value.show(value);
|
|
|
+const handleUpdate = async (value?: any) => {
|
|
|
+ const result = await updateRef.value.show(value);
|
|
|
+ if (result) getPageInfo();
|
|
|
+};
|
|
|
+// 删除用户
|
|
|
+const handleDelete = async (value: any) => {
|
|
|
+ let result = await proxy.$waitingConfirm("是否确认删除该用户?");
|
|
|
+ if (!result) return;
|
|
|
+ let params = [value.userId];
|
|
|
+ pageInfo.loading = true;
|
|
|
+ delete_user(params, (data: any) => {
|
|
|
+ pageInfo.loading = false;
|
|
|
+ if (data.code == 200) {
|
|
|
+ console.log("删除成功");
|
|
|
+ getPageInfo();
|
|
|
+ }
|
|
|
+ });
|
|
|
+};
|
|
|
+// 修改用户状态
|
|
|
+const handleStatus = async (value: any) => {
|
|
|
+ let result = await proxy.$waitingConfirm(`是否确认${value.status == 0 ? "启用" : "禁用"}该用户?`);
|
|
|
+ if (!result) return;
|
|
|
+ let params = {
|
|
|
+ ids: [value.userId],
|
|
|
+ status: value.status == 0 ? 1 : 0,
|
|
|
+ };
|
|
|
+ pageInfo.loading = true;
|
|
|
+ set_user_status(params, (data: any) => {
|
|
|
+ pageInfo.loading = false;
|
|
|
+ if (data.code == 200) {
|
|
|
+ console.log("修改成功");
|
|
|
+ getPageInfo();
|
|
|
+ }
|
|
|
+ });
|
|
|
+};
|
|
|
+// 重置密码
|
|
|
+const handleResetPassword = async (value: any) => {
|
|
|
+ let result = await proxy.$waitingConfirm(`是否确认重置该用户密码?`);
|
|
|
+ if (!result) return;
|
|
|
+ let params = {
|
|
|
+ id: value.userId,
|
|
|
+ };
|
|
|
+ pageInfo.loading = true;
|
|
|
+ reset_user_password(params, (data: any) => {
|
|
|
+ pageInfo.loading = false;
|
|
|
+ if (data.code == 200) {
|
|
|
+ console.log("重置成功");
|
|
|
+ getPageInfo();
|
|
|
+ }
|
|
|
+ });
|
|
|
};
|
|
|
</script>
|
|
|
|