<template> <div> <a-form-model ref="form" :model="formData" :rules="rules" style="border-top: 0px" class="from-table font-line-space"> <a-row> <a-col :span="24" style="border-top: 0px;text-align: center;"> <div class="main-title"> <span>项目基本情况</span> </div> </a-col> </a-row> <a-row> <a-col :span="24" style="border-top: 0px"> <div class="tb-title"> <span>申请人信息</span> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="3" class="bg-gray"> <div class="special-middle"> <div>姓名</div> </div> </a-col> <a-col :span="5"> <div class="special-middle"> <div> <a-form-model-item> <div>{{ formData.appPersonName }}</div> </a-form-model-item> </div> </div> </a-col> <a-col :span="3" class="bg-gray"> <div class="special-middle"> <div>性别</div> </div> </a-col> <a-col :span="5"> <div class="special-middle"> <div> <a-form-model-item> <div>{{ formData.sex }}</div> </a-form-model-item> </div> </div> </a-col> <a-col :span="3" class="bg-gray"> <div class="special-middle"> <div>出生日期</div> </div> </a-col> <a-col :span="5"> <div class="special-middle"> <div> <a-form-model-item> {{ moment(formData.birthday).format('YYYY-MM-DD') }} </a-form-model-item> </div> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="3" class="bg-gray"> <div class="special-middle"> <div>民族</div> </div> </a-col> <a-col :span="5"> <div class="special-middle"> <div> <a-form-model-item> <div>{{ formData.nationName }}</div> </a-form-model-item> </div> </div> </a-col> <a-col :span="3" class="bg-gray"> <div class="special-middle"> <div>学位</div> </div> </a-col> <a-col :span="5"> <div class="special-middle"> <div> <a-form-model-item> <div>{{ formData.degreeName }}</div> </a-form-model-item> </div> </div> </a-col> <a-col :span="3" class="bg-gray"> <div class="special-middle"> <div>职称</div> </div> </a-col> <a-col :span="5"> <div class="special-middle"> <div> <a-form-model-item> {{ formData.titleName}} </a-form-model-item> </div> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="3" class="bg-gray"> <div class="special-middle"> <div>电话</div> </div> </a-col> <a-col :span="5"> <div class="special-middle"> <div> <a-form-model-item> <div>{{ formData.mobile }}</div> </a-form-model-item> </div> </div> </a-col> <a-col :span="3" class="bg-gray"> <div class="special-middle"> <div>电子邮箱</div> </div> </a-col> <a-col :span="5"> <div class="special-middle"> <div> <a-form-model-item> <div>{{ formData.email }}</div> </a-form-model-item> </div> </div> </a-col> <a-col :span="3" class="bg-gray"> <div class="special-middle"> <div class="required">每年工作时间(月)</div> </div> </a-col> <a-col :span="5"> <div class="special-middle"> <div> <a-form-model-item prop="jobTime"> <a-input-number v-model="formData.jobTime" :min="0" :max="12" :step="1" style="width: 100px" /> </a-form-model-item> </div> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div>个人通讯地址</div> </div> </a-col> <a-col :span="20"> <div class="special-middle"> <div> <a-form-model-item> <div>{{ formData.address }}</div> </a-form-model-item> </div> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div>工作单位</div> </div> </a-col> <a-col :span="20"> <div class="special-middle"> <div> <a-form-model-item> <div>{{ formData.appUnitName }}</div> </a-form-model-item> </div> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">主要研究领域</div> </div> </a-col> <a-col :span="20"> <div class="special-middle"> <div> <a-form-model-item prop="mainResearchAreas"> <a-textarea placeholder="主要研究领域" v-model="formData.mainResearchAreas" :maxLength="300" style="width: 80%; height: 160px; margin-top: 12px" /> </a-form-model-item> </div> </div> </a-col> </a-row> <a-row> <a-col :span="24" style="border-top: 0px"> <div class="tb-title"> <span>申请单位信息</span> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div>单位名称</div> </div> </a-col> <a-col :span="20"> <div class="special-middle"> <div> <a-form-model-item> <div>{{ formData.appUnitName }}</div> </a-form-model-item> </div> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">联系人</div> </div> </a-col> <a-col :span="8"> <div class="special-middle"> <div> <a-form-model-item prop="unitLinkName"> <a-input placeholder="联系人" v-model="formData.unitLinkName" :maxLength="100" style="width:80%" /> </a-form-model-item> </div> </div> </a-col> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">电话</div> </div> </a-col> <a-col :span="8"> <div class="special-middle"> <div> <a-form-model-item prop="unitLinkMobile"> <a-input placeholder="电话" v-model="formData.unitLinkMobile" :maxLength="100" style="width:80%" /> </a-form-model-item> </div> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">电子信箱</div> </div> </a-col> <a-col :span="8"> <div class="special-middle"> <div> <a-form-model-item prop="unitLinkEmail"> <a-input placeholder="电子信箱" v-model="formData.unitLinkEmail" :maxLength="100" style="width:80%" /> </a-form-model-item> </div> </div> </a-col> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">传真</div> </div> </a-col> <a-col :span="8"> <div class="special-middle"> <div> <a-form-model-item prop="unitLinkFax"> <a-input placeholder="传真" v-model="formData.unitLinkFax" :maxLength="100" style="width:80%" /> </a-form-model-item> </div> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div>注册单位类型</div> </div> </a-col> <a-col :span="8"> <div class="special-middle"> <div> <a-form-model-item> <div>{{ formData.unitTypeName }}</div> </a-form-model-item> </div> </div> </a-col> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">组织机构代码/统一社会信用代码</div> </div> </a-col> <a-col :span="8"> <div class="special-middle"> <div> <a-form-model-item prop="organizationCode"> <a-input placeholder="组织机构代码/统一社会信用代码" v-model="formData.organizationCode" :maxLength="100" style="width:80%" /> </a-form-model-item> </div> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">通讯地址</div> </div> </a-col> <a-col :span="20"> <div class="special-middle"> <div> <a-form-model-item prop="address"> <a-input placeholder="通讯地址" v-model="formData.address" :maxLength="100" style="width:80%" /> </a-form-model-item> </div> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">注册所在地(县/区)</div> </div> </a-col> <a-col :span="8"> <div class="special-middle"> <div> <a-form-model-item prop="registeredAddress"> <a-input placeholder="注册所在地" v-model="formData.registeredAddress" :maxLength="100" style="width:80%" /> </a-form-model-item> </div> </div> </a-col> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">邮编</div> </div> </a-col> <a-col :span="8"> <div class="special-middle"> <div> <a-form-model-item prop="postCode"> <a-input placeholder="邮编" v-model="formData.postCode" :maxLength="10" style="width:80%" /> </a-form-model-item> </div> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">法定代表人</div> </div> </a-col> <a-col :span="8"> <div class="special-middle"> <div> <a-form-model-item prop="legalPerson"> <a-input placeholder="法定代表人" v-model="formData.legalPerson" :maxLength="50" style="width:80%" /> </a-form-model-item> </div> </div> </a-col> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">职工总数</div> </div> </a-col> <a-col :span="8"> <div class="special-middle"> <div> <a-form-model-item prop="workforce"> <a-input-number v-model="formData.workforce" :min="0" :step="1" style="width: 100px" /> </a-form-model-item> </div> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">其中专科以上人员</div> </div> </a-col> <a-col :span="8"> <div class="special-middle"> <div> <a-form-model-item prop="specializedPersonnel"> <a-input-number v-model="formData.specializedPersonnel" :min="0" :step="1" style="width: 100px" /> </a-form-model-item> </div> </div> </a-col> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">研究开发人员</div> </div> </a-col> <a-col :span="8"> <div class="special-middle"> <div> <a-form-model-item prop="researchPersonnel"> <a-input-number v-model="formData.researchPersonnel" :min="0" :step="1" style="width: 100px" /> </a-form-model-item> </div> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">开户银行</div> </div> </a-col> <a-col :span="8"> <div class="special-middle"> <div> <a-form-model-item prop="depositBank"> <a-input placeholder="开户银行" v-model="formData.depositBank" :maxLength="100" style="width:80%" /> </a-form-model-item> </div> </div> </a-col> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">银行账号</div> </div> </a-col> <a-col :span="8"> <div class="special-middle"> <div> <a-form-model-item prop="bankAccount"> <a-input placeholder="银行账号" v-model="formData.bankAccount" :maxLength="100" style="width:80%" /> </a-form-model-item> </div> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">开户银行地址</div> </div> </a-col> <a-col :span="8"> <div class="special-middle"> <div> <a-form-model-item prop="depositBankAddress"> <a-input placeholder="开户银行地址" v-model="formData.depositBankAddress" :maxLength="100" style="width:80%" /> </a-form-model-item> </div> </div> </a-col> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">银行联行号</div> </div> </a-col> <a-col :span="8"> <div class="special-middle"> <div> <a-form-model-item prop="interbankNumber"> <a-input placeholder="开户银行地址" v-model="formData.interbankNumber" :maxLength="100" style="width:80%" /> </a-form-model-item> </div> </div> </a-col> </a-row> <!-- 项目合作单位 --> <cooperative-units-edit :cooperativeUnits.sync="formData.cooperativeUnits" /> <!-- <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">上年度研发经费支出总额(单位:万元)</div> </div> </a-col> <a-col :span="20"> <div class="special-middle"> <div> <a-form-model-item prop="researchTotal"> <a-input-number v-model="formData.researchTotal" :min="0" :step="0.01" style="width: 100px" /> </a-form-model-item> </div> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">上年度是否填报了研发活动情况</div> </div> </a-col> <a-col :span="20"> <div class="special-middle"> <div> <a-form-model-item prop="isResearchActive"> <base-select v-model="formData.isResearchActive" :type="12" :isAll="true" /> </a-form-model-item> </div> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">上一年度填报的研发投入总数(单位:万元)</div> </div> </a-col> <a-col :span="20"> <div class="special-middle"> <div> <a-form-model-item prop="researchCount"> <a-input-number v-model="formData.researchCount" :min="0" :step="0.01" style="width: 100px" /> </a-form-model-item> </div> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">上一年度填报的研发人员数</div> </div> </a-col> <a-col :span="20"> <div class="special-middle"> <div> <a-form-model-item prop="researchPersonCount"> <a-input-number v-model="formData.researchPersonCount" :min="0" :step="1" style="width: 100px" /> </a-form-model-item> </div> </div> </a-col> </a-row> --> <a-row> <a-col :span="24" style="border-top: 0px"> <div class="tb-title"> <span>项目基本情况</span> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">项目名称</div> </div> </a-col> <a-col :span="20"> <a-form-model-item prop="projName"> <a-input placeholder="项目名称" v-model="formData.projName" :maxLength="100" style="width: 80%" /> </a-form-model-item> </a-col> </a-row> <!-- <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">项目所属二级学院/部门名称(牵头单位)</div> </div> </a-col> <a-col :span="20"> <a-form-model-item prop="leadUnit"> <a-input placeholder="项目所属二级学院/部门名称(牵头单位)" v-model="formData.leadUnit" :maxLength="100" style="width: 80%" /> </a-form-model-item> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div>推荐部门</div> </div> </a-col> <a-col :span="20"> <div class="special-middle"> <div>{{ formData.appUnitName }}</div> </div> </a-col> </a-row> --> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">学科代码</div> </div> </a-col> <a-col :span="20"> <a-form-model-item prop="knowledgeId"> <para-multi-select v-model="formData.knowledgeId" :typeId="57" /> </a-form-model-item> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">项日开始时间</div> </div> </a-col> <a-col :span="8"> <a-form-model-item prop="startDate" style="width:200px;display: inline-block;"> <a-date-picker format="YYYY-MM-DD" valueFormat="YYYY-MM-DD HH:mm:ss" v-model="formData.startDate" @change="startDateChange" style="width: 180px" /> </a-form-model-item> </a-col> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">项目结束时间</div> </div> </a-col> <a-col :span="8"> <a-form-model-item prop="endDate" style="width:200px;display: inline-block;"> <a-date-picker format="YYYY-MM-DD" valueFormat="YYYY-MM-DD HH:mm:ss" v-model="formData.endDate" @change="endDateChange" style="width: 180px" /> </a-form-model-item> </a-col> </a-row> <!-- <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">项目依托的科技创新基地</div> </div> </a-col> <a-col :span="20"> <a-form-model-item prop="technologyInnovationBase"> <a-input placeholder="项目依托的科技创新基地" v-model="formData.technologyInnovationBase" :maxLength="100" style="width: 80%" /> </a-form-model-item> </a-col> </a-row> --> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">项目总经费(万元)</div> </div> </a-col> <a-col :span="8"> <a-form-model-item prop="totalFunding"> <a-input-number v-model="formData.totalFunding" :min="0" :step="0.01" style="width: 100px" /> <span> 单位:万元</span> </a-form-model-item> </a-col> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">申请科技经费(万元)</div> </div> </a-col> <a-col :span="8"> <a-form-model-item prop="govFunding"> <a-input-number v-model="formData.govFunding" :min="0" :step="0.01" style="width: 100px" /> <span> 单位:万元</span> </a-form-model-item> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">项目联系人姓名</div> </div> </a-col> <a-col :span="8"> <a-form-model-item prop="linkName"> <a-input placeholder="项目联系人姓名" v-model="formData.linkName" :maxLength="100" style="width: 80%" /> </a-form-model-item> </a-col> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">联系人手机</div> </div> </a-col> <a-col :span="8"> <a-form-model-item prop="linkMobile"> <a-input placeholder="联系人手机" v-model="formData.linkMobile" :maxLength="100" style="width: 80%" /> </a-form-model-item> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">电子邮箱</div> </div> </a-col> <a-col :span="20"> <a-form-model-item prop="linkEmail"> <a-input placeholder="电子邮箱" v-model="formData.linkEmail" :maxLength="100" style="width: 80%" /> </a-form-model-item> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">项目摘要(400字以内)</div> </div> </a-col> <a-col :span="20"> <a-form-model-item prop="projAbstract"> <a-textarea placeholder="项目摘要" v-model="formData.projAbstract" :maxLength="400" style="width: 80%; height: 160px; margin-top: 12px" /> </a-form-model-item> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">关键词</div> </div> </a-col> <a-col :span="20"> <a-form-model-item prop="projKeywords"> <a-input placeholder="关键词" v-model="formData.projKeywords" :maxLength="200" style="width: 80%" /> </a-form-model-item> </a-col> </a-row> <a-row> <a-col :span="24" style="border-top: 0px"> <div class="main-title"> <span>项目人员情况</span> </div> </a-col> </a-row> <!-- 项目合作单位 --> <participate-units-edit :participateUnits.sync="formData.participateUnits" /> <!-- 项目组成员 --> <project-member-edit :dataList.sync="formData.members" /> <a-row> <a-col :span="24" style="border-top: 0px"> <div class="tb-title"> <span>项目可行性研究情况</span> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">1、立项依据、研究内容、意义及必要性</div> </div> </a-col> <a-col :span="20"> <a-form-model-item prop="projContent"> <a-textarea placeholder="立项依据、研究内容、意义及必要性" v-model="formData.projContent" :maxLength="10000" style="width: 80%; height: 160px; margin-top: 12px" /> </a-form-model-item> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">2、项目现有工作基础和支撑条件</div> </div> </a-col> <a-col :span="20"> <a-form-model-item prop="memResume"> <a-textarea placeholder="项目现有工作基础和支撑条件" v-model="formData.memResume" :maxLength="10000" style="width: 80%; height: 160px; margin-top: 12px" /> </a-form-model-item> </a-col> </a-row> <a-row> <a-col :span="24" style="border-top: 0px"> <div class="tb-title "> <span style="color: rgba(0, 0, 0, 0.65);">3、在研或完成基础研究项目情况</span> </div> </a-col> </a-row> <!-- 在研或完成基础研究项目情况 --> <project-research-edit :projectResearchList.sync="formData.projectResearchList" /> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">4、与项目相关的国内外技术发展现状(包括知识产权情况)以及本项目主要研究开发内容技术关键(创新点)、可行性评价及项目风险分析与对策</div> </div> </a-col> <a-col :span="20"> <a-form-model-item prop="researchProgress"> <a-textarea placeholder="与项目相关的国内外技术发展现状" v-model="formData.researchProgress" :maxLength="10000" style="width: 80%; height: 160px; margin-top: 12px" /> </a-form-model-item> </a-col> </a-row> <a-row> <a-col :span="24" style="border-top: 0px"> <div class="main-title"> <span>项目主要实施内容和目标</span> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">项目实施目标</div> </div> </a-col> <a-col :span="20"> <a-form-model-item prop="researchContent"> <a-textarea placeholder="项目实施目标" v-model="formData.researchContent" :maxLength="10000" style="width: 80%; height: 160px; margin-top: 12px" /> </a-form-model-item> </a-col> </a-row> <a-row> <a-col :span="24" style="border-top: 0px"> <div class="tb-title"> <span>项目考核指标</span> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">主要技术指标</div> </div> </a-col> <a-col :span="20"> <a-form-model-item prop="technologyTarget"> <a-textarea placeholder="主要技术指标" v-model="formData.technologyTarget" :maxLength="10000" style="width: 80%; height: 160px; margin-top: 12px" /> </a-form-model-item> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">主要经济指标</div> </div> </a-col> <a-col :span="20"> <a-form-model-item prop="economyTarget"> <a-textarea placeholder="主要经济指标" v-model="formData.economyTarget" :maxLength="10000" style="width: 80%; height: 160px; margin-top: 12px" /> </a-form-model-item> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div>项目实施中形成的示范基地、中试线、生产线及其规模等</div> </div> </a-col> <a-col :span="20"> <a-form-model-item prop="achievementTarget"> <a-textarea placeholder="项目实施中形成的示范基地、中试线、生产线及其规模等" v-model="formData.achievementTarget" :maxLength="10000" style="width: 80%; height: 160px; margin-top: 12px" /> </a-form-model-item> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div>其他应考核的指标</div> </div> </a-col> <a-col :span="20"> <a-form-model-item prop="otherTarget"> <a-textarea placeholder="其他应考核的指标" v-model="formData.otherTarget" :maxLength="10000" style="width: 80%; height: 160px; margin-top: 12px" /> </a-form-model-item> </a-col> </a-row> <!-- 经费预算 --> <budget-edit :budget.sync="formData.budget" /> <!-- 分年度用款计划 --> <fund-plan-edit :fundPlan.sync="formData.fundPlan" /> <!-- 设备费-购置设备预算明细表 --> <equipments-edit :equipments.sync="formData.equipments" /> <!-- 科技计划项目承担单位研究资金支出预算明细表 --> <unit-payment-edit :unitPayment.sync="formData.unitPayment" /> <!-- 项目绩效指标 --> <project-kpi-edit :projectKPI.sync="formData.projectKPI" /> <!-- 项目课题设置 --> <project-sub-edit :projectSubList.sync="formData.projectSubList" /> <!-- 单位科研项目及资金管理制度表 --> <management-rule-edit :managementRuleList.sync="formData.managementRuleList" /> <!-- 附件 --> <file-edit :fileList.sync="formData.fileList" /> </a-form-model> </div> </template> <script> import { getType } from '@/views/utils/auth' import projectMemberEdit from '@/views/report/project/components/projectMemberEdit' import cooperativeUnitsEdit from '@/views/report/project/components/cooperativeUnitsEdit' import participateUnitsEdit from '@/views/report/project/components/participateUnitsEdit' import budgetEdit from '@/views/report/project/components/budgetEdit' import fundPlanEdit from '@/views/report/project/components/fundPlanEdit' import equipmentsEdit from '@/views/report/project/components/equipmentsEdit.vue' import unitPaymentEdit from '@/views/report/project/components/unitPaymentEdit.vue' import projectKpiEdit from '@/views/report/project/components/projectKpiEdit.vue' import projectResearchEdit from '@/views/report/project/components/projectResearchEdit' import projectSubEdit from '@/views/report/project/components/projectSubEdit' import managementRuleEdit from '@/views/report/project/components/managementRuleEdit' import fileEdit from '@/views/report/project/components/fileEdit' import { isEmptyParams } from "@/views/utils/common" import moment from 'moment' const ProjResearch = { projNo: null, projName: null, approveUnit: null, leader: null, startDate: null, endDate: null, funds: null } const ManagementRule = { policyName: null, releaseDate: null, documentNumber: null, validityPeriod: null, mainContent: null, fileId: null, downloadId: null, fileName: null, downloadUrl: null } const ProjectSub = { projName: null, undertakingUnit: null, address: null, director: null, totalBudget: null, govBudget: null, selfBudget: null, cooperativeUnits: null, fileId: null, downloadId: null, fileName: null, downloadUrl: null } const Cooperative = { id: null, unitName: null } const ParticipateUnit = { id: null, unitName: null, unitCountry: null, unitAddress: null, organizationCode: null, projectWork: null } const Members = { name: null, sex: null, birthday: null, certificateType: null, certId: null, nation: null, country: null, workUnit: null, title: null, degree: null, email: null, mobile: null, telephone: null, fax: null, projWork: null, forMonths: null, spec: null } const Equipment = { id: "", objectId: "", name: "", functionTarget: "", specificationType: "", quantity: 1, totalBudget: 0.00, useFrom: "", buyUnit: "", storageLocation: "", equipmentType: "", manufacturer: "", sharedScope: "", unitPrice: 0.00, } const File = { fileName: '', downloadUrl: '', fileExplain: '', downloadId: '' } const projectKPI = { reportYear: "", projName: "", appUnitName: "", projAttribute: "", projDeadline: "", startDate: "", endData: "", yearTarget: "", year1Goal: "", year2Goal: "", year3Goal: "", totalBudget: 0.00, applyFunds: 0.00, selfFunds: 0.00, yearTotal: 0.00, yearApply: 0.00, yearSelf: 0.00, totalRowSpan: 0, //总合并行数 outTarget: 0, //一级指标(产出指标) benefitTarget: 0, //一级指标(效益指标) satisfactionDegree: 0, //一级指标(满意度指标) quantityTarget: 0, //二级指标(数量指标) qualityTarget: 0, //二级指标(质量指标) validityTarget: 0, //二级指标(时效指标) costTarget: 0, //二级指标(成本指标) economicTarget: 0, //二级指标(经济效益指标) socialTarget: 0, //二级指标(社会效益指标) ecologicalTarget: 0, //二级指标(生态效益指标) sustainableTarget: 0, //二级指标(可持续影响指标) serviceTarget: 0, //二级指标(服务对象满意度指标) threeLevel: [], kpiList: [], }; export default { name: 'projectEdit', components: { projectMemberEdit, cooperativeUnitsEdit, participateUnitsEdit, budgetEdit, fundPlanEdit, equipmentsEdit, unitPaymentEdit, projectKpiEdit, projectResearchEdit, projectSubEdit, managementRuleEdit, fileEdit }, props: { value: { type: String, default: () => { return null } }, }, created () { this.getProject() }, data () { return { overseasShow: false, formData: { id: null, organizationCode: null, address: null, jobTime: null, mainResearchAreas: null, registeredAddress: null, postCode: null, legalPerson: null, workforce: null, specializedPersonnel: null, researchPersonnel: null, depositBank: null, bankAccount: null, depositBankAddress: null, interbankNumber: null, researchTotal: null, isResearchActive: null, researchCount: null, researchPersonCount: null, projName: null, leadUnit: null, recommendUnit: null, startDate: null, endDate: null, technologyInnovationBase: null, knowledgeId: null, totalFunding: null, govFunding: null, linkName: null, linkMobile: null, linkEmail: null, projAbstract: null, projKeywords: null, projContent: null, memResume: null, researchProgress: null, researchContent: null, technologyTarget: null, economyTarget: null, achievementTarget: null, otherTarget: null, yearTarget: null, year1Goal: null, year2Goal: null, year3Goal: null, projectKPI: projectKPI, unitPayment: [], cooperativeUnits: [], participateUnits: [], members: [], budget: [], fundPlan: [], equipments: [], projectResearchList: [], projectSubList: [], managementRuleList: [], fileList: [], }, rules: { mainResearchAreas: [{ required: true, message: '请填写主要研究领域', trigger: 'blur' },], jobTime: [{ required: true, message: '请填写每年工作时间(月)', trigger: 'blur' },], organizationCode: [{ required: true, message: '请填写组织机构代码/统一社会信用代码', trigger: 'blur' },], registeredAddress: [{ required: true, message: '请填写注册所在地', trigger: 'blur' },], postCode: [{ required: true, message: '请填写邮编', trigger: 'blur' },], legalPerson: [{ required: true, message: '请填写法定代表人', trigger: 'blur' },], workforce: [{ required: true, message: '请填写职工总数', trigger: 'blur' },], specializedPersonnel: [{ required: true, message: '请填写其中专科以上人员', trigger: 'blur' },], researchPersonnel: [{ required: true, message: '请填写研究开发人员', trigger: 'blur' },], depositBank: [{ required: true, message: '请填写开户银行', trigger: 'blur' },], bankAccount: [{ required: true, message: '请填写银行账号', trigger: 'blur' },], depositBankAddress: [{ required: true, message: '请填写开户银行地址', trigger: 'blur' },], interbankNumber: [{ required: true, message: '请填写开户银行地址', trigger: 'blur' },], // researchTotal: [{ required: true, message: '请填写上年度研发经费支出总额', trigger: 'blur' },], // isResearchActive: [{ required: true, message: '请选择上年度是否填报了研发活动情况', trigger: 'change' },], // researchCount: [{ required: true, message: '请填写上一年度填报的研发投入总数', trigger: 'blur' },], // researchPersonCount: [{ required: true, message: '请填写上一年度填报的研发人员数', trigger: 'blur' },], projName: [{ required: true, message: '请填写项目名称', trigger: 'blur' },], // leadUnit: [{ required: true, message: '请填写项目所属二级学院/部门名称(牵头单位)', trigger: 'blur' },], // recommendUnit: [{ required: false, message: '请填写推荐部门', trigger: 'blur' },], startDate: { required: true, message: '请选择项日开始时间', trigger: 'change' }, endDate: { required: true, message: '请选择项目结束时间', trigger: 'change' }, technologyInnovationBase: [{ required: true, message: '请填写项目依托的科技创新基地', trigger: 'blur' },], knowledgeId: { required: true, message: '请选择>项目所属学科类别', trigger: 'change' }, totalFunding: [{ required: true, message: '请填写项目总经费', trigger: 'blur' },], govFunding: [{ required: true, message: '请填写申请科技经费', trigger: 'blur' },], linkName: [{ required: true, message: '请填写项目联系人姓名', trigger: 'blur' },], linkMobile: [{ required: true, message: '请填写联系人手机', trigger: 'blur' },], linkEmail: [{ required: true, message: '请填写电子邮箱', trigger: 'blur' },], projAbstract: [{ required: true, message: '请填写项目摘要', trigger: 'blur' },], projKeywords: [{ required: true, message: '请填写关键词', trigger: 'blur' },], projContent: { required: true, message: '请填写项目的意义、必要性', trigger: 'blur' }, memResume: { required: true, message: '请填写项目现有工作基础和支撑条件', trigger: 'blur' }, researchProgress: { required: true, message: '请填写与项目相关的国内外技术发展现状', trigger: 'blur' }, researchContent: { required: true, message: '请填写项目实施目标', trigger: 'blur' }, technologyTarget: { required: true, message: '请填写主要技术指标', trigger: 'blur' }, economyTarget: { required: true, message: '请填写主要经济指标', trigger: 'blur' }, achievementTarget: [{ required: false, message: '请填写项目实施中形成的示范基地、中试线、生产线及其规模等', trigger: 'blur' },], otherTarget: { required: false, message: '请填写其他应考核的指标', trigger: 'blur' }, }, } }, computed: { }, mounted () { }, methods: { moment, getProject () { this.$emit('load', true) if (!!this.value) { this.$api.project.getProjectInfoById({ id: this.value }).then(({ data = {} }) => { if (data) { this.formData = data this.loadList() } else this.$emit('close', 'error') this.$emit('load', false) }).catch(() => { this.$emit('close', 'error') this.$emit('load', false) }) } else { this.$api.project.getNewProject({ projType: getType() }).then(({ data = {} }) => { if (data) { this.formData = data this.loadList() } else this.$emit('close', 'error') this.$emit('load', false) }).catch(() => { this.$emit('close', 'error') this.$emit('load', false) }) } }, loadList () { if (!!!this.formData.participateUnits || this.formData.participateUnits.length == 0) this.formData.participateUnits = [{ ...ParticipateUnit }] if (!!!this.formData.cooperativeUnits || this.formData.cooperativeUnits.length == 0) this.formData.cooperativeUnits = [{ ...Cooperative }, { ...Cooperative }] if (!!!this.formData.projectResearchList || this.formData.projectResearchList.length == 0) this.formData.projectResearchList = [{ ...ProjResearch }] if (!!!this.formData.managementRuleList || this.formData.managementRuleList.length == 0) this.formData.managementRuleList = [{ ...ManagementRule }] if (!!!this.formData.projectSubList || this.formData.projectSubList.length == 0) this.formData.projectSubList = [{ ...ProjectSub }] if (!!!this.formData.members || this.formData.members.length == 0) this.formData.members = [] if (!!!this.formData.equipments || !this.formData.equipments.length || this.formData.equipments.length == 0) { this.formData.equipments = [] } if (!!!this.formData.unitPayment || !this.formData.unitPayment.length || this.formData.unitPayment.length == 0) { this.formData.unitPayment = [] } if (!!!this.formData.fileList || !this.formData.fileList.length || this.formData.fileList.length == 0) { this.formData.fileList = [] } }, processProjectYearTarget () { this.formData.yearTarget = this.formData.projectKPI.yearTarget this.formData.year1Goal = this.formData.projectKPI.year1Goal this.formData.year2Goal = this.formData.projectKPI.year2Goal this.formData.year3Goal = this.formData.projectKPI.year3Goal this.formData.projectKPI.kpiList = this.formData.projectKPI.threeLevel }, save () { this.processProjectYearTarget() if (this.checkProjName()) { this.$emit('load', true) let pars = isEmptyParams(this.formData) let par = { ...pars } this.$api.project.save(par).then(({ data = {} }) => { if (data) { this.formData.id = data this.$message.success('保存成功!') this.$emit('close', 'save') } this.$emit('load', false) }).catch(() => { this.$emit('load', false) }) } }, submit () { this.processProjectYearTarget() if (this.formData.members.length == 0) { this.$message.error('至少添加一位项目组成员!') return } this.$refs.form.validate(valid => { if (valid) { this.$emit('load', true) let state = this.formData.projState if (state != 30) this.formData.projState = 10 let pars = isEmptyParams(this.formData) let par = { ...pars } this.$api.project.save(par).then(({ data = {} }) => { if (data) { this.formData.id = data this.$message.success('成功!') this.$emit('close', 'submit') } this.$emit('load', false) }).catch(() => { this.$emit('load', false) }) } else { this.$message.warn('项目信息未填写完全!') return false } }) }, checkProjName () { if (this.formData.projName == "" || this.formData.projName == null) { alert('项目名称不能为空') return false } else { return true } }, startDateChange (value, dateString) { this.formData.projectKPI.startDate = this.formData.startDate }, endDateChange (value, dateString) { this.formData.projectKPI.endDate = this.formData.endDate } }, watch: { } } </script> <style scoped lang="less"> </style>