Browse Source

fix:解决批量导入超过50条数据会卡顿,超过300条数据只能分批量导入

master
pengwei 2 months ago
parent
commit
a2ae0c28c6
  1. 6
      src/components/depart-tree-select.vue
  2. 84
      src/views/work/BatchDistribute.vue

6
src/components/depart-tree-select.vue

@ -8,6 +8,12 @@ import { ROOT_DEPART_ID } from '@/enums/appEnums';
const data = ref([])
const props = defineProps({
blurFunction:{
type: Object ,
default:()=>{
return null;
}
},
showRoot: {
type: Boolean,
default: false

84
src/views/work/BatchDistribute.vue

@ -182,11 +182,19 @@
prop="discoverTime"
width="180"
>
<template #default="{ row }">
<template #header>
<el-tooltip content="点击单位格,重新选择单位">
<span>问题涉及单位<el-icon><QuestionFilled /></el-icon></span>
</el-tooltip>
</template>
<template #default="{ row ,$index}">
<depart-tree-select
v-if="row.editMode"
size="small"
v-model="row.involveDepartId"
/>
<div style="width: 100%" v-else @click="handleCellClick(row,$index)" >{{getDepartShortName(departs,row.involveDepartId)}}</div>
</template>
</el-table-column>
<el-table-column
@ -195,7 +203,8 @@
width="110"
>
<template #default="{ row }">
<el-select v-model="row.reportId"
<el-select v-model="row.reportId"
filterable
remote
clearable
@ -212,6 +221,8 @@
:label="item.reportName"
/>
</el-select>
</template>
</el-table-column>
<el-table-column
@ -500,12 +511,25 @@
prop="discoverTime"
width="180"
>
<template #default="{ row }">
<depart-tree-select
size="small"
v-model="row.involveDepartId"
/>
</template>
<template #header>
<el-tooltip content="点击单位格,重新选择单位">
<span>问题涉及单位<el-icon><QuestionFilled /></el-icon></span>
</el-tooltip>
</template>
<template #default="{ row ,$index}">
<depart-tree-select
v-if="row.editMode"
size="small"
v-model="row.involveDepartId"
/>
<div style="width: 100%" v-else @click="handleCellClick(row,$index)" >{{getDepartShortName(departs,row.involveDepartId)}}</div>
</template>
<!-- <template #default="{ row }">-->
<!-- <depart-tree-select-->
<!-- size="small"-->
<!-- v-model="row.involveDepartId"-->
<!-- />-->
<!-- </template>-->
</el-table-column>
<el-table-column
label="项目名称"
@ -687,6 +711,7 @@
>
</footer>
</el-dialog>
</template>
<script setup>
import {
@ -736,6 +761,8 @@ function reset() {
onMounted(() => {
getList();
});
const activeStep = ref(0);
@ -748,6 +775,47 @@ const loadingText = ref("");
const importTableData = ref([]);
const formData = ref({});
const formRef = ref();
const catchSotre = useCatchStore();
const departs = catchSotre.getDeparts();
console.log('departs',departs)
function handleCellClick(row,index){
importTableData.value.forEach((value,i)=>{
if(i != index ){
value.editMode=false
}
})
row.editMode=true
}
function handleBlur(row){
row.editMode=false
console.log('row.editMode',row.editMode)
}
//
function getDepartShortName(departData, id) {
let name = null;
if (departData) {
for (let i = 0; i < departData.length; i++) {
let s = departData[i];
if (s.id === id) {
name= s.shortName;
break;
}
if (s.children) {
name = getDepartShortName(s.children, id)
if(name != null){
break;
}
}
}
}
return name;
}
function handleShowImport() {
importShow.value = true;

Loading…
Cancel
Save