
<template>
  <div class="app-content" style="height: 76vh;overflow: auto;">
    <a-spin :spinning="loading" style="width: 100%;height: 100%;">
      <div class="page-content">
        <div style=" width: 100%;height: 50px;">
          <a-tabs type="card" hideAdd size="small" @change="callback">
            <a-tab-pane :key="item.key" :tab="item.title" v-for="(item) in tabsData">
            </a-tab-pane>
          </a-tabs>
        </div>
        <div style="width: 100%;height: calc(100% - 50px);overflow: auto;" ref="main">
          <div class="x_modal_content">
            <project-info v-model="projectInfo" :tabsData.sync="tabsData" v-if="projType" />
            <project-info-Key v-model="projectInfo" :tabsData.sync="tabsData" v-else />
            <a-row>
              <a-col :span="24">
                <div class="tb-title">
                  <span>审核记录</span>
                </div>
              </a-col>
            </a-row>
            <a-row>
              <a-col :span="24">
                <audit-list v-model="projectInfo.auditList" />
              </a-col>
            </a-row>
            <a-form-model ref="form" :model="auditObj" :rules="rules" class="from-table font-line-space">
              <audit-edit :auditObj.sync="auditObj" />
            </a-form-model>
          </div>
        </div>
      </div>
      <div class="page-footer">
        <a-button type="primary" @click="submit" style="margin-left:16px;">提交</a-button>
      </div>
    </a-spin>
  </div>
</template>
<script>
import { isEmptyParams } from "@/views/utils/common";
import { budgetList } from '@/views/report/project/config'
import { getType } from '@/views/utils/auth'
import projectInfo from '@/views/report/project/components/projectInfo'
import projectInfoKey from "@/views/report/project/components/keyProject/projectInfo"
import AuditList from '@/views/audit/components/auditInfo'
import AuditEdit from '@/views/audit/components/auditEdit'
export default {
  name: "Audit",
  components: {
    projectInfo, projectInfoKey, AuditList, AuditEdit
  },
  data () {
    return {
      tabsData: [
        { title: '全部', key: '0', isShow: true },
        { title: '基本情况', key: '1', isShow: true },
        { title: '项目人员情况', key: '2', isShow: true },
        { title: '项目可行性研究情况', key: '3', isShow: true },
        { title: '项目实施目标', key: '4', isShow: true },
        { title: '项目考核指标', key: '5', isShow: true },
        { title: '项目经费', key: '6', isShow: true },
        { title: '项目绩效目标表', key: '7', isShow: true },
        { title: '项目课题设置', key: '8', isShow: true },
        { title: '附件清单', key: '9', isShow: true },
        { title: '单位科研项目及资金管理制度', key: '10', isShow: true },
        // { title: '诚信承诺书', key: '11', isShow: true },
      ],
      projectInfo: {
        id: null,
        organizationCode: null,
        address: null,
        registeredAddress: null,
        postCode: null,
        legalPerson: null,
        workforce: null,
        specializedPersonnel: null,
        researchPersonnel: null,
        depositBank: null,
        bankAccount: null,
        depositBankAddress: null,
        interbankNumber: null,
        researchTotal: null,
        isResearchActive: null,
        researchCount: null,
        researchPersonCount: null,
        projName: null,
        leadUnit: null,
        recommendUnit: null,
        startDate: null,
        endDate: null,
        technologyInnovationBase: null,
        knowledgeId: null,
        totalFunding: null,
        govFunding: null,
        linkName: null,
        linkMobile: null,
        linkEmail: null,
        projAbstract: null,
        projKeywords: null,
        researchContent: null,
        memResume: null,
        researchProgress: null,
        researchContent: null,
        technologyTarget: null,
        economyTarget: null,
        achievementTarget: null,
        otherTarget: null,
        cooperativeUnits: [],
        members: [],
        budget: [],
        equipments: [],
        projectSubList: [],
        managementRuleList: [],
        fileList: [],
        auditList: [],
      },
      auditObj: { id: this.value, auditObjectId: this.objId, auditResult: null, auditType: 1, auditContent: '' },
      rules: {
        auditContent: { required: true, message: '请填写审核意见', trigger: 'blur' },
        auditResult: { required: true, message: '请选择审核结果', trigger: 'change' },
      },
      loading: false,
      projType: getType() == "1"
    };
  },
  props: {
    value: {
      type: String,
      default: () => {
        return null
      }
    },
    objId: {
      type: String,
      default () {
        return null
      }
    },
  },
  created () {
    this.loadProject()
  },
  methods: {
    loadProject () {
      let pars = { id: this.objId }
      if (this.objId != null) {
        this.loading = true
        this.$api.project.getProjectInfoById(pars).then(({ data = {} }) => {
          if (data) {
            this.projectInfo = data
            this.loading = false
          } else
            this.$emit('close', 'error')
        }).catch(() => { this.$emit('close', 'error') })
      }
    },
    submit () {
      this.$refs.form.validate(valid => {
        if (valid) {
          this.loading = true
          let pars = isEmptyParams(this.auditObj)
          let par = { ...pars }
          this.$api.auditManager.projectAudit(par).then(({ data = {} }) => {
            if (data) {
              if (data === '项目上报已经到达上限！') {
                this.$message.info('项目上报已经到达上限！')
              } else {
                this.$message.success('审核成功！')
                this.$emit('close', 'audit')
              }
            }
            this.loading = false
          }).catch(() => { this.loading = false })
        } else {
          this.changeScroll()
          this.$message.error('请选择审核结果或填写审核意见！')
          return false
        }
      })
    },
    changeScroll () {
      this.$refs.main.scrollTop = document.getElementsByClassName('x_modal_content')[0].offsetHeight
    },
    callback (key) {
      var index = parseInt(key)
      this.tabsData.forEach(e => {
        if (key == '0')
          e.isShow = true
        else
          e.isShow = false
      })
      this.tabsData[0].isShow = true;
      this.tabsData[index].isShow = true;
    },
  },
}
</script>
<style scoped lang="less">
::v-deep .ant-spin-container {
  width: 100%;
  height: 100%;
}
::v-deep .page-content {
  width: 100%;
  height: calc(100% - 40px);
  overflow: auto;
}
::v-deep .page-footer {
  width: 100%;
  height: 40px;
  line-height: 40px;
  background: rgb(248, 248, 248);
  text-align: center;
}
textarea {
  height: 115px;
}
</style>
