fix : 需求上报详情加上项目影响, 需求/征集/阶段变更/分摊/专项资金/项目立项/验收/结项编辑加上审批记录, 新增时审批记录加上空提示

This commit is contained in:
2024-08-03 13:21:18 +08:00
parent fbfbe5c328
commit 31928abbd1
7 changed files with 121 additions and 68 deletions

View File

@@ -99,7 +99,15 @@
/>
</div>
</div>
<process-diagram-viewer mode="view" v-if="processDiagramViewer&&changeDiagram"/>
<el-empty :image-size="100" description="暂无审批记录" v-if="processDiagramViewer&& !opentionData?.operationList&&!changeDiagram"/>
<!-- <process-diagram-viewer mode="view" v-if="processDiagramViewer&&changeDiagram"/>-->
<div class="process">
<operation-render
v-if="processDiagramViewer&& opentionData?.operationList && opentionData?.operationList.length > 0&&!changeDiagram"
:operation-list="opentionData?.operationList"
:state="opentionData.state"/>
<process-diagram-viewer mode="view" v-if="processDiagramViewer&&changeDiagram"/>
</div>
</div>
<div style="width: 100%;height: 30px"></div>
<div class="oper-page-btn">
@@ -107,7 +115,6 @@
<el-button color="#DED0B2" v-else @click="handleResubmit(demandForm)">重新提交</el-button>
<el-button @click="handleBack">返回</el-button>
</div>
<company-picker :multiple="true" ref="companyRef" title="请选择征集公司" @ok="selected"
v-model:value="selectedCompanyList"/>
<file-preview ref="filePreviewRef" v-if="filePreviewShow" :fileName="filePreviewParam.fileName" :fileUrl="filePreviewParam.fileUrl"
@@ -121,20 +128,19 @@ import {useProcessStore} from '@/stores/processStore.js';
import {
getWorkflowInfo,
addRequirement,
getFormInfo,
getInfo,
resubmit,
deleteFile,
downloadFile
} from "@/api/project-demand/index.js";
import FileUpload from "@/components/FileUpload.vue";
import OperationRender from '@/views/workflow/common/OperationRender.vue'
import ProcessDiagramViewer from '@/views/workflow/common/ProcessDiagramViewer.vue';
import {ElNotification} from "element-plus";
import {useRoute, useRouter} from 'vue-router'
import {getSubCompOpt} from '@/api/user/user.js'
import {useTagsView} from '@/stores/tagsview.js'
import {getFundOption} from "@/api/special-fund";
import CompanyPicker from "@/components/DetailComponent/CompanyPicker.vue";
import {useCacheStore} from '@/stores/cache.js'
const filePreviewParam = ref({
fileUrl: '',
@@ -144,6 +150,7 @@ const filePreviewParam = ref({
const filePreviewShow = ref(false)
const cacheStore = useCacheStore()
const companyRef = ref()
const opentionData = ref({})
const showExpendText = ref('')
const showMoreCompany = ref(false)
const selectedCompanyList = ref([])
@@ -481,9 +488,9 @@ const getCompanyOptionItem = (val) => {
return companyNameArray.value;
}
const getDetailInfo = async () => {
getFormInfo(route.query.id).then(res => {
getInfo(route.query.id).then(res => {
if (res.code === 1000) {
if (res.data.companyIds[0] == -1) {
if (res.data.formData.companyIds[0] == -1) {
selectedCompanyList.value = [
{
value:-1,
@@ -491,10 +498,11 @@ const getDetailInfo = async () => {
}
]
} else {
selectedCompanyList.value = getCompanyOptionItem(res.data.companyIds)
selectedCompanyList.value = getCompanyOptionItem(res.data.formData.companyIds)
}
formData.value = res.data
if (res.data.fileList.length !== 0) {
formData.value = res.data.formData
opentionData.value = res.data
if (res.data.formData.fileList.length !== 0) {
showTable.value = false
nextTick(() => {
showTable.value = true

View File

@@ -3,17 +3,17 @@
<baseTitle title="项目基本信息"></baseTitle>
<el-form :model="formData" ref="summaryForm" :rules="rules" label-width="120" :scroll-to-error="true">
<el-row gutter="40" style="margin-bottom: -18px">
<el-col :span="6">
<el-form-item label="项目名称" prop="projectName" >
<el-input v-model="formData.projectName" placeholder="请输入项目名称" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="承办单位" :label-width="route.query.id && formData.isSpecialFund?135:120">
<Tooltip :content="authStore.userinfo?.subCompanyName" placement="bottom-start" width="240" textAlign="left">
</Tooltip>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="项目名称" prop="projectName" >
<el-input v-model="formData.projectName" placeholder="请输入项目名称" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="开始时间" prop="startTime" label-width="135">
<el-config-provider>
@@ -291,7 +291,15 @@
/>
</div>
</div>
<process-diagram-viewer mode="view" v-if="processDiagramViewer&&changeDiagram"/>
<el-empty :image-size="100" description="暂无审批记录" v-if="processDiagramViewer&& !opentionData?.operationList&&!changeDiagram"/>
<!-- <process-diagram-viewer mode="view" v-if="processDiagramViewer&&changeDiagram"/>-->
<div class="process">
<operation-render
v-if="processDiagramViewer&& opentionData?.operationList && opentionData?.operationList.length > 0&&!changeDiagram"
:operation-list="opentionData?.operationList"
:state="opentionData.state"/>
<process-diagram-viewer mode="view" v-if="processDiagramViewer&&changeDiagram"/>
</div>
</div>
<div class="oper-page-btn">
<!-- <el-button type="info" @click="staging">存为草稿</el-button>-->
@@ -303,6 +311,7 @@
</template>
<script setup lang="jsx">
import OperationRender from '@/views/workflow/common/OperationRender.vue'
import {debounce} from 'lodash'
import {getDetail, getProcessInfo, requirementReported, resubmitReported} from "@/api/project-demand/summary";
import {ElNotification} from "element-plus";
@@ -318,6 +327,7 @@ import UserPicker from "@/views/workflow/process/common/UserPicker.vue";
const authStore = useAuthStore()
const changeDiagram = ref(false)
const opentionData = ref({})
const cacheStore = useCacheStore()
const processStore = useProcessStore()
const router = useRouter()
@@ -585,6 +595,7 @@ const getDetailInfo = async () => {
if (res.code === 1000) {
res.data.formData.specialFundId = res.data.formData.specialFundId === 0 ? null : res.data.formData.specialFundId
formData.value = res.data.formData
opentionData.value = res.data
optionalChargeLeadershipList.value=formData.value.optionalChargeLeadership
loading.value = false
}
@@ -640,7 +651,7 @@ const staging = async () => {
<style lang="scss" scoped>
.detail-block {
overflow: hidden;
padding-bottom: 30px;
padding: 0 30px 30px 15px;
:deep(.el-input-number) {
width: 100%;