123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- <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: ""
- });
- const dataList = ref([]);
- const 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;
- const { 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-bg_color 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>
|