mirror of
https://github.com/pure-admin/vue-pure-admin.git
synced 2025-06-06 00:18:51 +08:00
150 lines
3.8 KiB
Vue
150 lines
3.8 KiB
Vue
<script setup lang="ts">
|
|
import { useColumns } from "./columns";
|
|
import { getDeptList } from "/@/api/system";
|
|
import { FormInstance } from "element-plus";
|
|
import { handleTree } from "@pureadmin/utils";
|
|
import { reactive, ref, onMounted } from "vue";
|
|
import { TableProBar } from "/@/components/ReTable";
|
|
import { useRenderIcon } from "/@/components/ReIcon/src/hooks";
|
|
|
|
defineOptions({
|
|
name: "Dept"
|
|
});
|
|
|
|
const form = reactive({
|
|
user: "",
|
|
status: ""
|
|
});
|
|
let dataList = ref([]);
|
|
let loading = ref(true);
|
|
const { columns } = useColumns();
|
|
|
|
const formRef = ref<FormInstance>();
|
|
const tableRef = ref();
|
|
|
|
function handleUpdate(row) {
|
|
console.log(row);
|
|
}
|
|
|
|
function handleDelete(row) {
|
|
console.log(row);
|
|
}
|
|
|
|
function handleSelectionChange(val) {
|
|
console.log("handleSelectionChange", val);
|
|
}
|
|
|
|
async function onSearch() {
|
|
loading.value = true;
|
|
let { data } = await getDeptList();
|
|
dataList.value = handleTree(data as any);
|
|
setTimeout(() => {
|
|
loading.value = false;
|
|
}, 500);
|
|
}
|
|
|
|
const resetForm = (formEl: FormInstance | undefined) => {
|
|
if (!formEl) return;
|
|
formEl.resetFields();
|
|
onSearch();
|
|
};
|
|
|
|
onMounted(() => {
|
|
onSearch();
|
|
});
|
|
</script>
|
|
|
|
<template>
|
|
<div class="main">
|
|
<el-form
|
|
ref="formRef"
|
|
:inline="true"
|
|
:model="form"
|
|
class="bg-white dark:bg-dark w-[99/100] pl-8 pt-4"
|
|
>
|
|
<el-form-item label="部门名称:" prop="user">
|
|
<el-input v-model="form.user" placeholder="请输入部门名称" clearable />
|
|
</el-form-item>
|
|
<el-form-item label="状态:" prop="status">
|
|
<el-select v-model="form.status" placeholder="请选择状态" clearable>
|
|
<el-option label="开启" value="1" />
|
|
<el-option label="关闭" value="0" />
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-button
|
|
type="primary"
|
|
:icon="useRenderIcon('search')"
|
|
:loading="loading"
|
|
@click="onSearch"
|
|
>
|
|
搜索
|
|
</el-button>
|
|
<el-button :icon="useRenderIcon('refresh')" @click="resetForm(formRef)">
|
|
重置
|
|
</el-button>
|
|
</el-form-item>
|
|
</el-form>
|
|
|
|
<TableProBar
|
|
title="部门列表"
|
|
:loading="loading"
|
|
:tableRef="tableRef?.getTableRef()"
|
|
:dataList="dataList"
|
|
@refresh="onSearch"
|
|
>
|
|
<template #buttons>
|
|
<el-button type="primary" :icon="useRenderIcon('add')">
|
|
新增部门
|
|
</el-button>
|
|
</template>
|
|
<template v-slot="{ size, checkList }">
|
|
<PureTable
|
|
ref="tableRef"
|
|
border
|
|
align="center"
|
|
row-key="id"
|
|
table-layout="auto"
|
|
default-expand-all
|
|
:size="size"
|
|
:data="dataList"
|
|
:columns="columns"
|
|
:checkList="checkList"
|
|
:header-cell-style="{
|
|
background: 'var(--el-table-row-hover-bg-color)',
|
|
color: 'var(--el-text-color-primary)'
|
|
}"
|
|
@selection-change="handleSelectionChange"
|
|
>
|
|
<template #operation="{ row }">
|
|
<el-button
|
|
class="reset-margin"
|
|
link
|
|
type="primary"
|
|
:size="size"
|
|
@click="handleUpdate(row)"
|
|
:icon="useRenderIcon('edits')"
|
|
>
|
|
修改
|
|
</el-button>
|
|
<el-popconfirm title="是否确认删除?">
|
|
<template #reference>
|
|
<el-button
|
|
class="reset-margin"
|
|
link
|
|
type="primary"
|
|
:size="size"
|
|
:icon="useRenderIcon('delete')"
|
|
@click="handleDelete(row)"
|
|
>
|
|
删除
|
|
</el-button>
|
|
</template>
|
|
</el-popconfirm>
|
|
</template>
|
|
</PureTable>
|
|
</template>
|
|
</TableProBar>
|
|
</div>
|
|
</template>
|