luohairen
2024-11-28 41a73f66d30a9bdd854d3998f8975bb3685feeab
src/views/projectEngineering/projectLibrary/component/PolicyInfo.vue
@@ -1,29 +1,30 @@
<template>
  <div class="policy-info">
    <el-form
      ref="demoFormRef"
      ref="policyInfoFormRef"
      :disabled="disabled"
      :model="investmentProjectPolicyComplianceDTO"
      :model="policyInfoForm"
      :rules="rules"
    >
      <el-row :gutter="0">
        <el-col :span="20">
          <el-form-item label="符合行业政策:" label-width="180px" prop="industryPolicy" style="width: 100%">
            <div style="display: flex">
              <file-upload v-model="fileList"
              <file-upload v-model="policyInfoForm.fileList"
                           :fileType="accept"
                           :isShowTip="false"/>
              <div v-if="fileList.length === 0" style="color: #a9afbc; margin-left: 10px">
                支持下载PDF格式文件
              <div v-if="policyInfoForm.fileList.length === 0" style="color: #a9afbc; margin-left: 10px">
                支持上传PDF格式文件
              </div>
            </div>
          </el-form-item>
        </el-col>
        <el-col :span="20">
          <el-form-item class="custom-form-item" label=" " label-position="right" label-width="180px" style="width: 100%; margin-top: -20px">
          <el-form-item class="custom-form-item" label=" " label-position="right" label-width="180px"
                        style="width: 100%; margin-top: -20px">
            <div class="input-row policy-items">
              <el-radio-group v-model="investmentProjectPolicyComplianceDTO.belongsToIndustryAdjustmentDirectory" class="radio-item">
              <el-radio-group v-model="policyInfoForm.belongsToIndustryAdjustmentDirectory" class="radio-item">
                <el-radio size="large" style="margin-bottom: 25px" :label="true">属于《产业结构调整指导目录》下的项目 </el-radio>
                <el-radio size="large" :label="false">属于未列入《产业结构调整指导目录》的允许类项目</el-radio>
              </el-radio-group>
@@ -32,10 +33,11 @@
        </el-col>
        <el-col :span="20">
          <el-form-item class="custom-form-item" label=" " label-width="180px" style="width: 100%; margin-top: -20px; height: 50px">
          <el-form-item class="custom-form-item" label=" " label-width="180px"
                        style="width: 100%; margin-top: -20px; height: 50px">
            <div class="input-row policy-items">
              <el-checkbox
                v-model="investmentProjectPolicyComplianceDTO.belongsToWesternEncouragedDirectory"
                v-model="policyInfoForm.belongsToWesternEncouragedDirectory"
                label="属于《西部地区鼓励类产业目录》的项目"
                size="large"
                style="margin-right: 70px"
@@ -44,10 +46,11 @@
          </el-form-item>
        </el-col>
        <el-col :span="20">
          <el-form-item class="custom-form-item" label=" " label-width="180px" style="width: 100%; margin-top: -20px; height: 30px">
          <el-form-item class="custom-form-item" label=" " label-width="180px"
                        style="width: 100%; margin-top: -20px; height: 30px">
            <div class="input-row policy-items" style="height: 52px">
              <el-checkbox
                v-model="investmentProjectPolicyComplianceDTO.notBannedOrControlledProject"
                v-model="policyInfoForm.notBannedOrControlledProject"
                disabled
                label="不属于产业政策禁止投资建设或实行核准、审批管理的项目"
                size="large"
@@ -58,11 +61,12 @@
          </el-form-item>
        </el-col>
        <el-col :span="20">
          <el-form-item class="custom-form-item" label="填报信息真实" label-width="180px" style="width: 100%; margin-top: 20px">
          <el-form-item class="custom-form-item" label="填报信息真实" label-width="180px"
                        style="width: 100%; margin-top: 20px">
            <div class="policy-items">
              <div style="color: #a9afbc">备案者承诺:</div>
              <el-checkbox
                v-model="investmentProjectPolicyComplianceDTO.informationIsTrue"
                v-model="policyInfoForm.informationIsTrue"
                disabled
                label="所提供的备案信息是真实、准确、完整和有效的,无隐瞒、虚假和重大造漏之处,对备案项目信息的真实性负责"
                size="large"
@@ -76,7 +80,7 @@
          <el-form-item label="专项规划符合情况:" label-width="180px" prop="specialPlanningCompliance" style="width: 100%">
            <div class="input-row">
              <el-input
                v-model.trim="investmentProjectPolicyComplianceDTO.specialPlanningCompliance"
                v-model.trim="policyInfoForm.specialPlanningCompliance"
                class="input-item"
                maxlength="200"
                placeholder="请输入"
@@ -92,16 +96,19 @@
                年综合能源消费量不满1000吨标准煤,且年电力消耗量不满500万千瓦时的图定资产投资项目、以及用能工艺简单、节能潜力小的行业(按照国家发改要指定并公布的具体行业目录)的因定资产投资项目应按照相关节能标准、规范建设,不再单独进行节能审查。
              </div>
              <div style="display: flex;width: 100%;">
                <el-radio-group v-model="investmentProjectPolicyComplianceDTO.energyCheck" style="display: flex;flex-direction: column;margin-top: 10px">
                  <el-radio size="large" style="margin-bottom: 20px" :label="true"> 需进行节能审查的项目,不在填报《项目能源消费情况表》 </el-radio>
                  <el-radio size="large" style="margin-bottom: 10px" :label="false"> 不单独进行节能审查的项目,需填报《项目能源消费情况表》 </el-radio>
                <el-radio-group v-model="policyInfoForm.energyCheck"
                                style="display: flex;flex-direction: column;margin-top: 10px">
                  <el-radio size="large" style="margin-bottom: 20px" :label="true"> 需进行节能审查的项目,不在填报《项目能源消费情况表》
                  </el-radio>
                  <el-radio size="large" style="margin-bottom: 10px" :label="false"> 不单独进行节能审查的项目,需填报《项目能源消费情况表》
                  </el-radio>
                </el-radio-group>
              </div>
              <div style="display: flex;gap: 2px">
                <div style="width: 160px">1.项目年综合能源消费量:</div>
                <el-input
                  style="width: 300px"
                  v-model.trim="investmentProjectPolicyComplianceDTO.annualEnergyConsumption"
                  v-model.trim="policyInfoForm.annualEnergyConsumption"
                  maxlength="255"
                  placeholder="请输入"
                ></el-input>
@@ -111,7 +118,7 @@
                <div style="width: 160px">2.项目年电力消耗量:</div>
                <el-input
                  style="width: 300px"
                  v-model.trim="investmentProjectPolicyComplianceDTO.annualElectricityConsumption"
                  v-model.trim="policyInfoForm.annualElectricityConsumption"
                  maxlength="255"
                  placeholder="请输入"
                ></el-input>
@@ -119,7 +126,7 @@
              </div>
              <div style="line-height: 20px;color: #a9afbc;margin-top: 5px">不再单独进行节能审查的类型如下:</div>
              <div class="input-row">
                <el-radio-group v-model="investmentProjectPolicyComplianceDTO.noOnlyCheckType" class="radio-item">
                <el-radio-group v-model="policyInfoForm.noOnlyCheckType" class="radio-item">
                  <el-radio size="large" :label="1">
                    年综合能源消费量不满1000吨标准煤且年电力消费量不满500万千瓦时的固定资产投资项目
                  </el-radio>
@@ -135,7 +142,7 @@
          <el-form-item label="备注:" label-width="180px" prop="remark" style="width: 100%">
            <div class="input-row">
              <el-input
                v-model.trim="investmentProjectPolicyComplianceDTO.remark"
                v-model.trim="policyInfoForm.remarks"
                class="item"
                clearable
                maxlength="255"
@@ -152,6 +159,13 @@
<script>
import Cookies from "js-cookie";
import {
  addProjectInvestmentPolicyCompliance,
  editProjectInvestmentPolicyCompliance,
  getProjectInvestmentPolicyComplianceById
} from "@/api/projectEngineering/projectInvestmentPolicyCompliance";
export default {
  name: 'PolicyComplianceForm',
  props: {
@@ -163,10 +177,12 @@
  },
  data() {
    return {
      investmentProjectPolicyComplianceDTO: {
        fileIdList: [],
      policyInfoForm: {
        id: '',
        projectId: '',
        fileList: [],
        belongsToIndustryAdjustmentDirectory: null,
        belongsToWesternEncouragedDirectory: false,
        belongsToWesternEncouragedDirectory: null,
        notBannedOrControlledProject: true,
        informationIsTrue: true,
        specialPlanningCompliance: '',
@@ -174,9 +190,8 @@
        annualEnergyConsumption: '',
        annualElectricityConsumption: '',
        noOnlyCheckType: null,
        remark: ''
        remarks: ''
      },
      fileList: [],
      accept: ['pdf'],
      rules: {
        industrialPolicyProhibition: [{ required: true, message: '请选择', trigger: 'change' }],
@@ -184,32 +199,64 @@
      }
    };
  },
  watch: {
    fileList: {
      deep: true,
      handler(newFileList) {
        if (newFileList) {
          this.investmentProjectPolicyComplianceDTO.fileIdList = newFileList.map(item => item.fileId);
  mounted() {
    this.policyInfoForm.projectId = this.$route.query.projectId;
    const policyInfoForm = Cookies.get("policyInfoForm");
    const projectForm = Cookies.get("projectForm");
    const parsedPolicyInfoForm = policyInfoForm ? JSON.parse(policyInfoForm) : null;
    const parsedProjectForm = projectForm ? JSON.parse(projectForm) : null;
    if (parsedPolicyInfoForm) {
      this.policyInfoForm = parsedPolicyInfoForm
        }
    if (parsedProjectForm) {
      this.projectForm = parsedProjectForm
      }
    // 如果路由存在id且没有缓存,视为编辑或查看,调用api
    if (this.policyInfoForm.projectId && !parsedPolicyInfoForm) {
      this.getProjectInvestmentPolicyCompliance();
    }
  },
  beforeDestroy() {
    Cookies.set("policyInfoForm", JSON.stringify(this.policyInfoForm));
  },
  methods: {
    getProjectInvestmentPolicyCompliance() {
      getProjectInvestmentPolicyComplianceById(this.policyInfoForm.projectId).then(res => {
        this.policyInfoForm = res.data;
        if(!this.policyInfoForm.fileList) {
          this.policyInfoForm.fileList = []
        }
        this.policyInfoForm.notBannedOrControlledProject =true
        this.policyInfoForm.informationIsTrue =true
      });
    },
    submit() {
      console.log("政策submit")
    },
    handleRemove(file) {
      if (file) {
        this.investmentProjectPolicyComplianceDTO.fileIdList = this.fileList.map(item => item.fileId);
        localStorage.setItem('fileList', JSON.stringify(file));
      if (!this.projectForm.id) {
        this.$message.error("请先保存投资管理基本信息")
      } else {
        this.$refs["policyInfoFormRef"].validate(valid => {
          if (valid) {
            this.policyInfoForm.projectId = this.projectForm.id;
            if (this.policyInfoForm.id != null) {
              editProjectInvestmentPolicyCompliance(this.policyInfoForm).then(response => {
                this.$modal.msgSuccess("修改成功");
                //跳转到下个组件
                this.$emit('toNext', 5);
              });
            } else {
              addProjectInvestmentPolicyCompliance(this.policyInfoForm).then(response => {
                this.$modal.msgSuccess("新增成功");
                this.policyInfoForm.id = response.data
                //跳转到下个组件
                this.$emit('toNext', 5);
              });
            }
          }
        });
      }
      }
    },
    handleAdd(file) {
      if (file) {
        localStorage.setItem('fileList', JSON.stringify(file));
      }
    }
  }
};
</script>