|
@@ -4,6 +4,7 @@
|
|
|
:deep(.el-card__body) {
|
|
:deep(.el-card__body) {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
flex-direction: column;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
flex: 1;
|
|
flex: 1;
|
|
|
overflow: auto;
|
|
overflow: auto;
|
|
|
|
|
|
|
@@ -26,196 +27,145 @@
|
|
|
<template>
|
|
<template>
|
|
|
<div class="system-container layout-padding">
|
|
<div class="system-container layout-padding">
|
|
|
<el-card shadow="hover" class="layout-padding-auto">
|
|
<el-card shadow="hover" class="layout-padding-auto">
|
|
|
- <ext-query-form
|
|
|
|
|
- class="page-search"
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ <el-form
|
|
|
|
|
+ :model="state.formQuery"
|
|
|
ref="queryRef"
|
|
ref="queryRef"
|
|
|
- v-model="state.formQuery"
|
|
|
|
|
- :columns="state.columns"
|
|
|
|
|
- :import-config="state.importConfig"
|
|
|
|
|
- :export-config="state.exportConfig"
|
|
|
|
|
- @on-change="loadData(true)"
|
|
|
|
|
- @imported="loadData(true)">
|
|
|
|
|
- <!-- <template #extraQuery></template>
|
|
|
|
|
- <template #extraLeft></template>
|
|
|
|
|
- <template #extraRight></template>-->
|
|
|
|
|
- <template #extraLeft>
|
|
|
|
|
- <ext-button name="创建"
|
|
|
|
|
- auth="'department.add'" icon="ele-FolderAdd"
|
|
|
|
|
- size="default" type="success"
|
|
|
|
|
- class="ml10" @click="onRowClick('add',null)"/>
|
|
|
|
|
|
|
+ size="default" label-width="0px" class="mt5 mb5">
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ v-model="state.formQuery.username"
|
|
|
|
|
+ placeholder="用户名"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ @blur="loadData(true)"
|
|
|
|
|
+ class="wd150 mr10">
|
|
|
|
|
+ </el-input>
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ v-model="state.formQuery.nickname"
|
|
|
|
|
+ placeholder="昵称"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ @blur="loadData(true)"
|
|
|
|
|
+ class="wd150 mr10">
|
|
|
|
|
+ </el-input>
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ v-model="state.formQuery.mobilePhone"
|
|
|
|
|
+ placeholder="手机号"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ @blur="loadData(true)"
|
|
|
|
|
+ class="wd150 mr10">
|
|
|
|
|
+ </el-input>
|
|
|
|
|
+
|
|
|
|
|
+ <ext-d-select
|
|
|
|
|
+ v-model="state.formQuery.status"
|
|
|
|
|
+ placeholder="状态"
|
|
|
|
|
+ type="AdminUser.status"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ @on-change="loadData(true)"
|
|
|
|
|
+ class="wd150 mr10"/>
|
|
|
|
|
+<!-- <el-input-->
|
|
|
|
|
+<!-- v-model="state.formQuery.status"-->
|
|
|
|
|
+<!-- placeholder="状态"-->
|
|
|
|
|
+<!-- clearable-->
|
|
|
|
|
+<!-- @blur="loadData(true)"-->
|
|
|
|
|
+<!-- class="wd150 mr10">-->
|
|
|
|
|
+<!-- </el-input>-->
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ <el-button class="ml10" plain size="default" type="success" @click="loadData(true)">
|
|
|
|
|
+ <SvgIcon name="ele-Search"/>
|
|
|
|
|
+ 查询
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+ </el-form>
|
|
|
|
|
+
|
|
|
|
|
+ <el-table
|
|
|
|
|
+ border
|
|
|
|
|
+ stripe="stripe"
|
|
|
|
|
+ :height="state.tableData.height"
|
|
|
|
|
+ highlight-current-row
|
|
|
|
|
+ current-row-key="id"
|
|
|
|
|
+ row-key="id"
|
|
|
|
|
+ :data="state.tableData.data"
|
|
|
|
|
+ v-loading="state.tableData.loading"
|
|
|
|
|
+ @selection-change="handleTableSelectionChange"
|
|
|
|
|
+ @sort-change="handleTableSortChange">
|
|
|
|
|
+ <template #empty>
|
|
|
|
|
+ <el-empty></el-empty>
|
|
|
</template>
|
|
</template>
|
|
|
- </ext-query-form>
|
|
|
|
|
-
|
|
|
|
|
- <el-row :gutter="20">
|
|
|
|
|
- <el-col :span="6">
|
|
|
|
|
- <el-input size="default" v-model="state.filterText" placeholder="所属部门"/>
|
|
|
|
|
- <el-tree-v2
|
|
|
|
|
- ref="treeRef"
|
|
|
|
|
- class="filter-tree"
|
|
|
|
|
- :data="state.treeData"
|
|
|
|
|
- :props="{ children: 'children', label: 'name'}"
|
|
|
|
|
- highlight-current
|
|
|
|
|
- :default-expand-all="true"
|
|
|
|
|
- :filter-node-method="filterNode"
|
|
|
|
|
- @node-click="handleNodeClick"
|
|
|
|
|
- />
|
|
|
|
|
- </el-col>
|
|
|
|
|
- <el-col :span="18">
|
|
|
|
|
- <ext-table
|
|
|
|
|
- class="page-content"
|
|
|
|
|
- :height="state.tableHeight"
|
|
|
|
|
- :data-list="state.tableData.data"
|
|
|
|
|
- :columns="state.columns"
|
|
|
|
|
- :border="true"
|
|
|
|
|
- :selectable="true"
|
|
|
|
|
- :loading="state.tableData.loading">
|
|
|
|
|
- </ext-table>
|
|
|
|
|
-
|
|
|
|
|
- <!-- <el-affix position="bottom" :offset="48">-->
|
|
|
|
|
- <ext-page class="page-pager" v-model:value="state.pageQuery" @change="loadData(false)"/>
|
|
|
|
|
- <!-- </el-affix>-->
|
|
|
|
|
- </el-col>
|
|
|
|
|
- </el-row>
|
|
|
|
|
-
|
|
|
|
|
|
|
+ <el-table-column
|
|
|
|
|
+ v-for="field in state.tableData.columns"
|
|
|
|
|
+ :key="field.prop"
|
|
|
|
|
+ :label="field.label"
|
|
|
|
|
+ :column-key="field.prop"
|
|
|
|
|
+ :width="field.width"
|
|
|
|
|
+ :min-width="field.minWidth"
|
|
|
|
|
+ :fixed="field.fixed"
|
|
|
|
|
+ :sortable="field.sortable"
|
|
|
|
|
+ :show-overflow-tooltip="!field.fixed&&field.width>150"
|
|
|
|
|
+ >
|
|
|
|
|
+ <template #default="{row}">
|
|
|
|
|
+ <template v-if="field.prop==='expand'">
|
|
|
|
|
+ <p style="padding-left: 2em;" v-html="row[field.prop]"></p>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <template v-else-if="'status'===field.prop">
|
|
|
|
|
+ <ext-d-label type="AdminUser.status" v-model="row[field.prop]"/>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <template v-else>
|
|
|
|
|
+ <div>{{row[field.prop]}}</div>
|
|
|
|
|
+ </template>
|
|
|
|
|
+
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ </el-table>
|
|
|
|
|
+
|
|
|
|
|
+ <ext-page class="page-pager" v-model:value="state.pageQuery" @change="loadData(false)"/>
|
|
|
</el-card>
|
|
</el-card>
|
|
|
</div>
|
|
</div>
|
|
|
- <UserDialog ref="userDialogRef" @refresh="loadData(true)"/>
|
|
|
|
|
|
|
+ <AdminUserDialog ref="adminUserDialogRef" @refresh="loadData(true)"/>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
-<script setup lang="ts" name="UserList">
|
|
|
|
|
-import {watch, defineAsyncComponent, getCurrentInstance, nextTick, onBeforeMount, onMounted, reactive, ref} from 'vue';
|
|
|
|
|
-import {$body, $get} from "/@/utils/request";
|
|
|
|
|
-import u from '/@/utils/u'
|
|
|
|
|
|
|
+<script setup lang="ts" name="AdminUserList">
|
|
|
|
|
+import {defineAsyncComponent, reactive, onMounted, onBeforeMount, ref, getCurrentInstance, nextTick, onBeforeUnmount} from 'vue';
|
|
|
|
|
+import {$body,$get} from "/@/utils/request";
|
|
|
import {Msg} from "/@/utils/message";
|
|
import {Msg} from "/@/utils/message";
|
|
|
-import {Session} from "/@/utils/storage";
|
|
|
|
|
-import ExtButton from '/@/components/form/ExtButton.vue'
|
|
|
|
|
-import ExtPage from '/@/components/form/ExtPage.vue'
|
|
|
|
|
-import ExtQueryForm from "/@/components/form/ExtQueryForm.vue";
|
|
|
|
|
-import ExtTable from "/@/components/form/ExtTable.vue";
|
|
|
|
|
|
|
|
|
|
-import {ElButton, ElTree, ElTag} from 'element-plus'
|
|
|
|
|
|
|
|
|
|
-const {proxy}: any = getCurrentInstance();
|
|
|
|
|
|
|
+import ExtPage from '/@/components/form/ExtPage.vue'
|
|
|
|
|
|
|
|
|
|
+import mittBus from '/@/utils/mitt';
|
|
|
|
|
+import ExtDSelect from "/@/components/form/ExtDSelect.vue";
|
|
|
|
|
+import ExtDLabel from "/@/components/form/ExtDLabel.vue";
|
|
|
|
|
|
|
|
-const UserDialog = defineAsyncComponent(() => import("/@/views/admin/user/dialog.vue"));
|
|
|
|
|
|
|
+const AdminUserDialog = defineAsyncComponent(() => import("/@/views/page/AdminUserDialog.vue"));
|
|
|
|
|
|
|
|
//定义引用
|
|
//定义引用
|
|
|
const queryRef = ref();
|
|
const queryRef = ref();
|
|
|
-const userDialogRef = ref();
|
|
|
|
|
-const treeRef = ref<InstanceType<typeof ElTree>>()
|
|
|
|
|
|
|
+const adminUserDialogRef = ref();
|
|
|
|
|
+
|
|
|
//定义变量
|
|
//定义变量
|
|
|
const state = reactive({
|
|
const state = reactive({
|
|
|
- treeData: [],
|
|
|
|
|
- filterText: null,
|
|
|
|
|
- formQuery: {
|
|
|
|
|
- departmentId: null
|
|
|
|
|
- },
|
|
|
|
|
|
|
+ formQuery: {},
|
|
|
pageQuery: {
|
|
pageQuery: {
|
|
|
- pageIndex: 1,
|
|
|
|
|
|
|
+ pageNum: 1,
|
|
|
pageSize: 10,
|
|
pageSize: 10,
|
|
|
total: 0
|
|
total: 0
|
|
|
},
|
|
},
|
|
|
tableData: {
|
|
tableData: {
|
|
|
- data: [] as Array<any>,
|
|
|
|
|
- loading: false
|
|
|
|
|
- },
|
|
|
|
|
- importConfig: {},
|
|
|
|
|
- exportConfig: {},
|
|
|
|
|
- columns: [
|
|
|
|
|
- {label: '头像', prop: 'avatar', query: false, type: 'avatar', resizable: true},
|
|
|
|
|
- {
|
|
|
|
|
- label: '用户名', prop: 'userName', query: true, type: "text", resizable: true,
|
|
|
|
|
- render: (h: any, row: any) => {
|
|
|
|
|
- return h('div', null, [
|
|
|
|
|
- h('div', {
|
|
|
|
|
- style: {
|
|
|
|
|
- cursor: 'pointer',
|
|
|
|
|
- color: 'var(--el-color-primary-light-1)'
|
|
|
|
|
- },
|
|
|
|
|
- onClick: () => {
|
|
|
|
|
- onRowClick('view', row)
|
|
|
|
|
- }
|
|
|
|
|
- }, row.userName)])
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
- {label: '姓名', prop: 'name', query: true, type: 'text', resizable: true},
|
|
|
|
|
- {label: '手机号', prop: 'mobile', query: true, type: 'text', resizable: true},
|
|
|
|
|
- {label: '邮箱', prop: 'email', query: true, type: 'text', resizable: true},
|
|
|
|
|
- {
|
|
|
|
|
- label: '部门', prop: 'departmentId', query: true, type: 'dept', resizable: true,
|
|
|
|
|
- render: (h: any, row: any) => {
|
|
|
|
|
- return h('div', null,
|
|
|
|
|
- row.deptList?row.deptList.map((k: any) => h(ElTag, {
|
|
|
|
|
- type: 'primary'
|
|
|
|
|
- }, k.name)):'')
|
|
|
|
|
|
|
+ height: 500,
|
|
|
|
|
+ data: [] as Array < any >,
|
|
|
|
|
+ loading: false,
|
|
|
|
|
+ columns: [
|
|
|
|
|
+ {label: '用户名', prop: 'username',width:120, resizable: true, fixed: 'left'},
|
|
|
|
|
+ {label: '昵称', prop: 'nickname',width:180, resizable: true},
|
|
|
|
|
+ {label: '手机号', prop: 'mobilePhone', width:130,resizable: true},
|
|
|
|
|
+ {label: '状态', prop: 'status', sortable: 'custom', width:130,align: 'center'},
|
|
|
|
|
+ {label: '最后登录时间', prop: 'lastLoginTime', width:180,sortable: 'custom', resizable: true},
|
|
|
|
|
+ {label: '创建时间', prop: 'createTime', width:180,sortable: 'custom', resizable: true},
|
|
|
|
|
+ {
|
|
|
|
|
+ label: '操作', prop: 'action', width: 180, align: 'center', fixed: 'right',
|
|
|
}
|
|
}
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- label: '角色', prop: 'roleId', query: true, type: 'select', resizable: true, conf: {url: 'entity/list', query: {entity: 'role'}},
|
|
|
|
|
- render: (h: any, row: any) => {
|
|
|
|
|
- return h('div', null,
|
|
|
|
|
- row.roleList?row.roleList.map((k: any) => h(ElTag, {
|
|
|
|
|
- type: 'success'
|
|
|
|
|
- }, k.name)):'')
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- label: '岗位', prop: 'postId', query: true, type: 'text', resizable: true, conf: {url: 'entity/list', query: {entity: 'post'}},
|
|
|
|
|
- render: (h: any, row: any) => {
|
|
|
|
|
- return h('div', null,
|
|
|
|
|
- row.postList ? row.postList.map((k: any) => h(ElTag, {
|
|
|
|
|
- type: 'danger'
|
|
|
|
|
- }, k.name)) : '')
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
-
|
|
|
|
|
- {label: '工号', prop: 'code', width: 150, query: true, type: 'text', resizable: true},
|
|
|
|
|
- {label: '是否删除', prop: 'deleted', query: true, type: 'bool'},
|
|
|
|
|
- {label: '登录ip', prop: 'ip', width: 150, query: false, type: 'text', resizable: true},
|
|
|
|
|
- {label: '职业信息', prop: 'job', query: false, type: 'text', resizable: true},
|
|
|
|
|
- {label: '上次登录时间', prop: 'lastLoginAt', width: 180, query: true, type: 'datetime', resizable: true, conf: {format: (val: any) => u.fmt.fmtDateTime(val)}},
|
|
|
|
|
- {label: '用户状态', prop: 'status', width: 150, sortable: 'custom', align: 'center', query: true, type: 'dict', conf: {dict: 'User.status'}},
|
|
|
|
|
- {label: '创建时间', prop: 'createAt', query: true, type: 'datetime', resizable: true, conf: {format: (val: any) => u.fmt.fmtDate(val)}},
|
|
|
|
|
- {label: '更新时间', prop: 'updateAt', query: true, type: 'datetime', resizable: true, conf: {format: (val: any) => u.fmt.fmtDate(val)}},
|
|
|
|
|
- {
|
|
|
|
|
- label: '操作', prop: 'action', width: 180, type: 'render', align: 'center', fixed: 'right',
|
|
|
|
|
- render: (h: any, row: any) => {
|
|
|
|
|
- return (
|
|
|
|
|
- h('div', null, [
|
|
|
|
|
- (proxy.$auth('user.modify')) ?
|
|
|
|
|
- h(ElButton, {
|
|
|
|
|
- type: 'warning',
|
|
|
|
|
- size: 'default',
|
|
|
|
|
- text: true,
|
|
|
|
|
- onClick: () => {
|
|
|
|
|
- onRowClick('edit', row)
|
|
|
|
|
- }
|
|
|
|
|
- }, () => '编辑') : '',
|
|
|
|
|
- (proxy.$auth('user.remove')) ?
|
|
|
|
|
- h(ElButton, {
|
|
|
|
|
- type: 'danger',
|
|
|
|
|
- text: true,
|
|
|
|
|
- onClick() {
|
|
|
|
|
- onRowDel(row)
|
|
|
|
|
- }
|
|
|
|
|
- }, () => '重置密码') : '',
|
|
|
|
|
- ])
|
|
|
|
|
- )
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- ],
|
|
|
|
|
- tableHeight: 500
|
|
|
|
|
-})
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-interface Tree {
|
|
|
|
|
- [key: string]: any
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-watch(() => state.filterText, (val) => {
|
|
|
|
|
- treeRef.value!.filter(val)
|
|
|
|
|
|
|
+ ],
|
|
|
|
|
+ },
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
@@ -229,29 +179,24 @@ watch(() => state.filterText, (val) => {
|
|
|
|
|
|
|
|
//生命周期钩子
|
|
//生命周期钩子
|
|
|
onBeforeMount(() => {
|
|
onBeforeMount(() => {
|
|
|
- let token = Session.get("token")
|
|
|
|
|
- let encodeToken = encodeURIComponent(token)
|
|
|
|
|
- let exportUrl = `poi/export?type=user&X-Token=${encodeToken}`
|
|
|
|
|
- //导入导出参数配置
|
|
|
|
|
- state.importConfig = {
|
|
|
|
|
- auths: ['user.add'],
|
|
|
|
|
- url: `poi/import?type=user&X-Token=${encodeToken}`,
|
|
|
|
|
- template: `${exportUrl}&isTemplate=true`
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- state.exportConfig = {url: exportUrl,}
|
|
|
|
|
-
|
|
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
|
loadData();
|
|
loadData();
|
|
|
- loadTreeData()
|
|
|
|
|
|
|
|
|
|
nextTick(() => {
|
|
nextTick(() => {
|
|
|
let bodyHeight = document.body.clientHeight;
|
|
let bodyHeight = document.body.clientHeight;
|
|
|
let queryHeight = queryRef.value.$el.clientHeight;
|
|
let queryHeight = queryRef.value.$el.clientHeight;
|
|
|
- state.tableHeight = bodyHeight - queryHeight - 220
|
|
|
|
|
|
|
+ state.tableData.height = bodyHeight - queryHeight - 220
|
|
|
})
|
|
})
|
|
|
|
|
+
|
|
|
|
|
+ mittBus.on("adminUser.refresh", () => {
|
|
|
|
|
+ loadData();
|
|
|
|
|
+ })
|
|
|
|
|
+});
|
|
|
|
|
+
|
|
|
|
|
+onBeforeUnmount(() => {
|
|
|
|
|
+ mittBus.off("adminUser.refresh")
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
@@ -259,13 +204,13 @@ onMounted(() => {
|
|
|
// 初始化表格数据
|
|
// 初始化表格数据
|
|
|
const loadData = (refresh: boolean = false) => {
|
|
const loadData = (refresh: boolean = false) => {
|
|
|
if (refresh) {
|
|
if (refresh) {
|
|
|
- state.pageQuery.pageIndex = 1;
|
|
|
|
|
|
|
+ state.pageQuery.pageNum = 1;
|
|
|
}
|
|
}
|
|
|
state.tableData.loading = true;
|
|
state.tableData.loading = true;
|
|
|
- $body(`/user/list`, {...state.formQuery, ...state.pageQuery}).then((res: any) => {
|
|
|
|
|
- let {list, count} = res;
|
|
|
|
|
|
|
+ $get(`/admin-user/listAdminUser`, {...state.formQuery, ...state.pageQuery}).then((res: any) => {
|
|
|
|
|
+ let {list, total} = res;
|
|
|
state.tableData.data = list;
|
|
state.tableData.data = list;
|
|
|
- state.pageQuery.total = count;
|
|
|
|
|
|
|
+ state.pageQuery.total = total;
|
|
|
state.tableData.loading = false;
|
|
state.tableData.loading = false;
|
|
|
}).catch(e => {
|
|
}).catch(e => {
|
|
|
console.error(e)
|
|
console.error(e)
|
|
@@ -275,12 +220,13 @@ const loadData = (refresh: boolean = false) => {
|
|
|
|
|
|
|
|
// 打开修改用户弹窗
|
|
// 打开修改用户弹窗
|
|
|
const onRowClick = (type: string, row: any) => {
|
|
const onRowClick = (type: string, row: any) => {
|
|
|
- userDialogRef.value.open(type, row);
|
|
|
|
|
|
|
+ adminUserDialogRef.value.open(type, row);
|
|
|
};
|
|
};
|
|
|
|
|
+
|
|
|
// 删除用户
|
|
// 删除用户
|
|
|
const onRowDel = (row: any) => {
|
|
const onRowDel = (row: any) => {
|
|
|
Msg.confirm(`此操作将永久删除:『${row.name}』,是否继续?`).then(() => {
|
|
Msg.confirm(`此操作将永久删除:『${row.name}』,是否继续?`).then(() => {
|
|
|
- $get(`/user/delete/${row.id}`).then(() => {
|
|
|
|
|
|
|
+ $get(`/adminUser/delete/${row.id}`).then(() => {
|
|
|
Msg.message("删除成功", 'success')
|
|
Msg.message("删除成功", 'success')
|
|
|
}).catch(() => {
|
|
}).catch(() => {
|
|
|
Msg.message("删除失败", 'error')
|
|
Msg.message("删除失败", 'error')
|
|
@@ -288,33 +234,16 @@ const onRowDel = (row: any) => {
|
|
|
});
|
|
});
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-const filterNode = (value: string, data: Tree) => {
|
|
|
|
|
- if (!value) return true
|
|
|
|
|
- return data.name.includes(value)
|
|
|
|
|
|
|
+const handleTableSelectionChange = (selection: any) => {
|
|
|
|
|
+ console.log("handleTableSelectionChange>>", selection)
|
|
|
|
|
+ // emit("on-check-change", selection)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-const handleNodeClick = (data: any) => {
|
|
|
|
|
- console.log(data)
|
|
|
|
|
- if (data) {
|
|
|
|
|
- if (state.formQuery.departmentId === data.id) {
|
|
|
|
|
- state.formQuery.departmentId = null;
|
|
|
|
|
- treeRef.value?.setCurrentKey(null)
|
|
|
|
|
- } else {
|
|
|
|
|
- state.formQuery.departmentId = data.id;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- loadData();
|
|
|
|
|
|
|
+const handleTableSortChange = (column, prop, order) => {
|
|
|
|
|
+ console.log("handleTableSortChange>>", column, prop, order)
|
|
|
|
|
+ // emit("on-sort-change", column)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-const loadTreeData = () => {
|
|
|
|
|
- state.tableData.loading = true;
|
|
|
|
|
- state.tableData.data = [];
|
|
|
|
|
- $body(`/department/tree`).then((res: any) => {
|
|
|
|
|
- state.treeData = res;
|
|
|
|
|
- })
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
//endregion
|
|
//endregion
|
|
|
|
|
|