<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" />

      <!-- 项目课题设置 -->
      <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 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/budgetEdit'
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 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, 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, projectSubEdit, managementRuleEdit, 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: [],
        // 项目课题设置
        projectSubList: [],
        // 单位科研项目及资金管理制度表
        managementRuleList: [],
        // 成员
        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.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.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>

