<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"> <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="50" style="width:60%" /> </a-form-model-item> </a-col> </a-row> <a-row type="flex" v-if="isModifyNo"> <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="projNo"> <a-input placeholder="项目编号" v-model="formData.projNo" :maxLength="50" style="width: 40%;" /> </a-form-model-item> </div> </div> </a-col> </a-row> <!-- 项目名称 end --> <!-- 项目申报单位 --> <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"> <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="8"> <div class="special-middle"> <div> <a-form-model-item prop="address"> <a-input placeholder="通讯地址" v-model="formData.address" :maxLength="50" style="width: 60%;" /> </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="50" style="width: 60%;" /> </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="creditCode"> <a-input placeholder="统一社会信用代码" v-model="formData.creditCode" :maxLength="50" style="width: 60%;" /> </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="nature"> <para-select v-model="formData.nature" :typeId="58" :width="200" /> </a-form-model-item> </div> </div> </a-col> </a-row> <!-- 项目申报单位 end--> <!-- 项目合作单位 --> <cooperative-units :cooperativeUnits.sync="formData.cooperativeUnits" /> <!-- 项目合作单位 end--> <!-- 项目负责人 --> <a-row> <a-col :span="24"> <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="8"> <div class="special-middle"> <div>{{ formData.personName }}</div> </div> </a-col> <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>{{ formData.sex }}</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>{{ formData.certId }}</div> </div> </a-col> <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>{{ formData.educationName }}</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>{{ formData.titleName }}</div> </div> </a-col> <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> <div>{{ formData.appUnitName }}</div> </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 prop="telephone"> <a-input placeholder="固定电话" v-model="formData.telephone" :maxLength="50" style="width: 60%;" /> </a-form-model-item> </div> </div> </a-col> <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 prop="mobile"> <a-input placeholder="手机号码" v-model="formData.mobile" :maxLength="50" style="width: 60%;" /> </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 prop="email"> <a-input placeholder="电子邮箱" v-model="formData.email" :maxLength="50" style="width: 250px;" /> </a-form-model-item> </div> </div> </a-col> </a-row> <!-- 项目负责人 end--> <!-- 项目联系人 --> <a-row> <a-col :span="24"> <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="8"> <div class="special-middle"> <div> <a-form-model-item prop="linkName"> <a-input placeholder="姓名" v-model="formData.linkName" :maxLength="50" style="width: 60%;" /> </a-form-model-item> </div> </div> </a-col> <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 prop="linkUnit"> <a-input placeholder="工作单位" v-model="formData.linkUnit" :maxLength="50" style="width: 60%;" /> </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 prop="linkMobile"> <a-input placeholder="手机号码" v-model="formData.linkMobile" :maxLength="50" style="width: 60%;" /> </a-form-model-item> </div> </div> </a-col> <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 prop="linkEmail"> <a-input placeholder="电子邮箱" v-model="formData.linkEmail" :maxLength="50" style="width: 60%;" /> </a-form-model-item> </div> </div> </a-col> </a-row> <!-- 项目合项目联系人 end--> <!-- 执行期限 --> <a-row> <a-col :span="24"> <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="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" style="width: 180px" /> </a-form-model-item> <span style="margin: 0px 10px 0 2px">~</span> <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" style="width: 180px" /> </a-form-model-item> </a-col> </a-row> <!-- 执行期限 end--> <!-- 项目信息 --> <a-row> <a-col :span="24"> <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 prop="technicalField"> <a-textarea placeholder="所属技术领域" v-model="formData.technicalField" :maxLength="1000" style="width: 60%; height: 140px; margin-top: 12px" /> </a-form-model-item> </div> </div> </a-col> </a-row> <a-row> <a-col :span="24"> <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="knowledgeId"> <para-multi-select v-model="formData.knowledgeId" :typeId="57" /> </a-form-model-item> </a-col> </a-row> <a-row> <a-col :span="24"> <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="4"> <a-form-model-item prop="annualTechnologyReport"> <a-input-number placeholder="年度报告" v-model="formData.annualTechnologyReport" :maxLength="50" style="width: 80px;" /> <span style="margin-left:6px">份</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="4"> <a-form-model-item prop="midTechnicalReport"> <a-input-number placeholder="中期技术报告" v-model="formData.midTechnicalReport" :maxLength="50" style="width: 80px;" /> <span style="margin-left:6px">份</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="4"> <a-form-model-item prop="finalTechnicalReport"> <a-input-number placeholder="最终技术报告" v-model="formData.finalTechnicalReport" :maxLength="50" style="width: 80px;" /> <span style="margin-left:6px">份</span> </a-form-model-item> </a-col> </a-row> <a-row> <a-col :span="24"> <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">项目摘要(300字以内)</div> </div> </a-col> <a-col :span="20"> <a-form-model-item prop="projAbstract"> <a-textarea placeholder="项目摘要" v-model="formData.projAbstract" :maxLength="300" style="width: 60%; height: 160px; margin-top: 12px" /> </a-form-model-item> </a-col> </a-row> <a-row> <a-col :span="24"> <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="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-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="4"> <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-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">单位自筹</div> </div> </a-col> <a-col :span="4"> <a-form-model-item prop="selfFunding"> <a-input-number v-model="formData.selfFunding" :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="4"> <a-form-model-item prop="otherFunding"> <a-input-number v-model="formData.otherFunding" :min="0" :step="0.01" style="width: 100px" /> <span> 单位:万元</span> </a-form-model-item> </a-col> </a-row> <a-row> <a-col :span="24"> <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="results"> <para-check v-model="formData.results" :typeId="45" /> </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="researchProgress"> <my-editor v-model="formData.researchProgress" id="my_researchProgress" /> <!-- <a-textarea placeholder="国内外研究进展" v-model="formData.researchProgress" :maxLength="5000" style="width: 80%; height: 140px; 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="researchContent"> <my-editor v-model="formData.researchContent" id="my_researchContent" /> <!-- <a-textarea placeholder="研发内容" v-model="formData.researchContent" style="width: 80%; height: 140px; 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="researchPlan"> <my-editor v-model="formData.researchPlan" id="my_researchPlan" /> <!-- <a-textarea placeholder="研究方法和技术路线" v-model="formData.researchPlan" :maxLength="20000" style="width: 80%; height: 140px; 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="mainFeatures"> <my-editor v-model="formData.mainFeatures" id="my_mainFeatures" /> <!-- <a-textarea placeholder="创新点" v-model="formData.mainFeatures" style="width: 80%; height: 140px; 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="progressiveness"> <my-editor v-model="formData.progressiveness" id="my_progressiveness" /> <!-- <a-textarea placeholder="先进性" v-model="formData.progressiveness" style="width: 80%; height: 140px; margin-top: 12px" /> --> </a-form-model-item> </a-col> </a-row> <a-row> <a-col :span="24"> <div class="tb-title"> <div class="required"></div><strong>(注:填报时不要出现本人相关信息)</strong> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">申报单位、参与单位科研条件支撑状况<br/>(注:填报时不要出现本人相关信息)</div> </div> </a-col> <a-col :span="20"> <a-form-model-item prop="supportingConditions"> <my-editor v-model="formData.supportingConditions" id="my_supportingConditions" /> <!-- <a-textarea placeholder="申报单位、参与单位科研条件支撑状况" v-model="formData.supportingConditions" style="width: 80%; height: 140px; margin-top: 12px" /> --> </a-form-model-item> </a-col> </a-row> <a-row> <a-col :span="24"> <div class="tb-title"> <div class="required"></div><strong>(注:填报时不要出现本人相关信息)</strong> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="4" class="bg-gray"> <div class="special-middle"> <div class="required">负责人及研究团队的科研水平及前期研究基础<br/>(注:填报时不要出现本人相关信息)</div> </div> </a-col> <a-col :span="20"> <a-form-model-item prop="memResume"> <my-editor v-model="formData.memResume" id="my_memResume" /> <!-- <a-textarea placeholder="负责人及研究团队的科研水平及前期研究基础" v-model="formData.memResume" style="width: 80%; height: 140px; margin-top: 12px" /> --> </a-form-model-item> </a-col> </a-row> <a-row> <a-col :span="24"> <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"> <my-editor v-model="formData.technologyTarget" id="my_technologyTarget" /> <!-- <a-textarea placeholder="技术指标" v-model="formData.technologyTarget" style="width: 80%; height: 140px; 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"> <my-editor v-model="formData.economyTarget" id="my_economyTarget" /> <!-- <a-textarea placeholder="经济指标" v-model="formData.economyTarget" style="width: 80%; height: 140px; 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="achievementTarget"> <my-editor v-model="formData.achievementTarget" id="my_achievementTarget" /> <!-- <a-textarea placeholder="成果指标" v-model="formData.achievementTarget" style="width: 80%; height: 140px; 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="socialBenefit"> <my-editor v-model="formData.socialBenefit" id="my_socialBenefit" /> <!-- <a-textarea placeholder="社会效益" v-model="formData.socialBenefit" style="width: 80%; height: 140px; margin-top: 12px" /> --> </a-form-model-item> </a-col> </a-row> <a-row> <a-col :span="24"> <div class="tb-title"> <div class="required"></div><span>其他目标与考核指标 <strong>(对于难以采取上述表格细化的项目目标及其考核指标,可在此细化填写,限1000字以内。)</strong></span> </div> </a-col> </a-row> <a-row type="flex"> <a-col :span="24"> <div style="font-weight: bold;"> <span>1.“项目目标”,应从以下方面明确描述:<br /> (1)项目研发主要针对什么问题和需求;<br /> (2)将要解决哪些科学问题、突破哪些核心/共性/关键技术;<br /> (3)预期成果;<br /> (4)成果将以何种方式应用在哪些领域/行业/重大工程等,并拟在科技、经济、社会、等方面发挥何种的作用和影响。</span><br /> <span>2.“对应的课题(任务)”,课题任务的主要成果,指将由项目内哪些课题(任务)支撑取得某项成果。</span><br /> <span>3.“考核指标”,指相应成果的数量指标、技术指标、质量指标、应用指标和产业化指标等,其中,数量指标可以为论文、专利、产品等的数量;技术指标可以为关键技术、产品的性能参数等;质量指标可以为产品的质量提升等;应用指标可以为成果应用的对象、范围和效果等;产业化指标可以为成果产业化的数量、经济效益等。同时,对各项考核指标需填写立项时已有的指标值/状态以及项目完成时要到达的指标值/状态。同时,考核指标也应包括支撑和服务其他重大科研、经济、社会发展、科学普及需求等方面的直接和间接效益。若某项成果属于开创性的成果,立项时已有指标值/状态可填写“无”,若某项成果在立项时已有指标值/状态难以界定,则可填写“/”。</span><br /> <span>4.“中期指标”,可根据每个项目管理特点,确定是否填写,阶段目标明确的项目应填写中期指标。</span><br /> <span>5.“考核方式方法”,应提出符合相关研究成果与指标的具体考核技术方法、证明材料等。</span><br /> </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="otherTarget"> <my-editor v-model="formData.otherTarget" id="my_otherTarget" /> <!-- <a-textarea placeholder="其他目标与考核指标" v-model="formData.otherTarget" :maxLength="1000" style="width: 80%; height: 200px; margin-top: 12px" /> --> </a-form-model-item> </a-col> </a-row> <!-- 项目安排及阶段目标 --> <proj-stage-goals :stageGoals.sync="formData.stageGoals" /> <!-- 项目经费构成表 --> <proj-fund-composition :fundCompositions.sync="formData.fundCompositions" /> <!-- 项目组成员 --> <proj-group-member :members.sync="formData.members" /> <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 prop="awardSituation"> <a-input placeholder="项目负责人主要成就、发明及获奖情况" v-model="formData.awardSituation" :maxLength="10000" style="width: 80%;" /> </a-form-model-item> </div> </div> </a-col> </a-row> <!-- 经费预算 --> <budget-edit :budget.sync="formData.budget" /> <!-- 附件 --> <file-edit :fileList.sync="formData.fileList" /> <!-- 项目信息 end--> </a-form-model> </div> </template> <script> import { isEmptyParams, checkEmail, checkPhone, checkIdentitytionId, personBirthday, personGender } from "@/views/utils/common" import moment from 'moment' import { getType } from '@/views/utils/auth' import paraMultiSelect from '@/views/components/common/paraMultiSelect' import myEditor from '@/views/components/common/myEditor' import paraSelect from '@/views/components/common/paraSelect' import baseSelect from '@/views/components/common/baseSelect' import projGroupMember from '@/views/report/project/components/keyProject/projGroupMember' import projStageGoals from '@/views/report/project/components/keyProject/projStageGoals' import projFundComposition from '@/views/report/project/components/keyProject/projFundComposition' import cooperativeUnits from '@/views/report/project/components/keyProject/cooperativeUnits' import budgetEdit from '@/views/report/project/components/keyProject/budgetEdit' import fileEdit from '@/views/report/project/components/keyProject/fileEdit' import paraCheck from '@/views/components/common/paraCheck' const Unit = { id: null, unitName: null } const Goals = { startTime: null, endTime: null, contentInfo: null, target: null } const Fund = { year: null, totalFund: null, specialFund: null, selfFund: null, cityFund: null, otherFund: null, remark: null } const Member = { name: null, certId: null, title: null, education: null, degree: null, spec: null, workUnit: null } const File = { fileName: '', downloadUrl: '', fileExplain: '', downloadId: '' } export default { name: 'projectEdit', components: { paraMultiSelect, paraSelect, baseSelect, projGroupMember, cooperativeUnits, paraCheck, projStageGoals, projFundComposition, budgetEdit, fileEdit, myEditor }, props: { value: { type: String, default: () => { return null } }, isModifyNo: { type: Boolean, default: () => { return false } }, }, data () { return { formData: { id: null, // 年度 reportYear: null, // 状态 projState: -10, // 项目名称 projName: null, // 项目编号 projNo: null, // 单位名称 appUnitName: null, // 通讯地址 address: null, // 邮编 postCode: null, // 统一社会信用代码 creditCode: null, // 单位性质 nature: null, // 项目合作单位 cooperativeUnits: [], // 姓名 personName: '', // 性别 sex: '', // 证件号 certId: '', // 学历 educationName: '', // 职 称 titleName: '', // 固定电话 telephone: '', // 手机号码 mobile: '', // 电子邮箱 email: '', // 姓名(项目联系人) linkName: '', // 工作单位(项目联系人) linkUnit: '', // 手机号码(项目联系人) linkMobile: '', // 电子邮箱(项目联系人) linkEmail: '', // 实施年限 起止日期 startDate: null, endDate: null, // 所属技术领域 technicalField: null, // 国标学科 knowledgeId: '', // 年度报告 annualTechnologyReport: null, // 中期技术报告 midTechnicalReport: null, // 最终技术报告 finalTechnicalReport: null, // 项目摘要 projAbstract: null, // 投资总额 totalFunding: null, // 卫生健康委资助 govFunding: null, // 单位配套 unitFunding: null, // 自筹 selfFunding: null, // 其他 otherFunding: null, // 成果形式 results: null, // 国内外研究进展 researchProgress: null, // 研发内容 researchContent: null, // 研究方法和技术路线 researchPlan: null, // 创新点 mainFeatures: null, // 先进性 progressiveness: null, // 申报单位、参与单位科研条件支撑状况 supportingConditions: null, // 负责人及研究团队的科研水平及前期研究基础 memResume: null, // 技术指标 */ technologyTarget: null, // 经济指标 */ economyTarget: null, // 成果指标 */ achievementTarget: null, // 社会效益 */ socialBenefit: null, // 其他目标与考核指标 */ otherTarget: null, // 负责人主要成就、发明及获奖情况 */ awardSituation: null, // 项目安排及阶段目标 */ stageGoals: [], // 项目经费构成表 */ fundCompositions: [], // 项目参加人员 */ members: [], // 经费预算 */ budget: [], // 附件 */ fileList: [], }, rules: { // 项目名称 projName: [{ required: true, message: '请填写项目名称', trigger: 'blur' },], // 项目编号 projNo: [{ required: false, message: '请填写项目编号', trigger: 'blur' },], // 单位名称 appUnitName: [{ required: false, message: '请填写单位名称', trigger: 'blur' },], // 通讯地址 address: [{ required: true, message: '请填写通讯地址', trigger: 'blur' },], // 邮编 postCode: [{ required: true, message: '请填写邮编', trigger: 'blur' },], // 统一社会信用代码 creditCode: [{ required: true, message: '请填写统一社会信用代码', trigger: 'blur' },], // 单位性质 nature: { required: true, message: '请选择单位性质', trigger: 'change' }, // 姓名 personName: [{ required: false, message: '请填写姓名', trigger: 'blur' },], // 性别 sex: [{ required: false, message: '请填写性别', trigger: 'blur' },], // 证件号 certId: [{ required: false, message: '请填写证件号', trigger: 'blur' },], // 学历 educationName: [{ required: false, message: '请填写学历', trigger: 'blur' },], // 职 称 titleName: [{ required: false, message: '请填写职 称', trigger: 'blur' },], // 固定电话 telephone: [{ required: true, message: '请填写固定电话', trigger: 'blur' },], // 手机号码 mobile: [ { required: true, message: '请填写手机号码', trigger: 'blur' }, { required: true, validator: checkPhone, trigger: 'blur' }], // 电子邮箱 email: [ { required: true, message: '请填写电子邮箱', trigger: 'blur' }, { required: true, validator: checkEmail, trigger: 'blur' } ], // 姓名(项目联系人) linkName: [{ required: true, message: '请填写姓名(项目联系人)', trigger: 'blur' },], // 工作单位(项目联系人) linkUnit: [{ required: true, message: '请填写工作单位(项目联系人)', trigger: 'blur' },], // 手机号码(项目联系人) linkMobile: [ { required: true, message: '请填写手机号码(项目联系人)', trigger: 'blur' }, { required: true, validator: checkPhone, trigger: 'blur' } ], // 电子邮箱(项目联系人) linkEmail: [ { required: true, message: '请填写电子邮箱(项目联系人)', trigger: 'blur' }, { required: true, validator: checkEmail, trigger: 'blur' } ], // 实施年限 起止日期 startDate: { required: true, message: '请选择起始日期', trigger: 'change' }, endDate: { required: true, message: '请选择结束日期', trigger: 'change' }, // 所属技术领域 technicalField: [{ required: true, message: '请填写所属技术领域', trigger: 'blur' },], // 国标学科 knowledgeId: { required: true, message: '请选择国标学科', trigger: 'change' }, // 年度报告 annualTechnologyReport: [{ required: true, message: '请填写年度报告', trigger: 'blur' },], // 中期技术报告 midTechnicalReport: [{ required: true, message: '请填写中期技术报告', trigger: 'blur' },], // 最终技术报告 finalTechnicalReport: [{ required: true, message: '请填写最终技术报告', trigger: 'blur' },], // 项目摘要 projAbstract: [{ required: true, message: '请填写项目名称', trigger: 'blur' },], // 投资总额 totalFunding: [{ required: true, message: '请填写项目摘要', trigger: 'blur' },], // 卫生健康委资助 govFunding: [{ required: true, message: '请填写投资总额', trigger: 'blur' },], // 单位配套 unitFunding: [{ required: true, message: '请填写单位配套', trigger: 'blur' },], // 自筹 selfFunding: [{ required: true, message: '请填写自筹', trigger: 'blur' },], // 其他 otherFunding: [{ required: true, message: '请填写其他', trigger: 'blur' },], // 成果形式 results: [{ required: true, message: '请选择成果形式', trigger: 'change' },], // 国内外研究进展 researchProgress: [{ required: true, message: '请填写国内外研究进展', trigger: 'blur' },], // 研发内容 researchContent: [{ required: true, message: '请填写研发内容', trigger: 'blur' },], // 研究方法和技术路线 researchPlan: [{ required: true, message: '请填写研究方法和技术路线', trigger: 'blur' },], // 创新点 mainFeatures: [{ required: true, message: '请填写创新点', trigger: 'blur' },], // 先进性 progressiveness: [{ required: true, message: '请填写先进性', trigger: 'blur' },], // 申报单位、参与单位科研条件支撑状况 supportingConditions: [{ required: true, message: '请填写申报单位、参与单位科研条件支撑状况', trigger: 'blur' },], // 负责人及研究团队的科研水平及前期研究基础 memResume: [{ required: true, message: '请填写 负责人及研究团队的科研水平及前期研究基础', trigger: 'blur' },], // 技术指标 */ technologyTarget: [{ required: true, message: '请填写技术指标', trigger: 'blur' },], // 经济指标 */ economyTarget: [{ required: true, message: '请填写经济指标', trigger: 'blur' },], // 成果指标 */ achievementTarget: [{ required: true, message: '请填写成果指标', trigger: 'blur' },], // 社会效益 */ socialBenefit: [{ required: true, message: '请填写社会效益', trigger: 'blur' },], // 其他目标与考核指标 */ otherTarget: [{ required: true, message: '请填写其他目标与考核指标', trigger: 'blur' },], // 负责人主要成就、发明及获奖情况 */ awardSituation: [{ required: true, message: '请填写负责人主要成就、发明及获奖情况', trigger: 'blur' },], }, } }, computed: { }, mounted () { }, created () { this.getProject() }, 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('load', false) this.$emit('close', 'error') }) } }, loadList () { if (!!!this.formData.cooperativeUnits || this.formData.cooperativeUnits.length == 0) { this.formData.cooperativeUnits = [{ ...Unit }, { ...Unit }, { ...Unit }] } if (!!!this.formData.stageGoals || this.formData.stageGoals.length == 0) { this.formData.stageGoals = [{ ...Goals }, { ...Goals }, { ...Goals }] } if (!!!this.formData.fundCompositions || this.formData.fundCompositions.length == 0) { this.formData.fundCompositions = [{ ...Fund }, { ...Fund }, { ...Fund }] } if (!!!this.formData.members || this.formData.members.length == 0) { this.formData.members = [{ ...Member }, { ...Member }, { ...Member }, { ...Member }, { ...Member }] } }, save () { if (this.formData.projName == "" || !!!this.formData.projName) { this.$message.error('项目名称不能为空!') return false } this.formData.projState = -10 this.saveProjectInfo(1) }, submit () { if (!!!this.formData.members || this.formData.members.length == 0) { this.$message.error('至少添加一位项目组成员!') return false } this.$refs.form.validate(valid => { if (valid) { if (this.formData.projState != 30) this.formData.projState = 10 this.saveProjectInfo(2) } else { this.$message.error('项目信息未填写完全!') return false } }) }, saveProjectInfo (type) { 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('load', false) this.$emit('onSave', type == 1 ? 'save' : 'submit') } else this.$emit('load', false) }).catch(() => { this.$emit('load', false) }) }, }, watch: { } } </script> <style scoped lang="less"> .d-icon { margin-right: 10px; } </style>