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

Reviewed-on: http://git.feashow.cn/clay/mosr-web/pulls/410
This commit is contained in:
2024-06-28 16:08:09 +00:00
9 changed files with 242 additions and 171 deletions

View File

@@ -1,6 +1,6 @@
<template> <template>
<div v-loading="loading"> <div v-loading="loading">
<el-form :model="formData" label-width="auto"> <el-form :model="formData">
<el-row> <el-row>
<el-col :span="6" v-if="type==='singleDetail'"> <el-col :span="6" v-if="type==='singleDetail'">
<el-form-item label="征集名称"> <el-form-item label="征集名称">
@@ -13,12 +13,17 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="截止时间"> <el-form-item label="需求上报截止时间">
<span>{{ formData.deadline }}</span> <span>{{ formData.deadline }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6" v-if="formData.isSpecialFund">
<el-form-item label="专项资金名称">
<span>{{ formData.specialFund }}</span>
</el-form-item>
</el-col>
<el-col :span="24" v-if="type==='singleDetail'"> <el-col :span="24" v-if="type==='singleDetail'">
<el-form-item label="所属公司"> <el-form-item label="征集公司">
<span :class="showExpendClass(showMoreCompany,formData.companyIds)">{{ <span :class="showExpendClass(showMoreCompany,formData.companyIds)">{{
getCompanyName(formData.companyIds) getCompanyName(formData.companyIds)
}}</span> }}</span>
@@ -27,11 +32,7 @@
</div> </div>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" v-if="formData.isSpecialFund">
<el-form-item label="专项资金名称">
<span>{{ formData.specialFund }}</span>
</el-form-item>
</el-col>
<el-col :span="24"> <el-col :span="24">
<baseTitle title="征集说明"></baseTitle> <baseTitle title="征集说明"></baseTitle>
<el-form-item> <el-form-item>

View File

@@ -2,82 +2,85 @@
<div class="detail-block" v-loading="loading"> <div class="detail-block" v-loading="loading">
<el-form :model="localFormData" ref="summaryForm" :rules="rules"> <el-form :model="localFormData" ref="summaryForm" :rules="rules">
<el-row gutter="50"> <el-row gutter="50">
<el-col :span="12"> <el-col :span="8">
<el-form-item label="项目名称" prop="projectName"> <el-form-item label="项目名称" prop="projectName">
<span>{{ localFormData.projectName }}</span> <span>{{ localFormData.projectName }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<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="12">
<el-form-item label="开始时间" prop="startTime"> <el-form-item label="开始时间" prop="startTime">
<span>{{ localFormData.startTime }}</span> <span>{{ localFormData.startTime }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="结束时间" prop="endTime"> <el-form-item label="结束时间" prop="endTime">
<span>{{ localFormData.endTime }}</span> <span>{{ localFormData.endTime }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="项目类型" prop="projectType"> <el-form-item label="项目类型" prop="projectType">
<span>{{ filterDict(cacheStore.getDict('project_type'), localFormData.projectType) }}</span> <span>{{ filterDict(cacheStore.getDict('project_type'), localFormData.projectType) }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="研发主体" prop="rdSubject"> <el-form-item label="研发主体" prop="rdSubject">
<span>{{ filterDict(cacheStore.getDict('rd_subject'), localFormData.rdSubject) }}</span> <span>{{ filterDict(cacheStore.getDict('rd_subject'), localFormData.rdSubject) }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="出资类型" prop="investmentType"> <el-form-item label="出资类型" prop="investmentType">
<span>{{ filterDict(cacheStore.getDict('invest_type'), localFormData.investmentType) }}</span> <span>{{ filterDict(cacheStore.getDict('invest_type'), localFormData.investmentType) }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="项目影响" prop="projectImpact"> <el-form-item label="项目影响" prop="projectImpact">
<span>{{ filterDict(cacheStore.getDict('project_impact'), localFormData.projectImpact) }}</span> <span>{{ filterDict(cacheStore.getDict('project_impact'), localFormData.projectImpact) }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="所属业务板块" prop="businessSegment"> <el-form-item label="所属业务板块" prop="businessSegment">
<span>{{ filterDict(cacheStore.getDict('business_segment'), localFormData.businessSegment) }}</span> <span>{{ filterDict(cacheStore.getDict('business_segment'), localFormData.businessSegment) }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="预期成果形式" prop="resultForm">
<span>{{ filterDict(cacheStore.getDict('result_form'), localFormData.resultForm) }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="预期技术标准制定" prop="technicalStandard"> <el-form-item label="预期技术标准制定" prop="technicalStandard">
<span>{{ filterDict(cacheStore.getDict('technical_standard'), localFormData.technicalStandard) }}</span> <span>{{ filterDict(cacheStore.getDict('technical_standard'), localFormData.technicalStandard) }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="产学研联合" prop="industryUniversityResearch"> <el-form-item label="产学研联合" prop="industryUniversityResearch">
<span>{{ <span>{{
filterDict(cacheStore.getDict('industry_university'), localFormData.industryUniversityResearch) filterDict(cacheStore.getDict('industry_university'), localFormData.industryUniversityResearch)
}}</span> }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="开展政府申报" prop="governmentDeclaration"> <el-form-item label="开展政府申报" prop="governmentDeclaration">
<span>{{ <span>{{
filterDict(cacheStore.getDict('government_declaration'), localFormData.governmentDeclaration) filterDict(cacheStore.getDict('government_declaration'), localFormData.governmentDeclaration)
}}</span> }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<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="8">
<el-form-item label="知识产权状况" prop="intellectualProperty"> <el-form-item label="知识产权状况" prop="intellectualProperty">
<span>{{ <span>{{
filterDict(cacheStore.getDict('intellectual_property'), localFormData.intellectualProperty) filterDict(cacheStore.getDict('intellectual_property'), localFormData.intellectualProperty)
}}</span> }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="16">
<el-form-item label="预期成果形式" prop="resultForm">
<span>{{ filterDict(cacheStore.getDict('result_form'), localFormData.resultForm) }}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<baseTitle title="预期知识产权"></baseTitle>
</el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="发明专利(项)" prop="inventionPatent"> <el-form-item label="发明专利(项)" prop="inventionPatent">
<span>{{ localFormData.inventionPatent }}</span> <span>{{ localFormData.inventionPatent }}</span>
@@ -125,14 +128,20 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="需求上报申请书"> <baseTitle title="需求上报申请书"></baseTitle>
</el-col>
<el-col :span="24">
<el-form-item>
<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">
{{ localFormData.singleFile?.originalFileName }} {{ localFormData.singleFile?.originalFileName }}
</el-button> </el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<file-component title="需求上报附件" tag="需求上报" <baseTitle title="附件列表"></baseTitle>
</el-col>
<el-col :span="24">
<file-component tag="需求上报"
v-model:value="localFormData.fileList" :processViewer="processViewer" v-model:value="localFormData.fileList" :processViewer="processViewer"
:file-list-show="fileListShow"/> :file-list-show="fileListShow"/>
</el-col> </el-col>

View File

@@ -1,7 +1,6 @@
<template> <template>
<baseTitle title="基础信息"></baseTitle> <baseTitle title="基础信息"></baseTitle>
<fvForm :schema="schema" @getInstance="(e)=>baseForm = e"></fvForm> <fvForm :schema="schema" @getInstance="(e)=>baseForm = e"></fvForm>
<baseTitle title="各流程信息"></baseTitle>
<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
@@ -19,9 +18,9 @@
</el-step> </el-step>
</el-steps> </el-steps>
</div> </div>
<!-- 步骤内容 --> <!-- 步骤内容 -->
<div> <div>
<baseTitle title="各流程信息"></baseTitle>
<slot name="content" :localActive="localActive"></slot> <slot name="content" :localActive="localActive"></slot>
<!-- <template v-for="(item, index) in stepList" :key="item.key"> <!-- <template v-for="(item, index) in stepList" :key="item.key">
<component v-if="localActive == index" v-bind="item.props || {}" :is="item.component" /> <component v-if="localActive == index" v-bind="item.props || {}" :is="item.component" />

View File

@@ -36,12 +36,12 @@
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="researchPersonnel" label="研发人员" width="230"> <el-table-column prop="researchPersonnelId" label="研发人员" width="230">
<template #default="scope"> <template #default="scope">
<el-form-item prop="researchPersonnel"> <el-form-item prop="researchPersonnelId">
{{ scope.row.researchPersonnelName }} {{ scope.row.researchPersonnel }}
<el-button @click="showPersonnelPicker(scope.row,scope.$index)"> <el-button @click="showPersonnelPicker(scope.row,scope.$index)">
{{ scope.row.researchPersonnelName ? '更改' : '请选择研发人员' }} {{ scope.row.researchPersonnel ? '更改' : '请选择研发人员' }}
</el-button> </el-button>
</el-form-item> </el-form-item>
</template> </template>
@@ -163,7 +163,7 @@ const rules = reactive({
shareName: [{required: true, message: '请输入分摊名称', trigger: ['blur', 'change']}], shareName: [{required: true, message: '请输入分摊名称', trigger: ['blur', 'change']}],
apportionmentMonth: [{required: true, message: '请选择月份', trigger: ['blur', 'change']}], apportionmentMonth: [{required: true, message: '请选择月份', trigger: ['blur', 'change']}],
projectId: [{required: true, message: '请选择项目名称', trigger: ['blur', 'change']}], projectId: [{required: true, message: '请选择项目名称', trigger: ['blur', 'change']}],
// researchPersonnel: [{required: true, message: '请选择研发人员', trigger: ['blur', 'change']}], // researchPersonnelId: [{required: true, message: '请选择研发人员', trigger: ['blur', 'change']}],
wagesPayable: [{required: true, message: '请输入应发工资', trigger: ['blur', 'change']}], wagesPayable: [{required: true, message: '请输入应发工资', trigger: ['blur', 'change']}],
performance: [{required: true, message: '请输入绩效', trigger: ['blur', 'change']}], performance: [{required: true, message: '请输入绩效', trigger: ['blur', 'change']}],
reserveFund: [{required: true, message: '请输入公积金', trigger: ['blur', 'change']}], reserveFund: [{required: true, message: '请输入公积金', trigger: ['blur', 'change']}],
@@ -187,7 +187,7 @@ const formData = ref({
{ {
projectId: '', projectId: '',
projectName: '', projectName: '',
researchPersonnel: '', researchPersonnelId: '',
wagesPayable: null, wagesPayable: null,
performance: null, performance: null,
reserveFund: null, reserveFund: null,
@@ -216,8 +216,8 @@ const selected = (select) => {
} }
formData.value.tableData.forEach((item, index) => { formData.value.tableData.forEach((item, index) => {
if (index === currentIndex.value) { if (index === currentIndex.value) {
item.researchPersonnel = select[0].id item.researchPersonnelId = select[0].id
item.researchPersonnelName = select[0].name item.researchPersonnel = select[0].name
} }
}) })
} }
@@ -242,8 +242,8 @@ const handleAdd = () => {
let row = { let row = {
projectId: '', projectId: '',
projectName: '', projectName: '',
researchPersonnelId: '',
researchPersonnel: '', researchPersonnel: '',
researchPersonnelName: '',
wagesPayable: null, wagesPayable: null,
performance: null, performance: null,
reserveFund: null, reserveFund: null,
@@ -259,8 +259,8 @@ const handleCopy = (row) => {
let copyObj = { let copyObj = {
projectId: row.projectId, projectId: row.projectId,
projectName: '', projectName: '',
researchPersonnelId: row.researchPersonnelId,
researchPersonnel: row.researchPersonnel, researchPersonnel: row.researchPersonnel,
researchPersonnelName: row.researchPersonnelName,
wagesPayable: row.wagesPayable, wagesPayable: row.wagesPayable,
performance: row.performance, performance: row.performance,
reserveFund: row.reserveFund, reserveFund: row.reserveFund,
@@ -284,15 +284,15 @@ const handleSubmit = (instance) => {
type: 'error' type: 'error'
}) })
} }
let researchPersonnel = '' let researchPersonnelId = ''
formData.value.tableData.forEach(item => { formData.value.tableData.forEach(item => {
item.projectName = getProjectName(item.projectId) item.projectName = getProjectName(item.projectId)
researchPersonnel = item.researchPersonnel researchPersonnelId = item.researchPersonnelId
if (item.performance == 0) { if (item.performance == 0) {
item.performance = null item.performance = null
} }
}) })
if (!researchPersonnel) { if (!researchPersonnelId) {
ElNotification({ ElNotification({
title: '提示', title: '提示',
message: '请选择研发人员', message: '请选择研发人员',
@@ -333,18 +333,18 @@ const handleResubmit = (instance) => {
} }
let newUsrAllocationsObj = {} let newUsrAllocationsObj = {}
let newUsrAllocationsObjArray = [] let newUsrAllocationsObjArray = []
let researchPersonnel = '' let researchPersonnelId = ''
formData.value.tableData.forEach(item => { formData.value.tableData.forEach(item => {
item.allocationId = formData.value.allocationId item.allocationId = formData.value.allocationId
item.projectName = getProjectName(item.projectId) item.projectName = getProjectName(item.projectId)
researchPersonnel = item.researchPersonnel researchPersonnelId = item.researchPersonnelId
if (item.performance == 0) { if (item.performance == 0) {
item.performance = null item.performance = null
} }
newUsrAllocationsObj = { newUsrAllocationsObj = {
projectId: item.projectId, projectId: item.projectId,
projectName: item.projectName, projectName: item.projectName,
researchPersonnel: item.researchPersonnel, researchPersonnelId: item.researchPersonnelId,
wagesPayable: item.wagesPayable, wagesPayable: item.wagesPayable,
performance: item.performance, performance: item.performance,
reserveFund: item.reserveFund, reserveFund: item.reserveFund,
@@ -355,7 +355,7 @@ const handleResubmit = (instance) => {
} }
newUsrAllocationsObjArray.push(newUsrAllocationsObj) newUsrAllocationsObjArray.push(newUsrAllocationsObj)
}) })
if (!researchPersonnel) { if (!researchPersonnelId) {
ElNotification({ ElNotification({
title: '提示', title: '提示',
message: '请选择研发人员', message: '请选择研发人员',
@@ -409,7 +409,7 @@ const getDetailList = async () => {
const {code, data, msg} = await getAllocationDetailList(params) const {code, data, msg} = await getAllocationDetailList(params)
if (code === 1000) { if (code === 1000) {
data.rows.forEach(item => { data.rows.forEach(item => {
item.researchPersonnel = Number(item.researchPersonnel) item.researchPersonnelId = Number(item.researchPersonnelId)
}) })
formData.value.tableData = data.rows formData.value.tableData = data.rows
nextTick(() => { nextTick(() => {

View File

@@ -1,16 +1,16 @@
<template> <template>
<div v-loading="loading" class="add-block"> <div v-loading="loading" class="add-block">
<baseTitle title="需求征集信息录入"></baseTitle> <baseTitle title="需求征集信息录入"></baseTitle>
<el-form :model="formData" inline class="query-form" ref="demandForm" :rules="rules"> <el-form :model="formData" ref="demandForm" :rules="rules">
<el-row> <el-row gutter="30">
<el-col :span="6"> <el-col :span="8">
<el-form-item label="名称" prop="requirementName"> <el-form-item label="征集名称" prop="requirementName" label-width="96">
<el-input v-model="formData.requirementName" placeholder="请输入名称" clearable></el-input> <el-input v-model="formData.requirementName" placeholder="请输入名称" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="8">
<el-form-item label="科技创新与信息化系统建设" prop="collectType"> <el-form-item label="征集类型" prop="collectType" label-width="105">
<el-select v-model="formData.collectType" placeholder="科技创新与信息化系统建设" clearable filterable> <el-select v-model="formData.collectType" placeholder="请选择征集类型" clearable filterable>
<el-option <el-option
v-for="item in cacheStore.getDict('collect_type')" v-for="item in cacheStore.getDict('collect_type')"
:key="item.value" :key="item.value"
@@ -20,7 +20,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="8">
<el-form-item label="需求上报截止时间" prop="deadline"> <el-form-item label="需求上报截止时间" prop="deadline">
<el-config-provider> <el-config-provider>
<el-date-picker <el-date-picker
@@ -32,8 +32,28 @@
</el-config-provider> </el-config-provider>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="8">
<el-form-item label="征集公司" prop="companyIds" class="tree-select"> <el-form-item label="是否专项资金" prop="isSpecialFund">
<el-select v-model="formData.isSpecialFund" placeholder="是否专项资金" clearable filterable>
<el-option value="true" label="是"></el-option>
<el-option value="false" label="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="专项资金名称" prop="specialFundId">
<el-select v-model="formData.specialFundId" placeholder="请选择专项资金名称" clearable filterable :disabled="formData.isSpecialFund==='false'">
<el-option
v-for="item in specialFundOption"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24" style="margin-bottom: -18px">
<el-form-item label="征集公司" prop="companyIds" class="tree-select" label-width="96">
<div style="width: 100%"> <div style="width: 100%">
<el-button color="#DED0B2" @click="showCompany">{{ selectedCompanyList.length === 0 ? '请选择征集公司' : '更改' }} <el-button color="#DED0B2" @click="showCompany">{{ selectedCompanyList.length === 0 ? '请选择征集公司' : '更改' }}
</el-button> </el-button>
@@ -43,30 +63,9 @@
<div style="color: #2a99ff;text-align: center;width: 100%;font-size: 15px;cursor: pointer" <div style="color: #2a99ff;text-align: center;width: 100%;font-size: 15px;cursor: pointer"
@click="handleExpend"> @click="handleExpend">
{{ showExpendText }} {{ showExpendText }}
</div> </div>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6">
<el-form-item label="是否专项资金" prop="isSpecialFund">
<el-radio-group v-model="formData.isSpecialFund" size="mini">
<el-radio :label="true"></el-radio>
<el-radio :label="false"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6" v-if="formData.isSpecialFund">
<el-form-item label="专项资金名称" prop="specialFundId">
<el-select v-model="formData.specialFundId" placeholder="请选择专项资金名称" clearable filterable>
<el-option
v-for="item in specialFundOption"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row> </el-row>
</el-form> </el-form>
<baseTitle title="征集说明"></baseTitle> <baseTitle title="征集说明"></baseTitle>
@@ -146,11 +145,11 @@ const dateValue = ref()
const formData = ref({ const formData = ref({
requirementName: '', requirementName: '',
companyIds: [], companyIds: [],
collectType: '', collectType: '科技创新与信息化系统建设',
deadline: '', deadline: '',
collectExplain: '', collectExplain: '',
fileList: [], fileList: [],
isSpecialFund: false isSpecialFund: 'false'
}) })
const showTinymce = ref(true) const showTinymce = ref(true)
const routerName = ref(router.currentRoute.value.name) const routerName = ref(router.currentRoute.value.name)

View File

@@ -1,40 +1,15 @@
<template> <template>
<div class="detail-block" v-loading="loading"> <div class="detail-block" v-loading="loading">
<baseTitle title="需求上报"></baseTitle> <baseTitle title="需求上报"></baseTitle>
<el-form :model="formData" ref="summaryForm" :rules="rules" label-width="140"> <el-form :model="formData" ref="summaryForm" :rules="rules">
<el-row gutter="50"> <el-row gutter="15">
<el-col :span="12"> <el-col :span="8">
<el-form-item label="项目名称" prop="projectName"> <el-form-item label="项目名称" prop="projectName" label-width="105">
<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" v-if="!route.query.id"> <el-col :span="8">
<el-form-item label="是否专项资金" prop="isSpecialFund"> <el-form-item label="开始时间" prop="startTime" label-width="145">
<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-col>
<el-col :span="5" v-if="route.query.id && formData.isSpecialFund">
<el-form-item label="专项资金" prop="specialFundId">
<span>{{ formData.specialFund }}</span>
</el-form-item>
</el-col>
<el-col :span="6" v-if="!route.query.id && formData.isSpecialFund">
<el-form-item label="专项资金" prop="specialFundId">
<el-select v-model="formData.specialFundId" placeholder="请选择专项资金" clearable filterable>
<el-option
v-for="item in specialFundOption"
: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="startTime">
<el-config-provider> <el-config-provider>
<el-date-picker <el-date-picker
v-model="formData.startTime" v-model="formData.startTime"
@@ -47,9 +22,9 @@
</el-config-provider> </el-config-provider>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="8">
<el-form-item label="结束时间" prop="endTime" <el-form-item label="结束时间" prop="endTime"
:title="!formData.startTime?'请先选择开始时间!':''"> :title="!formData.startTime?'请先选择开始时间!':''" label-width="134">
<el-config-provider> <el-config-provider>
<el-date-picker <el-date-picker
v-model="formData.endTime" v-model="formData.endTime"
@@ -64,8 +39,8 @@
</el-config-provider> </el-config-provider>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="8">
<el-form-item label="项目类型" prop="projectType"> <el-form-item label="项目类型" prop="projectType" label-width="105">
<el-select v-model="formData.projectType" placeholder="请选择项目类型" clearable filterable> <el-select v-model="formData.projectType" placeholder="请选择项目类型" clearable filterable>
<el-option <el-option
v-for="item in cacheStore.getDict('project_type')" v-for="item in cacheStore.getDict('project_type')"
@@ -76,8 +51,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="8">
<el-form-item label="研发主体" prop="rdSubject"> <el-form-item label="研发主体" prop="rdSubject" label-width="145">
<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')"
@@ -88,8 +63,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="出资类型" prop="investmentType"> <el-form-item label="出资类型" prop="investmentType" label-width="134">
<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')"
@@ -100,8 +75,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="项目影响" prop="projectImpact"> <el-form-item label="项目影响" prop="projectImpact" label-width="105">
<el-select v-model="formData.projectImpact" placeholder="请选择项目影响" clearable filterable> <el-select v-model="formData.projectImpact" placeholder="请选择项目影响" clearable filterable>
<el-option <el-option
v-for="item in cacheStore.getDict('project_impact')" v-for="item in cacheStore.getDict('project_impact')"
@@ -112,8 +87,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="所属业务板块" prop="businessSegment"> <el-form-item label="所属业务板块" prop="businessSegment" label-width="145">
<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')"
@@ -124,19 +99,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="预期成果形式" prop="resultForm">
<el-select v-model="formData.resultForm" placeholder="请选择预期成果形式" clearable filterable>
<el-option
v-for="item in cacheStore.getDict('result_form')"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="预期技术标准制定" prop="technicalStandard"> <el-form-item label="预期技术标准制定" prop="technicalStandard">
<el-select v-model="formData.technicalStandard" placeholder="请选择预期技术标准制定" clearable filterable> <el-select v-model="formData.technicalStandard" placeholder="请选择预期技术标准制定" clearable filterable>
<el-option <el-option
@@ -149,7 +112,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="产学研联合" prop="industryUniversityResearch"> <el-form-item label="产学研联合" prop="industryUniversityResearch" label-width="105">
<el-radio-group v-model="formData.industryUniversityResearch"> <el-radio-group v-model="formData.industryUniversityResearch">
<el-radio v-for="item in cacheStore.getDict('industry_university')" <el-radio v-for="item in cacheStore.getDict('industry_university')"
:key="item.value" :key="item.value"
@@ -168,7 +131,32 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="!route.query.id && formData.isSpecialFund?4:12" v-if="!route.query.id">
<el-form-item label="是否专项资金" prop="isSpecialFund" >
<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-col>
<el-col :span="8" v-if="route.query.id && formData.isSpecialFund">
<el-form-item label="专项资金名称" prop="specialFundId">
<span>{{ formData.specialFund }}</span>
</el-form-item>
</el-col>
<el-col :span="8" v-if="!route.query.id && formData.isSpecialFund" >
<el-form-item label="专项资金名称" prop="specialFundId" label-width="135">
<el-select v-model="formData.specialFundId" placeholder="请选择专项资金名称" clearable filterable>
<el-option
v-for="item in specialFundOption"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="知识产权状况" prop="intellectualProperty"> <el-form-item label="知识产权状况" prop="intellectualProperty">
<el-select v-model="formData.intellectualProperty" placeholder="请选择知识产权状况" clearable filterable> <el-select v-model="formData.intellectualProperty" placeholder="请选择知识产权状况" clearable filterable>
<el-option <el-option
@@ -180,52 +168,64 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="16">
<el-form-item label="预期成果形式" prop="resultForm" label-width="145">
<el-select v-model="formData.resultForm" placeholder="请选择预期成果形式" clearable filterable multiple>
<el-option
v-for="item in cacheStore.getDict('result_form')"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24"> <el-col :span="24">
<baseTitle title="预期知识产权"></baseTitle> <baseTitle title="预期知识产权"></baseTitle>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="8">
<el-form-item label="发明专利(项)" prop="inventionPatent"> <el-form-item label="发明专利(项)" prop="inventionPatent" label-width="107">
<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="8">
<el-form-item label="实用性新型专利(项)" prop="newPatent" label-width="145"> <el-form-item label="实用性新型专利(项)" prop="newPatent" label-width="145">
<el-input-number v-model="formData.newPatent" placeholder="请输入实用性新型专利" :controls="false"/> <el-input-number v-model="formData.newPatent" placeholder="请输入实用性新型专利" :controls="false"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="8">
<el-form-item label="软件著作权(项)" prop="softwareCopyright"> <el-form-item label="软件著作权(项)" prop="softwareCopyright" label-width="135">
<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="8">
<el-form-item label="著作权(项)" prop="copyright"> <el-form-item label="著作权(项)" prop="copyright" label-width="107">
<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="8">
<el-form-item label="其他(项)" prop="other"> <el-form-item label="其他(项)" prop="other" label-width="145">
<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-col :span="6"> <el-col :span="8">
<el-form-item label="经济概算(元)" prop="economicEstimate"> <el-form-item label="经济概算(元)" prop="economicEstimate" label-width="135">
<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="12" v-if="formData.isSpecialFund!==false"> <el-col :span="16" v-if="formData.isSpecialFund">
<el-form-item label="其中申请公司总部科技创新专项资金(元)" prop="specialFundAmount" label-width="280"> <el-form-item label="其中申请公司总部科技创新专项资金(元)">
<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="24"> <el-col :span="24">
<el-form-item label="现有业务描述" prop="serviceDescription"> <el-form-item label="现有业务描述" prop="serviceDescription" label-width="107">
<el-input v-model="formData.serviceDescription" placeholder="请输入现有业务描述" rows="4" type="textarea" <el-input v-model="formData.serviceDescription" placeholder="请输入现有业务描述" rows="4" type="textarea"
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" label-width="140"> <el-form-item label="研发项目关键内容描述" prop="contentDescription" label-width="107">
<el-input v-model="formData.contentDescription" placeholder="请输入研发项目关键内容描述" rows="4" type="textarea" <el-input v-model="formData.contentDescription" placeholder="请输入研发项目关键内容描述" rows="4" type="textarea"
clearable></el-input> clearable></el-input>
</el-form-item> </el-form-item>
@@ -337,11 +337,11 @@ const getIsFund = async () => {
}) })
} }
const getFundName = (id) => { const getFundName = (id) => {
let label='' let label = ''
specialFundOption.value.forEach(item => { specialFundOption.value.forEach(item => {
if(item.value==id){ if (item.value == id) {
label=item.label label = item.label
} }
}) })
return label return label
} }
@@ -448,8 +448,8 @@ const handleResubmit = debounce(() => {
} else { } else {
attachment.value.clearValidate() attachment.value.clearValidate()
} }
if (formData.value.isSpecialFund&&formData.value.specialFund === null) { if (formData.value.isSpecialFund && formData.value.specialFund === null) {
formData.value.specialFund=getFundName(formData.value.specialFundId) formData.value.specialFund = getFundName(formData.value.specialFundId)
} }
let params = { let params = {
...formData.value, ...formData.value,
@@ -482,7 +482,7 @@ const getDetailInfo = async () => {
type: res.code === 1000 ? 'success' : 'error' type: res.code === 1000 ? 'success' : 'error'
}) })
if (res.code === 1000) { if (res.code === 1000) {
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
loading.value = false loading.value = false
} }

View File

@@ -8,6 +8,35 @@ import fvSelect from '@/fvcomponents/fvSelect/index.vue'
const tableIns = ref() const tableIns = ref()
const router = useRouter() const router = useRouter()
const shortcuts = [
{
text: '上周',
value: () => {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
return [start, end]
},
},
{
text: '上月',
value: () => {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
return [start, end]
},
},
{
text: '三月前',
value: () => {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
return [start, end]
},
},
]
const searchConfig = reactive([ const searchConfig = reactive([
{ {
label: '征集名称', label: '征集名称',
@@ -32,6 +61,18 @@ const searchConfig = reactive([
}, },
colProps: {} colProps: {}
}, },
{
label: '项目影响',
prop: 'projectImpact',
component: shallowRef(fvSelect),
props: {
cacheKey: 'project_impact',
placeholder: '请选择项目影响',
clearable: true,
filterable: true,
},
colProps: {}
},
{ {
label: '研发主体', label: '研发主体',
prop: 'rdSubject', prop: 'rdSubject',
@@ -40,9 +81,31 @@ const searchConfig = reactive([
placeholder: '请选择研发主体', placeholder: '请选择研发主体',
cacheKey: 'rd_subject', cacheKey: 'rd_subject',
clearable: true, clearable: true,
filterable: true filterable: true,
}, }
colProps: {} },
{
label: '起止时间',
prop: 'dateValue',
component: 'el-date-picker',
props: {
clearable: true,
type: 'daterange',
startPlaceholder: '开始日期',
endPlaceholder: '结束日期',
valueFormat: 'YYYY-MM-DD HH:mm:ss',
shortcuts: shortcuts
}
},
{
label: '状态',
prop: 'state',
component: shallowRef(fvSelect),
props: {
placeholder: '请选择状态',
clearable: true,
cacheKey: 'project_initiation'
}
}, },
// { // {
// label: '项目影响', // label: '项目影响',

View File

@@ -114,8 +114,8 @@ const schema = computed(() => {
const baseForm = ref() const baseForm = ref()
const rules = reactive({ const rules = reactive({
time: [{required: true, message: '请选择时间', trigger: 'blur'}], time: [{required: true, message: '请选择时间', trigger: 'blur'}],
projectCost: [{required: true, message: '请输入项目费用', trigger: 'blur'}], projectCost: [{required: true, message: '请选择项目费用', trigger: 'blur'}],
researchStage: [{required: true, message: '请输入研发阶段', trigger: 'blur'}], researchStage: [{required: true, message: '请选择研发阶段', trigger: 'blur'}],
digest: [{required: true, message: '请输入摘要', trigger: 'blur'}], digest: [{required: true, message: '请输入摘要', trigger: 'blur'}],
afterTax: [{required: true, message: '请输入税后余额', trigger: 'blur'}] afterTax: [{required: true, message: '请输入税后余额', trigger: 'blur'}]
}) })

View File

@@ -312,7 +312,7 @@ init()
} }
> div:nth-child(2) { > div:nth-child(2) {
display: flex; //display: flex;
margin-top: -5px; margin-top: -5px;
} }
} }