feat : 项目验收新增字段
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-form :model="formData" ref="applyForm" :rules="rules" :label-position="labelPosition" style="margin-left: 5px">
|
<el-form :model="formData" ref="applyForm" :rules="rules" :label-position="labelPosition" :style="{marginLeft: label==='项目验收附件'?'25px':'5px'}">
|
||||||
<el-row>
|
<el-row>
|
||||||
<!-- <el-col :span="24">-->
|
<!-- <el-col :span="24">-->
|
||||||
<!-- <el-form-item :label="label" prop="attachment" >-->
|
<!-- <el-form-item :label="label" prop="attachment" >-->
|
||||||
|
|||||||
@@ -290,7 +290,190 @@ const schema = computed(() => {
|
|||||||
// }
|
// }
|
||||||
// })
|
// })
|
||||||
} else if (props.type == 'execute') {
|
} else if (props.type == 'execute') {
|
||||||
arr = [{
|
arr = [
|
||||||
|
|
||||||
|
{
|
||||||
|
label: '实际专利(项)',
|
||||||
|
prop: 'actualNewPatent',
|
||||||
|
colProps: {
|
||||||
|
span: 6
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.actualNewPatent ? props.formData.actualNewPatent : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '实际软件著作权(项)',
|
||||||
|
prop: 'actualSoftwareCopyright',
|
||||||
|
colProps: {
|
||||||
|
span: 6
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.actualSoftwareCopyright ? props.formData.actualSoftwareCopyright : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '实际技术标准(项)',
|
||||||
|
prop: 'actualTechnicalNorms',
|
||||||
|
colProps: {
|
||||||
|
span: 6
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.actualTechnicalNorms ? props.formData.actualTechnicalNorms : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '实际新产品(项)',
|
||||||
|
prop: 'actualNewProduct',
|
||||||
|
colProps: {
|
||||||
|
span: 6
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.actualNewProduct ? props.formData.actualNewProduct : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '实际新工艺(项)',
|
||||||
|
prop: 'actualNewProcess',
|
||||||
|
colProps: {
|
||||||
|
span: 6
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.actualNewProcess ? props.formData.actualNewProcess : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '实际新装置(项)',
|
||||||
|
prop: 'actualNewDevice',
|
||||||
|
colProps: {
|
||||||
|
span: 6
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.actualNewDevice ? props.formData.actualNewDevice : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '实际新材料(项)',
|
||||||
|
prop: 'actualNewMaterials',
|
||||||
|
colProps: {
|
||||||
|
span: 6
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.actualNewMaterials ? props.formData.actualNewMaterials : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '实际计算机软件(项)',
|
||||||
|
prop: 'actualComputerSoftware',
|
||||||
|
colProps: {
|
||||||
|
span: 6
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.actualComputerSoftware ? props.formData.actualComputerSoftware : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '实际论文论著(项)',
|
||||||
|
prop: 'actualThesis',
|
||||||
|
colProps: {
|
||||||
|
span: 6
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.actualThesis ? props.formData.actualThesis : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '实际研究报告(项)',
|
||||||
|
prop: 'actualResearchReport',
|
||||||
|
colProps: {
|
||||||
|
span: 6
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.actualResearchReport ? props.formData.actualResearchReport : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '实际商标(项)',
|
||||||
|
prop: 'actualTrademark',
|
||||||
|
colProps: {
|
||||||
|
span: 6
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.actualTrademark ? props.formData.actualTrademark : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '实际其他(项)',
|
||||||
|
prop: 'actualOther',
|
||||||
|
colProps: {
|
||||||
|
span: 24
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div style="white-space: pre-wrap;">
|
||||||
|
{
|
||||||
|
props.formData.actualOther ? props.formData.actualOther : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
label: '部门分管领导',
|
label: '部门分管领导',
|
||||||
prop: 'optionalChargeLeadership',
|
prop: 'optionalChargeLeadership',
|
||||||
colProps: {
|
colProps: {
|
||||||
@@ -306,7 +489,8 @@ const schema = computed(() => {
|
|||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
},]
|
}
|
||||||
|
]
|
||||||
|
|
||||||
if (props.preProcessShow == 'EDIT') {
|
if (props.preProcessShow == 'EDIT') {
|
||||||
preProcess = {
|
preProcess = {
|
||||||
|
|||||||
@@ -2,15 +2,15 @@
|
|||||||
<div class="apply-block">
|
<div class="apply-block">
|
||||||
<baseTitle :title="getTitleName(title)+'信息'"></baseTitle>
|
<baseTitle :title="getTitleName(title)+'信息'"></baseTitle>
|
||||||
<el-form :model="localFormData" ref="formRef" label-width="auto" v-if="step!=='50'" :rules="rules">
|
<el-form :model="localFormData" ref="formRef" label-width="auto" v-if="step!=='50'" :rules="rules">
|
||||||
<el-row>
|
<el-row v-if="title==='apply'">
|
||||||
<el-col :span="6" v-if="title==='apply'">
|
<el-col :span="6">
|
||||||
<!-- label-width="106"-->
|
<!-- label-width="106"-->
|
||||||
<el-form-item label="实际经费预算" prop="actualEconomicEstimate" label-width="111">
|
<el-form-item label="实际经费预算" prop="actualEconomicEstimate" label-width="111">
|
||||||
<el-input v-model="localFormData.actualEconomicEstimate" placeholder="请输入实际经费预算">
|
<el-input v-model="localFormData.actualEconomicEstimate" placeholder="请输入实际经费预算">
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6" v-if="title==='apply'&&detail">
|
<el-col :span="6" v-if="isSpecialFund">
|
||||||
<!-- label-width="106"-->
|
<!-- label-width="106"-->
|
||||||
<el-form-item label="实际专项资金" prop="specialFundAmount" label-width="121">
|
<el-form-item label="实际专项资金" prop="specialFundAmount" label-width="121">
|
||||||
<el-input v-model="localFormData.specialFundAmount" placeholder="请输入实际专项资金">
|
<el-input v-model="localFormData.specialFundAmount" placeholder="请输入实际专项资金">
|
||||||
@@ -18,6 +18,80 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
<el-row v-if="title==='check'">
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="实际专利(项)" prop="actualNewPatent" label-width="130">
|
||||||
|
<el-input v-model="localFormData.actualNewPatent" placeholder="请输入实际专利数量" style="margin-right: 20px">
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6" style="margin-left: -10px">
|
||||||
|
<el-form-item label="实际软件著作权(项)" prop="actualSoftwareCopyright" label-width="150">
|
||||||
|
<el-input v-model="localFormData.actualSoftwareCopyright" placeholder="请输入实际软件著作权数量">
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6" style="margin-left: -5px">
|
||||||
|
<el-form-item label="实际技术标准(项)" prop="actualTechnicalNorms" label-width="150">
|
||||||
|
<el-input v-model="localFormData.actualTechnicalNorms" placeholder="请输入实际技术标准数量">
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="实际新产品(项)" prop="actualNewProduct" label-width="160" style="margin-right: -10px">
|
||||||
|
<el-input v-model="localFormData.actualNewProduct" placeholder="请输入实际新产品数量" >
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="实际新工艺(项)" prop="actualNewProcess" label-width="130" >
|
||||||
|
<el-input v-model="localFormData.actualNewProcess" placeholder="请输入实际新工艺数量" style="margin-right: 20px">
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6" style="margin-left: -10px">
|
||||||
|
<el-form-item label="实际新装置(项)" prop="actualNewDevice" label-width="150">
|
||||||
|
<el-input v-model="localFormData.actualNewDevice" placeholder="请输入实际新装置数量">
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6" style="margin-left: -5px">
|
||||||
|
<el-form-item label="实际新材料(项)" prop="actualNewMaterials" label-width="150">
|
||||||
|
<el-input v-model="localFormData.actualNewMaterials" placeholder="请输入实际新材料数量">
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="实际计算机软件(项)" prop="actualComputerSoftware" label-width="160" style="margin-right: -10px">
|
||||||
|
<el-input v-model="localFormData.actualComputerSoftware" placeholder="请输入实际计算机软件数量">
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="实际论文论著(项)" prop="actualThesis" label-width="130" style="margin-right: 20px">
|
||||||
|
<el-input v-model="localFormData.actualThesis" placeholder="请输入实际论文论著数量">
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6" style="margin-left: -10px">
|
||||||
|
<el-form-item label="实际研究报告(项)" prop="actualResearchReport" label-width="150">
|
||||||
|
<el-input v-model="localFormData.actualResearchReport" placeholder="请输入实际研究报告数量">
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6" style="margin-left: -5px">
|
||||||
|
<el-form-item label="实际商标(项)" prop="actualTrademark" label-width="150">
|
||||||
|
<el-input v-model="localFormData.actualTrademark" placeholder="请输入实际商标数量">
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="实际其他(项)" prop="actualOther" label-width="130" style="margin-right: 10px">
|
||||||
|
<el-input rows="4" type="textarea" v-model="localFormData.actualOther" placeholder="请输入实际其他项">
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="6" v-if="title==='apply'">
|
<el-col :span="6" v-if="title==='apply'">
|
||||||
<!-- label-width="106"-->
|
<!-- label-width="106"-->
|
||||||
@@ -29,34 +103,41 @@
|
|||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
</div>
|
</div>
|
||||||
<user-picker :multiple="false" ref="projectChargePersonUserPicker" title="请选择项目负责人"
|
<user-picker :multiple="false" ref="projectChargePersonUserPicker" title="请选择项目负责人"
|
||||||
v-model:value="projectChargePersonUserList" @ok="projectChargePersonUserPickerOk" @cancelOrClear="projectChargePersonUserPickerCancel"/>
|
v-model:value="projectChargePersonUserList" @ok="projectChargePersonUserPickerOk"
|
||||||
|
@cancelOrClear="projectChargePersonUserPickerCancel"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6" v-if="title==='apply'">
|
<el-col :span="6" v-if="title==='apply'">
|
||||||
<el-form-item label="项目成员" :required="true" prop="" label-width="120"
|
<el-form-item label="项目成员" :required="true" prop="" label-width="120"
|
||||||
>
|
>
|
||||||
<el-button color="#DED0B2" style="margin-right: 10px" @click="handleShowProjectPersonTable">
|
<el-button color="#DED0B2" style="margin-right: 10px" @click="handleShowProjectPersonTable">
|
||||||
{{ projectPersonUserList?.length !== 0 ? '更改' : getProjectPerson(projectPersonUserList) ? '更改' : '请选择' }}
|
{{
|
||||||
|
projectPersonUserList?.length !== 0 ? '更改' : getProjectPerson(projectPersonUserList) ? '更改' : '请选择'
|
||||||
|
}}
|
||||||
</el-button>
|
</el-button>
|
||||||
<div v-for="(item,index) in getProjectPerson(projectPersonUserList)" :key="item.id">
|
<div v-for="(item,index) in getProjectPerson(projectPersonUserList)" :key="item.id">
|
||||||
{{ item.name }}{{ index != getProjectPerson(projectPersonUserList)?.length - 1 ? ',' : '' }}
|
{{ item.name }}{{ index != getProjectPerson(projectPersonUserList)?.length - 1 ? ',' : '' }}
|
||||||
</div>
|
</div>
|
||||||
<user-picker :multiple="true" ref="projectPersonUserPicker" title="请选择项目成员"
|
<user-picker :multiple="true" ref="projectPersonUserPicker" title="请选择项目成员"
|
||||||
v-model:value="projectPersonUserList" @ok="projectPersonUserPickerOk" @cancelOrClear="projectPersonUserPickerCancel"/>
|
v-model:value="projectPersonUserList" @ok="projectPersonUserPickerOk"
|
||||||
|
@cancelOrClear="projectPersonUserPickerCancel"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6" v-if="title==='apply'||title==='check'">
|
<el-col :span="6" v-if="title==='apply'||title==='check'">
|
||||||
<el-form-item label="部门分管领导" :label-width="title==='check'?110:115">
|
<el-form-item label="部门分管领导" :label-width="title==='check'?130:115">
|
||||||
<el-button color="#DED0B2" style="margin-right: 10px" @click="handleShowOptionalChargeLeadershipPicker">
|
<el-button color="#DED0B2" style="margin-right: 10px" @click="handleShowOptionalChargeLeadershipPicker">
|
||||||
{{
|
{{
|
||||||
optionalChargeLeadershipList?.length !== 0 ? '更改' : getOptionalChargeLeadershipList(optionalChargeLeadershipList) ? '更改' : '请选择'
|
optionalChargeLeadershipList?.length !== 0 ? '更改' : getOptionalChargeLeadershipList(optionalChargeLeadershipList) ? '更改' : '请选择'
|
||||||
}}
|
}}
|
||||||
</el-button>
|
</el-button>
|
||||||
<div v-for="(item,index) in getOptionalChargeLeadershipList(optionalChargeLeadershipList)" :key="item.id">
|
<div v-for="(item,index) in getOptionalChargeLeadershipList(optionalChargeLeadershipList)" :key="item.id">
|
||||||
{{ item.name }}{{index != getOptionalChargeLeadershipList(optionalChargeLeadershipList)?.length - 1 ? ',' : ''}}
|
{{
|
||||||
|
item.name
|
||||||
|
}}{{ index != getOptionalChargeLeadershipList(optionalChargeLeadershipList)?.length - 1 ? ',' : '' }}
|
||||||
</div>
|
</div>
|
||||||
<user-picker :multiple="true" ref="optionalChargeLeadershipPickerRef" title="请选择部门分管领导"
|
<user-picker :multiple="true" ref="optionalChargeLeadershipPickerRef" title="请选择部门分管领导"
|
||||||
v-model:value="optionalChargeLeadershipList" @ok="optionalChargeLeaderPickerOk" @cancelOrClear="optionalChargeLeaderPickerCancel"/>
|
v-model:value="optionalChargeLeadershipList" @ok="optionalChargeLeaderPickerOk"
|
||||||
|
@cancelOrClear="optionalChargeLeaderPickerCancel"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24" v-if="preProcessShow === 'EDIT'">
|
<el-col :span="24" v-if="preProcessShow === 'EDIT'">
|
||||||
@@ -78,7 +159,9 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
<!-- v-if="showAttachment"-->
|
<!-- v-if="showAttachment"-->
|
||||||
<AttachmentUpload ref="attachment" :label="getTitleName(title)+'附件'" :showTable="showTable"
|
<AttachmentUpload ref="attachment" :label="getTitleName(title)+'附件'" :showTable="showTable"
|
||||||
v-model:otherFileList="otherFileList" :tag="getTitleName(props.title)" :templateName="getTemplateName(props.title)" :templateDownloadBtnShow="props.title==='apply'?true:props.title==='check'"
|
v-model:otherFileList="otherFileList" :tag="getTitleName(props.title)"
|
||||||
|
:templateName="getTemplateName(props.title)"
|
||||||
|
:templateDownloadBtnShow="props.title==='apply'?true:props.title==='check'"
|
||||||
@getAttachment="getAttachment" v-model:singleList="singleList" :showSingleTable="showSingleTable"
|
@getAttachment="getAttachment" v-model:singleList="singleList" :showSingleTable="showSingleTable"
|
||||||
@getOtherFile="getOtherFile" :showFileList="true" :formData="localFormData"
|
@getOtherFile="getOtherFile" :showFileList="true" :formData="localFormData"
|
||||||
:preview="mode == 'resubmit'"/>
|
:preview="mode == 'resubmit'"/>
|
||||||
@@ -156,7 +239,7 @@
|
|||||||
<script setup lang="jsx">
|
<script setup lang="jsx">
|
||||||
import OperationRender from '@/views/workflow/common/OperationRender.vue'
|
import OperationRender from '@/views/workflow/common/OperationRender.vue'
|
||||||
import ProcessDiagramViewer from '@/views/workflow/common/ProcessDiagramViewer.vue';
|
import ProcessDiagramViewer from '@/views/workflow/common/ProcessDiagramViewer.vue';
|
||||||
import {ElNotification} from "element-plus";
|
import {ElLoading, ElNotification} from "element-plus";
|
||||||
import {
|
import {
|
||||||
getApplyProcess,
|
getApplyProcess,
|
||||||
getPreProcess,
|
getPreProcess,
|
||||||
@@ -173,7 +256,7 @@ import {useProcessStore} from '@/stores/processStore.js';
|
|||||||
import {useTagsView} from '@/stores/tagsview.js'
|
import {useTagsView} from '@/stores/tagsview.js'
|
||||||
import Paging from "@/components/pagination/index.vue";
|
import Paging from "@/components/pagination/index.vue";
|
||||||
import UserPicker from "@/views/workflow/process/common/UserPicker.vue";
|
import UserPicker from "@/views/workflow/process/common/UserPicker.vue";
|
||||||
import {getBaseInfoApi} from "@/components/steps/api";
|
import {getBaseInfoApi, getMapProjectStateInfo} from "@/components/steps/api";
|
||||||
|
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
@@ -233,6 +316,19 @@ const rules = reactive({
|
|||||||
actualEconomicEstimate: [{required: true, message: '请输入实际经费预算', trigger: ['blur', 'change']}],
|
actualEconomicEstimate: [{required: true, message: '请输入实际经费预算', trigger: ['blur', 'change']}],
|
||||||
specialFundAmount: [{required: true, message: '请输入实际专项资金', trigger: 'blur'}],
|
specialFundAmount: [{required: true, message: '请输入实际专项资金', trigger: 'blur'}],
|
||||||
// projectPerson: [{required: true, message: '请选择项目成员', trigger: 'blur'}],
|
// projectPerson: [{required: true, message: '请选择项目成员', trigger: 'blur'}],
|
||||||
|
actualNewPatent: [{required: true, message: '请输入实际专利数量', trigger: ['blur', 'change']}],
|
||||||
|
actualTechnicalNorms: [{required: true, message: '请输入实际技术标准数量', trigger: ['blur', 'change']}],
|
||||||
|
actualSoftwareCopyright: [{required: true, message: '请输入实际软件著作权数量', trigger: ['blur', 'change']}],
|
||||||
|
actualNewProduct: [{required: true, message: '请输入实际新产品数量', trigger: ['blur', 'change']}],
|
||||||
|
actualNewProcess: [{required: true, message: '请输入实际新工艺数量', trigger: ['blur', 'change']}],
|
||||||
|
actualNewMaterials: [{required: true, message: '请输入实际新材料数量', trigger: ['blur', 'change']}],
|
||||||
|
actualNewDevice: [{required: true, message: '请输入实际新装置数量', trigger: ['blur', 'change']}],
|
||||||
|
actualComputerSoftware: [{required: true, message: '请输入实际计算机软件数量', trigger: ['blur', 'change']}],
|
||||||
|
actualThesis: [{required: true, message: '请输入实际论文论著数量', trigger: ['blur', 'change']}],
|
||||||
|
actualResearchReport: [{required: true, message: '请输入实际研究报告数量', trigger: ['blur', 'change']}],
|
||||||
|
actualTrademark: [{required: true, message: '请输入实际商标数量', trigger: ['blur', 'change']}],
|
||||||
|
actualOther: [{required: true, message: '请输入实际其他项数量', trigger: ['blur', 'change']}],
|
||||||
|
|
||||||
})
|
})
|
||||||
const tagsViewStore = useTagsView()
|
const tagsViewStore = useTagsView()
|
||||||
const processStore = useProcessStore()
|
const processStore = useProcessStore()
|
||||||
@@ -261,7 +357,7 @@ const selectRows = ref([])
|
|||||||
const projectId = ref(route.query.projectId)
|
const projectId = ref(route.query.projectId)
|
||||||
const sessionParams = ref({})
|
const sessionParams = ref({})
|
||||||
const optionalChargeLeadershipPickerRef = ref()
|
const optionalChargeLeadershipPickerRef = ref()
|
||||||
const detail = ref(false)
|
const isSpecialFund = ref(false)
|
||||||
const optionalChargeLeadershipList = ref([])
|
const optionalChargeLeadershipList = ref([])
|
||||||
const filePreviewParam = ref({
|
const filePreviewParam = ref({
|
||||||
fileUrl: '',
|
fileUrl: '',
|
||||||
@@ -269,11 +365,49 @@ const filePreviewParam = ref({
|
|||||||
fileType: 'pdf'
|
fileType: 'pdf'
|
||||||
})
|
})
|
||||||
const filePreviewShow = ref(false)
|
const filePreviewShow = ref(false)
|
||||||
|
|
||||||
|
const getSummaryInfo = async () => {
|
||||||
|
if (props.mode === 'resubmit') return;
|
||||||
|
if(props.title === 'check'){
|
||||||
|
const loading = ElLoading.service({fullscreen: true})
|
||||||
|
try {
|
||||||
|
const projectId = route.query.projectId
|
||||||
|
const {code, data, msg} = await getMapProjectStateInfo(projectId, '10')
|
||||||
|
if (code === 1000) {
|
||||||
|
localFormData.value.actualNewPatent= data.formData.newPatent
|
||||||
|
localFormData.value.actualSoftwareCopyright= data.formData.softwareCopyright
|
||||||
|
localFormData.value.actualTechnicalNorms= data.formData.technicalNorms
|
||||||
|
localFormData.value.actualNewProduct= data.formData.newProduct
|
||||||
|
localFormData.value.actualNewProcess= data.formData.newProcess
|
||||||
|
localFormData.value.actualNewDevice= data.formData.newDevice
|
||||||
|
localFormData.value.actualNewMaterials= data.formData.newMaterials
|
||||||
|
localFormData.value.actualComputerSoftware= data.formData.computerSoftware
|
||||||
|
localFormData.value.actualThesis= data.formData.thesis
|
||||||
|
localFormData.value.actualResearchReport= data.formData.researchReport
|
||||||
|
localFormData.value.actualTrademark= data.formData.trademark
|
||||||
|
localFormData.value.actualOther= data.formData.other
|
||||||
|
|
||||||
|
loading.close()
|
||||||
|
} else {
|
||||||
|
ElNotification({
|
||||||
|
title: '提示',
|
||||||
|
message: msg,
|
||||||
|
type: 'error'
|
||||||
|
})
|
||||||
|
|
||||||
|
loading.close()
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
loading.close()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
getSummaryInfo()
|
||||||
|
|
||||||
const getInfo = async () => {
|
const getInfo = async () => {
|
||||||
|
|
||||||
const {code, data} = await getBaseInfoApi(route.query.projectId)
|
const {code, data} = await getBaseInfoApi(route.query.projectId)
|
||||||
console.log('data',code,data)
|
isSpecialFund.value = data.isSpecialFund
|
||||||
detail.value=data.isSpecialFund
|
|
||||||
}
|
}
|
||||||
getInfo()
|
getInfo()
|
||||||
const getTemplateName = (type) => {
|
const getTemplateName = (type) => {
|
||||||
@@ -547,7 +681,8 @@ const handleSubmit = async (instance) => {
|
|||||||
requirementId: route.query.id,
|
requirementId: route.query.id,
|
||||||
fileList: files,
|
fileList: files,
|
||||||
// singleFile: attachment.value.singleFile,
|
// singleFile: attachment.value.singleFile,
|
||||||
projectId: projectId.value,
|
projectId: route.query.projectId,
|
||||||
|
...localFormData.value,
|
||||||
actualEconomicEstimate: parseFloat(localFormData.value.actualEconomicEstimate),
|
actualEconomicEstimate: parseFloat(localFormData.value.actualEconomicEstimate),
|
||||||
specialFundAmount: parseFloat(localFormData.value.specialFundAmount),
|
specialFundAmount: parseFloat(localFormData.value.specialFundAmount),
|
||||||
preProcess: JSON.stringify(localFormData.value.preProcess)
|
preProcess: JSON.stringify(localFormData.value.preProcess)
|
||||||
@@ -611,13 +746,14 @@ const handleSubmit = async (instance) => {
|
|||||||
projectPersonIds.push(parseInt(item.id))
|
projectPersonIds.push(parseInt(item.id))
|
||||||
}
|
}
|
||||||
let params = {
|
let params = {
|
||||||
|
// singleFile: attachment.value.singleFile,
|
||||||
|
...localFormData.value,
|
||||||
|
projectId: route.query.projectId,
|
||||||
deploymentId: deploymentId.value,
|
deploymentId: deploymentId.value,
|
||||||
requirementId: route.query.id,
|
requirementId: route.query.id,
|
||||||
fileList: files,
|
fileList: files,
|
||||||
// singleFile: attachment.value.singleFile,
|
actualEconomicEstimate: parseFloat(localFormData.value.actualEconomicEstimate)||null,
|
||||||
projectId: projectId.value,
|
specialFundAmount: parseFloat(localFormData.value.specialFundAmount)||null,
|
||||||
actualEconomicEstimate: parseFloat(localFormData.value.actualEconomicEstimate),
|
|
||||||
specialFundAmount: parseFloat(localFormData.value.specialFundAmount),
|
|
||||||
preProcess: JSON.stringify(localFormData.value.preProcess)
|
preProcess: JSON.stringify(localFormData.value.preProcess)
|
||||||
}
|
}
|
||||||
if (sessionParams.value.preProcess && !localFormData.value.preProcess) {
|
if (sessionParams.value.preProcess && !localFormData.value.preProcess) {
|
||||||
@@ -679,7 +815,7 @@ const handleSubmit = async (instance) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
const init = async () => {
|
const init = async () => {
|
||||||
let id = projectId.value
|
let id = route.query.projectId
|
||||||
if (!id) return;
|
if (!id) return;
|
||||||
processDiagramViewer.value = false
|
processDiagramViewer.value = false
|
||||||
let res
|
let res
|
||||||
@@ -694,6 +830,7 @@ const init = async () => {
|
|||||||
let data = res.data
|
let data = res.data
|
||||||
deploymentId.value = data.deploymentId
|
deploymentId.value = data.deploymentId
|
||||||
deploymentData.value = data
|
deploymentData.value = data
|
||||||
|
console.log('data,',data)
|
||||||
preProcessRequired.value = data.deploymentName === '重大项目立项' || data.deploymentName === '重大项目验收';
|
preProcessRequired.value = data.deploymentName === '重大项目立项' || data.deploymentName === '重大项目验收';
|
||||||
processStore.setDesign(data)
|
processStore.setDesign(data)
|
||||||
processStore.runningList.value = data.runningList;
|
processStore.runningList.value = data.runningList;
|
||||||
|
|||||||
@@ -16,74 +16,74 @@
|
|||||||
</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">
|
||||||
<span>{{ localFormData.newPatent }}</span>
|
<span>{{ localFormData.newPatent }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="软件著作权(项)" prop="softwareCopyright">
|
<el-form-item label="预估软件著作权(项)" prop="softwareCopyright">
|
||||||
<span>{{ localFormData.softwareCopyright }}</span>
|
<span>{{ localFormData.softwareCopyright }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
|
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="技术标准(项)" prop="technicalNorms">
|
<el-form-item label="预估技术标准(项)" prop="technicalNorms">
|
||||||
<span>{{ localFormData.technicalNorms }}</span>
|
<span>{{ localFormData.technicalNorms }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="新产品(项)" prop="newProduct">
|
<el-form-item label="预估新产品(项)" prop="newProduct">
|
||||||
<span>{{ localFormData.newProduct }}</span>
|
<span>{{ localFormData.newProduct }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="新工艺(项)" prop="newProcess">
|
<el-form-item label="预估新工艺(项)" prop="newProcess">
|
||||||
<span>{{ localFormData.newProcess }}</span>
|
<span>{{ localFormData.newProcess }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="新装置(项)" prop="newDevice">
|
<el-form-item label="预估新装置(项)" prop="newDevice">
|
||||||
<span>{{ localFormData.newDevice }}</span>
|
<span>{{ localFormData.newDevice }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="新材料(项)" prop="newMaterials">
|
<el-form-item label="预估新材料(项)" prop="newMaterials">
|
||||||
<span>{{ localFormData.newMaterials }}</span>
|
<span>{{ localFormData.newMaterials }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="计算机软件(项)" prop="computerSoftware">
|
<el-form-item label="预估计算机软件(项)" prop="computerSoftware">
|
||||||
<span>{{ localFormData.computerSoftware }}</span>
|
<span>{{ localFormData.computerSoftware }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="论文论著(项)" prop="thesis">
|
<el-form-item label="预估论文论著(项)" prop="thesis">
|
||||||
<span>{{ localFormData.thesis }}</span>
|
<span>{{ localFormData.thesis }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="研究报告(项)" prop="researchReport">
|
<el-form-item label="预估研究报告(项)" prop="researchReport">
|
||||||
<span>{{ localFormData.researchReport }}</span>
|
<span>{{ localFormData.researchReport }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="商标(项)" prop="trademark">
|
<el-form-item label="预估商标(项)" prop="trademark">
|
||||||
<span>{{ localFormData.trademark }}</span>
|
<span>{{ localFormData.trademark }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="其他(项)" prop="other">
|
<el-form-item label="预估其他(项)" prop="other">
|
||||||
<span style="white-space: pre-wrap">{{ localFormData.other }}</span>
|
<span style="white-space: pre-wrap">{{ localFormData.other }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="detail-block" v-loading="loading" :style="{padding:!formData.isSpecialFund?'0 30px':'0 0 0 30px'}">
|
<div class="detail-block" v-loading="loading" :style="{padding:!formData.isSpecialFund?'0 30px':'0 0 0 30px'}">
|
||||||
<baseTitle title="项目基本信息"></baseTitle>
|
<baseTitle title="项目基本信息"></baseTitle>
|
||||||
<el-form :model="formData" ref="summaryForm" :rules="rules" :label-width="!formData.isSpecialFund?130:160"
|
<el-form :model="formData" ref="summaryForm" :rules="rules" :label-width="!formData.isSpecialFund?145:160"
|
||||||
:scroll-to-error="true">
|
:scroll-to-error="true">
|
||||||
<el-row gutter="30" style="margin-bottom: -18px;"
|
<el-row gutter="30" style="margin-bottom: -18px;"
|
||||||
:style="{marginLeft:!formData.isSpecialFund?'-8.5px':'-48.5px'}">
|
:style="{marginLeft:!formData.isSpecialFund?'-8.5px':'-48.5px'}">
|
||||||
@@ -277,76 +277,76 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'0':route.query.id?'0':'-40px'}" >
|
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'0':route.query.id?'0':'-40px'}" >
|
||||||
<el-form-item label="专利(项)" prop="newPatent">
|
<el-form-item label="预估专利(项)" prop="newPatent">
|
||||||
<el-input-number v-model="formData.newPatent" placeholder="请输入专利数量" :controls="false"
|
<el-input-number v-model="formData.newPatent" placeholder="请输入预估专利数量" :controls="false"
|
||||||
@change="changeCollectData"/>
|
@change="changeCollectData"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'-10px':route.query.id?'-40px':'0'}">
|
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'-10px':route.query.id?'-40px':'0'}">
|
||||||
<el-form-item label="软件著作权(项)" prop="softwareCopyright">
|
<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"
|
||||||
@change="changeCollectData"/>
|
@change="changeCollectData"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'-10px':route.query.id?'-40px':'-40px'}">
|
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'-10px':route.query.id?'-40px':'-40px'}">
|
||||||
<el-form-item label="技术标准(项)" prop="technicalNorms">
|
<el-form-item label="预估技术标准(项)" prop="technicalNorms">
|
||||||
<el-input-number v-model="formData.technicalNorms" placeholder="请输入技术标准数量" :controls="false"
|
<el-input-number v-model="formData.technicalNorms" placeholder="请输入预估技术标准数量" :controls="false"
|
||||||
@change="changeCollectData"/>
|
@change="changeCollectData"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'0':route.query.id?'0':'0'}">
|
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'0':route.query.id?'0':'0'}">
|
||||||
<el-form-item label="新产品(项)" prop="newProduct">
|
<el-form-item label="预估新产品(项)" prop="newProduct">
|
||||||
<el-input-number v-model="formData.newProduct" placeholder="请输入新产品数量" :controls="false"
|
<el-input-number v-model="formData.newProduct" placeholder="请输入预估新产品数量" :controls="false"
|
||||||
@change="changeCollectData"/>
|
@change="changeCollectData"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'0':route.query.id?'0':'-40px'}">
|
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'0':route.query.id?'0':'-40px'}">
|
||||||
<el-form-item label="新工艺(项)" prop="newProcess">
|
<el-form-item label="预估新工艺(项)" prop="newProcess">
|
||||||
<el-input-number v-model="formData.newProcess" placeholder="请输入新工艺数量" :controls="false"
|
<el-input-number v-model="formData.newProcess" placeholder="请输入预估新工艺数量" :controls="false"
|
||||||
@change="changeCollectData"/>
|
@change="changeCollectData"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'-10px':route.query.id?'-40px':'0'}">
|
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'-10px':route.query.id?'-40px':'0'}">
|
||||||
<el-form-item label="新装置(项)" prop="newDevice">
|
<el-form-item label="预估新装置(项)" prop="newDevice">
|
||||||
<el-input-number v-model="formData.newDevice" placeholder="请输入新装置数量" :controls="false"
|
<el-input-number v-model="formData.newDevice" placeholder="请输入预估新装置数量" :controls="false"
|
||||||
@change="changeCollectData"/>
|
@change="changeCollectData"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'-10px':route.query.id?'-40px':'-40px'}">
|
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'-10px':route.query.id?'-40px':'-40px'}">
|
||||||
<el-form-item label="新材料(项)" prop="newMaterials">
|
<el-form-item label="预估新材料(项)" prop="newMaterials">
|
||||||
<el-input-number v-model="formData.newMaterials" placeholder="请输入新材料数量" :controls="false"
|
<el-input-number v-model="formData.newMaterials" placeholder="请输入预估新材料数量" :controls="false"
|
||||||
@change="changeCollectData"/>
|
@change="changeCollectData"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'0':route.query.id?'0':'0'}">
|
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'0':route.query.id?'0':'0'}">
|
||||||
<el-form-item label="计算机软件(项)" prop="computerSoftware">
|
<el-form-item label="预估计算机软件(项)" prop="computerSoftware">
|
||||||
<el-input-number v-model="formData.computerSoftware" placeholder="请输入计算机软件数量" :controls="false"
|
<el-input-number v-model="formData.computerSoftware" placeholder="请输入预估计算机软件数量" :controls="false"
|
||||||
@change="changeCollectData"/>
|
@change="changeCollectData"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'0':route.query.id?'0':'-40px'}">
|
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'0':route.query.id?'0':'-40px'}">
|
||||||
<el-form-item label="论文论著(项)" prop="thesis">
|
<el-form-item label="预估论文论著(项)" prop="thesis">
|
||||||
<el-input-number v-model="formData.thesis" placeholder="请输入论文论著数量" :controls="false"
|
<el-input-number v-model="formData.thesis" placeholder="请输入预估论文论著数量" :controls="false"
|
||||||
@change="changeCollectData"/>
|
@change="changeCollectData"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'-10px':route.query.id?'-40px':'0'}">
|
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'-10px':route.query.id?'-40px':'0'}">
|
||||||
<el-form-item label="研究报告(项)" prop="researchReport">
|
<el-form-item label="预估研究报告(项)" prop="researchReport">
|
||||||
<el-input-number v-model="formData.researchReport" placeholder="请输入研究报告数量" :controls="false"
|
<el-input-number v-model="formData.researchReport" placeholder="请输入预估研究报告数量" :controls="false"
|
||||||
@change="changeCollectData"/>
|
@change="changeCollectData"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'-10px':route.query.id?'-40px':'-40px'}">
|
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'-10px':route.query.id?'-40px':'-40px'}">
|
||||||
<el-form-item label="商标(项)" prop="trademark">
|
<el-form-item label="预估商标(项)" prop="trademark">
|
||||||
<el-input-number v-model="formData.trademark" placeholder="请输入商标数量" :controls="false"
|
<el-input-number v-model="formData.trademark" placeholder="请输入预估商标数量" :controls="false"
|
||||||
@change="changeCollectData"/>
|
@change="changeCollectData"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24" >
|
<el-col :span="24" >
|
||||||
<el-form-item label="其他(项)" prop="other">
|
<el-form-item label="预估其他(项)" prop="other">
|
||||||
<el-input rows="4" type="textarea" v-model="formData.other"
|
<el-input rows="4" type="textarea" v-model="formData.other" placeholder="请输入预估其他项"
|
||||||
@change="changeCollectData" :style="{marginRight:!formData.isSpecialFund?'20px':'80px'}"/>
|
@change="changeCollectData" :style="{marginRight:!formData.isSpecialFund?'20px':'80px'}"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@@ -491,7 +491,7 @@ const rules = reactive({
|
|||||||
newProduct: [{required: true, message: '请输入新产品数量', trigger: ['blur', 'change']}],
|
newProduct: [{required: true, message: '请输入新产品数量', trigger: ['blur', 'change']}],
|
||||||
newProcess: [{required: true, message: '请输入新工艺数量', trigger: ['blur', 'change']}],
|
newProcess: [{required: true, message: '请输入新工艺数量', trigger: ['blur', 'change']}],
|
||||||
newMaterials: [{required: true, message: '请输入新材料数量', trigger: ['blur', 'change']}],
|
newMaterials: [{required: true, message: '请输入新材料数量', trigger: ['blur', 'change']}],
|
||||||
newDevice: [{required: true, message: '请输入新装备数量', trigger: ['blur', 'change']}],
|
newDevice: [{required: true, message: '请输入新装置数量', trigger: ['blur', 'change']}],
|
||||||
computerSoftware: [{required: true, message: '请输入计算机软件数量', trigger: ['blur', 'change']}],
|
computerSoftware: [{required: true, message: '请输入计算机软件数量', trigger: ['blur', 'change']}],
|
||||||
thesis: [{required: true, message: '请输入论文论著数量', trigger: ['blur', 'change']}],
|
thesis: [{required: true, message: '请输入论文论著数量', trigger: ['blur', 'change']}],
|
||||||
researchReport: [{required: true, message: '请输入研究报告数量', trigger: ['blur', 'change']}],
|
researchReport: [{required: true, message: '请输入研究报告数量', trigger: ['blur', 'change']}],
|
||||||
|
|||||||
@@ -36,7 +36,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="process">
|
<div class="process">
|
||||||
<operation-render v-if="processViewer && data.operationList && data.operationList.length > 0&&!changeDiagram" :isColumn="true"
|
<operation-render v-if="processViewer && data.operationList && data.operationList.length > 0&&!changeDiagram"
|
||||||
|
:isColumn="true"
|
||||||
:operation-list="data.operationList"
|
:operation-list="data.operationList"
|
||||||
:state="data.state"/>
|
:state="data.state"/>
|
||||||
<process-diagram-viewer v-if="processViewer&&changeDiagram" :id-name="idName?idName:type"/>
|
<process-diagram-viewer v-if="processViewer&&changeDiagram" :id-name="idName?idName:type"/>
|
||||||
@@ -115,7 +116,8 @@ const editSingleTableConfig = reactive({
|
|||||||
label: '文件名',
|
label: '文件名',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 300,
|
width: 300,
|
||||||
currentRender: ({row, index}) => (<div style="color: #2a99ff;cursor: pointer;" onClick={()=>clickToPreview(row)}>{row.originalFileName}</div>)
|
currentRender: ({row, index}) => (
|
||||||
|
<div style="color: #2a99ff;cursor: pointer;" onClick={() => clickToPreview(row)}>{row.originalFileName}</div>)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'tag',
|
prop: 'tag',
|
||||||
@@ -214,7 +216,8 @@ const schema = computed(() => {
|
|||||||
<div>
|
<div>
|
||||||
{
|
{
|
||||||
props.formData.projectPersonList ? props.formData.projectPersonList.map((item, index) => {
|
props.formData.projectPersonList ? props.formData.projectPersonList.map((item, index) => {
|
||||||
return <span>{item.name} <span>{index != props.formData.projectPersonList?.length - 1 ? ',' : ''}</span></span>
|
return <span>{item.name}
|
||||||
|
<span>{index != props.formData.projectPersonList?.length - 1 ? ',' : ''}</span></span>
|
||||||
}) : <span>{'--'}</span>
|
}) : <span>{'--'}</span>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
@@ -273,7 +276,188 @@ const schema = computed(() => {
|
|||||||
// }
|
// }
|
||||||
// })
|
// })
|
||||||
} else if (props.type == 'execute') {
|
} else if (props.type == 'execute') {
|
||||||
arr = [{
|
arr = [
|
||||||
|
{
|
||||||
|
label: '实际专利(项)',
|
||||||
|
prop: 'actualNewPatent',
|
||||||
|
colProps: {
|
||||||
|
span: 24
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.actualNewPatent ? props.formData.actualNewPatent : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '实际软件著作权(项)',
|
||||||
|
prop: 'actualSoftwareCopyright',
|
||||||
|
colProps: {
|
||||||
|
span: 24
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.actualSoftwareCopyright ? props.formData.actualSoftwareCopyright : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '实际技术标准(项)',
|
||||||
|
prop: 'actualTechnicalNorms',
|
||||||
|
colProps: {
|
||||||
|
span: 24
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.actualTechnicalNorms ? props.formData.actualTechnicalNorms : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '实际新产品(项)',
|
||||||
|
prop: 'actualNewProduct',
|
||||||
|
colProps: {
|
||||||
|
span: 24
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.actualNewProduct ? props.formData.actualNewProduct : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '实际新工艺(项)',
|
||||||
|
prop: 'actualNewProcess',
|
||||||
|
colProps: {
|
||||||
|
span: 24
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.actualNewProcess ? props.formData.actualNewProcess : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '实际新装置(项)',
|
||||||
|
prop: 'actualNewDevice',
|
||||||
|
colProps: {
|
||||||
|
span: 24
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.actualNewDevice ? props.formData.actualNewDevice : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '实际新材料(项)',
|
||||||
|
prop: 'actualNewMaterials',
|
||||||
|
colProps: {
|
||||||
|
span: 24
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.actualNewMaterials ? props.formData.actualNewMaterials : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '实际计算机软件(项)',
|
||||||
|
prop: 'actualComputerSoftware',
|
||||||
|
colProps: {
|
||||||
|
span: 24
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.actualComputerSoftware ? props.formData.actualComputerSoftware : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '实际论文论著(项)',
|
||||||
|
prop: 'actualThesis',
|
||||||
|
colProps: {
|
||||||
|
span: 24
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.actualThesis ? props.formData.actualThesis : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '实际研究报告(项)',
|
||||||
|
prop: 'actualResearchReport',
|
||||||
|
colProps: {
|
||||||
|
span: 24
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.actualResearchReport ? props.formData.actualResearchReport : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '实际商标(项)',
|
||||||
|
prop: 'actualTrademark',
|
||||||
|
colProps: {
|
||||||
|
span: 24
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.actualTrademark ? props.formData.actualTrademark : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '实际其他(项)',
|
||||||
|
prop: 'actualOther',
|
||||||
|
colProps: {
|
||||||
|
span: 24
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div style="white-space: pre-wrap;">
|
||||||
|
{
|
||||||
|
props.formData.actualOther ? props.formData.actualOther : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
label: '部门分管领导',
|
label: '部门分管领导',
|
||||||
prop: 'optionalChargeLeadership',
|
prop: 'optionalChargeLeadership',
|
||||||
colProps: {
|
colProps: {
|
||||||
|
|||||||
@@ -3,11 +3,6 @@
|
|||||||
<el-form :model="localFormData" ref="summaryForm" :rules="rules">
|
<el-form :model="localFormData" ref="summaryForm" :rules="rules">
|
||||||
<baseTitle title="预期知识产权"></baseTitle>
|
<baseTitle title="预期知识产权"></baseTitle>
|
||||||
<el-row gutter="20" style="margin-bottom: -18px;margin-left: 5px">
|
<el-row gutter="20" style="margin-bottom: -18px;margin-left: 5px">
|
||||||
<!-- <el-col :span="24">-->
|
|
||||||
<!-- <el-form-item label="预期成果形式" prop="resultForm">-->
|
|
||||||
<!-- <span>{{ filterDict(cacheStore.getDict('result_form'), localFormData.resultForm) }}</span>-->
|
|
||||||
<!-- </el-form-item>-->
|
|
||||||
<!-- </el-col>-->
|
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="知识产权归属" prop="intellectualProperty">
|
<el-form-item label="知识产权归属" prop="intellectualProperty">
|
||||||
<span>{{
|
<span>{{
|
||||||
@@ -17,74 +12,74 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="专利(项)" prop="newPatent">
|
<el-form-item label="预估专利(项)" prop="newPatent">
|
||||||
<span>{{ localFormData.newPatent }}</span>
|
<span>{{ localFormData.newPatent }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="软件著作权(项)" prop="softwareCopyright">
|
<el-form-item label="预估软件著作权(项)" prop="softwareCopyright">
|
||||||
<span>{{ localFormData.softwareCopyright }}</span>
|
<span>{{ localFormData.softwareCopyright }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
|
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="技术标准(项)" prop="technicalNorms">
|
<el-form-item label="预估技术标准(项)" prop="technicalNorms">
|
||||||
<span>{{ localFormData.technicalNorms }}</span>
|
<span>{{ localFormData.technicalNorms }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="新产品(项)" prop="newProduct">
|
<el-form-item label="预估新产品(项)" prop="newProduct">
|
||||||
<span>{{ localFormData.newProduct }}</span>
|
<span>{{ localFormData.newProduct }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="新工艺(项)" prop="newProcess">
|
<el-form-item label="预估新工艺(项)" prop="newProcess">
|
||||||
<span>{{ localFormData.newProcess }}</span>
|
<span>{{ localFormData.newProcess }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="新装置(项)" prop="newDevice">
|
<el-form-item label="预估新装置(项)" prop="newDevice">
|
||||||
<span>{{ localFormData.newDevice }}</span>
|
<span>{{ localFormData.newDevice }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="新材料(项)" prop="newMaterials">
|
<el-form-item label="预估新材料(项)" prop="newMaterials">
|
||||||
<span>{{ localFormData.newMaterials }}</span>
|
<span>{{ localFormData.newMaterials }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="计算机软件(项)" prop="computerSoftware">
|
<el-form-item label="预估计算机软件(项)" prop="computerSoftware">
|
||||||
<span>{{ localFormData.computerSoftware }}</span>
|
<span>{{ localFormData.computerSoftware }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="论文论著(项)" prop="thesis">
|
<el-form-item label="预估论文论著(项)" prop="thesis">
|
||||||
<span>{{ localFormData.thesis }}</span>
|
<span>{{ localFormData.thesis }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="研究报告(项)" prop="researchReport">
|
<el-form-item label="预估研究报告(项)" prop="researchReport">
|
||||||
<span>{{ localFormData.researchReport }}</span>
|
<span>{{ localFormData.researchReport }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="商标(项)" prop="trademark">
|
<el-form-item label="预估商标(项)" prop="trademark">
|
||||||
<span>{{ localFormData.trademark }}</span>
|
<span>{{ localFormData.trademark }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="其他(项)" prop="other">
|
<el-form-item label="预估其他(项)" prop="other">
|
||||||
<span style="white-space: pre-wrap">{{ localFormData.other }}</span>
|
<span style="white-space: pre-wrap">{{ localFormData.other }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|||||||
Reference in New Issue
Block a user