|
@@ -3,137 +3,134 @@
|
|
|
<el-card shadow="never" class="h100">
|
|
|
<splitpanes class="h100" :horizontal="horizontal">
|
|
|
<pane min-size="16" max-size="25" size="16">
|
|
|
- <template v-if="userInfos.isCenter">
|
|
|
- <el-tabs v-model="state.activeName" stretch @tab-change="resetNode">
|
|
|
- <el-tab-pane label="部门" name="0">
|
|
|
- <el-input v-model="filterOrg" placeholder="请填写部门名称" class="input-with-select mb10" clearable @input="onQueryChanged"> </el-input>
|
|
|
- </el-tab-pane>
|
|
|
- <el-tab-pane label="知识分类" name="1">
|
|
|
- <el-input v-model="filterType" placeholder="请填写知识分类名称" class="input-with-select mb10" clearable> </el-input>
|
|
|
- </el-tab-pane>
|
|
|
- <el-tab-pane label="热点" name="2">
|
|
|
- <el-input v-model="filterHot" placeholder="请填写热点名称" class="input-with-select mb10" clearable> </el-input>
|
|
|
- </el-tab-pane>
|
|
|
- </el-tabs>
|
|
|
- <el-scrollbar style="height: calc(100% - 100px);'" ref="scrollBarRef" noresize>
|
|
|
- <el-skeleton
|
|
|
- :loading="state.loading"
|
|
|
- animated
|
|
|
- :rows="10"
|
|
|
- :style="state.activeName === '0' ? 'min-width: 100%; display: inline-block' : 'display:none'"
|
|
|
- >
|
|
|
- <template #default>
|
|
|
- <el-tree-v2
|
|
|
- :data="state.orgData"
|
|
|
- highlight-current
|
|
|
- :expand-on-click-node="false"
|
|
|
- :props="{ children: 'children', label: 'name' }"
|
|
|
- @node-click="handleNodeClick"
|
|
|
- ref="orgRef"
|
|
|
- :filter-method="filterNode"
|
|
|
- :item-size="40"
|
|
|
- :height="treeHeight"
|
|
|
- empty-text="暂无组织数据"
|
|
|
- :style="state.activeName === '0' ? 'min-width: 100%; display: inline-block' : 'display:none'"
|
|
|
- >
|
|
|
- <template #default="{ node }">
|
|
|
- <span :title="node.label">{{ node.label }}</span>
|
|
|
- </template>
|
|
|
- </el-tree-v2>
|
|
|
- </template>
|
|
|
- </el-skeleton>
|
|
|
- <el-skeleton
|
|
|
- :loading="state.typeLoading"
|
|
|
- animated
|
|
|
- :rows="10"
|
|
|
- :style="state.activeName === '1' ? 'min-width: 100%; display: inline-block' : 'display:none'"
|
|
|
- >
|
|
|
- <template #default>
|
|
|
- <el-tree
|
|
|
- :data="state.knowledgeOptions"
|
|
|
- highlight-current
|
|
|
- :expand-on-click-node="false"
|
|
|
- :props="{ children: 'children', label: 'name' }"
|
|
|
- @node-click="handleNodeClick"
|
|
|
- ref="typeRef"
|
|
|
- :filter-node-method="filterNodeType"
|
|
|
- node-key="id"
|
|
|
- :style="state.activeName === '1' ? 'min-width: 100%; display: inline-block' : 'display:none'"
|
|
|
- >
|
|
|
- </el-tree>
|
|
|
- </template>
|
|
|
- </el-skeleton>
|
|
|
- <el-skeleton
|
|
|
- :loading="state.loading"
|
|
|
- animated
|
|
|
- :rows="10"
|
|
|
- :style="state.activeName === '2' ? 'min-width: 100%; display: inline-block' : 'display:none'"
|
|
|
- >
|
|
|
- <template #default>
|
|
|
- <el-tree
|
|
|
- node-key="id"
|
|
|
- :load="loadNode"
|
|
|
- lazy
|
|
|
- v-if="lazyShow"
|
|
|
- :props="{
|
|
|
- label: 'hotSpotFullName',
|
|
|
- children: 'children',
|
|
|
- isLeaf: 'hasChild',
|
|
|
- }"
|
|
|
- :filter-node-method="filterNodeHot"
|
|
|
- @node-click="handleNodeClick"
|
|
|
- highlight-current
|
|
|
- check-strictly
|
|
|
- :expand-on-click-node="false"
|
|
|
- ref="hotRef"
|
|
|
- :style="state.activeName === '2' ? 'min-width: 100%; display: inline-block' : 'display:none'"
|
|
|
- />
|
|
|
- <el-tree
|
|
|
- ref="hotRef"
|
|
|
- :data="state.hotSpotData"
|
|
|
- node-key="id"
|
|
|
- v-else
|
|
|
- default-expand-all
|
|
|
- highlight-current
|
|
|
- :props="{
|
|
|
- label: 'hotSpotFullName',
|
|
|
- children: 'children',
|
|
|
- }"
|
|
|
- :filter-node-method="filterNodeHot"
|
|
|
- @node-click="handleNodeClick"
|
|
|
- :expand-on-click-node="false"
|
|
|
- check-strictly
|
|
|
- :style="state.activeName === '2' ? 'min-width: 100%; display: inline-block' : 'display:none'"
|
|
|
- />
|
|
|
- </template>
|
|
|
- </el-skeleton>
|
|
|
- </el-scrollbar>
|
|
|
- </template>
|
|
|
- <template v-else>
|
|
|
- <el-input v-model="filterType" placeholder="请填写知识分类名称" class="input-with-select mb10" clearable> </el-input>
|
|
|
- <el-scrollbar ref="scrollBarRef" noresiz style="height: calc(100% - 50px);'">
|
|
|
- <el-skeleton
|
|
|
- :loading="state.typeLoading"
|
|
|
- animated
|
|
|
- :rows="10"
|
|
|
- >
|
|
|
- <template #default>
|
|
|
- <el-tree
|
|
|
- :data="state.knowledgeOptions"
|
|
|
- highlight-current
|
|
|
- :expand-on-click-node="false"
|
|
|
- :props="{ children: 'children', label: 'name' }"
|
|
|
- @node-click="handleNodeClick"
|
|
|
- ref="typeRef"
|
|
|
- :filter-node-method="filterNodeType"
|
|
|
- node-key="id"
|
|
|
- style="min-width: 100%; display: inline-block"
|
|
|
- >
|
|
|
- </el-tree>
|
|
|
- </template>
|
|
|
- </el-skeleton>
|
|
|
- </el-scrollbar>
|
|
|
- </template>
|
|
|
+ <template v-if="userInfos.isCenter">
|
|
|
+ <el-tabs v-model="state.activeName" stretch @tab-change="resetNode">
|
|
|
+ <el-tab-pane label="部门" name="0">
|
|
|
+ <el-input v-model="filterOrg" placeholder="请填写部门名称" class="input-with-select mb10" clearable @input="onQueryChanged">
|
|
|
+ </el-input>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="知识分类" name="1">
|
|
|
+ <el-input v-model="filterType" placeholder="请填写知识分类名称" class="input-with-select mb10" clearable> </el-input>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="热点" name="2">
|
|
|
+ <el-input v-model="filterHot" placeholder="请填写热点名称" class="input-with-select mb10" clearable> </el-input>
|
|
|
+ </el-tab-pane>
|
|
|
+ </el-tabs>
|
|
|
+ <el-scrollbar style="height: calc(100% - 100px);'" ref="scrollBarRef" noresize>
|
|
|
+ <el-skeleton
|
|
|
+ :loading="state.loading"
|
|
|
+ animated
|
|
|
+ :rows="10"
|
|
|
+ :style="state.activeName === '0' ? 'min-width: 100%; display: inline-block' : 'display:none'"
|
|
|
+ >
|
|
|
+ <template #default>
|
|
|
+ <el-tree-v2
|
|
|
+ :data="state.orgData"
|
|
|
+ highlight-current
|
|
|
+ :expand-on-click-node="false"
|
|
|
+ :props="{ children: 'children', label: 'name' }"
|
|
|
+ @node-click="handleNodeClick"
|
|
|
+ ref="orgRef"
|
|
|
+ :filter-method="filterNode"
|
|
|
+ :item-size="40"
|
|
|
+ :height="treeHeight"
|
|
|
+ empty-text="暂无组织数据"
|
|
|
+ :style="state.activeName === '0' ? 'min-width: 100%; display: inline-block' : 'display:none'"
|
|
|
+ >
|
|
|
+ <template #default="{ node }">
|
|
|
+ <span :title="node.label">{{ node.label }}</span>
|
|
|
+ </template>
|
|
|
+ </el-tree-v2>
|
|
|
+ </template>
|
|
|
+ </el-skeleton>
|
|
|
+ <el-skeleton
|
|
|
+ :loading="state.typeLoading"
|
|
|
+ animated
|
|
|
+ :rows="10"
|
|
|
+ :style="state.activeName === '1' ? 'min-width: 100%; display: inline-block' : 'display:none'"
|
|
|
+ >
|
|
|
+ <template #default>
|
|
|
+ <el-tree
|
|
|
+ :data="state.knowledgeOptions"
|
|
|
+ highlight-current
|
|
|
+ :expand-on-click-node="false"
|
|
|
+ :props="{ children: 'children', label: 'name' }"
|
|
|
+ @node-click="handleNodeClick"
|
|
|
+ ref="typeRef"
|
|
|
+ :filter-node-method="filterNodeType"
|
|
|
+ node-key="id"
|
|
|
+ :style="state.activeName === '1' ? 'min-width: 100%; display: inline-block' : 'display:none'"
|
|
|
+ >
|
|
|
+ </el-tree>
|
|
|
+ </template>
|
|
|
+ </el-skeleton>
|
|
|
+ <el-skeleton
|
|
|
+ :loading="state.loading"
|
|
|
+ animated
|
|
|
+ :rows="10"
|
|
|
+ :style="state.activeName === '2' ? 'min-width: 100%; display: inline-block' : 'display:none'"
|
|
|
+ >
|
|
|
+ <template #default>
|
|
|
+ <el-tree
|
|
|
+ node-key="id"
|
|
|
+ :load="loadNode"
|
|
|
+ lazy
|
|
|
+ v-if="lazyShow"
|
|
|
+ :props="{
|
|
|
+ label: 'hotSpotFullName',
|
|
|
+ children: 'children',
|
|
|
+ isLeaf: 'hasChild',
|
|
|
+ }"
|
|
|
+ :filter-node-method="filterNodeHot"
|
|
|
+ @node-click="handleNodeClick"
|
|
|
+ highlight-current
|
|
|
+ check-strictly
|
|
|
+ :expand-on-click-node="false"
|
|
|
+ ref="hotRef"
|
|
|
+ :style="state.activeName === '2' ? 'min-width: 100%; display: inline-block' : 'display:none'"
|
|
|
+ />
|
|
|
+ <el-tree
|
|
|
+ ref="hotRef"
|
|
|
+ :data="state.hotSpotData"
|
|
|
+ node-key="id"
|
|
|
+ v-else
|
|
|
+ default-expand-all
|
|
|
+ highlight-current
|
|
|
+ :props="{
|
|
|
+ label: 'hotSpotFullName',
|
|
|
+ children: 'children',
|
|
|
+ }"
|
|
|
+ :filter-node-method="filterNodeHot"
|
|
|
+ @node-click="handleNodeClick"
|
|
|
+ :expand-on-click-node="false"
|
|
|
+ check-strictly
|
|
|
+ :style="state.activeName === '2' ? 'min-width: 100%; display: inline-block' : 'display:none'"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ </el-skeleton>
|
|
|
+ </el-scrollbar>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <el-input v-model="filterType" placeholder="请填写知识分类名称" class="input-with-select mb10" clearable> </el-input>
|
|
|
+ <el-scrollbar ref="scrollBarRef" noresiz style="height: calc(100% - 50px);'">
|
|
|
+ <el-skeleton :loading="state.typeLoading" animated :rows="10">
|
|
|
+ <template #default>
|
|
|
+ <el-tree
|
|
|
+ :data="state.knowledgeOptions"
|
|
|
+ highlight-current
|
|
|
+ :expand-on-click-node="false"
|
|
|
+ :props="{ children: 'children', label: 'name' }"
|
|
|
+ @node-click="handleNodeClick"
|
|
|
+ ref="typeRef"
|
|
|
+ :filter-node-method="filterNodeType"
|
|
|
+ node-key="id"
|
|
|
+ style="min-width: 100%; display: inline-block"
|
|
|
+ >
|
|
|
+ </el-tree>
|
|
|
+ </template>
|
|
|
+ </el-skeleton>
|
|
|
+ </el-scrollbar>
|
|
|
+ </template>
|
|
|
</pane>
|
|
|
<pane>
|
|
|
<el-scrollbar class="pr10 scrollbar__view">
|
|
@@ -278,8 +275,8 @@ import { treeList } from '@/api/knowledge/type';
|
|
|
import { hotSpotSearch, hotSpotType } from '@/api/business/order';
|
|
|
import { Splitpanes, Pane } from 'splitpanes';
|
|
|
import 'splitpanes/dist/splitpanes.css';
|
|
|
-import { useUserInfo } from "@/stores/userInfo";
|
|
|
-import { storeToRefs } from "pinia";
|
|
|
+import { useUserInfo } from '@/stores/userInfo';
|
|
|
+import { storeToRefs } from 'pinia';
|
|
|
|
|
|
// 引入组件
|
|
|
const ProcessAudit = defineAsyncComponent(() => import('@/components/ProcessAudit/index.vue')); // 流程审批
|
|
@@ -300,7 +297,7 @@ const state = reactive<any>({
|
|
|
KnowledgeTypeId: null, //知识类型
|
|
|
Title: null, //标题
|
|
|
Summary: null, //摘要
|
|
|
- ModuleCode:null
|
|
|
+ ModuleCode: null,
|
|
|
},
|
|
|
activeName: '0', //tab切换
|
|
|
tableData: [], //表格数据
|
|
@@ -508,6 +505,9 @@ const resetQuery = (formEl: FormInstance | undefined) => {
|
|
|
typeRef.value?.setCurrentKey(null);
|
|
|
orgRef.value?.setCurrentKey(null);
|
|
|
hotRef.value?.setCurrentKey(null);
|
|
|
+ orgRef.value.filter();
|
|
|
+ typeRef.value.filter();
|
|
|
+ hotRef.value.filter();
|
|
|
handleQuery();
|
|
|
};
|
|
|
// 重置选中的节点
|