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