fix : 修复需求汇总详情功能

This commit is contained in:
2024-05-19 13:18:03 +08:00
parent 10bc019866
commit 89d5c86d8b
6 changed files with 383 additions and 93 deletions

View File

@@ -61,10 +61,17 @@
<script setup lang="jsx">
import {useAuthStore} from '@/stores/userstore.js'
import {useProcessStore} from '@/stores/processStore.js';
import {getWorkflowInfo, addRequirement, getFormInfo, resubmit, deleteFile,downloadFile} from "@/api/project-demand/index.js";
import {
getWorkflowInfo,
addRequirement,
getFormInfo,
resubmit,
deleteFile,
downloadFile
} from "@/api/project-demand/index.js";
import FileUpload from "@/components/FileUpload.vue";
import ProcessDiagramViewer from '@/views/workflow/common/ProcessDiagramViewer.vue';
import {ElMessage, ElMessageBox,ElNotification} from "element-plus";
import {ElMessage, ElMessageBox, ElNotification} from "element-plus";
import {useRoute, useRouter} from 'vue-router'
import {getSubCompOpt} from '@/api/user/user.js'
import {useTagsView} from '@/stores/tagsview.js'
@@ -151,15 +158,15 @@ const handleDownload = (row) => {
downloadFile(row.fileId).then(res => {
const blob = new Blob([res])
let a = document.createElement('a')
a.href=URL.createObjectURL(blob)
a.href = URL.createObjectURL(blob)
a.download = row.originalFileName
a.click()
})
}
const compositeParam = (item) => {
let tag=''
if(!formData.value.collectType&&router.currentRoute.value.name==='Collection/add'){
tag='需求征集'
let tag = ''
if (!formData.value.collectType && router.currentRoute.value.name === 'Collection/add') {
tag = '需求征集'
}
return {
fileId: item.id,
@@ -191,7 +198,7 @@ const init = async () => {
message: res.msg,
type: res.code === 1000 ? 'success' : 'error'
})
if(res.code === 1000){
if (res.code === 1000) {
let data = res.data
processInstanceData.value = data
processStore.setDesign(data)
@@ -203,19 +210,26 @@ const init = async () => {
nextTick(() => {
processDiagramViewer.value = true
})
}else {
} else {
}
})
}
const submitParam=(item)=>{
const submitParam = (item) => {
let files = []
item.fileList.forEach(item => {
let obj = {
fileId: item.fileId,
}
files.push(obj)
})
return {
collectExplain: item.collectExplain,
collectType: item.collectType,
companyIds: item.companyIds,
deadline: item.deadline,
requirementId: item.requirementId?item.requirementId:0,
requirementId: item.requirementId ? item.requirementId : 0,
requirementName: item.requirementName,
files: item.fileList,
files: files,
deploymentId: processInstanceData.value.deploymentId
}
}

View File

@@ -0,0 +1,33 @@
<template>
<summary-detail :formData="summaryData.formData" :data="summaryData" :processViewer="summaryProcessViewer"/>
</template>
<script setup lang="jsx">
import {getInfo} from "@/api/project-demand";
const summaryData = ref({})
const summaryProcessViewer = ref(false)
const getDemandSummaryInfo = async () => {
if (!route.query.id) return
// await getCompanyOption()
getInfo(74).then(res => {
let data = res.data
summaryData.value = data;
processStore.setDesign(data)
processStore.runningList.value = data.runningList;
processStore.endList.value = data.endList;
processStore.noTakeList.value = data.noTakeList;
processStore.refuseList.value = data.refuseList;
processStore.passList.value = data.passList;
nextTick(() => {
summaryProcessViewer.value = true
})
})
}
getDemandSummaryInfo()
</script>
<style scoped>
</style>

View File

@@ -124,7 +124,7 @@ const tableConfig = reactive({
currentRender: ({row, index}) => {
return (
<div>
<el-button type={'primary'} link onClick={()=>{}} >详情</el-button>
<el-button type={'primary'} link onClick={()=>handleDetail()} >详情</el-button>
<el-button type={'primary'} link onClick={()=>handleAdd()} >上报</el-button>
</div>
)
@@ -164,6 +164,12 @@ const handleAdd = () => {
query: {}
})
}
const handleDetail = () => {
router.push({
name: 'Summary/detail',
query: {}
})
}
</script>
<style lang="scss" scoped>

View File

@@ -7,10 +7,13 @@
@tab-click="handleClick"
>
<el-tab-pane label="需求征集" name="first">
<collection-detail :formData="collectionData.formData" :data="collectionData" :processViewer="processViewer"
:companyOption="companyOption" @getInfo="getDemandCollectionInfo" @download="downloadDetailFile"/>
<collection-detail :formData="collectionData.formData" :data="collectionData"
:processViewer="collectionProcessViewer"
:companyOption="companyOption" @getInfo="getDemandCollectionInfo"/>
</el-tab-pane>
<el-tab-pane label="需求上报" name="second">
<summary-detail :formData="summaryData.formData" :data="summaryData" :processViewer="summaryProcessViewer"/>
</el-tab-pane>
<el-tab-pane label="需求上报" name="second"></el-tab-pane>
<el-tab-pane label="项目立项" name="third" :disabled="true"></el-tab-pane>
</el-tabs>
</div>
@@ -22,14 +25,19 @@ import {getSubCompOpt} from '@/api/user/user.js'
import {useProcessStore} from '@/stores/processStore.js';
import CollectionDetail from "@/components/DetailComponent/CollectionDetail.vue";
import {downloadFile} from "@/api/project-demand";
import SummaryDetail from "@/components/DetailComponent/SummaryDetail.vue";
const route = useRoute()
const activeName = ref('first')
const collectionData = ref({})
const processViewer = ref(false)
const summaryData = ref({})
const collectionProcessViewer = ref(false)
const summaryProcessViewer = ref(false)
const processStore = useProcessStore()
const companyOption = ref([])
const rules = reactive({
auditOpinion: [{required: true, message: '请输入审核意见', trigger: 'blur'}],
})
const getCompanyOption = async () => {
const res = await getSubCompOpt()
companyOption.value = res.data
@@ -48,23 +56,34 @@ const getDemandCollectionInfo = async () => {
processStore.refuseList.value = data.refuseList;
processStore.passList.value = data.passList;
nextTick(() => {
processViewer.value = true
collectionProcessViewer.value = true
})
})
}
const downloadDetailFile = (row) => {
downloadFile(row.fileId).then(res => {
const blob = new Blob([res])
let a = document.createElement('a')
a.href = URL.createObjectURL(blob)
a.download = row.originalFileName
a.click()
const getDemandSummaryInfo = async () => {
if (!route.query.id) return
// await getCompanyOption()
getInfo(route.query.id).then(res => {
let data = res.data
summaryData.value = data;
processStore.setDesign(data)
processStore.runningList.value = data.runningList;
processStore.endList.value = data.endList;
processStore.noTakeList.value = data.noTakeList;
processStore.refuseList.value = data.refuseList;
processStore.passList.value = data.passList;
nextTick(() => {
summaryProcessViewer.value = true
})
})
}
const handleClick = (tab, event) => {
console.log(tab, event)
if (tab.index.value === 0) {
if (tab.props.name === 'first') {
getDemandCollectionInfo()
} else if (tab.props.name === 'second') {
getDemandSummaryInfo()
}
}
getDemandCollectionInfo()