xiangpei
2025-06-05 d328bd467ffcb660e81d546a0b242e39320acb6d
src/views/projectEngineering/projectLibrary/projectDetails.vue
@@ -77,6 +77,7 @@
import InvestInfo from "@/views/projectEngineering/projectLibrary/component/InvestInfo";
import InvestmentFunds from "@/views/projectEngineering/projectLibrary/component/investmentFunds";
import LegalPerson from "@/views/projectEngineering/projectLibrary/component/legalPerson";
import ProjectFrom from "@/views/projectEngineering/projectLibrary/component/ProjectFrom";
import PolicyInfo from "@/views/projectEngineering/projectLibrary/component/PolicyInfo";
import DocumentsInfo from "@/views/projectEngineering/projectLibrary/component/DocumentsInfo";
import { editProject } from "@/api/projectEngineering/projectInfo";
@@ -100,11 +101,11 @@
          value: "项目管理基础信息",
          componentName: BasicInfo,
        },
        {
          label: "投资管理基础信息",
          value: "投资管理基础信息",
          componentName: InvestInfo,
        },
        // {
        //   label: "投资管理基础信息",
        //   value: "投资管理基础信息",
        //   componentName: InvestInfo,
        // },
        {
          label: "项目投资及资金来源",
          value: "项目投资及资金来源",
@@ -116,10 +117,15 @@
          componentName: LegalPerson,
        },
        {
          label: "投资项目产业政策符合情况",
          value: "投资项目产业政策符合情况",
          componentName: PolicyInfo,
          label: "项目发起依据",
          value: "项目发起依据",
          componentName: ProjectFrom,
        },
        // {
        //   label: "投资项目产业政策符合情况",
        //   value: "投资项目产业政策符合情况",
        //   componentName: PolicyInfo,
        // },
        // {
        //   label: "相关文书",
        //   value: "相关文书",
@@ -127,6 +133,35 @@
        // },
      ],
      childRef: null,
      baseInfoRules: [
        {name: 'projectName', message: '请输入项目名称'},
        {name: 'content', message: '请输入建设内容'},
        {name: 'fundTypeList', message: '请选择资金类型'},
        {name: 'investType', message: '请选择项目投资类别'},
        {name: 'constructionNature', message: '请选择建设性质'},
        {name: 'attractInvestment', message: '请选择是否招商引资项目'},
        {name: 'projectType', message: '请选择项目推进类型'},
        {name: 'projectStatus', message: '请选择项目状态'},
        {name: 'projectPhase', message: '请选择项目阶段'},
        {name: 'projectContactPerson', message: '请输入项目联系人'},
        {name: 'contact', message: '请输入项目联系方式'},
        {name: 'projectOwnerUnit', message: '请选择项目业主单位'},
        {name: 'competentDepartment', message: '请选择主管部门'},
        {name: 'competentDepartmentPerson', message: '请选择主管部门联系人'},
        {name: 'competentDepartmentPhone', message: '请输入主管部门联系方式'},
        {name: 'area', message: '请选择行政区划'},
        {name: 'managementCentralizationList', message: '请选择管理归口'},
        {name: 'projectApprovalType', message: '请选择项目审批类型'},
        {name: 'importanceTypeList', message: '请选择重点分类'},
        {name: 'planStartTime', message: '请选择计划开工时间'},
        {name: 'planCompleteTime', message: '请选择计划竣工时间'},
        {name: 'industryCompetentDepartment', message: '请选择行业主管部门'},
        {name: 'industryCompetentDepartmentPerson', message: '请输入行业主管部门联系人'},
        {name: 'departmentPersonPhone', message: '请输入行业主管部门联系方式'},
      ],
      investmentFundsFormRules: [
        {name: 'totalInvestment', message: '项目总投资额不能为空(且大于0)'},
      ]
    };
  },
  methods: {
@@ -187,11 +222,45 @@
    },
    saveProject(num) {
      this.projectForm.projectInfoForm.usedStatus = num;
      editProject(this.projectForm).then((res) => {
        this.$message.success("操作成功");
      })
      this.$router.push('/projectEngineering/project/projectLibrary')
    }
      const msg = this.formValidate()
      if (msg && num != 0) {  // 草稿不校验
        this.$message.error(msg)
      } else {
        editProject(this.projectForm).then((res) => {
          this.$message.success("保存成功");
          this.$store.dispatch("tagsView/delView", this.$route);
          this.$router.push('/projectEngineering/project/projectLibrary')
        })
      }
    },
    /**
     * 临时使用这种方式校验
     */
    formValidate() {
      let msg = "";
      for (let i = 0; i < this.baseInfoRules.length; i++) {
        if (! this.projectForm.projectInfoForm[this.baseInfoRules[i].name]) {
          msg = this.baseInfoRules[i].message
          return msg
        }
      }
      console.log(this.projectForm, "项目信息")
      if (this.projectForm.projectInvestmentFundingForm) {
        for (let i = 0; i < this.investmentFundsFormRules.length; i++) {
          const name = this.investmentFundsFormRules[i].name
          if (! this.projectForm.projectInvestmentFundingForm[name]) {
            msg = this.investmentFundsFormRules[i].message
            return msg
          } else if (name == 'totalInvestment' && parseFloat(this.projectForm.projectInvestmentFundingForm[name]) <= 0) {
            // 如果是总投资额,不仅不能为空还必须大于0
            msg = this.investmentFundsFormRules[i].message
            return msg
          }
        }
      }
      return msg;
    },
  },
  mounted() {
    if (this.$route.query.disabled) {