明树Git Lab

Commit ecb5c026 authored by zhanghan's avatar zhanghan

必选处理

parent 4e292e8c
Pipeline #111754 passed with stage
in 18 seconds
...@@ -20,10 +20,10 @@ ...@@ -20,10 +20,10 @@
<div class="project-tab-content"> <div class="project-tab-content">
<el-tabs v-model="lxTabActiveName"> <el-tabs v-model="lxTabActiveName">
<el-tab-pane label="基本信息" name="基本信息"> <el-tab-pane label="基本信息" name="基本信息">
<LixiangBasicInfo /> <LixiangBasicInfo ref="lxBasicInfoRef" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="立项批复" name="立项批复"> <el-tab-pane label="立项批复" name="立项批复">
<LixiangApproval /> <LixiangApproval ref="lxApprovalRef" />
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
...@@ -36,16 +36,16 @@ ...@@ -36,16 +36,16 @@
> >
<el-tabs v-model="jcTabActiveName"> <el-tabs v-model="jcTabActiveName">
<el-tab-pane label="基本信息" name="基本信息"> <el-tab-pane label="基本信息" name="基本信息">
<JueceBasicInfo /> <JueceBasicInfo ref="jcBasicInfoRef" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="财务评价" name="财务评价"> <el-tab-pane label="财务评价" name="财务评价">
<JueceFinance /> <JueceFinance />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="决策批复" name="决策批复"> <el-tab-pane label="决策批复" name="决策批复">
<JueceApproval /> <JueceApproval ref="jcApprovalRef" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="申请报告" name="申请报告"> <el-tab-pane label="申请报告" name="申请报告">
<JueceReport /> <JueceReport ref="jcReportRef" />
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</el-tab-pane> </el-tab-pane>
...@@ -233,6 +233,12 @@ const flowType = computed(() => { ...@@ -233,6 +233,12 @@ const flowType = computed(() => {
return "complex"; return "complex";
}); });
const lxBasicInfoRef = ref();
const lxApprovalRef = ref();
const jcBasicInfoRef = ref();
const jcApprovalRef = ref();
const jcReportRef = ref();
// tab相关 // tab相关
const pageActiveName = ref("立项填报"); const pageActiveName = ref("立项填报");
const lxTabActiveName = ref("基本信息"); const lxTabActiveName = ref("基本信息");
...@@ -572,7 +578,34 @@ const backClick = () => { ...@@ -572,7 +578,34 @@ const backClick = () => {
}; };
// 保存数据 // 保存数据
const saveClick = (type) => { const saveClick = async (type) => {
if (type === "submit") {
const allErrors = [];
const isJuece =
formData.projectLzType && Number(formData.projectLzType) > 4;
const refs = isJuece
? [jcBasicInfoRef, jcApprovalRef, jcReportRef]
: [lxBasicInfoRef, lxApprovalRef];
for (const r of refs) {
try {
await r.value?.validate();
} catch (fields) {
const msgs = Object.values(fields || {})
.flat()
.map((e) => e.message)
.filter(Boolean);
allErrors.push(...msgs);
}
}
if (allErrors.length) {
ElMessageBox.alert(
allErrors.map((msg) => `• ${msg}`).join("<br/>"),
"以下必填项未填写",
{ dangerouslyUseHTMLString: true, type: "warning" },
);
return;
}
}
if (!formData.projectLzType || Number(formData.projectLzType) <= 4) { if (!formData.projectLzType || Number(formData.projectLzType) <= 4) {
let url = formData.id let url = formData.id
? type === "submit" ? type === "submit"
......
<template> <template>
<div class="tab-content"> <div class="tab-content">
<div class="tab-content"> <div class="tab-content">
<el-form :model="jcFormData" :label-width="150" :disabled="isPreview"> <el-form ref="jcApprovalFormRef" :model="jcFormData" :rules="formRules" :validate-on-rule-change="false" :label-width="150" :disabled="isPreview">
<el-collapse v-model="activeCollapse"> <el-collapse v-model="activeCollapse">
<el-collapse-item <el-collapse-item
title="项目投资总额(全口径)" title="项目投资总额(全口径)"
...@@ -529,7 +529,7 @@ ...@@ -529,7 +529,7 @@
</el-table> </el-table>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="其他会议审议情况"> <el-form-item label="其他会议审议情况" prop="jcqthysyqk">
<el-input <el-input
v-model="jcFormData.jcqthysyqk" v-model="jcFormData.jcqthysyqk"
type="textarea" type="textarea"
...@@ -542,7 +542,7 @@ ...@@ -542,7 +542,7 @@
<el-collapse-item title="项目批复信息" name="项目批复信息"> <el-collapse-item title="项目批复信息" name="项目批复信息">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="最终审批意见" label-width="160"> <el-form-item label="最终审批意见" label-width="160" prop="jczzpfyj">
<CommonSelector <CommonSelector
v-model="jcFormData.jczzpfyj" v-model="jcFormData.jczzpfyj"
dictName="spyj" dictName="spyj"
...@@ -550,7 +550,7 @@ ...@@ -550,7 +550,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="项目批复时间"> <el-form-item label="项目批复时间" prop="jcxmpfsj">
<el-date-picker <el-date-picker
v-model="jcFormData.jcxmpfsj" v-model="jcFormData.jcxmpfsj"
type="date" type="date"
...@@ -559,17 +559,17 @@ ...@@ -559,17 +559,17 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="项目批复文号"> <el-form-item label="项目批复文号" prop="jcxmpfwh">
<el-input v-model="jcFormData.jcxmpfwh" /> <el-input v-model="jcFormData.jcxmpfwh" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="审核处室" label-width="160"> <el-form-item label="审核处室" label-width="160" prop="jcpfshcs">
<el-input v-model="jcFormData.jcpfshcs" /> <el-input v-model="jcFormData.jcpfshcs" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="未通过主要原因与要求" label-width="160"> <el-form-item label="未通过主要原因与要求" label-width="160" prop="jcwtgzyyyyyq">
<el-input <el-input
v-model="jcFormData.jcwtgzyyyyyq" v-model="jcFormData.jcwtgzyyyyyq"
type="textarea" type="textarea"
...@@ -675,7 +675,7 @@ ...@@ -675,7 +675,7 @@
<el-collapse-item title="其他" name="其他"> <el-collapse-item title="其他" name="其他">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
<el-form-item label-width="160" label="投资主体首次申报时间"> <el-form-item label-width="160" label="投资主体首次申报时间" prop="tzztscsbsj">
<el-date-picker <el-date-picker
v-model="jcFormData.tzztscsbsj" v-model="jcFormData.tzztscsbsj"
type="date" type="date"
...@@ -684,12 +684,12 @@ ...@@ -684,12 +684,12 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label-width="160" label="审核人"> <el-form-item label-width="160" label="审核人" prop="shr">
<el-input v-model="jcFormData.shr" /> <el-input v-model="jcFormData.shr" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label-width="160" label="会签完成时间"> <el-form-item label-width="160" label="会签完成时间" prop="hqwcsj">
<el-date-picker <el-date-picker
v-model="jcFormData.hqwcsj" v-model="jcFormData.hqwcsj"
type="date" type="date"
...@@ -698,7 +698,7 @@ ...@@ -698,7 +698,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label-width="160" label="首次发函时间"> <el-form-item label-width="160" label="首次发函时间" prop="scfhsj">
<el-date-picker <el-date-picker
v-model="jcFormData.scfhsj" v-model="jcFormData.scfhsj"
type="date" type="date"
...@@ -707,7 +707,7 @@ ...@@ -707,7 +707,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label-width="160" label="补充资料时间"> <el-form-item label-width="160" label="补充资料时间" prop="bczlsj">
<el-date-picker <el-date-picker
v-model="jcFormData.bczlsj" v-model="jcFormData.bczlsj"
type="date" type="date"
...@@ -724,10 +724,43 @@ ...@@ -724,10 +724,43 @@
</template> </template>
<script setup> <script setup>
import { inject } from "vue"; import { inject, ref } from "vue";
import CommonSelector from "@/components/CommonSelector.vue"; import CommonSelector from "@/components/CommonSelector.vue";
import FileUploader from "@/components/FileUploader/index.vue"; import FileUploader from "@/components/FileUploader/index.vue";
const jcApprovalFormRef = ref();
const requiredInput = (msg) => ({
required: true,
message: `请输入${msg}`,
trigger: "blur",
});
const requiredSelect = (msg) => ({
required: true,
message: `请选择${msg}`,
trigger: [],
});
const formRules = {
jcqthysyqk: [requiredInput("其他会议审议情况")],
jczzpfyj: [requiredSelect("最终审批意见")],
jcxmpfsj: [requiredSelect("项目批复时间")],
jcxmpfwh: [requiredInput("项目批复文号")],
jcpfshcs: [requiredInput("审核处室")],
jcwtgzyyyyyq: [requiredInput("未通过主要原因与要求")],
tzztscsbsj: [requiredSelect("投资主体首次申报时间")],
shr: [requiredInput("审核人")],
hqwcsj: [requiredSelect("会签完成时间")],
scfhsj: [requiredSelect("首次发函时间")],
bczlsj: [requiredSelect("补充资料时间")],
};
const validate = () => {
return jcApprovalFormRef.value?.validate();
};
defineExpose({ validate });
const { const {
jcFormData, jcFormData,
isPreview, isPreview,
...@@ -757,3 +790,9 @@ const { ...@@ -757,3 +790,9 @@ const {
token, token,
} = inject("jcShared"); } = inject("jcShared");
</script> </script>
<style scoped>
.tab-content :deep(.el-form-item__error) {
display: none;
}
</style>
<template> <template>
<div class="project-tab-content"> <div class="project-tab-content">
<div class="tab-content"> <div class="tab-content">
<el-form :model="jcFormData" label-width="200px" :disabled="isPreview"> <el-form ref="jcBasicFormRef" :model="jcFormData" :rules="formRules" :validate-on-rule-change="false" label-width="200px" :disabled="isPreview">
<el-collapse v-model="activeCollapse"> <el-collapse v-model="activeCollapse">
<!-- 1. 项目基本信息 --> <!-- 1. 项目基本信息 -->
<el-collapse-item title="项目基本信息" name="项目基本信息"> <el-collapse-item title="项目基本信息" name="项目基本信息">
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="项目名称"> <el-form-item label="项目名称" prop="projectName">
<el-input v-model="jcFormData.projectName" /> <el-input v-model="jcFormData.projectName" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="项目编号"> <el-form-item label="项目编号" prop="projectCode">
<el-input v-model="jcFormData.projectCode" /> <el-input v-model="jcFormData.projectCode" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="是否再决策"> <el-form-item label="是否再决策" prop="sfzjc">
<CommonSelector <CommonSelector
:radio="true" :radio="true"
v-model="jcFormData.sfzjc" v-model="jcFormData.sfzjc"
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="是否能建联合体项目"> <el-form-item label="是否能建联合体项目" prop="sfnjlhtxm">
<CommonSelector <CommonSelector
:radio="true" :radio="true"
v-model="jcFormData.sfnjlhtxm" v-model="jcFormData.sfnjlhtxm"
...@@ -46,13 +46,13 @@ ...@@ -46,13 +46,13 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="投资主体"> <el-form-item label="投资主体" prop="tzzt">
<el-input v-model="jcFormData.tzzt" /> <el-input v-model="jcFormData.tzzt" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="是否一体化子项目"> <el-form-item label="是否一体化子项目" prop="sfythzxm">
<CommonSelector <CommonSelector
:radio="true" :radio="true"
v-model="jcFormData.sfythzxm" v-model="jcFormData.sfythzxm"
...@@ -64,12 +64,12 @@ ...@@ -64,12 +64,12 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="直属企业"> <el-form-item label="直属企业" prop="zsqy">
<el-input v-model="jcFormData.zsqy" /> <el-input v-model="jcFormData.zsqy" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="是否能建重大或重要投资项目"> <el-form-item label="是否能建重大或重要投资项目" prop="sfnjzdhzytz">
<CommonSelector <CommonSelector
:radio="true" :radio="true"
v-model="jcFormData.sfnjzdhzytz" v-model="jcFormData.sfnjzdhzytz"
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="决策审批单位"> <el-form-item label="决策审批单位" prop="spdwmc">
<el-input v-model="jcFormData.spdwmc" /> <el-input v-model="jcFormData.spdwmc" />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -89,7 +89,7 @@ ...@@ -89,7 +89,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="财务报表类型"> <el-form-item label="财务报表类型" prop="cwbblx">
<CommonSelector <CommonSelector
v-model="jcFormData.cwbblx" v-model="jcFormData.cwbblx"
dictName="cwbblx" dictName="cwbblx"
...@@ -97,7 +97,7 @@ ...@@ -97,7 +97,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="政府(核准、备案)审批级别"> <el-form-item label="政府(核准、备案)审批级别" prop="zfsphzbajb">
<CommonSelector <CommonSelector
v-model="jcFormData.zfsphzbajb" v-model="jcFormData.zfsphzbajb"
dictName="spjb" dictName="spjb"
...@@ -105,7 +105,7 @@ ...@@ -105,7 +105,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="是否自主决策"> <el-form-item label="是否自主决策" prop="sfzzjc">
<CommonSelector <CommonSelector
:radio="true" :radio="true"
v-model="jcFormData.sfzzjc" v-model="jcFormData.sfzzjc"
...@@ -117,7 +117,7 @@ ...@@ -117,7 +117,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="主业/非主业"> <el-form-item label="主业/非主业" prop="zyfzy">
<CommonSelector v-model="jcFormData.zyfzy" dictName="zyfzy" /> <CommonSelector v-model="jcFormData.zyfzy" dictName="zyfzy" />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -125,13 +125,13 @@ ...@@ -125,13 +125,13 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="联系人"> <el-form-item label="联系人" prop="lxr">
<el-input v-model="jcFormData.lxr" /> <el-input v-model="jcFormData.lxr" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="联系电话"> <el-form-item label="联系电话" prop="lxrdh">
<el-input v-model="jcFormData.lxrdh" /> <el-input v-model="jcFormData.lxrdh" />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -400,7 +400,7 @@ ...@@ -400,7 +400,7 @@
<el-collapse-item title="项目所在地" name="项目所在地"> <el-collapse-item title="项目所在地" name="项目所在地">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="境内/外"> <el-form-item label="境内/外" prop="jnw">
<CommonSelector <CommonSelector
v-model="jcFormData.jnw" v-model="jcFormData.jnw"
dictName="dqlx" dictName="dqlx"
...@@ -409,7 +409,7 @@ ...@@ -409,7 +409,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="省(境内)/洲际(境外)"> <el-form-item label="省(境内)/洲际(境外)" prop="sjnzjjw">
<CommonSelector <CommonSelector
v-model="jcFormData.sjnzjjw" v-model="jcFormData.sjnzjjw"
:options="jcSzjList" :options="jcSzjList"
...@@ -418,7 +418,7 @@ ...@@ -418,7 +418,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="地市(境内)/国家(境外)"> <el-form-item label="地市(境内)/国家(境外)" prop="dsjngjjw">
<CommonSelector <CommonSelector
v-model="jcFormData.dsjngjjw" v-model="jcFormData.dsjngjjw"
:options="jcDsgjList" :options="jcDsgjList"
...@@ -427,7 +427,7 @@ ...@@ -427,7 +427,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="区县(境内)/国家(境外)"> <el-form-item label="区县(境内)/国家(境外)" prop="qxjngjjw">
<CommonSelector <CommonSelector
v-model="jcFormData.qxjngjjw" v-model="jcFormData.qxjngjjw"
:options="jcQxgjList" :options="jcQxgjList"
...@@ -435,12 +435,12 @@ ...@@ -435,12 +435,12 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="项目区域"> <el-form-item label="项目区域" prop="xmqy">
<CommonSelector v-model="jcFormData.xmqy" dictName="xmqy" /> <CommonSelector v-model="jcFormData.xmqy" dictName="xmqy" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="是否一带一路沿线国家"> <el-form-item label="是否一带一路沿线国家" prop="sfydylyxgj">
<CommonSelector <CommonSelector
:radio="true" :radio="true"
v-model="jcFormData.sfydylyxgj" v-model="jcFormData.sfydylyxgj"
...@@ -455,7 +455,7 @@ ...@@ -455,7 +455,7 @@
<el-collapse-item title="计量币种" name="计量币种"> <el-collapse-item title="计量币种" name="计量币种">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="币种"> <el-form-item label="币种" prop="bizhong">
<CommonSelector <CommonSelector
v-model="jcFormData.bizhong" v-model="jcFormData.bizhong"
dictName="bizhong" dictName="bizhong"
...@@ -463,7 +463,7 @@ ...@@ -463,7 +463,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="汇率"> <el-form-item label="汇率" prop="huilv">
<el-input <el-input
v-model="jcFormData.huilv" v-model="jcFormData.huilv"
:min="0" :min="0"
...@@ -478,7 +478,7 @@ ...@@ -478,7 +478,7 @@
<el-collapse-item title="实施时间" name="实施时间"> <el-collapse-item title="实施时间" name="实施时间">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="项目建设期"> <el-form-item label="项目建设期" prop="xmjsqy">
<el-input-number <el-input-number
v-model="jcFormData.xmjsqy" v-model="jcFormData.xmjsqy"
:min="0" :min="0"
...@@ -489,7 +489,7 @@ ...@@ -489,7 +489,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="运营年限"> <el-form-item label="运营年限" prop="yynxn">
<el-input-number <el-input-number
v-model="jcFormData.yynxn" v-model="jcFormData.yynxn"
:min="0" :min="0"
...@@ -501,7 +501,7 @@ ...@@ -501,7 +501,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="项目合作期"> <el-form-item label="项目合作期" prop="xmhzqn">
<el-input-number <el-input-number
v-model="jcFormData.xmhzqn" v-model="jcFormData.xmhzqn"
:min="0" :min="0"
...@@ -512,7 +512,7 @@ ...@@ -512,7 +512,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="项目开工时间(预计)"> <el-form-item label="项目开工时间(预计)" prop="xmkgsjyj">
<el-date-picker <el-date-picker
v-model="jcFormData.xmkgsjyj" v-model="jcFormData.xmkgsjyj"
type="date" type="date"
...@@ -521,7 +521,7 @@ ...@@ -521,7 +521,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="项目交工时间(预计)"> <el-form-item label="项目交工时间(预计)" prop="xmjgsjyj">
<el-date-picker <el-date-picker
v-model="jcFormData.xmjgsjyj" v-model="jcFormData.xmjgsjyj"
type="date" type="date"
...@@ -535,27 +535,27 @@ ...@@ -535,27 +535,27 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
<div class="col-title">投资属性分类</div> <div class="col-title">投资属性分类</div>
<el-form-item label="一级分类"> <el-form-item label="一级分类" prop="tzsxyjfl">
<CommonSelector <CommonSelector
v-model="jcFormData.tzsxyjfl" v-model="jcFormData.tzsxyjfl"
dictName="tzsx" dictName="tzsx"
@change="changeJcTzsxyjfl" @change="changeJcTzsxyjfl"
/> />
</el-form-item> </el-form-item>
<el-form-item label="二级分类"> <el-form-item label="二级分类" prop="tzsxejfl">
<CommonSelector <CommonSelector
v-model="jcFormData.tzsxejfl" v-model="jcFormData.tzsxejfl"
:options="jcTzsxejflList" :options="jcTzsxejflList"
/> />
</el-form-item> </el-form-item>
<el-form-item label="投资板块"> <el-form-item label="投资板块" prop="tzbk">
<CommonSelector <CommonSelector
v-model="jcFormData.tzbk" v-model="jcFormData.tzbk"
dictName="tzbk" dictName="tzbk"
@change="changeJcTzsxtzbk" @change="changeJcTzsxtzbk"
/> />
</el-form-item> </el-form-item>
<el-form-item label="细分板块"> <el-form-item label="细分板块" prop="subsector">
<CommonSelector <CommonSelector
v-model="jcFormData.subsector" v-model="jcFormData.subsector"
:options="jcTzsxxfbkList" :options="jcTzsxxfbkList"
...@@ -564,20 +564,20 @@ ...@@ -564,20 +564,20 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="col-title">投资目的分类</div> <div class="col-title">投资目的分类</div>
<el-form-item label="一级分类"> <el-form-item label="一级分类" prop="tzmdyjfl">
<CommonSelector <CommonSelector
v-model="jcFormData.tzmdyjfl" v-model="jcFormData.tzmdyjfl"
dictName="tzmd" dictName="tzmd"
@change="changeJcTzmdyjfl" @change="changeJcTzmdyjfl"
/> />
</el-form-item> </el-form-item>
<el-form-item label="二级分类"> <el-form-item label="二级分类" prop="tzmdejfl">
<CommonSelector <CommonSelector
v-model="jcFormData.tzmdejfl" v-model="jcFormData.tzmdejfl"
:options="jcTzmdejflList" :options="jcTzmdejflList"
/> />
</el-form-item> </el-form-item>
<el-form-item label="四新分类"> <el-form-item label="四新分类" prop="sxfl">
<CommonSelector v-model="jcFormData.sxfl" dictName="sxfl" /> <CommonSelector v-model="jcFormData.sxfl" dictName="sxfl" />
</el-form-item> </el-form-item>
<!-- <el-form-item label="是否纳入补贴目录"> <!-- <el-form-item label="是否纳入补贴目录">
...@@ -590,14 +590,14 @@ ...@@ -590,14 +590,14 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="col-title">投资指南分类</div> <div class="col-title">投资指南分类</div>
<el-form-item label="2+9布局分类"> <el-form-item label="2+9布局分类" prop="bjfl">
<CommonSelector <CommonSelector
v-model="jcFormData.bjfl" v-model="jcFormData.bjfl"
dictName="layoutType" dictName="layoutType"
@change="changeJcTzznyjfl" @change="changeJcTzznyjfl"
/> />
</el-form-item> </el-form-item>
<el-form-item label="国民经济行业"> <el-form-item label="国民经济行业" prop="gmjjhy">
<el-tree-select <el-tree-select
v-model="jcFormData.gmjjhy" v-model="jcFormData.gmjjhy"
:data="gmjjhyList" :data="gmjjhyList"
...@@ -647,7 +647,7 @@ ...@@ -647,7 +647,7 @@
> >
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="是否须报国家发展改革委和商务部核准"> <el-form-item label="是否须报国家发展改革委和商务部核准" prop="sfxbgjfzggwhswbhz">
<CommonSelector <CommonSelector
:radio="true" :radio="true"
v-model="jcFormData.sfxbgjfzggwhswbhz" v-model="jcFormData.sfxbgjfzggwhswbhz"
...@@ -656,7 +656,7 @@ ...@@ -656,7 +656,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="是否国家领导见签"> <el-form-item label="是否国家领导见签" prop="sfgjldjq">
<CommonSelector <CommonSelector
:radio="true" :radio="true"
v-model="jcFormData.sfgjldjq" v-model="jcFormData.sfgjldjq"
...@@ -665,7 +665,7 @@ ...@@ -665,7 +665,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="是否境内特别监管类"> <el-form-item label="是否境内特别监管类" prop="sfjntbjgl">
<CommonSelector <CommonSelector
:radio="true" :radio="true"
v-model="jcFormData.sfjntbjgl" v-model="jcFormData.sfjntbjgl"
...@@ -674,7 +674,7 @@ ...@@ -674,7 +674,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="是否列入国资委负面清单"> <el-form-item label="是否列入国资委负面清单" prop="sflrgzwfmqd">
<CommonSelector <CommonSelector
:radio="true" :radio="true"
v-model="jcFormData.sflrgzwfmqd" v-model="jcFormData.sflrgzwfmqd"
...@@ -1121,6 +1121,7 @@ ...@@ -1121,6 +1121,7 @@
<el-form-item <el-form-item
label-width="170px" label-width="170px"
label="我方负责的股权融资金额" label="我方负责的股权融资金额"
prop="wffzdgqrzjewy"
> >
<el-input-number <el-input-number
v-model="jcFormData.wffzdgqrzjewy" v-model="jcFormData.wffzdgqrzjewy"
...@@ -1135,7 +1136,7 @@ ...@@ -1135,7 +1136,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label-width="170px" label="融资成本"> <el-form-item label-width="170px" label="融资成本" prop="rzcbgq">
<el-input-number <el-input-number
v-model="jcFormData.rzcbgq" v-model="jcFormData.rzcbgq"
:min="0" :min="0"
...@@ -1149,7 +1150,7 @@ ...@@ -1149,7 +1150,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label-width="170px" label="期限"> <el-form-item label-width="170px" label="期限" prop="qxgq">
<el-input-number <el-input-number
v-model="jcFormData.qxgq" v-model="jcFormData.qxgq"
:min="0" :min="0"
...@@ -1163,7 +1164,7 @@ ...@@ -1163,7 +1164,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label-width="170px" label="担保金额"> <el-form-item label-width="170px" label="担保金额" prop="dbje">
<el-input-number <el-input-number
v-model="jcFormData.dbje" v-model="jcFormData.dbje"
:min="0" :min="0"
...@@ -1261,7 +1262,7 @@ ...@@ -1261,7 +1262,7 @@
<el-collapse-item title="工程带动情况" name="工程带动情况"> <el-collapse-item title="工程带动情况" name="工程带动情况">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="带动工程合同额"> <el-form-item label="带动工程合同额" prop="ddgchte">
<el-input-number <el-input-number
v-model="jcFormData.ddgchte" v-model="jcFormData.ddgchte"
:min="0" :min="0"
...@@ -1276,7 +1277,7 @@ ...@@ -1276,7 +1277,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="投资带动比"> <el-form-item label="投资带动比" prop="tzddb">
<el-input-number <el-input-number
v-model="jcFormData.tzddb" v-model="jcFormData.tzddb"
:min="0" :min="0"
...@@ -1291,7 +1292,7 @@ ...@@ -1291,7 +1292,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="工程利润"> <el-form-item label="工程利润" prop="gclrwy">
<el-input-number <el-input-number
v-model="jcFormData.gclrwy" v-model="jcFormData.gclrwy"
:min="0" :min="0"
...@@ -1306,7 +1307,7 @@ ...@@ -1306,7 +1307,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="工程利润率"> <el-form-item label="工程利润率" prop="gclrl">
<el-input-number <el-input-number
v-model="jcFormData.gclrl" v-model="jcFormData.gclrl"
:min="0" :min="0"
...@@ -1323,7 +1324,7 @@ ...@@ -1323,7 +1324,7 @@
</el-collapse-item> </el-collapse-item>
<el-collapse-item title="项目内容及必要性" name="项目内容及必要性"> <el-collapse-item title="项目内容及必要性" name="项目内容及必要性">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="建设内容及规模"> <el-form-item label="建设内容及规模" prop="jsnrjgm">
<el-input <el-input
v-model="jcFormData.jsnrjgm" v-model="jcFormData.jsnrjgm"
type="textarea" type="textarea"
...@@ -1331,14 +1332,14 @@ ...@@ -1331,14 +1332,14 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-form-item label="项目必要性"> <el-form-item label="项目必要性" prop="xmbyx">
<el-input <el-input
v-model="jcFormData.xmbyx" v-model="jcFormData.xmbyx"
type="textarea" type="textarea"
:autosize="{ minRows: 2, maxRows: 5 }" :autosize="{ minRows: 2, maxRows: 5 }"
/> />
</el-form-item> </el-form-item>
<el-form-item label="其他说明"> <el-form-item label="其他说明" prop="qtsm">
<el-input <el-input
v-model="jcFormData.qtsm" v-model="jcFormData.qtsm"
type="textarea" type="textarea"
...@@ -1463,10 +1464,84 @@ ...@@ -1463,10 +1464,84 @@
</template> </template>
<script setup> <script setup>
import { inject } from "vue"; import { inject, ref } from "vue";
import CommonSelector from "@/components/CommonSelector.vue"; import CommonSelector from "@/components/CommonSelector.vue";
import FileUploader from "@/components/FileUploader/index.vue"; import FileUploader from "@/components/FileUploader/index.vue";
const jcBasicFormRef = ref();
const requiredInput = (msg) => ({
required: true,
message: `请输入${msg}`,
trigger: "blur",
});
const requiredSelect = (msg) => ({
required: true,
message: `请选择${msg}`,
trigger: [],
});
const formRules = {
projectName: [requiredInput("项目名称")],
projectCode: [requiredInput("项目编号")],
sfzjc: [requiredSelect("是否再决策")],
sfnjlhtxm: [requiredSelect("是否能建联合体项目")],
tzzt: [requiredInput("投资主体")],
sfythzxm: [requiredSelect("是否一体化子项目")],
zsqy: [requiredInput("直属企业")],
sfnjzdhzytz: [requiredSelect("是否能建重大或重要投资项目")],
spdwmc: [requiredInput("决策审批单位")],
cwbblx: [requiredSelect("财务报表类型")],
zfsphzbajb: [requiredSelect("政府审批级别")],
sfzzjc: [requiredSelect("是否自主决策")],
zyfzy: [requiredSelect("主业/非主业")],
lxr: [requiredInput("联系人")],
lxrdh: [requiredInput("联系电话")],
jnw: [requiredSelect("境内/外")],
sjnzjjw: [requiredSelect("省(境内)/洲际(境外)")],
dsjngjjw: [requiredSelect("地市(境内)/国家(境外)")],
qxjngjjw: [requiredSelect("区县(境内)/国家(境外)")],
xmqy: [requiredSelect("项目区域")],
sfydylyxgj: [requiredSelect("是否一带一路沿线国家")],
bizhong: [requiredSelect("币种")],
huilv: [requiredInput("汇率")],
xmjsqy: [requiredSelect("项目建设期")],
yynxn: [requiredSelect("运营年限")],
xmhzqn: [requiredSelect("项目合作期")],
xmkgsjyj: [requiredSelect("项目开工时间(预计)")],
xmjgsjyj: [requiredSelect("项目交工时间(预计)")],
tzsxyjfl: [requiredSelect("投资属性一级分类")],
tzsxejfl: [requiredSelect("投资属性二级分类")],
tzbk: [requiredSelect("投资板块")],
subsector: [requiredSelect("细分板块")],
tzmdyjfl: [requiredSelect("投资目的一级分类")],
tzmdejfl: [requiredSelect("投资目的二级分类")],
sxfl: [requiredSelect("四新分类")],
bjfl: [requiredSelect("2+9布局分类")],
gmjjhy: [requiredSelect("国民经济行业")],
sfxbgjfzggwhswbhz: [requiredSelect("是否须报国家发展改革委和商务部核准")],
sfgjldjq: [requiredSelect("是否国家领导见签")],
sfjntbjgl: [requiredSelect("是否境内特别监管类")],
sflrgzwfmqd: [requiredSelect("是否列入国资委负面清单")],
wffzdgqrzjewy: [requiredSelect("我方负责的股权融资金额")],
rzcbgq: [requiredSelect("融资成本")],
qxgq: [requiredSelect("期限")],
dbje: [requiredSelect("担保金额")],
ddgchte: [requiredSelect("带动工程合同额")],
tzddb: [requiredSelect("投资带动比")],
gclrwy: [requiredSelect("工程利润")],
gclrl: [requiredSelect("工程利润率")],
jsnrjgm: [requiredInput("建设内容及规模")],
xmbyx: [requiredInput("项目必要性")],
qtsm: [requiredInput("其他说明")],
};
const validate = () => {
return jcBasicFormRef.value?.validate();
};
defineExpose({ validate });
const { const {
jcFormData, jcFormData,
formData, formData,
...@@ -1565,3 +1640,9 @@ const { ...@@ -1565,3 +1640,9 @@ const {
token, token,
} = inject("jcShared"); } = inject("jcShared");
</script> </script>
<style scoped>
.tab-content :deep(.el-form-item__error) {
display: none;
}
</style>
...@@ -2,7 +2,10 @@ ...@@ -2,7 +2,10 @@
<div class="tab-content"> <div class="tab-content">
<div class="tab-content"> <div class="tab-content">
<el-form <el-form
ref="jcReportFormRef"
:model="jcFormData" :model="jcFormData"
:rules="formRules"
:validate-on-rule-change="false"
:label-width="150" :label-width="150"
:inline="false" :inline="false"
:disabled="isPreview" :disabled="isPreview"
...@@ -19,7 +22,7 @@ ...@@ -19,7 +22,7 @@
</h3> </h3>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="" label-width="0"> <el-form-item label="" label-width="0" prop="projectIntro">
<el-input <el-input
v-model="jcFormData.projectIntro" v-model="jcFormData.projectIntro"
type="textarea" type="textarea"
...@@ -29,7 +32,7 @@ ...@@ -29,7 +32,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="项目获取"> <el-form-item label="项目获取" prop="xmhq">
<el-input <el-input
v-model="jcFormData.xmhq" v-model="jcFormData.xmhq"
type="textarea" type="textarea"
...@@ -39,7 +42,7 @@ ...@@ -39,7 +42,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="前期论证主要节点"> <el-form-item label="前期论证主要节点" prop="qqlzzyjd">
<el-input <el-input
v-model="jcFormData.qqlzzyjd" v-model="jcFormData.qqlzzyjd"
type="textarea" type="textarea"
...@@ -86,7 +89,7 @@ ...@@ -86,7 +89,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="建设规模"> <el-form-item label="建设规模" prop="jsgm">
<el-input <el-input
v-model="jcFormData.jsgm" v-model="jcFormData.jsgm"
placeholder="x向x车道(全长x公里)" placeholder="x向x车道(全长x公里)"
...@@ -101,7 +104,7 @@ ...@@ -101,7 +104,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="项目类型"> <el-form-item label="项目类型" prop="sqbgxmlx">
<el-input <el-input
v-model="jcFormData.sqbgxmlx" v-model="jcFormData.sqbgxmlx"
placeholder="高速公路" placeholder="高速公路"
...@@ -109,7 +112,7 @@ ...@@ -109,7 +112,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="是否标前决策"> <el-form-item label="是否标前决策" prop="sfbqjc">
<el-input <el-input
v-model="jcFormData.sfbqjc" v-model="jcFormData.sfbqjc"
placeholder="是或否" placeholder="是或否"
...@@ -128,7 +131,7 @@ ...@@ -128,7 +131,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="单位造价"> <el-form-item label="单位造价" prop="dwzj">
<el-input-number <el-input-number
v-model="jcFormData.dwzj" v-model="jcFormData.dwzj"
:min="0" :min="0"
...@@ -142,7 +145,7 @@ ...@@ -142,7 +145,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="投资构成"> <el-form-item label="投资构成" prop="tzgc">
<el-input <el-input
v-model="jcFormData.tzgc" v-model="jcFormData.tzgc"
type="textarea" type="textarea"
...@@ -172,7 +175,7 @@ ...@@ -172,7 +175,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="合规情况"> <el-form-item label="合规情况" prop="hgqk">
<el-input <el-input
v-model="jcFormData.hgqk" v-model="jcFormData.hgqk"
type="textarea" type="textarea"
...@@ -182,17 +185,17 @@ ...@@ -182,17 +185,17 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="实施机构"> <el-form-item label="实施机构" prop="ssjg">
<el-input v-model="jcFormData.ssjg" /> <el-input v-model="jcFormData.ssjg" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="政府出资代表"> <el-form-item label="政府出资代表" prop="zfczdb">
<el-input v-model="jcFormData.zfczdb" /> <el-input v-model="jcFormData.zfczdb" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="地方财政情况"> <el-form-item label="地方财政情况" prop="dfczqk">
<el-input <el-input
v-model="jcFormData.dfczqk" v-model="jcFormData.dfczqk"
type="textarea" type="textarea"
...@@ -202,7 +205,7 @@ ...@@ -202,7 +205,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="回报机制"> <el-form-item label="回报机制" prop="hbjz">
<el-input <el-input
v-model="jcFormData.hbjz" v-model="jcFormData.hbjz"
type="textarea" type="textarea"
...@@ -249,7 +252,7 @@ ...@@ -249,7 +252,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="绩效考核"> <el-form-item label="绩效考核" prop="jxkh">
<el-input <el-input
v-model="jcFormData.jxkh" v-model="jcFormData.jxkh"
type="textarea" type="textarea"
...@@ -259,7 +262,7 @@ ...@@ -259,7 +262,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="调价机制"> <el-form-item label="调价机制" prop="tjjz">
<el-input <el-input
v-model="jcFormData.tjjz" v-model="jcFormData.tjjz"
type="textarea" type="textarea"
...@@ -269,7 +272,7 @@ ...@@ -269,7 +272,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="征地拆迁"> <el-form-item label="征地拆迁" prop="zdcq">
<el-input <el-input
v-model="jcFormData.zdcq" v-model="jcFormData.zdcq"
type="textarea" type="textarea"
...@@ -279,7 +282,7 @@ ...@@ -279,7 +282,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="前期费用"> <el-form-item label="前期费用" prop="qqfy">
<el-input <el-input
v-model="jcFormData.qqfy" v-model="jcFormData.qqfy"
type="textarea" type="textarea"
...@@ -296,7 +299,7 @@ ...@@ -296,7 +299,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="投资能力"> <el-form-item label="投资能力" prop="tznl">
<el-input <el-input
v-model="jcFormData.tznl" v-model="jcFormData.tznl"
type="textarea" type="textarea"
...@@ -314,7 +317,7 @@ ...@@ -314,7 +317,7 @@
<div class="report-content"> <div class="report-content">
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="比例"> <el-form-item label="比例" prop="zbjbl">
<el-input-number <el-input-number
v-model="jcFormData.zbjbl" v-model="jcFormData.zbjbl"
:min="0" :min="0"
...@@ -328,7 +331,7 @@ ...@@ -328,7 +331,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="金额"> <el-form-item label="金额" prop="zbjje">
<el-input <el-input
v-model="jcFormData.zbjje" v-model="jcFormData.zbjje"
:min="0" :min="0"
...@@ -338,7 +341,7 @@ ...@@ -338,7 +341,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="来源"> <el-form-item label="来源" prop="zbjly">
<el-input <el-input
v-model="jcFormData.zbjly" v-model="jcFormData.zbjly"
/> />
...@@ -352,7 +355,7 @@ ...@@ -352,7 +355,7 @@
<div class="report-content"> <div class="report-content">
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="比例"> <el-form-item label="比例" prop="dkbl">
<el-input-number <el-input-number
v-model="jcFormData.dkbl" v-model="jcFormData.dkbl"
:min="0" :min="0"
...@@ -366,7 +369,7 @@ ...@@ -366,7 +369,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="金额"> <el-form-item label="金额" prop="dkbje">
<el-input <el-input
v-model="jcFormData.dkbje" v-model="jcFormData.dkbje"
:min="0" :min="0"
...@@ -376,14 +379,14 @@ ...@@ -376,14 +379,14 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="融资主体"> <el-form-item label="融资主体" prop="dkrzzt">
<el-input <el-input
v-model="jcFormData.dkrzzt" v-model="jcFormData.dkrzzt"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="期限"> <el-form-item label="期限" prop="dkqx">
<el-input-number <el-input-number
v-model="jcFormData.dkqx" v-model="jcFormData.dkqx"
:min="0" :min="0"
...@@ -397,7 +400,7 @@ ...@@ -397,7 +400,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="利率"> <el-form-item label="利率" prop="dkll">
<el-input-number <el-input-number
v-model="jcFormData.dkll" v-model="jcFormData.dkll"
:min="0" :min="0"
...@@ -411,14 +414,14 @@ ...@@ -411,14 +414,14 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="担保方案"> <el-form-item label="担保方案" prop="dkdbfa">
<el-input <el-input
v-model="jcFormData.dkdbfa" v-model="jcFormData.dkdbfa"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="意向书"> <el-form-item label="意向书" prop="dkyxs">
<el-input <el-input
v-model="jcFormData.dkyxs" v-model="jcFormData.dkyxs"
type="textarea" type="textarea"
...@@ -540,7 +543,7 @@ ...@@ -540,7 +543,7 @@
<div class="report-content"> <div class="report-content">
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="股东会"> <el-form-item label="股东会" prop="zljggdh">
<el-input <el-input
v-model="jcFormData.zljggdh" v-model="jcFormData.zljggdh"
type="textarea" type="textarea"
...@@ -550,7 +553,7 @@ ...@@ -550,7 +553,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="董事会"> <el-form-item label="董事会" prop="zljgdsh">
<el-input <el-input
v-model="jcFormData.zljgdsh" v-model="jcFormData.zljgdsh"
type="textarea" type="textarea"
...@@ -560,7 +563,7 @@ ...@@ -560,7 +563,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="监事会"> <el-form-item label="监事会" prop="zljgjsh">
<el-input <el-input
v-model="jcFormData.zljgjsh" v-model="jcFormData.zljgjsh"
type="textarea" type="textarea"
...@@ -570,7 +573,7 @@ ...@@ -570,7 +573,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="管理层"> <el-form-item label="管理层" prop="zljgglc">
<el-input <el-input
v-model="jcFormData.zljgglc" v-model="jcFormData.zljgglc"
type="textarea" type="textarea"
...@@ -584,7 +587,7 @@ ...@@ -584,7 +587,7 @@
</div> </div>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="建设管理方案"> <el-form-item label="建设管理方案" prop="jsglfa">
<el-input <el-input
v-model="jcFormData.jsglfa" v-model="jcFormData.jsglfa"
type="textarea" type="textarea"
...@@ -594,7 +597,7 @@ ...@@ -594,7 +597,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="运营管理方案"> <el-form-item label="运营管理方案" prop="yyglfa">
<el-input <el-input
v-model="jcFormData.yyglfa" v-model="jcFormData.yyglfa"
type="textarea" type="textarea"
...@@ -609,7 +612,7 @@ ...@@ -609,7 +612,7 @@
<div class="report-content"> <div class="report-content">
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="正常退出"> <el-form-item label="正常退出" prop="tcjzzc">
<el-input <el-input
v-model="jcFormData.tcjzzc" v-model="jcFormData.tcjzzc"
type="textarea" type="textarea"
...@@ -619,7 +622,7 @@ ...@@ -619,7 +622,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="非正常退出"> <el-form-item label="非正常退出" prop="tcjzfzc">
<el-input <el-input
v-model="jcFormData.tcjzfzc" v-model="jcFormData.tcjzfzc"
type="textarea" type="textarea"
...@@ -659,12 +662,12 @@ ...@@ -659,12 +662,12 @@
> >
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="可研编制单位"> <el-form-item label="可研编制单位" prop="kybzdw">
<el-input v-model="jcFormData.kybzdw" /> <el-input v-model="jcFormData.kybzdw" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="可研评审单位"> <el-form-item label="可研评审单位" prop="kypsdw">
<el-input v-model="jcFormData.kypsdw" /> <el-input v-model="jcFormData.kypsdw" />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -677,6 +680,7 @@ ...@@ -677,6 +680,7 @@
<el-form-item <el-form-item
label="全投资财务内部收益率(税前)" label="全投资财务内部收益率(税前)"
:label-width="210" :label-width="210"
prop="qtzcwnbsyl"
> >
<el-input-number <el-input-number
v-model="jcFormData.qtzcwnbsyl" v-model="jcFormData.qtzcwnbsyl"
...@@ -694,6 +698,7 @@ ...@@ -694,6 +698,7 @@
<el-form-item <el-form-item
label="资本金财务内部收益率(税后)" label="资本金财务内部收益率(税后)"
:label-width="210" :label-width="210"
prop="zbjcwnbsyl"
> >
<el-input-number <el-input-number
v-model="jcFormData.zbjcwnbsyl" v-model="jcFormData.zbjcwnbsyl"
...@@ -708,28 +713,28 @@ ...@@ -708,28 +713,28 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="净现金流回正年份"> <el-form-item label="净现金流回正年份" prop="jxjlhznf">
<el-input <el-input
v-model="jcFormData.jxjlhznf" v-model="jcFormData.jxjlhznf"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="净利润回正年份"> <el-form-item label="净利润回正年份" prop="jlrhznf">
<el-input <el-input
v-model="jcFormData.jlrhznf" v-model="jcFormData.jlrhznf"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="可分配利润回正年份"> <el-form-item label="可分配利润回正年份" prop="kfplrhznf">
<el-input <el-input
v-model="jcFormData.kfplrhznf" v-model="jcFormData.kfplrhznf"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="财务净现值(税前)"> <el-form-item label="财务净现值(税前)" prop="cwjxz">
<el-input-number <el-input-number
v-model="jcFormData.cwjxz" v-model="jcFormData.cwjxz"
:min="0" :min="0"
...@@ -846,6 +851,7 @@ ...@@ -846,6 +851,7 @@
<el-form-item <el-form-item
label="敏感性分析" label="敏感性分析"
:label-width="90" :label-width="90"
prop="mgxfx"
> >
<el-input <el-input
v-model="jcFormData.mgxfx" v-model="jcFormData.mgxfx"
...@@ -860,7 +866,7 @@ ...@@ -860,7 +866,7 @@
</div> </div>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="工程收益"> <el-form-item label="工程收益" prop="gcsy">
<el-input <el-input
v-model="jcFormData.gcsy" v-model="jcFormData.gcsy"
type="textarea" type="textarea"
...@@ -892,7 +898,7 @@ ...@@ -892,7 +898,7 @@
> >
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="各级决策情况"> <el-form-item label="各级决策情况" prop="gjjcqk">
<el-input <el-input
v-model="jcFormData.gjjcqk" v-model="jcFormData.gjjcqk"
type="textarea" type="textarea"
...@@ -907,12 +913,14 @@ ...@@ -907,12 +913,14 @@
title="七、需要说明的问题" title="七、需要说明的问题"
name="七、需要说明的问题" name="七、需要说明的问题"
> >
<el-input <el-form-item prop="xysmdwt" label-width="0">
v-model="jcFormData.xysmdwt" <el-input
type="textarea" v-model="jcFormData.xysmdwt"
:rows="3" type="textarea"
placeholder="股东出资能力、特殊合同条款、协同经营情况等需要特殊说明事项" :rows="3"
/> placeholder="股东出资能力、特殊合同条款、协同经营情况等需要特殊说明事项"
/>
</el-form-item>
</el-collapse-item> </el-collapse-item>
</el-collapse> </el-collapse>
</el-form> </el-form>
...@@ -921,7 +929,78 @@ ...@@ -921,7 +929,78 @@
</template> </template>
<script setup> <script setup>
import { inject } from "vue"; import { inject, ref } from "vue";
const jcReportFormRef = ref();
const requiredInput = (msg) => ({
required: true,
message: `请输入${msg}`,
trigger: "blur",
});
const requiredSelect = (msg) => ({
required: true,
message: `请选择${msg}`,
trigger: [],
});
const formRules = {
projectIntro: [requiredInput("项目概述")],
xmhq: [requiredInput("项目获取")],
qqlzzyjd: [requiredInput("前期论证主要节点")],
jsgm: [requiredInput("建设规模")],
sqbgxmlx: [requiredInput("项目类型")],
sfbqjc: [requiredInput("是否标前决策")],
dwzj: [requiredSelect("单位造价")],
tzgc: [requiredInput("投资构成")],
hgqk: [requiredInput("合规情况")],
ssjg: [requiredInput("实施机构")],
zfczdb: [requiredInput("政府出资代表")],
dfczqk: [requiredInput("地方财政情况")],
hbjz: [requiredInput("回报机制")],
jxkh: [requiredInput("绩效考核")],
tjjz: [requiredInput("调价机制")],
zdcq: [requiredInput("征地拆迁")],
qqfy: [requiredInput("前期费用")],
tznl: [requiredInput("投资能力")],
zbjbl: [requiredSelect("资本金比例")],
zbjje: [requiredInput("资本金金额")],
zbjly: [requiredInput("资本金来源")],
dkbl: [requiredSelect("贷款比例")],
dkbje: [requiredInput("贷款金额")],
dkrzzt: [requiredInput("融资主体")],
dkqx: [requiredSelect("贷款期限")],
dkll: [requiredSelect("贷款利率")],
dkdbfa: [requiredInput("担保方案")],
dkyxs: [requiredInput("意向书")],
zljggdh: [requiredInput("股东会")],
zljgdsh: [requiredInput("董事会")],
zljgjsh: [requiredInput("监事会")],
zljgglc: [requiredInput("管理层")],
jsglfa: [requiredInput("建设管理方案")],
yyglfa: [requiredInput("运营管理方案")],
tcjzzc: [requiredInput("正常退出")],
tcjzfzc: [requiredInput("非正常退出")],
kybzdw: [requiredInput("可研编制单位")],
kypsdw: [requiredInput("可研评审单位")],
qtzcwnbsyl: [requiredSelect("全投资财务内部收益率")],
zbjcwnbsyl: [requiredSelect("资本金财务内部收益率")],
jxjlhznf: [requiredInput("净现金流回正年份")],
jlrhznf: [requiredInput("净利润回正年份")],
kfplrhznf: [requiredInput("可分配利润回正年份")],
cwjxz: [requiredSelect("财务净现值")],
mgxfx: [requiredInput("敏感性分析")],
gcsy: [requiredInput("工程收益")],
gjjcqk: [requiredInput("各级决策情况")],
xysmdwt: [requiredInput("需要说明的问题")],
};
const validate = () => {
return jcReportFormRef.value?.validate();
};
defineExpose({ validate });
const { const {
jcFormData, isPreview, activeCollapse, jcFormData, isPreview, activeCollapse,
bhqkData, jxjlData, jlrData, fxglData, bhqkData, jxjlData, jlrData, fxglData,
...@@ -931,3 +1010,9 @@ const { ...@@ -931,3 +1010,9 @@ const {
jcGdxxData, jcGdxxData,
} = inject("jcShared"); } = inject("jcShared");
</script> </script>
<style scoped>
.tab-content :deep(.el-form-item__error) {
display: none;
}
</style>
...@@ -2,7 +2,10 @@ ...@@ -2,7 +2,10 @@
<div class="tab-content"> <div class="tab-content">
<div class="tab-content"> <div class="tab-content">
<el-form <el-form
ref="lxApprovalFormRef"
:model="formData" :model="formData"
:rules="formRules"
:validate-on-rule-change="false"
:label-width="150" :label-width="150"
:disabled="isPreview || Number(formData.projectLzType) >= 5" :disabled="isPreview || Number(formData.projectLzType) >= 5"
> >
...@@ -198,17 +201,17 @@ ...@@ -198,17 +201,17 @@
<el-collapse-item title="项目立项信息" name="项目立项信息"> <el-collapse-item title="项目立项信息" name="项目立项信息">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="其他会议审议情况"> <el-form-item label="其他会议审议情况" prop="qthysyqk">
<el-input v-model="formData.qthysyqk" type="textarea" /> <el-input v-model="formData.qthysyqk" type="textarea" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="立项最终审批意见"> <el-form-item label="立项最终审批意见" prop="lxzzpfyj">
<CommonSelector v-model="formData.lxzzpfyj" dictName="spyj" /> <CommonSelector v-model="formData.lxzzpfyj" dictName="spyj" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="项目立项批复时间"> <el-form-item label="项目立项批复时间" prop="lxxmpfsj">
<el-date-picker <el-date-picker
v-model="formData.lxxmpfsj" v-model="formData.lxxmpfsj"
type="date" type="date"
...@@ -216,13 +219,18 @@ ...@@ -216,13 +219,18 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="立项项目批复文号"> <el-form-item label="立项项目批复文号" prop="lxxmpfwh">
<el-input v-model="formData.lxxmpfwh" /> <el-input v-model="formData.lxxmpfwh" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6">
<el-form-item label="审核处室" prop="jcpfshcs">
<el-input v-model="formData.jcpfshcs" />
</el-form-item>
</el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="未通过主要原因与要求"> <el-form-item label="未通过主要原因与要求" prop="wtgzyyyyyq">
<el-input v-model="formData.wtgzyyyyyq" type="textarea" /> <el-input v-model="formData.wtgzyyyyyq" type="textarea" />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -250,11 +258,39 @@ ...@@ -250,11 +258,39 @@
</template> </template>
<script setup> <script setup>
import { inject } from "vue"; import { inject, ref } from "vue";
import CommonSelector from "@/components/CommonSelector.vue"; import CommonSelector from "@/components/CommonSelector.vue";
import FormDynamicTable from "@/components/FormDynamicTable/index.vue"; import FormDynamicTable from "@/components/FormDynamicTable/index.vue";
import FileUploader from "@/components/FileUploader/index.vue"; import FileUploader from "@/components/FileUploader/index.vue";
const lxApprovalFormRef = ref();
const requiredInput = (msg) => ({
required: true,
message: `请输入${msg}`,
trigger: "blur",
});
const requiredSelect = (msg) => ({
required: true,
message: `请选择${msg}`,
trigger: [],
});
const formRules = {
qthysyqk: [requiredInput("其他会议审议情况")],
lxzzpfyj: [requiredSelect("立项最终审批意见")],
lxxmpfsj: [requiredSelect("项目立项批复时间")],
lxxmpfwh: [requiredInput("立项项目批复文号")],
jcpfshcs: [requiredInput("审核处室")],
wtgzyyyyyq: [requiredInput("未通过主要原因与要求")],
};
const validate = () => {
return lxApprovalFormRef.value?.validate();
};
defineExpose({ validate });
const { const {
formData, formData,
isPreview, isPreview,
...@@ -302,3 +338,9 @@ const updateSpyjTable = (val) => { ...@@ -302,3 +338,9 @@ const updateSpyjTable = (val) => {
spyjTableData.splice(0, spyjTableData.length, ...val); spyjTableData.splice(0, spyjTableData.length, ...val);
}; };
</script> </script>
<style scoped>
.tab-content :deep(.el-form-item__error) {
display: none;
}
</style>
...@@ -2,30 +2,28 @@ ...@@ -2,30 +2,28 @@
<div class="tab-content"> <div class="tab-content">
<div class="tab-content"> <div class="tab-content">
<el-form <el-form
ref="lxBasicFormRef"
:model="formData" :model="formData"
:rules="formRules"
:validate-on-rule-change="false"
label-width="200px" label-width="200px"
:disabled="isPreview || Number(formData.projectLzType) >= 5" :disabled="isPreview || Number(formData.projectLzType) >= 5"
> >
<el-collapse v-model="activeCollapse"> <el-collapse v-model="activeCollapse">
<el-collapse-item title="项目基本信息" name="项目基本信息"> <el-collapse-item title="项目基本信息" name="项目基本信息">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="8">
<el-form-item label="项目名称"> <el-form-item label="项目名称" prop="projectName">
<el-input v-model="formData.projectName" /> <el-input v-model="formData.projectName" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="项目编号"> <el-form-item label="项目编号" prop="projectCode">
<el-input v-model="formData.projectCode" /> <el-input v-model="formData.projectCode" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12">
<el-form-item label="项目外文名称">
<el-input v-model="formData.projectForeignName" />
</el-form-item>
</el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="是否再决策"> <el-form-item label="是否再决策" prop="sfzjc">
<CommonSelector <CommonSelector
:radio="true" :radio="true"
v-model="formData.sfzjc" v-model="formData.sfzjc"
...@@ -33,13 +31,13 @@ ...@@ -33,13 +31,13 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="投资主体"> <el-form-item label="项目外文名称">
<el-input v-model="formData.tzzt" /> <el-input v-model="formData.projectForeignName" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="是否能建联合体项目"> <el-form-item label="是否能建联合体项目" prop="sfnjlhtxm">
<CommonSelector <CommonSelector
:radio="true" :radio="true"
v-model="formData.sfnjlhtxm" v-model="formData.sfnjlhtxm"
...@@ -47,19 +45,39 @@ ...@@ -47,19 +45,39 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8">
<el-form-item label="能建是否牵头方" prop="njsfqtf">
<CommonSelector
:radio="true"
v-model="formData.njsfqtf"
dictName="sf"
/>
</el-form-item>
</el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="主业/非主业"> <el-form-item label="投资主体" prop="tzzt">
<el-input v-model="formData.tzzt" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="主业/非主业" prop="zyfzy">
<CommonSelector v-model="formData.zyfzy" dictName="zyfzy" /> <CommonSelector v-model="formData.zyfzy" dictName="zyfzy" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12">
<el-form-item label="直属企业"> <el-col :span="8"> </el-col>
<el-col :span="8">
<el-form-item label="直属企业" prop="zsqy">
<el-input v-model="formData.zsqy" /> <el-input v-model="formData.zsqy" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="是否能建重大或重要投资"> <el-form-item
label="是否能建重大或重要投资项目"
prop="sfnjzdhzytz"
>
<CommonSelector <CommonSelector
:radio="true" :radio="true"
v-model="formData.sfnjzdhzytz" v-model="formData.sfnjzdhzytz"
...@@ -67,8 +85,8 @@ ...@@ -67,8 +85,8 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="是否自主决策"> <el-form-item label="是否自主决策" prop="sfzzjc">
<CommonSelector <CommonSelector
:radio="true" :radio="true"
v-model="formData.sfzzjc" v-model="formData.sfzzjc"
...@@ -76,26 +94,33 @@ ...@@ -76,26 +94,33 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> </el-row>
<el-form-item label="项目阶段"> <el-row :gutter="20">
<CommonSelector v-model="formData.xmjd" dictName="xmjd" /> <el-col :span="8">
<el-form-item label="立项审批单位" prop="lxspdw">
<el-input v-model="formData.lxspdw" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> </el-row>
<el-form-item label="财务报表类型"> <el-row :gutter="20">
<el-col :span="8">
<el-form-item label="财务报表类型" prop="cwbblx">
<CommonSelector v-model="formData.cwbblx" dictName="cwbblx" /> <CommonSelector v-model="formData.cwbblx" dictName="cwbblx" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="8">
<el-form-item label="政府审批(核准、备案)级别"> <el-form-item
label="政府审批(核准、备案)级别"
prop="zfsphzbajb"
>
<CommonSelector <CommonSelector
v-model="formData.zfsphzbajb" v-model="formData.zfsphzbajb"
dictName="spjb" dictName="spjb"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="是否履行标前预审程序"> <el-form-item label="是否履行标前预审程序" prop="sflxbqyscx">
<CommonSelector <CommonSelector
:radio="true" :radio="true"
v-model="formData.sflxbqyscx" v-model="formData.sflxbqyscx"
...@@ -109,7 +134,7 @@ ...@@ -109,7 +134,7 @@
<el-collapse-item title="项目所在地" name="项目所在地"> <el-collapse-item title="项目所在地" name="项目所在地">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="境内/外"> <el-form-item label="境内/外" prop="jnw">
<CommonSelector <CommonSelector
v-model="formData.jnw" v-model="formData.jnw"
dictName="dqlx" dictName="dqlx"
...@@ -118,7 +143,7 @@ ...@@ -118,7 +143,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="省(境内)/洲际(境外)"> <el-form-item label="省(境内)/洲际(境外)" prop="sjnzjjw">
<CommonSelector <CommonSelector
v-model="formData.sjnzjjw" v-model="formData.sjnzjjw"
:options="szjList" :options="szjList"
...@@ -127,7 +152,7 @@ ...@@ -127,7 +152,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="地市(境内)/国家(境外)"> <el-form-item label="地市(境内)/国家(境外)" prop="dsjngjjw">
<CommonSelector <CommonSelector
v-model="formData.dsjngjjw" v-model="formData.dsjngjjw"
:options="dsgjList" :options="dsgjList"
...@@ -136,7 +161,7 @@ ...@@ -136,7 +161,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="区县(境内)/国家(境外)"> <el-form-item label="区县(境内)/国家(境外)" prop="qxjngjjw">
<CommonSelector <CommonSelector
v-model="formData.qxjngjjw" v-model="formData.qxjngjjw"
:options="qxgjList" :options="qxgjList"
...@@ -144,12 +169,12 @@ ...@@ -144,12 +169,12 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="项目区域"> <el-form-item label="项目区域" prop="xmqy">
<CommonSelector v-model="formData.xmqy" dictName="xmqy" /> <CommonSelector v-model="formData.xmqy" dictName="xmqy" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="是否一带一路沿线国家"> <el-form-item label="是否一带一路沿线国家" prop="sfydylyxgj">
<CommonSelector <CommonSelector
:radio="true" :radio="true"
v-model="formData.sfydylyxgj" v-model="formData.sfydylyxgj"
...@@ -162,7 +187,7 @@ ...@@ -162,7 +187,7 @@
<el-collapse-item title="计量币种" name="计量币种"> <el-collapse-item title="计量币种" name="计量币种">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="币种"> <el-form-item label="币种" prop="bizhong">
<CommonSelector <CommonSelector
v-model="formData.bizhong" v-model="formData.bizhong"
dictName="bizhong" dictName="bizhong"
...@@ -170,7 +195,7 @@ ...@@ -170,7 +195,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="汇率"> <el-form-item label="汇率" prop="huilv">
<!-- 999.99 [20,4]--> <!-- 999.99 [20,4]-->
<el-input <el-input
v-model="formData.huilv" v-model="formData.huilv"
...@@ -185,7 +210,7 @@ ...@@ -185,7 +210,7 @@
<el-collapse-item title="实施时间" name="实施时间"> <el-collapse-item title="实施时间" name="实施时间">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="项目建设期"> <el-form-item label="项目建设期" prop="xmjsqy">
<el-input-number <el-input-number
v-model="formData.xmjsqy" v-model="formData.xmjsqy"
:min="0" :min="0"
...@@ -199,7 +224,7 @@ ...@@ -199,7 +224,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="运营年限"> <el-form-item label="运营年限" prop="yynxn">
<el-input-number <el-input-number
v-model="formData.yynxn" v-model="formData.yynxn"
:min="0" :min="0"
...@@ -213,7 +238,7 @@ ...@@ -213,7 +238,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="项目合作期"> <el-form-item label="项目合作期" prop="xmhzqn">
<el-input-number <el-input-number
v-model="formData.xmhzqn" v-model="formData.xmhzqn"
:min="0" :min="0"
...@@ -227,7 +252,7 @@ ...@@ -227,7 +252,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="项目开工时间(预计)"> <el-form-item label="项目开工时间(预计)" prop="xmkgsjyj">
<el-date-picker <el-date-picker
v-model="formData.xmkgsjyj" v-model="formData.xmkgsjyj"
type="date" type="date"
...@@ -236,7 +261,7 @@ ...@@ -236,7 +261,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="项目交工时间(预计)"> <el-form-item label="项目交工时间(预计)" prop="xmjgsjyj">
<el-date-picker <el-date-picker
v-model="formData.xmjgsjyj" v-model="formData.xmjgsjyj"
type="date" type="date"
...@@ -250,27 +275,27 @@ ...@@ -250,27 +275,27 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
<div class="col-title">投资属性分类</div> <div class="col-title">投资属性分类</div>
<el-form-item label="一级分类"> <el-form-item label="一级分类" prop="tzsxyjfl">
<CommonSelector <CommonSelector
v-model="formData.tzsxyjfl" v-model="formData.tzsxyjfl"
dictName="tzsx" dictName="tzsx"
@change="changeTzsxyjfl" @change="changeTzsxyjfl"
/> />
</el-form-item> </el-form-item>
<el-form-item label="二级分类"> <el-form-item label="二级分类" prop="tzsxejfl">
<CommonSelector <CommonSelector
v-model="formData.tzsxejfl" v-model="formData.tzsxejfl"
:options="tzsxejflList" :options="tzsxejflList"
/> />
</el-form-item> </el-form-item>
<el-form-item label="投资板块"> <el-form-item label="投资板块" prop="tzbk">
<CommonSelector <CommonSelector
v-model="formData.tzbk" v-model="formData.tzbk"
dictName="tzbk" dictName="tzbk"
@change="changeTzsxtzbk" @change="changeTzsxtzbk"
/> />
</el-form-item> </el-form-item>
<el-form-item label="细分板块"> <el-form-item label="细分板块" prop="subsector">
<CommonSelector <CommonSelector
v-model="formData.subsector" v-model="formData.subsector"
:options="tzsxxfbkList" :options="tzsxxfbkList"
...@@ -279,52 +304,49 @@ ...@@ -279,52 +304,49 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="col-title">投资目的分类</div> <div class="col-title">投资目的分类</div>
<el-form-item label="一级分类"> <el-form-item label="一级分类" prop="tzmdyjfl">
<CommonSelector <CommonSelector
v-model="formData.tzmdyjfl" v-model="formData.tzmdyjfl"
dictName="tzmd" dictName="tzmd"
@change="changeTzmdyjfl" @change="changeTzmdyjfl"
/> />
</el-form-item> </el-form-item>
<el-form-item label="二级分类"> <el-form-item label="二级分类" prop="tzmdejfl">
<CommonSelector <CommonSelector
v-model="formData.tzmdejfl" v-model="formData.tzmdejfl"
:options="tzmdejflList" :options="tzmdejflList"
/> />
</el-form-item> </el-form-item>
<el-form-item label="四新分类"> <el-form-item label="四新分类" prop="sxfl">
<CommonSelector v-model="formData.sxfl" dictName="sxfl" /> <CommonSelector v-model="formData.sxfl" dictName="sxfl" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<div class="col-title">投资指南分类</div> <div class="col-title">投资指南分类</div>
<el-form-item label="一级分类">
<CommonSelector <el-form-item label="2+9布局分类" prop="bjfl">
v-model="formData.tzznyjfl"
dictName="tzzn"
@change="changeTzznyjfl"
/>
</el-form-item>
<el-form-item label="二级分类">
<CommonSelector <CommonSelector
v-model="formData.tzznejfl" v-model="formData.bjfl"
:options="tzznejflList" dictName="layoutType"
@change="changeJcTzznyjfl"
/> />
</el-form-item> </el-form-item>
<el-form-item
label="投资指南分类概述" <el-form-item label="国民经济行业" prop="gmjjhy">
v-if="formData.tzznyjfl !== 233" <el-tree-select
> v-model="formData.gmjjhy"
<el-input :data="gmjjhyList"
v-model="formData.tzznflgs" node-key="id"
type="textarea" :props="gmjjhyProps"
:autosize="{ minRows: 2, maxRows: 5 }" placeholder="请选择"
render-after-expand
clearable
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <!-- <el-col :span="12">
<div class="col-title"></div> <div class="col-title"></div>
<el-form-item label="国民经济行业"> <el-form-item label="国民经济行业">
<el-tree-select <el-tree-select
...@@ -337,7 +359,7 @@ ...@@ -337,7 +359,7 @@
clearable clearable
/> />
</el-form-item> </el-form-item>
</el-col> </el-col> -->
</el-row> </el-row>
</el-col> </el-col>
</el-row> </el-row>
...@@ -351,6 +373,7 @@ ...@@ -351,6 +373,7 @@
<el-form-item <el-form-item
label-width="300px" label-width="300px"
label="是否须报国家发展改革委和商务部核准" label="是否须报国家发展改革委和商务部核准"
prop="sfxbgjfzggwhswbhz"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -360,7 +383,11 @@ ...@@ -360,7 +383,11 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label-width="300px" label="是否国家领导见签"> <el-form-item
label-width="300px"
label="是否国家领导见签"
prop="sfgjldjq"
>
<CommonSelector <CommonSelector
:radio="true" :radio="true"
v-model="formData.sfgjldjq" v-model="formData.sfgjldjq"
...@@ -369,7 +396,11 @@ ...@@ -369,7 +396,11 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label-width="300px" label="是否境内特别监管类"> <el-form-item
label-width="300px"
label="是否境内特别监管类"
prop="sfjntbjgl"
>
<CommonSelector <CommonSelector
:radio="true" :radio="true"
v-model="formData.sfjntbjgl" v-model="formData.sfjntbjgl"
...@@ -593,21 +624,21 @@ ...@@ -593,21 +624,21 @@
title="项目必要性及可行性" title="项目必要性及可行性"
name="项目必要性及可行性" name="项目必要性及可行性"
> >
<el-form-item label="建设内容及规模"> <el-form-item label="建设内容及规模" prop="jsnrjgm">
<el-input <el-input
v-model="formData.jsnrjgm" v-model="formData.jsnrjgm"
type="textarea" type="textarea"
:autosize="{ minRows: 2, maxRows: 5 }" :autosize="{ minRows: 2, maxRows: 5 }"
/> />
</el-form-item> </el-form-item>
<el-form-item label="项目必要性"> <el-form-item label="项目必要性" prop="xmbyx">
<el-input <el-input
v-model="formData.xmbyx" v-model="formData.xmbyx"
type="textarea" type="textarea"
:autosize="{ minRows: 2, maxRows: 5 }" :autosize="{ minRows: 2, maxRows: 5 }"
/> />
</el-form-item> </el-form-item>
<el-form-item label="项目可行性"> <el-form-item label="项目可行性" prop="xmkxx">
<el-input <el-input
v-model="formData.xmkxx" v-model="formData.xmkxx"
type="textarea" type="textarea"
...@@ -627,10 +658,74 @@ ...@@ -627,10 +658,74 @@
</template> </template>
<script setup> <script setup>
import { inject } from "vue"; import { inject, ref } from "vue";
import CommonSelector from "@/components/CommonSelector.vue"; import CommonSelector from "@/components/CommonSelector.vue";
import FileUploader from "@/components/FileUploader/index.vue"; import FileUploader from "@/components/FileUploader/index.vue";
const lxBasicFormRef = ref();
const requiredInput = (msg) => ({
required: true,
message: `请输入${msg}`,
trigger: "blur",
});
const requiredSelect = (msg) => ({
required: true,
message: `请选择${msg}`,
trigger: [],
});
const formRules = {
projectName: [requiredInput("项目名称")],
projectCode: [requiredInput("项目编号")],
sfzjc: [requiredSelect("是否再决策")],
sfnjlhtxm: [requiredSelect("是否能建联合体项目")],
njsfqtf: [requiredSelect("能建是否牵头方")],
tzzt: [requiredInput("投资主体")],
zyfzy: [requiredSelect("主业/非主业")],
zsqy: [requiredInput("直属企业")],
sfnjzdhzytz: [requiredSelect("是否能建重大或重要投资项目")],
sfzzjc: [requiredSelect("是否自主决策")],
lxspdw: [requiredInput("立项审批单位")],
cwbblx: [requiredSelect("财务报表类型")],
zfsphzbajb: [requiredSelect("政府审批(核准、备案)级别")],
sflxbqyscx: [requiredSelect("是否履行标前预审程序")],
jnw: [requiredSelect("境内/外")],
sjnzjjw: [requiredSelect("省(境内)/洲际(境外)")],
dsjngjjw: [requiredSelect("地市(境内)/国家(境外)")],
qxjngjjw: [requiredSelect("区县(境内)/国家(境外)")],
xmqy: [requiredSelect("项目区域")],
sfydylyxgj: [requiredSelect("是否一带一路沿线国家")],
bizhong: [requiredSelect("币种")],
huilv: [requiredInput("汇率")],
xmjsqy: [requiredSelect("项目建设期")],
yynxn: [requiredSelect("运营年限")],
xmhzqn: [requiredSelect("项目合作期")],
xmkgsjyj: [requiredSelect("项目开工时间(预计)")],
xmjgsjyj: [requiredSelect("项目交工时间(预计)")],
tzsxyjfl: [requiredSelect("投资属性一级分类")],
tzsxejfl: [requiredSelect("投资属性二级分类")],
tzbk: [requiredSelect("投资板块")],
subsector: [requiredSelect("细分板块")],
tzmdyjfl: [requiredSelect("投资目的一级分类")],
tzmdejfl: [requiredSelect("投资目的二级分类")],
sxfl: [requiredSelect("四新分类")],
bjfl: [requiredSelect("2+9布局分类")],
gmjjhy: [requiredSelect("国民经济行业")],
sfxbgjfzggwhswbhz: [requiredSelect("是否须报国家发展改革委和商务部核准")],
sfgjldjq: [requiredSelect("是否国家领导见签")],
sfjntbjgl: [requiredSelect("是否境内特别监管类")],
jsnrjgm: [requiredInput("建设内容及规模")],
xmbyx: [requiredInput("项目必要性")],
xmkxx: [requiredInput("项目可行性")],
};
const validate = () => {
return lxBasicFormRef.value?.validate();
};
defineExpose({ validate });
const { const {
formData, formData,
isPreview, isPreview,
...@@ -675,3 +770,9 @@ const { ...@@ -675,3 +770,9 @@ const {
uploadDialogVisible, uploadDialogVisible,
} = inject("lxShared"); } = inject("lxShared");
</script> </script>
<style scoped>
.tab-content :deep(.el-form-item__error) {
display: none;
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment