checkEdit.vue 8.35 KB
<template>
  <div class="assessment-edit" style="height: 70vh;overflow: auto;">
    <a-form-model ref="form" :model="formData" :rules="rules">
      <div class="tb-title">基本信息</div>
      <div class="from-table">
        <a-row>
          <a-col :span="4" class="bg-gray">
            项目名称
          </a-col>
          <a-col :span="8">
            {{formData.projName}}
          </a-col>
          <a-col :span="4" class="bg-gray">
            项目编号
          </a-col>
          <a-col :span="8">
            {{formData.projNo}}
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="4" class="bg-gray">
            申报人
          </a-col>
          <a-col :span="8">
            {{formData.appPersonName}}
          </a-col>
          <a-col :span="4" class="bg-gray">
            申报单位
          </a-col>
          <a-col :span="8">
            {{formData.appUnitName}}
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="4" class="bg-gray">
            项目起止时间
          </a-col>
          <a-col :span="20">
            {{formData.startDate}}{{formData.endDate}}
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="4" class="bg-gray">
            <div class="required special-middle">研究工作进展情况</div>
          </a-col>
          <a-col :span="20">
            <a-form-model-item prop="workProgress">
              <a-textarea v-model="formData.workProgress" :auto-size="{ minRows: 5, maxRows: 8 }" :max-length="500" style="width: 80%" />
            </a-form-model-item>

            <div style="color: #D4380D;line-height: 1.5;">(注:对照原研究计划,说明实际工作进度。如不能预期完成研究计划,应说明原因)</div>
          </a-col>
        </a-row>
      </div>
      <div style="margin-top: 24px;"></div>
      <div class="tb-title required">现已取得的阶段性成果:<span>(仅填写本年度新获得的成果,并在备注栏填写具体成果类别)</span></div>
      <div class="from-table">
        <a-row>
          <a-col :span="4" class="bg-gray">
            成果名称
          </a-col>
          <a-col :span="20" class="flex-layout results-layout">
            <div v-for="(item, index) in formData.results" :key="index">
              {{item.resultName}}
            </div>
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="4" class="bg-gray">
            数量
          </a-col>
          <a-col :span="20" class="flex-layout results-layout">
            <div v-for="(item, index) in formData.results" :key="index">
              <a-input-number v-model="item.resultCount" :min="0" :max="10000" style="width: 80%" />
            </div>
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="4" class="bg-gray">
            备注
          </a-col>
          <a-col :span="20" class="flex-layout results-layout">
            <div v-for="(item, index) in formData.results" :key="index">
              <a-input v-model="item.remark" :max-length="100" style="width: 80%" />
            </div>
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="4" class="bg-gray">
            <div class="special-middle">其他(请做说明)</div>
          </a-col>
          <a-col :span="20" style="padding-top: 8px;">
            <a-textarea v-model="formData.otherResults" :auto-size="{ minRows: 5, maxRows: 8 }" :max-length="500" style="width: 80%" />
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="4" class="bg-gray">
            <div class="required">项目批准经费</div>
          </a-col>
          <a-col :span="8">
            <a-form-model-item prop="applyMoney">
              <a-input-number v-model="formData.applyMoney" :min="0" :max="1000000" style="width: 50%" />
            </a-form-model-item>
          </a-col>
          <a-col :span="4" class="bg-gray">
            <div class="required">已使用经费</div>
          </a-col>
          <a-col :span="8">
            <a-form-model-item prop="usingMoney">
              <a-input-number v-model="formData.usingMoney" :min="0" :max="1000000" style="width: 50%" />
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="4" class="bg-gray">
            <div class="required">现结余经费</div>
          </a-col>
          <a-col :span="20">
            <a-form-model-item prop="surplusMoney">
              <a-input-number v-model="formData.surplusMoney" :min="0" :max="1000000" style="width: 20%" />
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="4" class="bg-gray">
            <div class="required special-middle">经费具体使用情况说明</div>
          </a-col>
          <a-col :span="20" style="padding-top: 8px;">
            <a-form-model-item prop="moneyInstructions">
              <a-textarea v-model="formData.moneyInstructions" :auto-size="{ minRows: 5, maxRows: 8 }" :max-length="500" style="width: 80%" />
            </a-form-model-item>
          </a-col>
        </a-row>
      </div>

      <a-row style="margin-top: 20px;text-align:center;">
        <a-button style="margin-right: 50px;" @click="save">保存</a-button>
        <a-button type="primary" @click="submit">提交</a-button>
      </a-row>
    </a-form-model>
  </div>
</template>

<script>
import { isEmptyParams } from "@/views/utils/common"
import moment from 'moment'

export default {
  name: "CheckEdit",
  data () {
    return {
      formData: {
        id: '',
        projId: '',
        checkYear: null,
        // 工作进展
        workProgress: '',

        // 其他(请做说明)
        otherResults: '',
        // 项目批准经费
        applyMoney: 0,
        // 已使用运费
        usingMoney: 0,
        // 现结余经费
        surplusMoney: 0,
        // 经费具体使用情况说明
        moneyInstructions: '',
        checkState: null,
        projName: '',
        projNo: '',
        appPersonName: '',
        appUnitName: '',
        startDate: '',
        endDate: '',
        // 成果
        results: [],
        auditList: [{ result: '', unit: '', time: '' }],
      },
      rules: {
        workProgress: { required: true, message: '请填写研究工作进展情况' },
        applyMoney: { required: true, message: '请填写项目批准经费' },
        usingMoney: { required: true, message: '请填写已使用运费' },
        surplusMoney: { required: true, message: '现结余经费' },
        moneyInstructions: { required: true, message: '经费具体使用情况说明' },
      }
    }
  },
  props: {
    value: {
      type: String,
      default: () => {
        return null
      }
    },
  },
  created () {
    this.getCheckInfoById()
  },
  methods: {
    moment,
    getCheckInfoById () {
      let pars = { id: this.value }
      this.$api.checkReport.getCheckInfoById(pars).then(({ data = {} }) => {
        if (data) {
          this.formData = data
          this.formData.startDate = moment(this.formData.startDate).format('YYYY年MM月DD日')
          this.formData.endDate = moment(this.formData.endDate).format('YYYY年MM月DD日')
        }
      }).catch(() => {
      })
    },
    save () {
      this.loading = true
      this.formData.startDate = null
      this.formData.endDate = null
      let pars = isEmptyParams(this.formData)
      let par = { ...pars }
      this.$api.checkReport.save(par).then(({ data = {} }) => {
        if (data) {
          this.$message.success('保存成功!')
          this.loading = false
        }
      }).catch(() => {
        this.loading = false
      })
    },
    submit () {
      this.$refs.form.validate(valid => {
        if (valid) {
          this.formData.startDate = null
          this.formData.endDate = null
          let pars = isEmptyParams(this.formData)
          let par = { ...pars }
          this.$api.checkReport.saveAndReport(par).then(({ data = {} }) => {
            if (data) {
              this.$message.success('上报成功!')
              this.$emit('close', 'edit')
            } else {
              this.$message.error('数据提交有误,请稍后再试!')
            }
          }).catch(() => {
          })
        } else {
          this.$message.info('上报信息未填写完整!')
          return false
        }
      })
    }
  }
}
</script>

<style lang="less" scoped>
</style>