Merge pull request 'fix : 修复需求上报排版' (#700) from dd into master

Reviewed-on: http://git.feashow.cn/clay/mosr-web/pulls/700
This commit is contained in:
2024-08-12 13:54:53 +00:00

View File

@@ -1,21 +1,23 @@
<template> <template>
<div class="detail-block" v-loading="loading"> <div class="detail-block" v-loading="loading" :style="{padding:!formData.isSpecialFund?'0 40px':'0 0 0 40px'}">
<baseTitle title="项目基本信息"></baseTitle> <baseTitle title="项目基本信息"></baseTitle>
<el-form :model="formData" ref="summaryForm" :rules="rules" label-width="120" :scroll-to-error="true"> <el-form :model="formData" ref="summaryForm" :rules="rules" :label-width="!formData.isSpecialFund?120:160"
<el-row gutter="25" style="margin-bottom: -18px"> :scroll-to-error="true">
<el-row gutter="30" style="margin-bottom: -18px;" :style="{marginLeft:!formData.isSpecialFund?'-8.5px':'-48.5px'}">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="承办单位" > <el-form-item label="承办单位">
<Tooltip :content="authStore.userinfo?.subCompanyName" placement="bottom-start" width="240" textAlign="left"> <Tooltip :content="authStore.userinfo?.subCompanyName" placement="bottom-start" width="240"
textAlign="left">
</Tooltip> </Tooltip>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'0':route.query.id?'':'-40px'}">
<el-form-item label="项目名称" prop="projectName" :label-width="route.query.id && formData.isSpecialFund?160:120"> <el-form-item label="项目名称" prop="projectName">
<el-input v-model="formData.projectName" placeholder="请输入项目名称" clearable></el-input> <el-input v-model="formData.projectName" placeholder="请输入项目名称" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'-10px':route.query.id?'-40px':'0'}">
<el-form-item label="开始时间" prop="startTime" label-width="160"> <el-form-item label="开始时间" prop="startTime">
<el-config-provider> <el-config-provider>
<el-date-picker <el-date-picker
v-model="formData.startTime" v-model="formData.startTime"
@@ -28,7 +30,7 @@
</el-config-provider> </el-config-provider>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'-10px':'-40px'}">
<el-form-item label="结束时间" prop="endTime" <el-form-item label="结束时间" prop="endTime"
:title="!formData.startTime?'请先选择开始时间!':''"> :title="!formData.startTime?'请先选择开始时间!':''">
<el-config-provider> <el-config-provider>
@@ -57,8 +59,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'0':route.query.id?'':'-40px'}">
<el-form-item label="研发主体" prop="rdSubject" :label-width="route.query.id && formData.isSpecialFund?160:120"> <el-form-item label="研发主体" prop="rdSubject">
<el-select v-model="formData.rdSubject" placeholder="请选择研发主体" clearable filterable> <el-select v-model="formData.rdSubject" placeholder="请选择研发主体" clearable filterable>
<el-option <el-option
v-for="item in cacheStore.getDict('rd_subject')" v-for="item in cacheStore.getDict('rd_subject')"
@@ -69,8 +71,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'-10px':route.query.id?'-40px':'0'}">
<el-form-item label="出资类型" prop="investmentType" label-width="160"> <el-form-item label="出资类型" prop="investmentType">
<el-select v-model="formData.investmentType" placeholder="请选择出资类型" clearable filterable> <el-select v-model="formData.investmentType" placeholder="请选择出资类型" clearable filterable>
<el-option <el-option
v-for="item in cacheStore.getDict('invest_type')" v-for="item in cacheStore.getDict('invest_type')"
@@ -81,20 +83,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :span="8">--> <el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'-10px':'-40px'}">
<!-- <el-form-item label="项目影响" prop="projectImpact" label-width="125">--> <el-form-item label="业务板块" prop="businessSegment">
<!-- <el-select v-model="formData.projectImpact" placeholder="请选择项目影响" clearable filterable>-->
<!-- <el-option-->
<!-- v-for="item in cacheStore.getDict('project_impact')"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="6">
<el-form-item label="业务板块" prop="businessSegment" >
<el-select v-model="formData.businessSegment" placeholder="请选择所属业务板块" clearable filterable> <el-select v-model="formData.businessSegment" placeholder="请选择所属业务板块" clearable filterable>
<el-option <el-option
v-for="item in cacheStore.getDict('business_segment')" v-for="item in cacheStore.getDict('business_segment')"
@@ -117,14 +107,13 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :span="route.query.id && formData.isSpecialFund?8:!formData.isSpecialFund?!route.query.id?6:8:6">--> <el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'0':route.query.id?'':'-40px'}">
<el-col :span="6"> <el-form-item label="经费预算(元)" prop="economicEstimate">
<el-form-item label="经费预算(元)" prop="economicEstimate" :label-width="route.query.id && formData.isSpecialFund?160:120">
<el-input-number v-model="formData.economicEstimate" placeholder="请输入经费预算" :controls="false"/> <el-input-number v-model="formData.economicEstimate" placeholder="请输入经费预算" :controls="false"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'-10px':route.query.id?'-40px':'0'}">
<el-form-item label="产学研联合" prop="industryUniversityResearch" label-width="160"> <el-form-item label="产学研联合" prop="industryUniversityResearch">
<el-select v-model="formData.industryUniversityResearch" clearable placeholder="请选择产学研联合"> <el-select v-model="formData.industryUniversityResearch" clearable placeholder="请选择产学研联合">
<el-option <el-option
v-for="item in cacheStore.getDict('industry_university')" v-for="item in cacheStore.getDict('industry_university')"
@@ -135,12 +124,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :span="route.query.id && formData.isSpecialFund?8:!formData.isSpecialFund?route.query.id?8:6:6">--> <el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'-10px':'-40px'}">
<!-- </el-row>--> <el-form-item label="开展政府申报" prop="governmentDeclaration">
<!-- <el-row gutter="10">-->
<el-col :span="6">
<el-form-item label="开展政府申报" prop="governmentDeclaration" >
<!-- :label-width="route.query.id && formData.isSpecialFund?145:!formData.isSpecialFund?145:145">-->
<el-select v-model="formData.governmentDeclaration" clearable placeholder="请选择开展政府申报"> <el-select v-model="formData.governmentDeclaration" clearable placeholder="请选择开展政府申报">
<el-option <el-option
v-for="item in cacheStore.getDict('government_declaration')" v-for="item in cacheStore.getDict('government_declaration')"
@@ -153,17 +138,12 @@
</el-col> </el-col>
<!-- <el-col :span="!route.query.id && formData.isSpecialFund?4:!route.query.id?12:12" v-if="!route.query.id">-->
<el-col :span="6" v-if="!route.query.id"> <el-col :span="6" v-if="!route.query.id">
<el-form-item label="是否专项资金" prop="isSpecialFund" required> <el-form-item label="是否专项资金" prop="isSpecialFund" required>
<el-select v-model="formData.isSpecialFund" clearable @change="specialFundChange" placeholder="请选择是否为专项资金"> <el-select v-model="formData.isSpecialFund" clearable @change="specialFundChange" placeholder="请选择是否为专项资金">
<el-option label="是" :value="true"/> <el-option label="是" :value="true"/>
<el-option label="否" :value="false"/> <el-option label="否" :value="false"/>
</el-select> </el-select>
<!-- <el-radio-group v-model="formData.isSpecialFund" @change="specialFundChange">-->
<!-- <el-radio :label="true"></el-radio>-->
<!-- <el-radio :label="false"></el-radio>-->
<!-- </el-radio-group>-->
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6" v-if="route.query.id && formData.isSpecialFund"> <el-col :span="6" v-if="route.query.id && formData.isSpecialFund">
@@ -171,8 +151,8 @@
<span>{{ formData.specialFund }}</span> <span>{{ formData.specialFund }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6" v-if="!route.query.id && formData.isSpecialFund"> <el-col :span="6" v-if="!route.query.id && formData.isSpecialFund" :style="{marginLeft:!formData.isSpecialFund?'0':route.query.id?'':'-40px'}">
<el-form-item label="所属专项资金" prop="specialFundId" > <el-form-item label="所属专项资金" prop="specialFundId">
<el-select v-model="formData.specialFundId" placeholder="请选择专项资金名称" clearable filterable> <el-select v-model="formData.specialFundId" placeholder="请选择专项资金名称" clearable filterable>
<el-option <el-option
v-for="item in specialFundOption" v-for="item in specialFundOption"
@@ -184,12 +164,12 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6" v-if="formData.isSpecialFund"> <el-col :span="6" v-if="formData.isSpecialFund">
<el-form-item label="申请总部专项资金(元)" prop="specialFundAmount" label-width="160"> <el-form-item label="申请总部专项资金(元)" prop="specialFundAmount">
<el-input-number v-model="formData.specialFundAmount" placeholder="请输入专项资金" :controls="false"/> <el-input-number v-model="formData.specialFundAmount" placeholder="请输入申请总部专项资金" :controls="false"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'0':'-40px'}">
<el-form-item label="部门分管领导" required prop="" :label-width="route.query.id && formData.isSpecialFund?160:120"> <el-form-item label="部门分管领导" required prop="">
<el-button color="#DED0B2" style="margin-right: 10px" @click="handleShowOptionalChargeLeadershipPicker"> <el-button color="#DED0B2" style="margin-right: 10px" @click="handleShowOptionalChargeLeadershipPicker">
{{ optionalChargeLeadershipList.length !== 0 ? '更改' : '请选择' }} {{ optionalChargeLeadershipList.length !== 0 ? '更改' : '请选择' }}
</el-button> </el-button>
@@ -200,14 +180,11 @@
v-model:value="optionalChargeLeadershipList" @ok="optionalChargeLeaderPickerOk"/> v-model:value="optionalChargeLeadershipList" @ok="optionalChargeLeaderPickerOk"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row gutter="40" style="margin-bottom: -18px"> <baseTitle title="预期知识产权"></baseTitle>
<el-col :span="24"> <el-row gutter="30" style="margin-bottom: -18px;" :style="{marginLeft:!formData.isSpecialFund?'-8.5px':'-48.5px'}">
<baseTitle title="预期知识产权"></baseTitle>
</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="预期成果形式" prop="resultForm"> <el-form-item label="预期成果形式" prop="resultForm" :style="{marginRight:!formData.isSpecialFund?'0':route.query.id?'':'40px'}">
<el-select v-model="formData.resultForm" placeholder="请选择预期成果形式" clearable filterable multiple> <el-select v-model="formData.resultForm" placeholder="请选择预期成果形式" clearable filterable multiple>
<el-option <el-option
v-for="item in cacheStore.getDict('result_form')" v-for="item in cacheStore.getDict('result_form')"
@@ -218,9 +195,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'-10px':'-40px'}">
<!-- :label-width="!formData.isSpecialFund?!route.query.id?125:125:125">--> <el-form-item label="知识产权状况" prop="intellectualProperty">
<el-form-item label="知识产权状况" prop="intellectualProperty" label-width="160">
<el-select v-model="formData.intellectualProperty" placeholder="请选择知识产权状况" clearable filterable> <el-select v-model="formData.intellectualProperty" placeholder="请选择知识产权状况" clearable filterable>
<el-option <el-option
v-for="item in cacheStore.getDict('intellectual_property')" v-for="item in cacheStore.getDict('intellectual_property')"
@@ -231,55 +207,59 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'-10px':'-40px'}">
<el-form-item label="发明专利(项)" prop="inventionPatent" > <el-form-item label="发明专利(项)" prop="inventionPatent">
<el-input-number v-model="formData.inventionPatent" placeholder="请输入发明专利数量" :controls="false"/> <el-input-number v-model="formData.inventionPatent" placeholder="请输入发明专利数量" :controls="false"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="新型专利(项)" prop="newPatent" > <el-form-item label="新型专利(项)" prop="newPatent">
<el-input-number v-model="formData.newPatent" placeholder="请输入实用性新型专利数量" :controls="false" style="width: 100%"/> <el-input-number v-model="formData.newPatent" placeholder="请输入实用性新型专利数量" :controls="false"
style="width: 100%"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'0':route.query.id?'':'-40px'}">
<el-form-item label="软件著作权(项)" prop="softwareCopyright" :label-width="route.query.id && formData.isSpecialFund?160:120"> <el-form-item label="软件著作权(项)" prop="softwareCopyright">
<el-input-number v-model="formData.softwareCopyright" placeholder="请输入软件著作权数量" :controls="false"/> <el-input-number v-model="formData.softwareCopyright" placeholder="请输入软件著作权数量" :controls="false"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'-10px':route.query.id?'-40px':'0'}">
<el-form-item label="著作权(项)" prop="copyright" label-width="160"> <el-form-item label="著作权(项)" prop="copyright">
<el-input-number v-model="formData.copyright" placeholder="请输入著作权数量" :controls="false"/> <el-input-number v-model="formData.copyright" placeholder="请输入著作权数量" :controls="false"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'-10px':'-40px'}">
<el-form-item label="其他(项)" prop="other" > <el-form-item label="其他(项)" prop="other">
<el-input-number v-model="formData.other" placeholder="请输入其他数量" :controls="false"/> <el-input-number v-model="formData.other" placeholder="请输入其他数量" :controls="false"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row gutter="40" style="margin-bottom: -18px"> <baseTitle title="项目描述"></baseTitle>
<el-col :span="24"> <el-row gutter="30" style="margin-bottom: -18px;" :style="{marginLeft:!formData.isSpecialFund?'-8.5px':'-48.5px'}">
<baseTitle title="项目描述"></baseTitle>
</el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="现有业务描述" prop="serviceDescription"> <el-form-item label="现有业务描述" prop="serviceDescription">
<el-input v-model="formData.serviceDescription" placeholder="请输入现有业务描述" rows="4" type="textarea" <el-input v-model="formData.serviceDescription" placeholder="请输入现有业务描述" rows="4" type="textarea"
:style="{marginRight:!formData.isSpecialFund?'20px':'80px'}"
clearable></el-input> clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="建设目标描述" prop="contentDescription"> <el-form-item label="建设目标描述" prop="contentDescription">
<el-input v-model="formData.contentDescription" placeholder="请输入研发项目关键内容描述" rows="4" type="textarea" <el-input v-model="formData.contentDescription" placeholder="请输入研发项目关键内容描述" rows="4" type="textarea"
:style="{marginRight:!formData.isSpecialFund?'20px':'80px'}"
clearable></el-input> clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<baseTitle title="附件文件"></baseTitle> <baseTitle title="附件文件"></baseTitle>
<AttachmentUpload ref="attachment" label="需求申请书附件" :showTable="showTable" v-model:otherFileList="otherFileList" <div :style="{marginRight:!formData.isSpecialFund?'20px':'80px'}">
@getAttachment="getAttachment" v-model:singleList="singleList" :showSingleTable="showSingleTable" <AttachmentUpload ref="attachment" label="需求申请书附件" :showTable="showTable" v-model:otherFileList="otherFileList"
@getOtherFile="getOtherFile" :showFileList="true" :formData="formData" tag="需求上报" @getAttachment="getAttachment" v-model:singleList="singleList"
:preview="name === 'Summary/edit'"/> :showSingleTable="showSingleTable"
@getOtherFile="getOtherFile" :showFileList="true" :formData="formData" tag="需求上报"
:preview="name === 'Summary/edit'"/>
</div>
<div class="approval-record"> <div class="approval-record">
<div class="approval-title" style="margin-top: -15px"> <div class="approval-title" style="margin-top: -15px">
<baseTitle title="审批记录"></baseTitle> <baseTitle title="审批记录"></baseTitle>
@@ -291,8 +271,9 @@
/> />
</div> </div>
</div> </div>
<el-empty :image-size="100" description="暂无审批记录" v-if="processDiagramViewer&& !opentionData?.operationList&&!changeDiagram"/> <el-empty :image-size="100" description="暂无审批记录"
<!-- <process-diagram-viewer mode="view" v-if="processDiagramViewer&&changeDiagram"/>--> v-if="processDiagramViewer&& !opentionData?.operationList&&!changeDiagram"/>
<!-- <process-diagram-viewer mode="view" v-if="processDiagramViewer&&changeDiagram"/>-->
<div class="process"> <div class="process">
<operation-render <operation-render
v-if="processDiagramViewer&& opentionData?.operationList && opentionData?.operationList.length > 0&&!changeDiagram" v-if="processDiagramViewer&& opentionData?.operationList && opentionData?.operationList.length > 0&&!changeDiagram"
@@ -356,7 +337,7 @@ const formData = ref({
const rules = reactive({ const rules = reactive({
projectName: [{required: true, message: '请输入项目名称', trigger: ['blur', 'change']}], projectName: [{required: true, message: '请输入项目名称', trigger: ['blur', 'change']}],
specialFundId: [{required: true, message: '请选择专项资金', trigger: ['blur', 'change']}], specialFundId: [{required: true, message: '请选择专项资金名称', trigger: ['blur', 'change']}],
startTime: [{required: true, message: '请选择开始时间', trigger: ['blur', 'change']}], startTime: [{required: true, message: '请选择开始时间', trigger: ['blur', 'change']}],
endTime: [{required: true, message: '请选择结束时间', trigger: ['blur', 'change']}], endTime: [{required: true, message: '请选择结束时间', trigger: ['blur', 'change']}],
rdSubject: [{required: true, message: '请选择研发主体', trigger: ['blur', 'change']}], rdSubject: [{required: true, message: '请选择研发主体', trigger: ['blur', 'change']}],
@@ -370,7 +351,7 @@ const rules = reactive({
governmentDeclaration: [{required: true, message: '请选择开展政府申报', trigger: ['blur', 'change']}], governmentDeclaration: [{required: true, message: '请选择开展政府申报', trigger: ['blur', 'change']}],
intellectualProperty: [{required: true, message: '请选择知识产权状况', trigger: ['blur', 'change']}], intellectualProperty: [{required: true, message: '请选择知识产权状况', trigger: ['blur', 'change']}],
inventionPatent: [{required: true, message: '请输入发明专利数量', trigger: ['blur', 'change']}], inventionPatent: [{required: true, message: '请输入发明专利数量', trigger: ['blur', 'change']}],
newPatent: [{required: true, message: '请输入实用性新型专利数量', trigger:['blur', 'change']}], newPatent: [{required: true, message: '请输入实用性新型专利数量', trigger: ['blur', 'change']}],
softwareCopyright: [{required: true, message: '请输入软件著作权数量', trigger: ['blur', 'change']}], softwareCopyright: [{required: true, message: '请输入软件著作权数量', trigger: ['blur', 'change']}],
copyright: [{required: true, message: '请输入著作权数量', trigger: ['blur', 'change']}], copyright: [{required: true, message: '请输入著作权数量', trigger: ['blur', 'change']}],
other: [{required: true, message: '请输入其他数量', trigger: ['blur', 'change']}], other: [{required: true, message: '请输入其他数量', trigger: ['blur', 'change']}],
@@ -597,7 +578,7 @@ const getDetailInfo = async () => {
res.data.formData.specialFundId = res.data.formData.specialFundId === 0 ? null : res.data.formData.specialFundId res.data.formData.specialFundId = res.data.formData.specialFundId === 0 ? null : res.data.formData.specialFundId
formData.value = res.data.formData formData.value = res.data.formData
opentionData.value = res.data opentionData.value = res.data
optionalChargeLeadershipList.value=formData.value.optionalChargeLeadership optionalChargeLeadershipList.value = formData.value.optionalChargeLeadership
loading.value = false loading.value = false
} }
}) })
@@ -618,11 +599,11 @@ const init = async () => {
const processInfo = () => { const processInfo = () => {
processStore.setDesign(null) processStore.setDesign(null)
processDiagramViewer.value = false processDiagramViewer.value = false
let isSpecialFundParam=false let isSpecialFundParam = false
if(!formData.value.isSpecialFund){ if (!formData.value.isSpecialFund) {
isSpecialFundParam=false isSpecialFundParam = false
}else{ } else {
isSpecialFundParam= formData.value.isSpecialFund isSpecialFundParam = formData.value.isSpecialFund
} }
getProcessInfo(isSpecialFundParam).then(res => { getProcessInfo(isSpecialFundParam).then(res => {
if (res.code === 1000) { if (res.code === 1000) {
@@ -658,7 +639,7 @@ const staging = async () => {
<style lang="scss" scoped> <style lang="scss" scoped>
.detail-block { .detail-block {
overflow: hidden; overflow: hidden;
padding: 0 30px 30px 15px; padding: 0 0 0 40px;
:deep(.el-input-number) { :deep(.el-input-number) {
width: 100%; width: 100%;