|
|
@@ -1,21 +1,16 @@
|
|
|
<template>
|
|
|
<PageWrapper>
|
|
|
- <el-card :bordered="false" class="proCard">
|
|
|
- <el-table :data="tableData" row-key="id" :tree-props="treeProps" default-expand-all>
|
|
|
- <el-table-column label="组织名称">
|
|
|
- <template #default="{ row }">
|
|
|
- {{ `${row.deptName} (${row.userCount})` }}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- </el-card>
|
|
|
- <CreateDrawer_shangfei
|
|
|
- ref="createDrawerRef"
|
|
|
- :title="drawerTitle"
|
|
|
- :deptList="tableData"
|
|
|
- @change="reloadTable"
|
|
|
- v-if="disableDepartmentEdit"
|
|
|
- />
|
|
|
+ <div class="search"
|
|
|
+ ><span class="searchLabel"> 搜索:</span><el-input v-model="searchKey" placeholder="请输入关键字进行搜索" />
|
|
|
+ </div>
|
|
|
+ <el-table :data="filterData" row-key="id" :tree-props="treeProps" default-expand-all>
|
|
|
+ <el-table-column label="组织名称">
|
|
|
+ <template #default="{ row }">
|
|
|
+ {{ `${row.deptName} (${row.userCount})` }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+
|
|
|
<CreateDrawer
|
|
|
ref="createDrawerRef"
|
|
|
:title="drawerTitle"
|
|
|
@@ -23,28 +18,24 @@
|
|
|
:data-source="currentDept"
|
|
|
:width="450"
|
|
|
@change="reloadTable"
|
|
|
- v-else
|
|
|
/>
|
|
|
</PageWrapper>
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
- import { onMounted, reactive, ref } from 'vue';
|
|
|
+ import { computed, onMounted, reactive, ref } from 'vue';
|
|
|
import { PageWrapper } from '@/components/Page';
|
|
|
import { getAllDepartments } from '@/api/auth/dept';
|
|
|
import CreateDrawer from './CreateDrawer.vue';
|
|
|
- import CreateDrawer_shangfei from './CreateDrawer-shangfei.vue';
|
|
|
- import { useGlobSetting } from '@/hooks/setting';
|
|
|
- import type { DeptTreeItem } from '@/types/dept/type';
|
|
|
-
|
|
|
- const globSetting = useGlobSetting();
|
|
|
- const disableDepartmentEdit = globSetting.disableDepartmentEdit;
|
|
|
+ import type { DeptTree, DeptTreeItem } from '@/types/dept/type';
|
|
|
+ import { filterTree } from '@/utils/tree';
|
|
|
|
|
|
- const tableData = ref<any[]>([]);
|
|
|
+ const tableData = ref<DeptTree[]>([]);
|
|
|
const treeProps = reactive({
|
|
|
checkStrictly: false,
|
|
|
});
|
|
|
const createDrawerRef = ref();
|
|
|
+ const searchKey = ref('');
|
|
|
const drawerTitle = ref('添加部门');
|
|
|
const currentDept = ref<DeptTreeItem>({
|
|
|
id: null,
|
|
|
@@ -65,6 +56,13 @@
|
|
|
tableData.value = result;
|
|
|
};
|
|
|
|
|
|
+ const filterData = computed(() => {
|
|
|
+ if (!searchKey.value) {
|
|
|
+ return tableData.value;
|
|
|
+ }
|
|
|
+ return filterTree({ nodes: tableData.value, value: searchKey.value, key: 'deptName' });
|
|
|
+ });
|
|
|
+
|
|
|
function reloadTable() {
|
|
|
loadDataTable();
|
|
|
}
|
|
|
@@ -96,4 +94,12 @@
|
|
|
.el-space__item:hover {
|
|
|
cursor: pointer;
|
|
|
}
|
|
|
+ .search {
|
|
|
+ margin: 20px;
|
|
|
+ width: 300px;
|
|
|
+ display: flex;
|
|
|
+ .searchLabel {
|
|
|
+ width: 65px;
|
|
|
+ }
|
|
|
+ }
|
|
|
</style>
|