Browse Source

fix: 查询性能优化

main
buaixuexideshitongxue 2 weeks ago
parent
commit
63ae2b84a0
  1. 2
      src/components/file/upload.vue
  2. 47
      src/views/entryWindow/index.vue
  3. 15
      src/views/report/edit/controlPrice.vue

2
src/components/file/upload.vue

@ -191,6 +191,8 @@ function handleSuccess(data, file) {
filterFiles[0].percent = 100;
filterFiles[0].fileName = data.data.fileName;
filterFiles[0].filePath = data.data.filePath;
filterFiles[0].uploadUser = data.data.uploadUser;
filterFiles[0].uploadTime = data.data.uploadTime;
window.setTimeout(() => {
filterFiles[0].loading = false;
emit("update:files", files.value);

47
src/views/entryWindow/index.vue

@ -7,6 +7,7 @@ import useUserStore from "@/stores/modules/user";
import {FlowNodeEnum} from "@/enums/flowEnums";
import feedback from "@/utils/feedback";
import {getEntryWindowRecord} from '@/api/report/flow';
import {getWorkList} from '@/api/work/index';
const catchStore = useCatchStore();
const userStore = useUserStore();
const uid = userStore.user.userName;
@ -15,6 +16,7 @@ const tableData = ref([])
const ressDialog =ref(false)
const activeTab = ref('all')
const exportLoading = ref(false)
const pendingWorkMap = ref(new Map())
const stageNodeMap = {
pending: ['review'],
auditing: ['first', 'second', 'third', 'Lead'],
@ -110,7 +112,7 @@ const handleClick =(tab)=>{
const tabName = tab.props.name;
activeTab.value = tabName;
query.value.current = 1;
query.value.code = tabName === 'recessed' ? '1' : 'all';
query.value.code = tabName === 'all' ? 'all' : tabName === 'recessed' ? '1' : '0';
syncNodeListByTab()
getList()
}
@ -136,9 +138,15 @@ const inputGetList = (val) => {
//查询数据
const getList =async ()=>{
loading.value=true
const res = await reportPage(query.value)
const [res, pendingWorks] = await Promise.all([
reportPage(query.value),
getWorkList('first')
])
tableData.value=res.records
total.value=res.total
pendingWorkMap.value = new Map(
pendingWorks.map(item => [item.reportId, item])
)
loading.value=false
}
@ -164,6 +172,39 @@ getList()
//查看详情
const router = useRouter();
const handleWork = (row) => {
const work = pendingWorkMap.value.get(row.id)
if (!work) return
if (work.isWarning) {
router.push({
path: '/warning/business',
query: {
reportId: work.reportId,
flowId: work.flowId,
isAudit: true,
isLeader: true
}
})
return
}
const workQuery = {
isEnd: work.reportType === '结算项目',
id: work.reportId,
backPath: '/entryWindow'
}
if (work.flowCode === 'initial') {
workQuery.node = work.flowCode
} else {
workQuery.isAudit = true
}
router.push({
path: '/report/edit/controlPrice',
query: workQuery
})
}
const getDetail =(row,code)=>{
debugger
//判断是否为报审人
@ -564,8 +605,8 @@ const isAdminShow = ()=>{
<!-- 未删除:显示正常操作 -->
<template v-else>
<el-button link type="primary" v-if="pendingWorkMap.has(row.id)" @click="handleWork(row)">办理</el-button>
<el-button link type="primary" v-if="row.applicantId === uid && row.isRecessed == 1" @click="getDetail(row,'edit')">编辑</el-button>
<!-- <el-button link type="primary" v-else-if="row.flowUserId === uid" @click="getDetail(row,'audit')">审批</el-button>-->
<el-button link type="primary" v-else @click="getDetail(row)">详情</el-button>
<el-button link type="danger" v-if="isAdminShow() && row.isRecessed == 0 && row.isSelfData === '1'" @click="recessedShowFun(row,0)"> 退窗</el-button>
<el-button link type="primary" v-if="(isAdminShow() || row.applicantId === uid) && row.isRecessed == 1" @click="recessedShowFun(row,1)">重新进窗</el-button>

15
src/views/report/edit/controlPrice.vue

@ -281,7 +281,7 @@ const delFileData = async (row,index) => {
const rulesData = ref({
reportType: [{required: true, message: '请选择报审类型', trigger: 'blur'}],
reportName: [{required: true, message: '请输入项目名称', trigger: 'blur'}],
projectType: [{required: true, message: '请选择项目类别', trigger: 'blur'}],
projectType: [{required: true, message: '请选择项目类别', trigger: 'change'}],
auditUnitId: [{required: true, message: '请选择审计单位', trigger: 'blur'}],
projectUnitId: [{required: true, message: '请选择项目单位', trigger: 'blur'}],
projectPrincipal: [{required: true, message: '请选择报审类型', trigger: 'blur'}],
@ -471,17 +471,12 @@ const handleClick = (tab, event) => {
//关闭
const closeFun = () => {
if(route.query.disabledVal){
useTabsStore().removeTab('/entryWindow', router);
router.push({path:route.query.backPath})
}
if (route.query.node) {
useTabsStore().removeTab('/report/edit/controlPrice', router);
if (route.query.backPath) {
router.push({path: route.query.backPath})
} else {
useTabsStore().removeTab('/report/edit/controlPrice', router);
router.push({path:"/work", query:{"load": true}})
return
}
router.push({path:"/work", query:{"load": true}})
}
//入窗审批界面关闭
@ -940,7 +935,7 @@ function hasAuditAttachment() {
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="项目类别">
<el-form-item label="项目类别" prop="projectType">
<el-select :disabled="isDisabled" v-model="formData.project.projectType">
<el-option value="服务类" label="服务类"></el-option>
<el-option value="工程类" label="工程类"></el-option>

Loading…
Cancel
Save