明树Git Lab

Commit 060a7d75 authored by zhanghan's avatar zhanghan

1

parent 95b23eac
Pipeline #111985 passed with stage
in 18 seconds
...@@ -6,7 +6,9 @@ ...@@ -6,7 +6,9 @@
"Read(//Users/**)", "Read(//Users/**)",
"Bash(python3 -c ' *)", "Bash(python3 -c ' *)",
"Bash(where python *)", "Bash(where python *)",
"Bash(where node *)" "Bash(where node *)",
"Bash(python3 *)",
"Bash(python *)"
] ]
} }
} }
...@@ -9,7 +9,13 @@ ...@@ -9,7 +9,13 @@
<div class="tabs-content"> <div class="tabs-content">
<div class="project-tab-content-wrapper"> <div class="project-tab-content-wrapper">
<div class="tab-content"> <div class="tab-content">
<el-form label-width="150" :model="formData" :disabled="isPreview"> <el-form
ref="formRef"
label-width="150"
:model="formData"
:rules="rules"
:disabled="isPreview"
>
<el-collapse <el-collapse
v-model="activeCollapse" v-model="activeCollapse"
v-collapse-nav="navigationItems" v-collapse-nav="navigationItems"
...@@ -18,7 +24,7 @@ ...@@ -18,7 +24,7 @@
<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="项目信息" required> <el-form-item label="项目信息" prop="projectId">
<el-select <el-select
v-model="formData.projectId" v-model="formData.projectId"
placeholder="请选择项目信息" placeholder="请选择项目信息"
...@@ -68,7 +74,7 @@ ...@@ -68,7 +74,7 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<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"
...@@ -142,7 +148,7 @@ ...@@ -142,7 +148,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="projectLzType">
<CommonSelector <CommonSelector
v-model="formData.projectLzType" v-model="formData.projectLzType"
dictName="xmlzzt" dictName="xmlzzt"
...@@ -151,7 +157,7 @@ ...@@ -151,7 +157,7 @@
</el-col> </el-col>
<el-col :span="20"> <el-col :span="20">
<el-form-item label="建成后成效"> <el-form-item label="建成后成效" prop="jchcx">
<el-input <el-input
v-model="formData.jchcx" v-model="formData.jchcx"
type="textarea" type="textarea"
...@@ -175,6 +181,7 @@ ...@@ -175,6 +181,7 @@
<el-form-item <el-form-item
label-width="340px" label-width="340px"
label="是否国家中长期规划重大项目(A1)" label="是否国家中长期规划重大项目(A1)"
prop="sfgjzcqghzdxm"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -187,6 +194,7 @@ ...@@ -187,6 +194,7 @@
<el-form-item <el-form-item
label-width="340px" label-width="340px"
label="是否国家有关部门下达的重点项目(A2)" label="是否国家有关部门下达的重点项目(A2)"
prop="sfgjygbmxddzdxm"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -199,6 +207,7 @@ ...@@ -199,6 +207,7 @@
<el-form-item <el-form-item
label-width="340px" label-width="340px"
label="大规模设备更新(A3)" label="大规模设备更新(A3)"
prop="dgmsbgx"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -211,6 +220,7 @@ ...@@ -211,6 +220,7 @@
<el-form-item <el-form-item
label-width="340px" label-width="340px"
label="战略性新兴产业百大工程(A4)" label="战略性新兴产业百大工程(A4)"
prop="zlxxxcybdgc"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -223,6 +233,7 @@ ...@@ -223,6 +233,7 @@
<el-form-item <el-form-item
label-width="340px" label-width="340px"
label="列入央企产业焕新和未来产业启航行动的项目(A5)" label="列入央企产业焕新和未来产业启航行动的项目(A5)"
prop="lryqcyhxhwlcyqhxddxm"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -235,6 +246,7 @@ ...@@ -235,6 +246,7 @@
<el-form-item <el-form-item
label-width="340px" label-width="340px"
label="强链补链重点项目(A6)" label="强链补链重点项目(A6)"
prop="qlblzdxm"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -276,6 +288,7 @@ ...@@ -276,6 +288,7 @@
<el-form-item <el-form-item
label-width="340px" label-width="340px"
label="列入企业发展战略性新兴产业工作方案的项目(B1)" label="列入企业发展战略性新兴产业工作方案的项目(B1)"
prop="lrqyfzzlxxxcygzfadxm"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -288,6 +301,7 @@ ...@@ -288,6 +301,7 @@
<el-form-item <el-form-item
label-width="340px" label-width="340px"
label="粮食、能源、矿产资源保障项目(B2)" label="粮食、能源、矿产资源保障项目(B2)"
prop="lsnykczybzxm"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -300,6 +314,7 @@ ...@@ -300,6 +314,7 @@
<el-form-item <el-form-item
label-width="340px" label-width="340px"
label="传统产业高端化、智能化、绿色化转型升级项目(B3)" label="传统产业高端化、智能化、绿色化转型升级项目(B3)"
prop="ctcygdh"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -312,6 +327,7 @@ ...@@ -312,6 +327,7 @@
<el-form-item <el-form-item
label-width="340px" label-width="340px"
label="支撑企业发展的重点项目(B4)" label="支撑企业发展的重点项目(B4)"
prop="zcqyfzdddxm"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -324,6 +340,7 @@ ...@@ -324,6 +340,7 @@
<el-form-item <el-form-item
label-width="340px" label-width="340px"
label="制造业技术改造项目" label="制造业技术改造项目"
prop="zzyjsgzxm"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -343,6 +360,7 @@ ...@@ -343,6 +360,7 @@
<el-form-item <el-form-item
label-width="340px" label-width="340px"
label="对外并购类投资项目(C1)" label="对外并购类投资项目(C1)"
prop="dwbgltzxm"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -355,6 +373,7 @@ ...@@ -355,6 +373,7 @@
<el-form-item <el-form-item
label-width="340px" label-width="340px"
label="特别监管类项目(C2)" label="特别监管类项目(C2)"
prop="tbjglxm"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -367,6 +386,7 @@ ...@@ -367,6 +386,7 @@
<el-form-item <el-form-item
label-width="340px" label-width="340px"
label="境外特别关注类项目(C3)" label="境外特别关注类项目(C3)"
prop="jwtbgzlxm"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -379,6 +399,7 @@ ...@@ -379,6 +399,7 @@
<el-form-item <el-form-item
label-width="340px" label-width="340px"
label="对外参股类投资项目(C4)" label="对外参股类投资项目(C4)"
prop="dwcglxtzxm"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -391,6 +412,7 @@ ...@@ -391,6 +412,7 @@
<el-form-item <el-form-item
label-width="340px" label-width="340px"
label="房地产投资项目(C5)" label="房地产投资项目(C5)"
prop="fdctzxm"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -403,6 +425,7 @@ ...@@ -403,6 +425,7 @@
<el-form-item <el-form-item
label-width="340px" label-width="340px"
label="PPP投资项目(C6)" label="PPP投资项目(C6)"
prop="ppptzxm"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -434,6 +457,7 @@ ...@@ -434,6 +457,7 @@
<el-form-item <el-form-item
label-width="340px" label-width="340px"
label="非主业投资项目(D1)" label="非主业投资项目(D1)"
prop="fzytzxm"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -446,6 +470,7 @@ ...@@ -446,6 +470,7 @@
<el-form-item <el-form-item
label-width="340px" label-width="340px"
label="持牌金融机构(D2)" label="持牌金融机构(D2)"
prop="zpjrjg"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -458,6 +483,7 @@ ...@@ -458,6 +483,7 @@
<el-form-item <el-form-item
label-width="340px" label-width="340px"
label="类金融机构(D3)" label="类金融机构(D3)"
prop="ljrjg"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -470,6 +496,7 @@ ...@@ -470,6 +496,7 @@
<el-form-item <el-form-item
label-width="340px" label-width="340px"
label="其他金融机构(D4)" label="其他金融机构(D4)"
prop="qtjrjg"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -482,6 +509,7 @@ ...@@ -482,6 +509,7 @@
<el-form-item <el-form-item
label-width="340px" label-width="340px"
label="基金及基金管理公司(D5)" label="基金及基金管理公司(D5)"
prop="jjjjjglgs"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -494,6 +522,7 @@ ...@@ -494,6 +522,7 @@
<el-form-item <el-form-item
label-width="340px" label-width="340px"
label="创业投资基金(D6)" label="创业投资基金(D6)"
prop="cytzjj"
> >
<CommonSelector <CommonSelector
:radio="true" :radio="true"
...@@ -597,9 +626,15 @@ ...@@ -597,9 +626,15 @@
<!-- 年度投资计划:基础信息 --> <!-- 年度投资计划:基础信息 -->
<el-collapse-item title="年度投资计划" name="年度投资计划"> <el-collapse-item title="年度投资计划" name="年度投资计划">
<el-row :gutter="24"> <el-row :gutter="24">
<!-- 基础短字段:span12分栏 --> <el-col :span="24">
<el-col :span="8"> <div class="row_title">投资目标</div>
<el-form-item label-width="240px" label="计划年份"> </el-col>
<el-col :span="6">
<el-form-item
label-width="240px"
label="计划年份"
prop="jhnf"
>
<el-date-picker <el-date-picker
v-model="formData.jhnf" v-model="formData.jhnf"
type="year" type="year"
...@@ -610,13 +645,21 @@ ...@@ -610,13 +645,21 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label-width="240px" label="新建/续建"> <el-form-item
label-width="240px"
label="新建/续建"
prop="xjXj"
>
<CommonSelector v-model="formData.xjXj" dictName="xj" /> <CommonSelector v-model="formData.xjXj" dictName="xj" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label-width="240px" label="年度投资目标"> <el-form-item
label-width="240px"
label="年度投资目标"
prop="ndTzMb"
>
<el-input <el-input
v-model="formData.ndTzMb" v-model="formData.ndTzMb"
placeholder="请输入年度投资目标" placeholder="请输入年度投资目标"
...@@ -627,8 +670,12 @@ ...@@ -627,8 +670,12 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label-width="240px" label="项目预计工期"> <el-form-item
label-width="240px"
label="项目预计工期"
prop="xmYjGq"
>
<el-input <el-input
v-model="formData.xmYjGq" v-model="formData.xmYjGq"
placeholder="请输入项目预计工期(如12个月)" placeholder="请输入项目预计工期(如12个月)"
...@@ -636,7 +683,7 @@ ...@@ -636,7 +683,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item <el-form-item
label-width="240px" label-width="240px"
label="项目融资落地时间或预计落地时间" label="项目融资落地时间或预计落地时间"
...@@ -649,10 +696,11 @@ ...@@ -649,10 +696,11 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item <el-form-item
label-width="240px" label-width="240px"
label="预计实现资本金内部收益率" label="预计实现资本金内部收益率"
prop="yjSxZbjNbsyl"
> >
<el-input <el-input
v-model="formData.yjSxZbjNbsyl" v-model="formData.yjSxZbjNbsyl"
...@@ -669,10 +717,11 @@ ...@@ -669,10 +717,11 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item <el-form-item
label-width="240px" label-width="240px"
label="项目计划总投资类型" label="项目计划总投资类型"
prop="xmTzZeXmJhZtzLx"
> >
<el-input <el-input
v-model="formData.xmTzZeXmJhZtzLx" v-model="formData.xmTzZeXmJhZtzLx"
...@@ -680,26 +729,38 @@ ...@@ -680,26 +729,38 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label-width="240px" label="计划类型"> <el-form-item
label-width="240px"
label="计划类型"
prop="jhLx"
>
<el-input <el-input
v-model="formData.jhLx" v-model="formData.jhLx"
placeholder="请输入计划类型" placeholder="请输入计划类型"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="24">
<el-form-item label-width="240px" label="当前进展阶段"> <div class="row_title">当前进展</div>
</el-col>
<el-col :span="6">
<el-form-item
label-width="240px"
label="当前进展阶段"
prop="dqJzJd"
>
<el-input <el-input
v-model="formData.dqJzJd" v-model="formData.dqJzJd"
placeholder="请输入当前进展阶段" placeholder="请输入当前进展阶段"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item <el-form-item
label-width="240px" label-width="240px"
label="项目融资是否已经落地" label="项目融资是否已经落地"
prop="xmRzSfYjLd"
> >
<CommonSelector <CommonSelector
v-model="formData.xmRzSfYjLd" v-model="formData.xmRzSfYjLd"
...@@ -707,15 +768,19 @@ ...@@ -707,15 +768,19 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label-width="240px" label="当前进展情况"> <el-form-item
label-width="240px"
label="当前进展情况"
prop="dqJzQk"
>
<el-input <el-input
v-model="formData.dqJzQk" v-model="formData.dqJzQk"
placeholder="请输入当前进展情况" placeholder="请输入当前进展情况"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item <el-form-item
label-width="240px" label-width="240px"
label="项目实际开工时间" label="项目实际开工时间"
...@@ -730,7 +795,11 @@ ...@@ -730,7 +795,11 @@
</el-col> </el-col>
<!-- 长文本字段:span24通栏,用文本域 --> <!-- 长文本字段:span24通栏,用文本域 -->
<el-col :span="20"> <el-col :span="20">
<el-form-item label-width="240px" label="预期实现效果"> <el-form-item
label-width="340px"
label="预期实现效果"
prop="yqSxXg"
>
<el-input <el-input
v-model="formData.yqSxXg" v-model="formData.yqSxXg"
type="textarea" type="textarea"
...@@ -803,7 +872,11 @@ ...@@ -803,7 +872,11 @@
> >
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="6"> <el-col :span="6">
<el-form-item label-width="180px" label="资金支付比例(%)"> <el-form-item
label-width="180px"
label="资金支付比例(%)"
prop="zjfzBl"
>
<el-input <el-input
v-model="formData.zjfzBl" v-model="formData.zjfzBl"
:min="0" :min="0"
...@@ -1061,6 +1134,78 @@ const transferColumns = ref([ ...@@ -1061,6 +1134,78 @@ const transferColumns = ref([
}, },
]); ]);
// ========== 表单验证 ==========
const formRef = ref(null);
const requiredSelect = { required: true, message: "请选择", trigger: "change" };
const requiredInput = { required: true, message: "请填写", trigger: "blur" };
const rules = {
projectId: [{ required: true, message: "请选择项目信息", trigger: "change" }],
projectLzType: [
{ required: true, message: "请选择审批状态", trigger: "change" },
],
jchcx: [{ required: true, message: "请输入建成后成效", trigger: "blur" }],
xmkgsjyj: [
{ required: true, message: "请选择项目预计起始时间", trigger: "change" },
],
xmjgsjyj: [
{ required: true, message: "请选择项目预计完成时间", trigger: "change" },
],
sfgjzcqghzdxm: [requiredSelect],
sfgjygbmxddzdxm: [requiredSelect],
dgmsbgx: [requiredSelect],
zlxxxcybdgc: [requiredSelect],
lryqcyhxhwlcyqhxddxm: [requiredSelect],
qlblzdxm: [requiredSelect],
lrqyfzzlxxxcygzfadxm: [requiredSelect],
lsnykczybzxm: [requiredSelect],
ctcygdh: [requiredSelect],
zcqyfzdddxm: [requiredSelect],
zzyjsgzxm: [requiredSelect],
dwbgltzxm: [requiredSelect],
tbjglxm: [requiredSelect],
jwtbgzlxm: [requiredSelect],
dwcglxtzxm: [requiredSelect],
fdctzxm: [requiredSelect],
ppptzxm: [requiredSelect],
fzytzxm: [requiredSelect],
zpjrjg: [requiredSelect],
ljrjg: [requiredSelect],
qtjrjg: [requiredSelect],
jjjjjglgs: [requiredSelect],
cytzjj: [requiredSelect],
jhnf: [{ required: true, message: "请选择计划年份", trigger: "change" }],
xjXj: [{ required: true, message: "请选择新建/续建", trigger: "change" }],
ndTzMb: [{ required: true, message: "请输入年度投资目标", trigger: "blur" }],
xmYjGq: [{ required: true, message: "请输入项目预计工期", trigger: "blur" }],
yjSxZbjNbsyl: [
{
required: true,
message: "请输入预计实现资本金内部收益率",
trigger: "blur",
},
],
xmTzZeXmJhZtzLx: [
{ required: true, message: "请输入项目计划总投资类型", trigger: "blur" },
],
jhLx: [{ required: true, message: "请输入计划类型", trigger: "blur" }],
dqJzJd: [{ required: true, message: "请输入当前进展阶段", trigger: "blur" }],
dqJzQk: [{ required: true, message: "请输入当前进展情况", trigger: "blur" }],
xmRzSfYjLd: [
{
required: true,
message: "请选择项目融资是否已经落地",
trigger: "change",
},
],
yqSxXg: [{ required: true, message: "请输入预期实现效果", trigger: "blur" }],
zjfzBl: [{ required: true, message: "请输入资金支付比例", trigger: "blur" }],
zbjPtF: [{ required: true, message: "请输入能建方金额", trigger: "blur" }],
zbjWbGd: [{ required: true, message: "请输入外部股东金额", trigger: "blur" }],
zqRz: [{ required: true, message: "请输入债权融资金额", trigger: "blur" }],
hkZtr: [{ required: true, message: "请输入回款再投入金额", trigger: "blur" }],
qt: [{ required: true, message: "请输入其他金额", trigger: "blur" }],
};
// ========== 路由/实例/全局方法 ========== // ========== 路由/实例/全局方法 ==========
const router = useRouter(); const router = useRouter();
const route = useRoute(); const route = useRoute();
...@@ -1658,8 +1803,12 @@ const getJsqtzjcDetail = () => { ...@@ -1658,8 +1803,12 @@ const getJsqtzjcDetail = () => {
}; };
// ========== 保存表单:保留原有逻辑【直接传递完整xmndjh,不过滤】 ========== // ========== 保存表单:保留原有逻辑【直接传递完整xmndjh,不过滤】 ==========
const saveClick = () => { const saveClick = async () => {
if (!formData.projectId) return ElMessage.warning("请选择项目信息"); try {
await formRef.value.validate();
} catch {
return ElMessage.warning("请填写所有必填项");
}
loading.value = true; loading.value = true;
const url = rcCgqyglId.value const url = rcCgqyglId.value
? "/api/project/updateTzjh" ? "/api/project/updateTzjh"
...@@ -1765,6 +1914,12 @@ onMounted(() => { ...@@ -1765,6 +1914,12 @@ onMounted(() => {
padding-left: 10px; padding-left: 10px;
} }
.row_title {
font-size: 16px;
font-weight: bold;
text-align: center;
margin: 4px;
}
.tzxx { .tzxx {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
......
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