Merge pull request 'master' (#672) from master into prod

Reviewed-on: http://git.feashow.cn/clay/mosr-web/pulls/672
This commit is contained in:
2024-08-06 07:27:28 +00:00
15 changed files with 191 additions and 273 deletions

View File

@@ -22,6 +22,9 @@
<el-table-column <el-table-column
prop="nodeName" prop="nodeName"
label="节点名称"> label="节点名称">
<template #default="scope">
{{scope.row.nodeId==-1?'发起节点':scope.row.nodeName}}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="name"

View File

@@ -1,96 +1,9 @@
<template> <template>
<div class="detail-block" v-loading="loading"> <div class="detail-block" v-loading="loading">
<baseTitle title="需求上报信息"></baseTitle>
<el-form :model="localFormData" ref="summaryForm" :rules="rules"> <el-form :model="localFormData" ref="summaryForm" :rules="rules">
<el-row gutter="20" style="margin-bottom: -18px"> <baseTitle title="预期知识产权"></baseTitle>
<el-row gutter="20" style="margin-bottom: -18px;margin-left: 5px">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="项目名称" prop="projectName">
<span>{{ localFormData.projectName }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="开始时间" prop="startTime">
<span>{{ localFormData.startTime }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="结束时间" prop="endTime">
<span>{{ localFormData.endTime }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="项目类型" prop="projectType">
<span>{{ filterDict(cacheStore.getDict('project_type'), localFormData.projectType) }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="研发主体" prop="rdSubject">
<span>{{ filterDict(cacheStore.getDict('rd_subject'), localFormData.rdSubject) }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="出资类型" prop="investmentType">
<span>{{ filterDict(cacheStore.getDict('invest_type'), localFormData.investmentType) }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="所属业务板块" prop="businessSegment">
<span>{{ filterDict(cacheStore.getDict('business_segment'), localFormData.businessSegment) }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="标准制定" prop="technicalStandard">
<span>{{ filterDict(cacheStore.getDict('technical_standard'), localFormData.technicalStandard) }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="项目影响" prop="projectImpact">
<span>{{ filterDict(cacheStore.getDict('project_impact'), localFormData.projectImpact) }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="经费预算(元)" prop="economicEstimate">
<span>{{ toThousands(localFormData.economicEstimate) }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="产学研联合" prop="industryUniversityResearch">
<span>{{
filterDict(cacheStore.getDict('industry_university'), localFormData.industryUniversityResearch)
}}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="开展政府申报" prop="governmentDeclaration">
<span>{{
filterDict(cacheStore.getDict('government_declaration'), localFormData.governmentDeclaration)
}}</span>
</el-form-item>
</el-col>
<el-col :span="6" v-if="localFormData.isSpecialFund">
<el-form-item label="所属专项资金项目" prop="specialFund">
<span>{{
localFormData.specialFundId === 0 ? localFormData.specialFund : changeName(fundOption, localFormData.specialFundId)
}}</span>
</el-form-item>
</el-col>
<el-col :span="6" v-if="localFormData.isSpecialFund">
<el-form-item label="申请总部专项资金(元)" prop="specialFundAmount">
<span>{{ toThousands(localFormData.specialFundAmount) }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="部门分管领导" prop="optionalChargeLeadership">
<span>{{ localFormData.optionalChargeLeadership?.map(item=>item.name).join()||'--' }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row gutter="20" style="margin-bottom: -18px">
<el-col :span="24">
<baseTitle title="预期知识产权"></baseTitle>
</el-col>
<el-col :span="12">
<el-form-item label="预期成果形式" prop="resultForm"> <el-form-item label="预期成果形式" prop="resultForm">
<span>{{ filterDict(cacheStore.getDict('result_form'), localFormData.resultForm) }}</span> <span>{{ filterDict(cacheStore.getDict('result_form'), localFormData.resultForm) }}</span>
</el-form-item> </el-form-item>
@@ -128,10 +41,9 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row gutter="20" >
<el-col :span="24"> <baseTitle title="项目描述"></baseTitle>
<baseTitle title="项目描述"></baseTitle> <el-row gutter="20" style="margin-left: 5px;margin-bottom: -18px;">
</el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="现有业务描述" prop="serviceDescription"> <el-form-item label="现有业务描述" prop="serviceDescription">
<span>{{ localFormData.serviceDescription }}</span> <span>{{ localFormData.serviceDescription }}</span>
@@ -142,11 +54,12 @@
<span>{{ localFormData.contentDescription }}</span> <span>{{ localFormData.contentDescription }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" style="margin-top: -18px"> </el-row>
<baseTitle title="需求上报申请书"></baseTitle>
</el-col> <baseTitle title="需求上报申请书" style="margin-bottom: 10px">></baseTitle>
<el-row gutter="20" style="margin-bottom: -15px;">
<el-col :span="24"> <el-col :span="24">
<single-file-component tag="需求上报" v-model:value="localFormData.singleFile" :processViewer="processViewer" /> <single-file-component tag="需求上报" v-model:value="localFormData.singleFile" :processViewer="processViewer"/>
<!-- <el-form-item>--> <!-- <el-form-item>-->
<!-- {{localFormData.singleFile}}--> <!-- {{localFormData.singleFile}}-->
<!-- <el-button type="primary" link @click="handleDownload(localFormData.singleFile)" style="font-size: 16px">--> <!-- <el-button type="primary" link @click="handleDownload(localFormData.singleFile)" style="font-size: 16px">-->
@@ -154,9 +67,9 @@
<!-- </el-button>--> <!-- </el-button>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
</el-col> </el-col>
<el-col :span="24" style="margin-top: -12px"> </el-row>
<baseTitle title="附件列表"></baseTitle> <baseTitle title="附件列表" style="margin-bottom: 0"></baseTitle>
</el-col> <el-row gutter="20" style="margin-bottom: -18px;">
<el-col :span="24"> <el-col :span="24">
<file-component tag="需求上报" <file-component tag="需求上报"
v-model:value="localFormData.fileList" :processViewer="processViewer" v-model:value="localFormData.fileList" :processViewer="processViewer"
@@ -175,7 +88,7 @@
</el-form-item> </el-form-item>
</div> </div>
<div v-if="data.state==='5'" style="margin-bottom: 15px"> <div v-if="data.state==='5'" style="margin-bottom: 15px">
<baseTitle title="前置流程"></baseTitle> <baseTitle title="前置流程" v-if="localFormData.preProcess"></baseTitle>
<div style="display: flex;align-items: center;flex-wrap: wrap;"> <div style="display: flex;align-items: center;flex-wrap: wrap;">
<div v-for="(item,index) in localFormData.preProcess" :key="item.requestId"> <div v-for="(item,index) in localFormData.preProcess" :key="item.requestId">
<a :href="item.baseUrl" target="_blank" <a :href="item.baseUrl" target="_blank"
@@ -404,6 +317,22 @@ getFundOptions()
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
:deep(.el-table__header) {
.is-leaf:first-child {
.cell {
margin-left: -25px !important;
}
}
}
:deep(.el-table__body) {
.el-table__cell:first-child {
.cell {
margin-left: -13px !important;
}
}
}
.detail-block { .detail-block {
overflow-x: hidden; overflow-x: hidden;
overflow-y: auto; overflow-y: auto;

View File

@@ -1,6 +1,8 @@
<template> <template>
<div style="padding: 0 30px">
<baseTitle title="项目基本信息"></baseTitle> <baseTitle title="项目基本信息"></baseTitle>
<fvForm :schema="schema" @getInstance="(e)=>baseForm = e" label-position="left" label-width="left"></fvForm> <fvForm :schema="schema" @getInstance="(e)=>baseForm = e" label-position="left" label-width="left" style="margin-left: 15px"></fvForm>
<div class="steps-box"> <div class="steps-box">
<el-steps v-if="stepsShow" :active="localActive" finish-status="success"> <el-steps v-if="stepsShow" :active="localActive" finish-status="success">
<el-step <el-step
@@ -30,6 +32,7 @@
<component v-if="localActive == index" v-bind="item.props || {}" :is="item.component" /> <component v-if="localActive == index" v-bind="item.props || {}" :is="item.component" />
</template> --> </template> -->
</div> </div>
</div>
</template> </template>
<script setup lang="jsx"> <script setup lang="jsx">

View File

@@ -120,12 +120,14 @@ const tableConfig = reactive({
{ {
prop: 'time', prop: 'time',
label: '时间', label: '时间',
align: 'center' align: 'center',
width: 120,
}, },
{ {
prop: 'projectCost', prop: 'projectCost',
label: '项目费用', label: '项目费用',
align: 'center', align: 'center',
width: 120,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.projectCost !== null&&row.projectCost !== null&&row.projectCost!==undefined) { if (row.projectCost !== null&&row.projectCost !== null&&row.projectCost!==undefined) {
@@ -139,6 +141,7 @@ const tableConfig = reactive({
prop: 'researchStage', prop: 'researchStage',
label: '研发阶段', label: '研发阶段',
align: 'center', align: 'center',
width: 120,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.researchStage&&row.researchStage !== null&&row.researchStage!==undefined) { if (row.researchStage&&row.researchStage !== null&&row.researchStage!==undefined) {

View File

@@ -1,7 +1,9 @@
<template> <template>
<baseTitle title="年度计划"></baseTitle> <div style="padding: 0 20px">
<fvSearchForm :searchConfig="searchConfig" @search="search"></fvSearchForm> <baseTitle title="年度计划" style="margin-left: -15px;margin-bottom: -2px"></baseTitle>
<fvTable ref="tableIns" :tableConfig="tableConfig" @headBtnClick="headBtnClick"></fvTable> <fvSearchForm :searchConfig="searchConfig" @search="search"></fvSearchForm>
<fvTable ref="tableIns" :tableConfig="tableConfig" @headBtnClick="headBtnClick"></fvTable>
</div>
</template> </template>
<script setup lang="jsx"> <script setup lang="jsx">

View File

@@ -142,13 +142,13 @@ const tableConfig = reactive({
prop: 'deadline', prop: 'deadline',
label: '需求上报截止时间', label: '需求上报截止时间',
align: 'center', align: 'center',
// width: 150, width: 150,
}, },
{ {
prop: 'approveName', prop: 'approveName',
label: '当前审批节点', label: '当前审批节点',
align: 'center', align: 'center',
// width: 100, width: 120,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if(row.state=='1'){ if(row.state=='1'){
return <span>{row.approveName}</span> return <span>{row.approveName}</span>
@@ -157,18 +157,11 @@ const tableConfig = reactive({
} }
} }
}, },
// {
// prop: 'taskNode',
// label: '当前审批节点',
// align: 'center',
// // width: 300
//
// },
{ {
prop: 'state', prop: 'state',
label: '状态', label: '状态',
align: 'center', align: 'center',
// width: 100, width: 120,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => (<Tag dictType={'demand_collection'} value={row.state}/>) currentRender: ({row, index}) => (<Tag dictType={'demand_collection'} value={row.state}/>)
}, },

View File

@@ -183,6 +183,7 @@ const tableConfig = reactive({
prop: 'projectType', prop: 'projectType',
label: '项目类型', label: '项目类型',
align: 'center', align: 'center',
width: 100,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.projectType !== null) { if (row.projectType !== null) {
@@ -196,6 +197,7 @@ const tableConfig = reactive({
prop: 'rdSubject', prop: 'rdSubject',
label: '研发主体', label: '研发主体',
align: 'center', align: 'center',
width: 100,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.rdSubject !== null) { if (row.rdSubject !== null) {
@@ -209,6 +211,7 @@ const tableConfig = reactive({
prop: 'projectImpact', prop: 'projectImpact',
label: '项目影响', label: '项目影响',
align: 'center', align: 'center',
width: 100,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.projectImpact !== null) { if (row.projectImpact !== null) {
@@ -230,6 +233,7 @@ const tableConfig = reactive({
prop: 'state', prop: 'state',
label: '状态', label: '状态',
align: 'center', align: 'center',
width: 150,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.state !== null && row.state != 0) { if (row.state !== null && row.state != 0) {
@@ -244,6 +248,7 @@ const tableConfig = reactive({
label: '操作', label: '操作',
align: 'center', align: 'center',
fixed: 'right', fixed: 'right',
width: 150,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
let btn = [] let btn = []

View File

@@ -171,6 +171,7 @@ const tableConfig = reactive({
prop: 'projectType', prop: 'projectType',
label: '项目类型', label: '项目类型',
align: 'center', align: 'center',
width: 100,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.projectType !== null) { if (row.projectType !== null) {
@@ -184,6 +185,7 @@ const tableConfig = reactive({
prop: 'rdSubject', prop: 'rdSubject',
label: '研发主体', label: '研发主体',
align: 'center', align: 'center',
width: 100,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.rdSubject !== null) { if (row.rdSubject !== null) {
@@ -197,6 +199,7 @@ const tableConfig = reactive({
prop: 'projectImpact', prop: 'projectImpact',
label: '项目影响', label: '项目影响',
align: 'center', align: 'center',
width: 100,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.projectImpact !== null) { if (row.projectImpact !== null) {
@@ -210,6 +213,7 @@ const tableConfig = reactive({
prop: 'economicEstimate', prop: 'economicEstimate',
label: '经费预算(元)', label: '经费预算(元)',
align: 'center', align: 'center',
width: 150,
currentRender:({row})=>{ currentRender:({row})=>{
return <span>{toThousands(row.economicEstimate)}</span> return <span>{toThousands(row.economicEstimate)}</span>
} }
@@ -226,6 +230,7 @@ const tableConfig = reactive({
prop: 'approveName', prop: 'approveName',
label: '当前审批节点', label: '当前审批节点',
align: 'center', align: 'center',
width: 120,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if(row.state=='3'||row.state=='4'){ if(row.state=='3'||row.state=='4'){
return <span>{row.taskNode}</span> return <span>{row.taskNode}</span>
@@ -240,6 +245,7 @@ const tableConfig = reactive({
prop: 'state', prop: 'state',
label: '状态', label: '状态',
align: 'center', align: 'center',
width: 100,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.state !== null) { if (row.state !== null) {
@@ -254,6 +260,7 @@ const tableConfig = reactive({
label: '操作', label: '操作',
align: 'center', align: 'center',
fixed:'right', fixed:'right',
width: 150,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
let btn = [] let btn = []

View File

@@ -1,11 +1,11 @@
<template> <template>
<view style="overflow-y: scroll"> <view style="overflow-y: scroll;">
<baseTitle title="项目基本信息"></baseTitle> <baseTitle title="项目基本信息"></baseTitle>
<fvForm :schema="schema" @getInstance="(e)=>baseForm = e" label-position="left" label-width="left"></fvForm> <fvForm :schema="schema" @getInstance="(e)=>baseForm = e" label-position="left" label-width="left" style="margin-left: 15px"></fvForm>
<baseTitle title="表格更新数据" style="margin-top: -10px"></baseTitle> <baseTitle title="研发台账明细" style="margin-top: -10px"></baseTitle>
<fvForm :schema="tableUpdateData" @getInstance="(e)=>tableUpdateFormData = e"></fvForm> <fvForm :schema="tableUpdateData" @getInstance="(e)=>tableUpdateFormData = e" style="margin-left: 15px"></fvForm>
<fvSearchForm :searchConfig="searchConfig" @search="search"></fvSearchForm> <fvSearchForm :searchConfig="searchConfig" @search="search"></fvSearchForm>
<div style="display: flex"> <div style="display: flex;margin-left: 15px" >
<el-button color="#DED0B2" @click="exportExcelHandler">导出</el-button> <el-button color="#DED0B2" @click="exportExcelHandler">导出</el-button>
<import-excel :projectId="projectId" v-if="buttonShow" @success="importTheExpenseLedger"/> <import-excel :projectId="projectId" v-if="buttonShow" @success="importTheExpenseLedger"/>
<el-button color="#DED0B2" v-if="buttonShow" @click="handleImportTemplateDownload">模板下载</el-button> <el-button color="#DED0B2" v-if="buttonShow" @click="handleImportTemplateDownload">模板下载</el-button>
@@ -244,22 +244,22 @@ const tableUpdateData = computed(() => {
}, },
labelWidth:'left' labelWidth:'left'
}, },
{ // {
label: '项目开始时间', // label: '项目开始时间',
prop: 'startTime', // prop: 'startTime',
colProps: { // colProps: {
span: 6 // span: 6
}, // },
labelWidth:'left' // labelWidth:'left'
}, // },
{ // {
label: '项目预计持续时间', // label: '项目预计持续时间',
prop: 'endTime', // prop: 'endTime',
colProps: { // colProps: {
span: 6 // span: 6
}, // },
labelWidth:'left' // labelWidth:'left'
}, // },
{ {
label: '项目开展方式', label: '项目开展方式',
prop: 'projectDevelopmentWay', prop: 'projectDevelopmentWay',
@@ -268,14 +268,14 @@ const tableUpdateData = computed(() => {
}, },
labelWidth:'left' labelWidth:'left'
}, },
{ // {
label: '项目预算', // label: '项目预算',
prop: 'projectBudgetDescription', // prop: 'projectBudgetDescription',
colProps: { // colProps: {
span: 24 // span: 24
}, // },
labelWidth:'left' // labelWidth:'left'
}, // },
{ {
label: '项目总体完成率', label: '项目总体完成率',
prop: 'projectCompletionRate', prop: 'projectCompletionRate',
@@ -548,11 +548,29 @@ onActivated(() => {
min-height: 400px !important; min-height: 400px !important;
} }
:deep(.el-form-item__label-wrap){ :deep(.el-form-item__label-wrap){
margin-left: 0!important; margin-left: 15px!important;
} }
:deep(.el-form-item__content){ :deep(.el-form-item__content){
.el-input{ .el-input{
width: 100%!important; width: 100%!important;
} }
} }
.search-form {
padding-top: 0!important;
}
:deep(.el-table__header){
.is-leaf:first-child{
.cell{
margin-left: -20px!important;
}
}
}
:deep(.el-table__body){
.el-table__cell:first-child{
.cell{
margin-left: -10px!important;
}
}
}
</style> </style>

View File

@@ -174,6 +174,7 @@ const tableConfig = reactive({
prop: 'projectType', prop: 'projectType',
label: '项目类型', label: '项目类型',
align: 'center', align: 'center',
width: 100,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.projectType && row.projectType !== null && row.projectType !== undefined) { if (row.projectType && row.projectType !== null && row.projectType !== undefined) {
@@ -187,6 +188,7 @@ const tableConfig = reactive({
prop: 'rdSubject', prop: 'rdSubject',
label: '研发主体', label: '研发主体',
align: 'center', align: 'center',
width: 100,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.rdSubject && row.rdSubject !== null && row.rdSubject !== undefined) { if (row.rdSubject && row.rdSubject !== null && row.rdSubject !== undefined) {
@@ -200,6 +202,7 @@ const tableConfig = reactive({
prop: 'researchStage', prop: 'researchStage',
label: '研发阶段', label: '研发阶段',
align: 'center', align: 'center',
width: 100,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.researchStage && row.researchStage !== null && row.researchStage !== undefined) { if (row.researchStage && row.researchStage !== null && row.researchStage !== undefined) {
@@ -213,6 +216,7 @@ const tableConfig = reactive({
prop: 'projectImpact', prop: 'projectImpact',
label: '项目影响', label: '项目影响',
align: 'center', align: 'center',
width: 100,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.projectImpact && row.projectImpact !== null && row.projectImpact !== undefined) { if (row.projectImpact && row.projectImpact !== null && row.projectImpact !== undefined) {
@@ -226,6 +230,7 @@ const tableConfig = reactive({
prop: 'economicEstimate', prop: 'economicEstimate',
label: '经费预算(元)', label: '经费预算(元)',
align: 'center', align: 'center',
width: 150,
currentRender:({row})=>{ currentRender:({row})=>{
return <span>{toThousands(row.economicEstimate)}</span> return <span>{toThousands(row.economicEstimate)}</span>
} }
@@ -242,6 +247,7 @@ const tableConfig = reactive({
prop: 'approveName', prop: 'approveName',
label: '当前审批节点', label: '当前审批节点',
align: 'center', align: 'center',
width: 120,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if(row.state=='3'||row.state=='4'){ if(row.state=='3'||row.state=='4'){
return <span>{row.taskNode}</span> return <span>{row.taskNode}</span>
@@ -256,6 +262,7 @@ const tableConfig = reactive({
prop: 'state', prop: 'state',
label: '状态', label: '状态',
align: 'center', align: 'center',
width: 100,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.state && row.state !== null && row.state !== undefined) { if (row.state && row.state !== null && row.state !== undefined) {

View File

@@ -169,6 +169,7 @@ const tableConfig = reactive({
prop: 'projectType', prop: 'projectType',
label: '项目类型', label: '项目类型',
align: 'center', align: 'center',
width: 100,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.projectType !== null) { if (row.projectType !== null) {
@@ -182,6 +183,7 @@ const tableConfig = reactive({
prop: 'rdSubject', prop: 'rdSubject',
label: '研发主体', label: '研发主体',
align: 'center', align: 'center',
width: 100,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.rdSubject !== null) { if (row.rdSubject !== null) {
@@ -195,6 +197,7 @@ const tableConfig = reactive({
prop: 'projectImpact', prop: 'projectImpact',
label: '项目影响', label: '项目影响',
align: 'center', align: 'center',
width: 100,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.projectImpact !== null) { if (row.projectImpact !== null) {
@@ -208,6 +211,7 @@ const tableConfig = reactive({
prop: 'economicEstimate', prop: 'economicEstimate',
label: '经费预算(元)', label: '经费预算(元)',
align: 'center', align: 'center',
width: 150,
currentRender:({row})=>{ currentRender:({row})=>{
return <span>{toThousands(row.economicEstimate)}</span> return <span>{toThousands(row.economicEstimate)}</span>
} }
@@ -224,6 +228,7 @@ const tableConfig = reactive({
prop: 'approveName', prop: 'approveName',
label: '当前审批节点', label: '当前审批节点',
align: 'center', align: 'center',
width: 120,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if(row.state=='3'||row.state=='4'){ if(row.state=='3'||row.state=='4'){
return <span>{row.taskNode}</span> return <span>{row.taskNode}</span>
@@ -243,6 +248,7 @@ const tableConfig = reactive({
prop: 'state', prop: 'state',
label: '状态', label: '状态',
align: 'center', align: 'center',
width: 100,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.state !== null) { if (row.state !== null) {
@@ -257,6 +263,7 @@ const tableConfig = reactive({
label: '操作', label: '操作',
align: 'center', align: 'center',
fixed:'right', fixed:'right',
width: 100,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
let btn = [] let btn = []

View File

@@ -1,6 +1,6 @@
<template> <template>
<baseTitle title="项目基本信息"></baseTitle> <baseTitle title="项目基本信息"></baseTitle>
<fvForm :schema="schema" @getInstance="(e)=>baseForm = e" label-position="left" label-width="left"></fvForm> <fvForm :schema="schema" @getInstance="(e)=>baseForm = e" label-position="left" label-width="left" style="margin-left: 15px"></fvForm>
<div class="steps-box"> <div class="steps-box">
<el-steps :active="localActive" finish-status="success"> <el-steps :active="localActive" finish-status="success">
<el-step <el-step

View File

@@ -1,94 +1,8 @@
<template> <template>
<div class="detail-block" v-loading="loading"> <div class="detail-block" v-loading="loading">
<baseTitle title="需求上报信息" style="margin-top: -15px"></baseTitle>
<el-form :model="localFormData" ref="summaryForm" :rules="rules"> <el-form :model="localFormData" ref="summaryForm" :rules="rules">
<el-row gutter="20" style="margin-bottom: -18px"> <baseTitle title="预期知识产权"></baseTitle>
<el-col :span="24"> <el-row gutter="20" style="margin-bottom: -18px;margin-left: 5px">
<el-form-item label="项目名称" prop="projectName">
<span>{{ localFormData.projectName }}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="开始时间" prop="startTime">
<span>{{ localFormData.startTime }}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="结束时间" prop="endTime">
<span>{{ localFormData.endTime }}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="项目类型" prop="projectType">
<span>{{ filterDict(cacheStore.getDict('project_type'), localFormData.projectType) }}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="研发主体" prop="rdSubject">
<span>{{ filterDict(cacheStore.getDict('rd_subject'), localFormData.rdSubject) }}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="出资类型" prop="investmentType">
<span>{{ filterDict(cacheStore.getDict('invest_type'), localFormData.investmentType) }}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="所属业务板块" prop="businessSegment">
<span>{{ filterDict(cacheStore.getDict('business_segment'), localFormData.businessSegment) }}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="预期技术标准制定" prop="technicalStandard">
<span>{{ filterDict(cacheStore.getDict('technical_standard'), localFormData.technicalStandard) }}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="项目影响" prop="projectImpact">
<span>{{ filterDict(cacheStore.getDict('project_impact'), localFormData.projectImpact) }}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="经费预算(元)" prop="economicEstimate">
<span>{{ toThousands(localFormData.economicEstimate) }}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="产学研联合" prop="industryUniversityResearch">
<span>{{
filterDict(cacheStore.getDict('industry_university'), localFormData.industryUniversityResearch)
}}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="开展政府申报" prop="governmentDeclaration">
<span>{{
filterDict(cacheStore.getDict('government_declaration'), localFormData.governmentDeclaration)
}}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="专项资金名称" prop="specialFund" v-if="localFormData.isSpecialFund">
<span>{{
localFormData.specialFundId === 0 ? localFormData.specialFund : changeName(fundOption, localFormData.specialFundId)
}}</span>
</el-form-item>
</el-col>
<el-col :span="24" v-if="localFormData.isSpecialFund">
<el-form-item label="其中申请公司总部科技创新专项资金(元)" prop="specialFundAmount">
<span>{{ toThousands(localFormData.specialFundAmount) }}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="部门分管领导" prop="optionalChargeLeadership">
<span>{{ localFormData.optionalChargeLeadership?.map(item=>item.name).join() }}</span>
</el-form-item>
</el-col>
<el-col :span="24" style="margin-top: -15px">
<baseTitle title="预期知识产权"></baseTitle>
</el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="预期成果形式" prop="resultForm"> <el-form-item label="预期成果形式" prop="resultForm">
<span>{{ filterDict(cacheStore.getDict('result_form'), localFormData.resultForm) }}</span> <span>{{ filterDict(cacheStore.getDict('result_form'), localFormData.resultForm) }}</span>
@@ -129,10 +43,8 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row gutter="20" style="margin-bottom: -18px"> <baseTitle title="项目描述"></baseTitle>
<el-col :span="24"> <el-row gutter="20" style="margin-bottom: -18px;margin-left: 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">
<span>{{ localFormData.serviceDescription }}</span> <span>{{ localFormData.serviceDescription }}</span>
@@ -143,26 +55,26 @@
<span>{{ localFormData.contentDescription }}</span> <span>{{ localFormData.contentDescription }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" style="margin-top: -25px"> </el-row>
<baseTitle title="需求上报申请书"></baseTitle> <baseTitle title="需求上报申请书" style="margin-bottom: 10px">></baseTitle>
</el-col> <el-row gutter="20" style="margin-bottom: -15px;">
<el-col :span="24"> <el-col :span="24">
<single-file-component tag="需求上报" :fileNameTableWidth="200" :fullscreen="true" <single-file-component tag="需求上报" :fileNameTableWidth="200" :fullscreen="true"
v-model:value="localFormData.singleFile" :processViewer="processViewer" v-model:value="localFormData.singleFile" :processViewer="processViewer"
labelAlign="top"/> labelAlign="top"/>
<!-- <el-form-item label="需求上报申请书" label-position="top" style="display:block;">--> <!-- <el-form-item label="需求上报申请书" label-position="top" style="display:block;">-->
<!-- &lt;!&ndash; style="font-size: 16px"&ndash;&gt;--> <!-- &lt;!&ndash; style="font-size: 16px"&ndash;&gt;-->
<!-- <el-button type="primary" link @click="handleDownload(localFormData.singleFile)">--> <!-- <el-button type="primary" link @click="handleDownload(localFormData.singleFile)">-->
<!-- {{ localFormData.singleFile?.originalFileName }}--> <!-- {{ localFormData.singleFile?.originalFileName }}-->
<!-- </el-button>--> <!-- </el-button>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
</el-col> </el-col>
<el-col :span="24" style="margin-top: -15px"> <el-col :span="24" style="margin-top: -15px;">
<baseTitle title="附件列表"></baseTitle> <baseTitle title="附件列表" style="margin-bottom: 0"></baseTitle>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<file-component <file-component
tag="需求上报" :fileNameTableWidth="200" :fullscreen="true" tag="需求上报" :fileNameTableWidth="200" :fullscreen="true"
v-model:value="localFormData.fileList" v-model:value="localFormData.fileList"
:processViewer="processViewer" :processViewer="processViewer"
:file-list-show="fileListShow" :file-list-show="fileListShow"
@@ -219,7 +131,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"
:step="'report'" :step="'report'"
:state="data.state"/> :state="data.state"/>
@@ -248,6 +161,7 @@ import {ElNotification} from "element-plus";
import {approvePlan} from "@/api/project-demand/summary"; import {approvePlan} from "@/api/project-demand/summary";
import SelectPreProcess from "@/components/SelectPreProcess.vue"; import SelectPreProcess from "@/components/SelectPreProcess.vue";
const emit = defineEmits(['update:value']) const emit = defineEmits(['update:value'])
const tagsViewStore = useTagsView() const tagsViewStore = useTagsView()
const cacheStore = useCacheStore() const cacheStore = useCacheStore()
@@ -308,9 +222,9 @@ const handleRejectPlan = async () => {
return return
} }
const params = { const params = {
auditOpinion:_value.value, auditOpinion: _value.value,
projectId:parseInt(route.query.projectId), projectId: parseInt(route.query.projectId),
state:false state: false
} }
console.log('params', params) console.log('params', params)
const res = await approvePlan(params) const res = await approvePlan(params)
@@ -326,9 +240,9 @@ const handleRejectPlan = async () => {
} }
const handleAgreePlan = async () => { const handleAgreePlan = async () => {
const params = { const params = {
auditOpinion:_value.value, auditOpinion: _value.value,
projectId:parseInt(route.query.projectId), projectId: parseInt(route.query.projectId),
state:true state: true
} }
console.log('params', params) console.log('params', params)
const res = await approvePlan(params) const res = await approvePlan(params)
@@ -400,17 +314,33 @@ watch(() => props.loading, (newVal) => {
}, {deep: true}) }, {deep: true})
watchEffect(() => { watchEffect(() => {
props.formData.singleFile=[props.formData.singleFile] props.formData.singleFile = [props.formData.singleFile]
return Object.keys(props.formData).length && (localFormData.value = props.formData) return Object.keys(props.formData).length && (localFormData.value = props.formData)
}) })
getFundOptions() getFundOptions()
</script> </script>
<style scoped> <style scoped lang="scss">
.detail-block { .detail-block {
overflow-x: hidden; overflow-x: hidden;
overflow-y: auto; overflow-y: auto;
padding-bottom: 20px; padding-bottom: 20px;
} }
:deep(.el-table__header) {
.is-leaf:first-child {
.cell {
margin-left: -25px !important;
}
}
}
:deep(.el-table__body) {
.el-table__cell:first-child {
.cell {
margin-left: -13px !important;
}
}
}
</style> </style>

View File

@@ -76,11 +76,11 @@ const tableConfig = reactive({
label: '专项资金名称', label: '专项资金名称',
align: 'center' align: 'center'
}, },
{ // {
prop: 'approveName', // prop: 'approveName',
label: '审批人', // label: '审批人',
align: 'center' // align: 'center'
}, // },
{ {
prop: 'fundAmount', prop: 'fundAmount',
label: '资金金额(元)', label: '资金金额(元)',
@@ -100,17 +100,27 @@ const tableConfig = reactive({
{ {
prop: 'projectNumber', prop: 'projectNumber',
label: '项目数量', label: '项目数量',
align: 'center' align: 'center',
width: 100,
}, },
{ {
prop: 'taskNode', prop: 'approveName',
label: '当前节点', label: '当前审批节点',
align: 'center' align: 'center',
width: 150,
currentRender: ({row, index}) => {
if(row.state=='1'){
return <span>{row.approveName}</span>
}else {
return <span>{row.taskNode}</span>
}
}
}, },
{ {
prop: 'state', prop: 'state',
label: '状态', label: '状态',
align: 'center', align: 'center',
width: 150,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.state == undefined||row.state == 0) { if (row.state == undefined||row.state == 0) {
@@ -125,6 +135,7 @@ const tableConfig = reactive({
label: '操作', label: '操作',
align: 'center', align: 'center',
fixed:'right', fixed:'right',
width: 150,
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
let btn = [] let btn = []

View File

@@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<el-button v-print="print" color="#ded0b2" icon="Printer"> 打印</el-button> <el-button v-print="print" color="#ded0b2" icon="Printer" style="margin-left: 15px"> 打印</el-button>
</div> </div>
<div style="margin: 10px" id="printBox"> <div style="margin: 10px" id="printBox">
<el-timeline> <el-timeline>