fix : 征集公司校验,单文件显示改为表格,手机端审批后刷新,需求征集回车触发搜索,组织机构管理搜索

This commit is contained in:
2024-07-22 20:39:26 +08:00
parent ae6da83a1a
commit 3c1fcc327c
17 changed files with 470 additions and 169 deletions

View File

@@ -2,22 +2,14 @@
<div class="organization-layout">
<div class="layout-left">
<div class="candidate" v-loading="loading">
<el-form :model="queryType" @submit.prevent="getList">
<el-form-item prop="dictName">
<el-input v-model="queryType.chooseName" @change="getList"
clearable placeholder="输入公司或部门名称进行搜索">
<template #append>
<el-button @click="getList">搜索</el-button>
</template>
</el-input>
</el-form-item>
</el-form>
<el-input v-model="filterText" clearable placeholder="输入公司或部门名称进行搜索" @input="searchOrganizateData" style="margin-bottom: 15px">
</el-input>
<el-scrollbar>
<div class="tree scrollbar-dict">
<el-tree :data="dataList" ref="tree" :props="defaultProps" empty-text="" node-key="value"
:default-expanded-keys="expandedKeys" :lazy="true" :load="handleLoad"
@node-expand="handleNodeExpand" @node-click="handleClick"
>
<el-tree :data="dataList" ref="treeRef" :props="defaultProps" empty-text="" node-key="value"
:default-expanded-keys="expandedKeys"
:filter-node-method="filterNode"
@node-click="handleClick">
<template #default="{ node, data }">
<div class="tree-node">
<div style="display: flex;align-items: center;padding: 3px 0;"
@@ -48,7 +40,7 @@
<script setup>
import SvgIcon from '@/components/svgIcon/index.vue'
import {ElNotification} from "element-plus";
import {getOrganizationStructure} from "@/api/workflow/process-user";
import {getOrganizationStructure, getOrganizationStructureTree} from "@/api/workflow/process-user";
import DepartComponent from "@/components/organizationalStructure/Department.vue";
import CompanyDetail from "@/components/organizationalStructure/CompanyDetail.vue";
@@ -58,6 +50,7 @@ const queryType = reactive({
const deptId = ref(0);
const companyId = ref(0);
const showDept = ref(false);
const filterText = ref('')
const showCompany = ref(false);
let selectItem = reactive({
type: -1,
@@ -65,7 +58,7 @@ let selectItem = reactive({
});
const loading = ref(false);
const dataList = ref([]);
const tree = ref([]);
const treeRef = ref()
const selectNodeKey = ref("")
const expandedKeys = ref([]);
const defaultProps = {
@@ -96,7 +89,7 @@ const getList = () => {
type: -1,
value: "0"
};
getOrganizationStructure(params).then(res => {
getOrganizationStructureTree(params).then(res => {
dataList.value = res.data;
});
};
@@ -108,26 +101,38 @@ const init = () => {
dataList.value = [];
expandedKeys.value = [];
queryType.chooseName = ""
getList();
};
watch(filterText.value, (val) => {
treeRef.value.filter(val)
})
const searchOrganizateData=(val)=>{
treeRef.value.filter(val)
}
const filterNode = (value, data) => {
if (!value) return true
return data.organizationalStructureName.includes(value);
}
async function handleLoad(node, resolve, reject) {
let data = node.data
let params
if (data.organizationalStructureId) {
params = {
chooseId: data.organizationalStructureId,
type: data.type
}
} else {
params = {
chooseId: 0,
type: 0,
}
}
let result = await getOrganizationStructure(params).then(res => {
return res.data
})
resolve(result)
// let data = node.data
// let params
// if (data.organizationalStructureId) {
// params = {
// chooseId: data.organizationalStructureId,
// type: data.type
// }
// } else {
// params = {
// chooseId: 0,
// type: 0,
// }
// }
// let result = await getOrganizationStructure(params).then(res => {
// return res.data
// })
// resolve(result)
}
const handleClick = (item, data) => {