Commit c3f3973b authored by wangxl's avatar wangxl

333

parent 4933942f
<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>
<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>注册单位类型</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>组织机构代码/统一社会信用代码</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>通讯地址</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>注册所在地</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>邮编</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>法定代表人</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>职工总数</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>其中专科以上人员</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>研究开发人员</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>开户银行</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>银行账号</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>开户银行地址</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>银行联行号</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>
<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="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>上年度是否填报了研发活动情况</div>
</div>
</a-col>
<a-col :span="20">
<div class="special-middle">
<div>
<a-form-model-item ref="isResearchActive" label="" prop="unitType">
<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>上一年度填报的研发投入总数(单位:万元)</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>上一年度填报的研发人员数</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 class="required">推荐部门</div>
</div>
</a-col>
<a-col :span="20">
<a-form-model-item prop="recommendUnit">
<a-input placeholder="推荐部门" v-model="formData.recommendUnit" :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="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>
</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" 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="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="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="tb-title">
<span>项目人员情况</span>
</div>
</a-col>
</a-row>
<!-- 项目合作单位 -->
<cooperative-units :cooperativeUnits.sync="formData.cooperativeUnits" />
<!-- 项目组成员 -->
<proj-group-member :members.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="researchContent">
<a-textarea placeholder="项目的意义、必要性" v-model="formData.researchContent" :maxLength="5000" 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="5000" 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">3、与项目相关的国内外技术发展现状(包括知识产权情况)以及本项目主要研究开发内容技术关键(创新点)、可行性评价及项目风险分析与对策</div>
</div>
</a-col>
<a-col :span="20">
<a-form-model-item prop="researchProgress">
<a-textarea placeholder="与项目相关的国内外技术发展现状" v-model="formData.researchProgress" :maxLength="5000" 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="researchContent">
<a-textarea placeholder="与项目相关的国内外技术发展现状" v-model="formData.researchContent" :maxLength="5000" 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="5000" 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="5000" 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="achievementTarget">
<a-textarea placeholder="项目实施中形成的示范基地、中试线、生产线及其规模等" v-model="formData.achievementTarget" :maxLength="5000" 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="otherTarget">
<a-textarea placeholder="其他应考核的指标" v-model="formData.otherTarget" :maxLength="5000" style="width: 80%; height: 160px; margin-top: 12px" />
</a-form-model-item>
</a-col>
</a-row>
<!-- 经费预算 -->
<budget-edit :budget.sync="formData.budget" />
<!-- 附件 -->
<file-edit :fileList.sync="formData.fileList" />
</a-form-model>
</div>
</template>
<script>
import { getType } from '@/views/utils/auth'
import paraMultiSelect from '@/views/components/common/paraMultiSelect'
import paraSelect from '@/views/components/common/paraSelect'
import baseSelect from '@/views/components/common/baseSelect'
import ProjGroupMember from '@/views/report/project/components/projGroupMember'
import cooperativeUnits from '@/views/report/project/components/cooperativeUnits'
import budgetEdit from '@/views/report/project/components/keyProject/budgetEdit'
import fileEdit from '@/views/report/project/components/keyProject/fileEdit'
import { isEmptyParams } from "@/views/utils/common"
import moment from 'moment'
const Cooperative = { id: null, unitName: null, unitCountry: null, unitAddress: null, organizationCode: null, projectWork: null }
const Members = { showIndex: 1, name: null, certId: null, sex: null, birthday: null, age: null, degree: null, title: null, duty: null, spec: null, workUnit: null, projWork: null }
const Equipments = { name: null, specificationType: null, quantity: null, totalBudget: null, useFrom: null }
const File = { fileName: '', downloadUrl: '', fileExplain: '', downloadId: '' }
export default {
name: 'projectEdit',
components: {
paraMultiSelect, paraSelect, baseSelect, ProjGroupMember, cooperativeUnits,budgetEdit,fileEdit
},
props: {
value: {
type: String,
default: () => {
return null
}
},
isModifyNo: {
type: Boolean,
default: () => {
return false
}
},
},
created () {
this.getProject()
},
data () {
return {
overseasShow: false,
formData: {
id: null,
// 项目名称
projName: '',
// 项目名称
englishName: '',
// 项目状态
projState: -10,
isAchieve: null,
// 申报学科
isAccept: null,
// 申报学科
isOverseas: null,
// 申报学科
knowledgeId: '',
// 拟完成的成果形式
anticipatedForms: '',
// 申请金额
applyMoney: null,
// 申报年度
reportYear: null,
// 实施年限 起止日期
startDate: null,
endDate: null,
// 主题词
projKeywords: '',
// 主题词(英文)
keywordsEnglish: '',
// 依托单位
appUnitName: '',
// 申报人
personName: '',
// 性别
sex: '',
// 出生年月
birthday: '',
// 证件号
certId: '',
// 民族
nationName: '',
// 职 称
titleName: '',
// 学历
educationName: '',
// 专业
specName: '',
// 电话
mobile: '',
// 邮箱
email: '',
// 成员
cooperativeUnits: [],
// 成员
members: [],
// 投资总额
totalFunding: null,
// 卫生健康委资助
govFunding: null,
// 单位配套
unitFunding: null,
// 自筹
selfFunding: null,
// 其他
otherFunding: null,
budget: [],
equipments: [{ ...Equipments }],
// 研究内容和意义
projContent: '',
//参考文献
projReference: '',
// 立项依据
projBasis: '',
// 研究内容和研究目标,拟解决的关键问题
researchContent: '',
// 研究思路、方法、技术路线、实验方案及可行性分析
researchPlan: '',
// 项目的特色和创新之处
mainFeatures: '',
// 研究进度计划
studyPlan: '',
// 预期研究成果
expectedResults: '',
// 研究工作积累和已取得的研究工作成绩
workFoundation: '',
// 实验条件和资料
workingConditions: '',
// 申请者和项目组主要成员研究工作简历
memResume: '',
// 申请者正在承担的其它研究项目
researchProjects: '',
projDoc: '',
fileList: [{ ...File }],
//项目类型(1.科研项目、2.重点项目)
projType: getType()
},
rules: {
projName: [
{ required: true, message: '请填写项目名称', trigger: 'blur' },
{ max: 50, message: '项目名称不能大于50', trigger: 'blur' }
],
englishName: [{ max: 200, message: '项目名称(英文)不能大于50', trigger: 'blur' }],
proj_no: { required: true, message: '请填写项目编号', trigger: 'blur' },
isAchieve: { required: true, message: '是否可实现成果转化或临床应用', trigger: 'change' },
isAccept: { required: true, message: '请选择是否选择接受立项不资助', trigger: 'change' },
isOverseas: { required: true, message: '请选择是否存在境外机构或人员参与', trigger: 'change' },
knowledgeId: { required: true, message: '请选择申报学科', trigger: 'change' },
anticipatedForms: { required: true, message: '请选择成果形式', trigger: 'change' },
projKeywords: [{ required: true, message: '请填写主题词', trigger: 'blur' },],
keywordsEnglish: [{ max: 200, message: '主题词不能大于50', trigger: 'blur' },],
startDate: { required: true, message: '请选择起始日期', trigger: 'change' },
endDate: { required: true, message: '请选择结束日期', trigger: 'change' },
dept: { required: true, message: '请填写系、所、科室', trigger: 'blur' },
nature: { required: true, message: '请填单位性质', trigger: 'change' },
telephone: { required: true, message: '请填写申请人电话', trigger: 'blur' },
address: { required: true, message: '请填写详细地址', trigger: 'blur' },
email: { required: true, message: '请填写邮箱', trigger: 'blur' },
applyMoney: { required: true, message: '请填写申请金额', trigger: 'blur' },
// 研究内容和意义
projContent: [{ required: true, message: '请填写研究内容和意义', trigger: 'blur' }],
//参考文献
projReference: [{ required: false, message: '请填写参考文献', trigger: 'blur' }],
// 立项依据
projBasis: [{ required: true, message: '请填写立项依据', trigger: 'blur' }],
// 研究内容和研究目标,拟解决的关键问题
researchContent: [{ required: true, message: '请填写研究内容和研究目标', trigger: 'blur' }],
// 研究思路、方法、技术路线、实验方案及可行性分析
researchPlan: [{ required: true, message: '请填写研究思路、方法、技术路线', trigger: 'blur' }],
// 项目的特色和创新之处
mainFeatures: [{ required: true, message: '请填写项目的特色和创新之处', trigger: 'blur' }],
// 研究进度计划
studyPlan: [{ required: true, message: '请填写研究进度计划', trigger: 'blur' }],
// 预期研究成果
expectedResults: [{ required: true, message: '请填写预期研究成果', trigger: 'blur' }],
// 研究工作积累和已取得的研究工作成绩
workFoundation: [{ required: true, message: '请填写研究工作积累和已取得的研究工作成绩', trigger: 'blur' }],
// 实验条件和资料
workingConditions: [{ required: true, message: '请填写实验条件和资料', trigger: 'blur' }],
// 申请者和项目组主要成员研究工作简历
memResume: [{ required: true, message: '请填写研究工作简历', trigger: 'blur' }],
// 申请者正在承担的其它研究项目
researchProjects: [{ 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' },
},
// 富文本字数
tinymceLimit: 15000,
tinymceWordCount: 0,
flag: false,
}
},
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()
// tinyMCE.activeEditor.setContent(data.projDoc)
} else
this.$emit('close', 'error')
this.$emit('load', false)
}).catch(() => {
this.$emit('close', 'error')
this.$emit('load', false)
})
}
},
loadList () {
if (!!!this.formData.cooperativeUnits || this.formData.cooperativeUnits.length == 0)
this.formData.cooperativeUnits = [{ ...Cooperative }]
if (!!!this.formData.members || this.formData.members.length == 0)
this.formData.members = [{ ...Members }]
if (!!!this.formData.equipments || this.formData.equipments.length == 0)
this.formData.equipments = [{ ...Equipments }]
if (!!!!this.formData.fileList || !this.formData.fileList.length || this.formData.fileList.length == 0) {
this.formData.fileList = []
}
},
addEquipments () {
this.formData.equipments.push({ ...Equipments })
},
removeEquipments (item) {
let index = this.formData.equipments.indexOf(item)
if (index !== -1) {
this.formData.equipments.splice(index, 1)
}
},
save () {
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('onSave', 'save')
}
this.$emit('load', false)
}).catch(() => {
this.$emit('load', false)
})
}
},
submit () {
if (this.formData.members.length == 0) {
this.$message.error('至少添加一位项目组成员!')
return
}
if (this.formData.isOverseas && this.formData.isOverseas == '是') {
if (this.formData.overseasRemark == null || this.formData.overseasRemark == '') {
this.$message.error('请填写存在境外机构或人员具体情况说明!')
return
}
}
this.$refs.form.validate(valid => {
if (valid) {
if (!this.checkApplyMoney()) {
return false
}
this.$emit('load', true)
let state = this.formData.projState
if (state != 30)
this.formData.projState = 10
// this.formData.projDoc = this.projDoc
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('onSave', 'submit')
}
this.$emit('load', false)
}).catch(() => {
this.$emit('load', false)
})
} else {
this.$message.warn('项目信息未填写完全!')
return false
}
})
},
tinymceSet () {
tinymce.remove('#tinymce_dom')
tinymce.init({
selector: '#tinymce_dom',
language: 'zh_CN',
content_style: "img {max-width:100%;}",
// menubar: false,
// 隐藏底部状态栏
statusbar: false,
height: 800,
plugins: 'code advlist autolink link image lists preview table wordcount',
toolbar: `undo redo | styleselect | fontsizeselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist | link image
| table tabledelete | tableprops tablerowprops tablecellprops | tableinsertrowbefore tableinsertrowafter tabledeleterow
| tableinsertcolbefore tableinsertcolafter tabledeletecol | wordcount`,
// 初始化完成回调
init_instance_callback: (editor) => {
let wordcount = editor.plugins.wordcount
this.tinymceWordCount = wordcount.body.getWordCount()
},
// 图片上传路径
// images_upload_url: 'http://192.168.1.185:8888/profile',
// 图片上传操作
images_upload_handler: (blobInfo, succFun, failFun) => {
this.$api.base.asyncUpload(this.uploadHandle(blobInfo.blob(), blobInfo.filename())).then(({ data = {} }) => {
if (data) {
succFun(data.downloadUrl)
}
}).catch((err) => {
failFun(err)
})
}
})
// 设置富文本内容
// tinymce.activeEditor.setContent(htmlText)
// 监听输入计算字数
let mark = 1
tinymce.activeEditor.on('keyup', (e) => {
if (mark === 1) {
let wordcount = tinymce.activeEditor.plugins.wordcount
this.tinymceWordCount = wordcount.body.getWordCount()
mark = 0
setTimeout(() => {
mark = 1
}, 500)
}
})
},
// 添加附件
addfileList () {
this.formData.fileList.push(Object.assign({ ...File }, { fileExplain: '' }))
},
// 删除附件
removefileList (item) {
let index = this.formData.fileList.indexOf(item)
if (index !== -1) {
this.formData.fileList.splice(index, 1)
}
},
downfileList (item) {
},
fileSelect (item, index) {
let fileElem = this.$refs['fileElem' + index][0]
if (fileElem) {
fileElem.click()
}
},
fileCheck (file) {
//判断是否小于1M
let isLtSize = file.size < 1024 * 1024 * 15;
if (!isLtSize) {
this.$message.error('文件大小不能超过15M!');
return false
}
// var fileNames = file.name.split('.')
// var fileType = fileNames[fileNames.length - 1].toLocaleLowerCase()
// var extList = ['doc', 'docx', 'pdf']
// if (!extList.find((item) => item == fileType)) {
// this.$message.error('文件格式错误!')
// return false
// }
return true
},
handleFiles (item, index) {
let fileElem = this.$refs['fileElem' + index][0]
let files = fileElem.files
if (files.length <= 0) {
this.$message.error('未选中文件,请尝试重新选择')
return
}
if (!this.fileCheck(files[0]))
return
this.$api.base.asyncUpload(this.uploadHandle(files[0], files[0].name)).then(({ data = {} }) => {
if (data) {
item.fileName = files[0].name
item.downloadUrl = '/' + files[0].name
item.downloadId = data.id
} else
this.$message.error('上传失败')
}).catch(() => {
this.$message.error('上传失败')
})
},
inCount () {
let govFunding = 0
let unitFunding = 0
let selfFunding = 0
let otherFunding = 0
if (this.formData.govFunding)
govFunding = this.formData.govFunding
if (this.formData.unitFunding)
unitFunding = this.formData.unitFunding
if (this.formData.selfFunding)
selfFunding = this.formData.selfFunding
if (this.formData.otherFunding)
otherFunding = this.formData.otherFunding
this.formData.totalFunding = (govFunding + unitFunding + selfFunding + otherFunding).toFixed(2)
return this.formData.totalFunding
},
outNumberChange () {
let vartotalBudget = 0
this.formData.budget.forEach(e => {
if (e.totalBudget != null)
vartotalBudget += parseFloat(e.totalBudget)
})
this.formData.totalFunding = vartotalBudget.toFixed(2)
},
deletefile (item, index) {
this.$api.base.deletefile({ id: item.downloadId }).then(({ data = {} }) => {
if (data) {
item.fileName = ''
item.downloadUrl = ''
item.downloadId = ''
if (item.fileExplain != '学术委员会审查意见' && item.fileExplain != '项目组的人员签字') {
item.fileExplain = ''
}
}
}).catch(() => {
this.$message.error('删除失败')
})
},
uploadHandle (file, fileName) {
let formData = new FormData()
formData.append('file', file)
formData.append('fileName', fileName)
return formData
},
// 起止日期选择处理
dateChange (value) {
let statr = this.formData.startDate
let end = this.formData.endDate
if (!statr || !end) {
return
}
if (statr > end) {
this.formData.startDate = end
this.formData.endDate = statr
}
},
checkApplyMoney () {
var m = parseFloat(this.formData.applyMoney)
if (m != this.formData.govFunding) {
alert('项目经费与申请金额不一致!')
return false
}
return true
},
checkProjName () {
if (this.formData.projName == "" || this.formData.projName == null) {
alert('项目名称不能为空')
return false
} else {
return true
}
},
},
watch: {
'formData.isOverseas': {
handler (value) {
if (value && value == '是')
this.overseasShow = true
else
this.overseasShow = false
},
},
}
}
</script>
<style scoped lang="less">
.d-icon {
margin-right: 10px;
}
</style>
...@@ -252,7 +252,7 @@ ...@@ -252,7 +252,7 @@
<a-col :span="20"> <a-col :span="20">
<div class="special-middle"> <div class="special-middle">
<div> <div>
<a-form-model-item ref="isResearchActive" label="" prop="unitType"> <a-form-model-item prop="isResearchActive">
<base-select v-model="formData.isResearchActive" :type="12" :isAll="true" /> <base-select v-model="formData.isResearchActive" :type="12" :isAll="true" />
</a-form-model-item> </a-form-model-item>
</div> </div>
...@@ -535,7 +535,7 @@ ...@@ -535,7 +535,7 @@
</a-col> </a-col>
<a-col :span="20"> <a-col :span="20">
<a-form-model-item prop="researchContent"> <a-form-model-item prop="researchContent">
<a-textarea placeholder="与项目相关的国内外技术发展现状" v-model="formData.researchContent" :maxLength="5000" style="width: 80%; height: 160px; margin-top: 12px" /> <a-textarea placeholder="项目实施目标" v-model="formData.researchContent" :maxLength="5000" style="width: 80%; height: 160px; margin-top: 12px" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
...@@ -643,12 +643,6 @@ export default { ...@@ -643,12 +643,6 @@ export default {
return null return null
} }
}, },
isModifyNo: {
type: Boolean,
default: () => {
return false
}
},
}, },
created () { created () {
this.getProject() this.getProject()
...@@ -658,153 +652,92 @@ export default { ...@@ -658,153 +652,92 @@ export default {
overseasShow: false, overseasShow: false,
formData: { formData: {
id: null, id: null,
// 项目名称 organizationCode: null,
projName: '', address:null,
// 项目名称 registeredAddress: null,
englishName: '', postCode: null,
// 项目状态 legalPerson:null,
projState: -10, workforce: null,
isAchieve: null, specializedPersonnel: null,
// 申报学科 researchPersonnel: null,
isAccept: null, depositBank: null,
// 申报学科 bankAccount: null,
isOverseas: null, depositBankAddress: null,
// 申报学科 interbankNumber: null,
knowledgeId: '', researchTotal: null,
// 拟完成的成果形式 isResearchActive: null,
anticipatedForms: '', researchCount: null,
// 申请金额 researchPersonCount: null,
applyMoney: null, projName: null,
// 申报年度 leadUnit: null,
reportYear: null, recommendUnit: null,
// 实施年限 起止日期
startDate: null, startDate: null,
endDate: null, endDate:null,
// 主题词 technologyInnovationBase:null,
projKeywords: '', knowledgeId: null,
// 主题词(英文)
keywordsEnglish: '',
// 依托单位
appUnitName: '',
// 申报人
personName: '',
// 性别
sex: '',
// 出生年月
birthday: '',
// 证件号
certId: '',
// 民族
nationName: '',
// 职 称
titleName: '',
// 学历
educationName: '',
// 专业
specName: '',
// 电话
mobile: '',
// 邮箱
email: '',
// 合作单位
cooperativeUnits: [],
// 项目课题设置
projectSubList: [],
// 单位科研项目及资金管理制度表
managementRuleList: [],
// 成员
members: [],
// 投资总额
totalFunding: null, totalFunding: null,
// 卫生健康委资助
govFunding: null, govFunding: null,
// 单位配套 linkName: null,
unitFunding: null, linkMobile: null,
// 自筹 linkEmail: null,
selfFunding: null, projAbstract: null,
// 其他 projKeywords: null,
otherFunding: null, researchContent: null,
memResume: null,
researchProgress: null,
researchContent: null,
technologyTarget: null,
economyTarget: null,
achievementTarget: null,
otherTarget: null,
cooperativeUnits: [],
members: [],
budget: [], budget: [],
equipments: [{ ...Equipments }], equipments: [],
// 研究内容和意义 projectSubList: [],
projContent: '', managementRuleList: [],
//参考文献 fileList: [],
projReference: '',
// 立项依据
projBasis: '',
// 研究内容和研究目标,拟解决的关键问题
researchContent: '',
// 研究思路、方法、技术路线、实验方案及可行性分析
researchPlan: '',
// 项目的特色和创新之处
mainFeatures: '',
// 研究进度计划
studyPlan: '',
// 预期研究成果
expectedResults: '',
// 研究工作积累和已取得的研究工作成绩
workFoundation: '',
// 实验条件和资料
workingConditions: '',
// 申请者和项目组主要成员研究工作简历
memResume: '',
// 申请者正在承担的其它研究项目
researchProjects: '',
projDoc: '',
fileList: [{ ...File }],
//项目类型(1.科研项目、2.重点项目)
projType: getType() projType: getType()
}, },
rules: { rules: {
projName: [ organizationCode: [{ required: true, message: '请填写组织机构代码/统一社会信用代码', trigger: 'blur' },],
{ required: true, message: '请填写项目名称', trigger: 'blur' }, address: [{ required: true, message: '请填写通讯地址', trigger: 'blur' },],
{ max: 50, message: '项目名称不能大于50', trigger: 'blur' } registeredAddress: [{ required: true, message: '请填写注册所在地', trigger: 'blur' },],
], postCode: [{ required: true, message: '请填写邮编', trigger: 'blur' },],
englishName: [{ max: 200, message: '项目名称(英文)不能大于50', trigger: 'blur' }], legalPerson: [{ required: true, message: '请填写法定代表人', trigger: 'blur' },],
proj_no: { required: true, message: '请填写项目编号', trigger: 'blur' }, workforce: [{ required: true, message: '请填写职工总数', trigger: 'blur' },],
isAchieve: { required: true, message: '是否可实现成果转化或临床应用', trigger: 'change' }, specializedPersonnel: [{ required: true, message: '请填写其中专科以上人员', trigger: 'blur' },],
isAccept: { required: true, message: '请选择是否选择接受立项不资助', trigger: 'change' }, researchPersonnel: [{ required: true, message: '请填写研究开发人员', trigger: 'blur' },],
isOverseas: { required: true, message: '请选择是否存在境外机构或人员参与', trigger: 'change' }, depositBank: [{ required: true, message: '请填写开户银行', trigger: 'blur' },],
knowledgeId: { required: true, message: '请选择申报学科', trigger: 'change' }, bankAccount: [{ required: true, message: '请填写银行账号', trigger: 'blur' },],
anticipatedForms: { required: true, message: '请选择成果形式', trigger: 'change' }, depositBankAddress: [{ required: true, message: '请填写开户银行地址', trigger: 'blur' },],
projKeywords: [{ required: true, message: '请填写主题词', trigger: 'blur' },], interbankNumber: [{ required: true, message: '请填写开户银行地址', trigger: 'blur' },],
keywordsEnglish: [{ max: 200, message: '主题词不能大于50', trigger: 'blur' },], researchTotal: [{ required: true, message: '请填写上年度研发经费支出总额', trigger: 'blur' },],
startDate: { required: true, message: '请选择起始日期', trigger: 'change' }, isResearchActive: [{ required: true, message: '请选择上年度是否填报了研发活动情况', trigger: 'change' },],
endDate: { required: true, message: '请选择结束日期', trigger: 'change' }, researchCount: [{ required: true, message: '请填写上一年度填报的研发投入总数', trigger: 'blur' },],
dept: { required: true, message: '请填写系、所、科室', trigger: 'blur' }, researchPersonCount: [{ required: true, message: '请填写上一年度填报的研发人员数', trigger: 'blur' },],
nature: { required: true, message: '请填单位性质', trigger: 'change' }, projName: [{ required: true, message: '请填写项目名称', trigger: 'blur' },],
telephone: { required: true, message: '请填写申请人电话', trigger: 'blur' }, leadUnit: [{ required: true, message: '请填写项目所属二级学院/部门名称(牵头单位)', trigger: 'blur' },],
address: { required: true, message: '请填写详细地址', trigger: 'blur' }, recommendUnit: [{ required: true, message: '请填写推荐部门', trigger: 'blur' },],
email: { required: true, message: '请填写邮箱', trigger: 'blur' }, startDate: { required: true, message: '请选择项日开始时间', trigger: 'change' },
applyMoney: { required: true, message: '请填写申请金额', trigger: 'blur' }, endDate: { required: true, message: '请选择项目结束时间', trigger: 'change' },
// 研究内容和意义 technologyInnovationBase: [{ required: true, message: '请填写项目依托的科技创新基地', trigger: 'blur' },],
projContent: [{ required: true, message: '请填写研究内容和意义', trigger: 'blur' }], knowledgeId: { required: true, message: '请选择>项目所属学科类别', trigger: 'change' },
//参考文献 totalFunding: [{ required: true, message: '请填写项目总经费', trigger: 'blur' },],
projReference: [{ required: false, message: '请填写参考文献', trigger: 'blur' }], govFunding: [{ required: true, message: '请填写申请科技经费', trigger: 'blur' },],
// 立项依据 linkName: [{ required: true, message: '请填写项目联系人姓名', trigger: 'blur' },],
projBasis: [{ required: true, message: '请填写立项依据', trigger: 'blur' }], linkMobile: [{ required: true, message: '请填写联系人手机', trigger: 'blur' },],
// 研究内容和研究目标,拟解决的关键问题 linkEmail: [{ required: true, message: '请填写电子邮箱', trigger: 'blur' },],
researchContent: [{ required: true, message: '请填写研究内容和研究目标', trigger: 'blur' }], projAbstract: [{ required: true, message: '请填写项目摘要', trigger: 'blur' },],
// 研究思路、方法、技术路线、实验方案及可行性分析 projKeywords: [{ required: true, message: '请填写关键词', trigger: 'blur' },],
researchPlan: [{ required: true, message: '请填写研究思路、方法、技术路线', trigger: 'blur' }], researchContent: { required: true, message: '请填写项目的意义、必要性', trigger: 'blur' },
// 项目的特色和创新之处 memResume: { required: true, message: '请填写项目现有工作基础和支撑条件', trigger: 'blur' },
mainFeatures: [{ required: true, message: '请填写项目的特色和创新之处', trigger: 'blur' }], researchProgress: { required: true, message: '请填写与项目相关的国内外技术发展现状', trigger: 'blur' },
// 研究进度计划 researchContent: { required: true, message: '请填写项目实施目标', trigger: 'blur' },
studyPlan: [{ required: true, message: '请填写研究进度计划', trigger: 'blur' }], technologyTarget: { required: true, message: '请填写主要技术指标', trigger: 'blur' },
// 预期研究成果 economyTarget: { required: true, message: '请填写主要经济指标', trigger: 'blur' },
expectedResults: [{ required: true, message: '请填写预期研究成果', trigger: 'blur' }], achievementTarget: [{ required: true, message: '请填写项目实施中形成的示范基地、中试线、生产线及其规模等', trigger: 'blur' },],
// 研究工作积累和已取得的研究工作成绩 otherTarget: { required: true, message: '请填写其他应考核的指标', trigger: 'blur' },
workFoundation: [{ required: true, message: '请填写研究工作积累和已取得的研究工作成绩', trigger: 'blur' }],
// 实验条件和资料
workingConditions: [{ required: true, message: '请填写实验条件和资料', trigger: 'blur' }],
// 申请者和项目组主要成员研究工作简历
memResume: [{ required: true, message: '请填写研究工作简历', trigger: 'blur' }],
// 申请者正在承担的其它研究项目
researchProjects: [{ 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' },
}, },
// 富文本字数 // 富文本字数
tinymceLimit: 15000, tinymceLimit: 15000,
...@@ -838,7 +771,6 @@ export default { ...@@ -838,7 +771,6 @@ export default {
if (data) { if (data) {
this.formData = data this.formData = data
this.loadList() this.loadList()
// tinyMCE.activeEditor.setContent(data.projDoc)
} else } else
this.$emit('close', 'error') this.$emit('close', 'error')
this.$emit('load', false) this.$emit('load', false)
...@@ -894,12 +826,6 @@ export default { ...@@ -894,12 +826,6 @@ export default {
this.$message.error('至少添加一位项目组成员!') this.$message.error('至少添加一位项目组成员!')
return return
} }
if (this.formData.isOverseas && this.formData.isOverseas == '是') {
if (this.formData.overseasRemark == null || this.formData.overseasRemark == '') {
this.$message.error('请填写存在境外机构或人员具体情况说明!')
return
}
}
this.$refs.form.validate(valid => { this.$refs.form.validate(valid => {
if (valid) { if (valid) {
if (!this.checkApplyMoney()) { if (!this.checkApplyMoney()) {
...@@ -1104,14 +1030,6 @@ export default { ...@@ -1104,14 +1030,6 @@ export default {
}, },
}, },
watch: { watch: {
'formData.isOverseas': {
handler (value) {
if (value && value == '是')
this.overseasShow = true
else
this.overseasShow = false
},
},
} }
} }
</script> </script>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment