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 data = ref([])
const props = defineProps({ const props = defineProps({
blurFunction:{
type: Object ,
default:()=>{
return null;
}
},
showRoot: { showRoot: {
type: Boolean, type: Boolean,
default: false default: false

84
src/views/work/BatchDistribute.vue

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

Loading…
Cancel
Save