明树Git Lab

Commit 537fb7f3 authored by zhanghan's avatar zhanghan

1

parent 9bdc48fa
Pipeline #111580 passed with stage
in 19 seconds
......@@ -266,7 +266,7 @@ const activeCollapse = reactive([
"项目批复信息",
"其他",
"投决计划",
"投评报告及测算表",
"投资各方现金流量表",
"项目投资资金流量表",
"项目资本金现金流量表",
"能建方现金流量表",
......@@ -289,7 +289,7 @@ let projectId = route.query.projectId;
const lxType = computed(() => formData.projectLzType?.toString());
const jcType = computed(() => jcFormData.projectLzType?.toString());
const isDaibanUser = computed(() =>
formData?.daibanUsers?.includes(userInfo?.id)
formData?.daibanUsers?.includes(userInfo?.id),
);
// 表单禁用状态:基于流程节点 + 待办人判断
......@@ -307,25 +307,26 @@ const jcFormDisabled = computed(() => {
});
const showSave = computed(
() => !isPreview && (!formData.id || formData.projectCreator === userInfo?.id)
() =>
!isPreview && (!formData.id || formData.projectCreator === userInfo?.id),
);
const showSubmitLixiang = computed(
() => lxType.value === "1" && formData.projectCreator === userInfo?.id
() => lxType.value === "1" && formData.projectCreator === userInfo?.id,
);
const showSubmitJuece = computed(
() => jcType.value === "7" && formData.projectCreator === userInfo?.id
() => jcType.value === "7" && formData.projectCreator === userInfo?.id,
);
const showFirstAudit = computed(
() => isDaibanUser.value && lxType.value === "3"
() => isDaibanUser.value && lxType.value === "3",
);
const showAuditLixiang = computed(
() => isDaibanUser.value && hasApproveRole && lxType.value === "4"
() => isDaibanUser.value && hasApproveRole && lxType.value === "4",
);
const showAuditJuece = computed(
() => isDaibanUser.value && jcType.value === "8"
() => isDaibanUser.value && jcType.value === "8",
);
const showApprove = computed(
() => isDaibanUser.value && hasApproveRole && lxType.value === "2"
() => isDaibanUser.value && hasApproveRole && lxType.value === "2",
);
// 下载文件
......@@ -348,7 +349,7 @@ const downloadTemplate = async (type) => {
headers: {
Authorization: token.value,
},
}
},
)
.then((res) => res.blob())
.then((blob) => {
......@@ -385,7 +386,7 @@ const finance = useFinanceTables();
const getObjSums = (obj, objkey) => {
return Object.entries(obj).reduce(
(acc, [key, item]) => acc.plus(new Decimal(item[objkey] || 0)),
new Decimal(0)
new Decimal(0),
);
};
......@@ -475,6 +476,30 @@ const getProjectInfo = () => {
pageActiveName.value = "决策信息填报";
}
// 按zb名称将后端数据合并到前端默认树结构中
function mergeTzzeData(defaultData, backendData) {
if (!backendData || !backendData.length) return;
const map = {};
function flatten(items) {
for (const item of items) {
if (item.zb) map[item.zb] = item;
if (item.children && item.children.length) flatten(item.children);
}
}
flatten(backendData);
function fill(items) {
for (const item of items) {
const src = map[item.zb];
if (src) {
item.id = src.id;
item.rmbjj = src.rmbjj;
}
if (item.children && item.children.length) fill(item.children);
}
}
fill(defaultData);
}
// 决策
let jcData = res.juece || {};
Object.assign(jcFormData, jcData);
......@@ -491,7 +516,7 @@ const getProjectInfo = () => {
Object.assign(juece.tpzcclData.value, jcData.qtxgzccl);
Object.assign(juece.tpbczcclData.value, jcData.bcxgzccl);
Object.assign(juece.shyaData.value, jcData.shya);
Object.assign(juece.jcTzzeqkjData, jcData.projectXmtzzes);
mergeTzzeData(juece.jcTzzeqkjData, jcData.projectXmtzzes);
Object.assign(juece.jcCwpjzbData, jcData.projectCwpjzbs);
Object.assign(juece.jcHxbjtjData, jcData.projectBjtjs);
Object.assign(juece.jcztshqkData, jcData.projectJczts);
......@@ -516,7 +541,7 @@ const getProjectInfo = () => {
?.children || [];
resource.jcQxgjList.value =
resource.jcDsgjList.value.filter(
(item) => item.key == jcData.dsjngjjw
(item) => item.key == jcData.dsjngjjw,
)[0]?.children || [];
resource.jcTzsxejflList.value =
resource.tzsxyjflList.filter((item) => item.key == jcData.tzsxyjfl)[0]
......@@ -635,10 +660,10 @@ const processInfo = computed(() => ({
}));
const processTableData = ref([]);
const lxProcessData = computed(() =>
processTableData.value.filter((r) => !r.actionName?.includes("决策"))
processTableData.value.filter((r) => !r.actionName?.includes("决策")),
);
const jcProcessData = computed(() =>
processTableData.value.filter((r) => r.actionName?.includes("决策"))
processTableData.value.filter((r) => r.actionName?.includes("决策")),
);
const getProcessData = () => {
proxy.$post({
......
......@@ -16,7 +16,7 @@
border
>
<el-table-column prop="xh" label="序号" />
<el-table-column prop="zb" label="指标" />
<el-table-column prop="zb" label="项目" />
<el-table-column prop="dw" label="" width="70" />
<el-table-column prop="rmbjj" label="人民币计价">
<template #default="scope">
......@@ -78,21 +78,41 @@
/>
</template>
</el-table-column>
<el-table-column label="单位工程造价">
<el-table-column prop="dwgczjSz" label="数值" width="180">
<el-table-column label="单位工程造价(动态)">
<el-table-column prop="dwgczjDtSz" label="数值" width="180">
<template #default="scope">
<el-input
v-model="scope.row.dwgczjSz"
v-model="scope.row.dwgczjDtSz"
:min="0"
:max="99999999999.99999999"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column prop="dwgczjDw" label="单位" width="130">
<el-table-column prop="dwgczjDtDw" label="单位" width="130">
<template #default="scope">
<CommonSelector
v-model="scope.row.dwgczjDw"
v-model="scope.row.dwgczjDtDw"
dictName="gczjdw"
/>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="单位工程造价(静态)">
<el-table-column prop="dwgczjJtSz" label="数值" width="180">
<template #default="scope">
<el-input
v-model="scope.row.dwgczjJtSz"
:min="0"
:max="99999999999.99999999"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column prop="dwgczjJtDw" label="单位" width="130">
<template #default="scope">
<CommonSelector
v-model="scope.row.dwgczjJtDw"
dictName="gczjdw"
/>
</template>
......@@ -153,6 +173,151 @@
<el-input v-model="scope.row.dwsjDw" />
</template>
</el-table-column>
<el-table-column label="其中:机制电量部分">
<el-table-column
prop="dwsjJzdlJqpjdj"
label="加权平均电价"
width="150"
>
<template #default="scope">
<el-input v-model="scope.row.dwsjJzdlJqpjdj" />
</template>
</el-table-column>
<el-table-column
prop="dwsjJzdlDlzb"
label="电量占比"
width="120"
>
<template #default="scope">
<el-input v-model="scope.row.dwsjJzdlDlzb" />
</template>
</el-table-column>
<el-table-column
prop="dwsjJzdlZxqx"
label="执行期限"
width="120"
>
<template #default="scope">
<el-input v-model="scope.row.dwsjJzdlZxqx" />
</template>
</el-table-column>
</el-table-column>
<el-table-column label="其中:中长期交易电量部分">
<el-table-column
prop="dwsjZcqjyJqpjdj"
label="加权平均电价"
width="150"
>
<template #default="scope">
<el-input v-model="scope.row.dwsjZcqjyJqpjdj" />
</template>
</el-table-column>
<el-table-column
prop="dwsjZcqjyDlzb"
label="电量占比"
width="120"
>
<template #default="scope">
<el-input v-model="scope.row.dwsjZcqjyDlzb" />
</template>
</el-table-column>
<el-table-column
prop="dwsjZcqjyZxqx"
label="执行期限"
width="120"
>
<template #default="scope">
<el-input v-model="scope.row.dwsjZcqjyZxqx" />
</template>
</el-table-column>
</el-table-column>
<el-table-column label="其中:现货交易电量部分">
<el-table-column
prop="dwsjXhjyJqpjdj"
label="加权平均电价"
width="150"
>
<template #default="scope">
<el-input v-model="scope.row.dwsjXhjyJqpjdj" />
</template>
</el-table-column>
<el-table-column
prop="dwsjXhjyDlzb"
label="电量占比"
width="120"
>
<template #default="scope">
<el-input v-model="scope.row.dwsjXhjyDlzb" />
</template>
</el-table-column>
<el-table-column
prop="dwsjXhjyZxqx"
label="执行期限"
width="120"
>
<template #default="scope">
<el-input v-model="scope.row.dwsjXhjyZxqx" />
</template>
</el-table-column>
</el-table-column>
<el-table-column label="其中:绿色价值部分">
<el-table-column
prop="dwsjLsjzJqpjdj"
label="加权平均电价"
width="150"
>
<template #default="scope">
<el-input v-model="scope.row.dwsjLsjzJqpjdj" />
</template>
</el-table-column>
<el-table-column
prop="dwsjLsjzDlzb"
label="电量占比"
width="120"
>
<template #default="scope">
<el-input v-model="scope.row.dwsjLsjzDlzb" />
</template>
</el-table-column>
<el-table-column
prop="dwsjLsjzZxqx"
label="执行期限"
width="120"
>
<template #default="scope">
<el-input v-model="scope.row.dwsjLsjzZxqx" />
</template>
</el-table-column>
</el-table-column>
<el-table-column label="其中:市场运营费用(分摊费)">
<el-table-column
prop="dwsjScyyJqpjdj"
label="加权平均电价"
width="150"
>
<template #default="scope">
<el-input v-model="scope.row.dwsjScyyJqpjdj" />
</template>
</el-table-column>
<el-table-column
prop="dwsjScyyDlzb"
label="电量占比"
width="120"
>
<template #default="scope">
<el-input v-model="scope.row.dwsjScyyDlzb" />
</template>
</el-table-column>
<el-table-column
prop="dwsjScyyZxqx"
label="执行期限"
width="120"
>
<template #default="scope">
<el-input v-model="scope.row.dwsjScyyZxqx" />
</template>
</el-table-column>
</el-table-column>
</el-table-column>
<el-table-column label="盈亏平衡点">
<el-table-column prop="ykphdlx" label="类型" width="130">
......@@ -215,7 +380,7 @@
<CommonSelector v-model="scope.row.hylx" dictName="hylx" />
</template>
</el-table-column>
<el-table-column prop="hymc" label="会议名称">
<el-table-column prop="hymc" label="会议届次">
<template #default="scope">
<el-input v-model="scope.row.hymc" />
</template>
......@@ -298,7 +463,7 @@
<CommonSelector v-model="scope.row.hylx" dictName="hylx" />
</template>
</el-table-column>
<el-table-column prop="hymc" label="会议名称">
<el-table-column prop="hymc" label="会议届次">
<template #default="scope">
<el-input v-model="scope.row.hymc" />
</template>
......@@ -376,7 +541,7 @@
</el-collapse-item>
<el-collapse-item title="项目批复信息" name="项目批复信息">
<el-row :gutter="20">
<el-col :span="8">
<el-col :span="6">
<el-form-item label="最终审批意见" label-width="160">
<CommonSelector
v-model="jcFormData.jczzpfyj"
......@@ -384,7 +549,7 @@
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="项目批复时间">
<el-date-picker
v-model="jcFormData.jcxmpfsj"
......@@ -393,12 +558,12 @@
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="项目批复文号">
<el-input v-model="jcFormData.jcxmpfwh" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-col :span="6">
<el-form-item label="审核处室" label-width="160">
<el-input v-model="jcFormData.jcpfshcs" />
</el-form-item>
......@@ -452,7 +617,7 @@
/>
</template>
</el-table-column>
<el-table-column label="执行回复" prop="zxhf">
<!-- <el-table-column label="执行回复" prop="zxhf">
<template #default="scope">
<el-input v-model="scope.row.zxhf" type="textarea" />
</template>
......@@ -493,7 +658,7 @@
</span>
</div>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column label="操作" width="60" fixed="right">
<template #default="scope">
<el-button
......
......@@ -3,10 +3,6 @@
<div class="tab-content">
<el-form :model="jcFormData" :label-width="150" :disabled="isPreview">
<el-collapse v-model="activeCollapse">
<el-collapse-item title="投评报告及测算表" name="投评报告及测算表">
<FileUploader v-model="jcFormData.tpbgjcsb" />
</el-collapse-item>
<el-collapse-item title="投决计划" name="投决计划">
<div class="tab-handle">
<el-button
......@@ -383,6 +379,12 @@
</el-table-column>
</el-table>
</el-collapse-item>
<el-collapse-item
title="投资各方现金流量表"
name="投资各方现金流量表"
>
<FileUploader v-model="jcFormData.tpbgjcsb" />
</el-collapse-item>
</el-collapse>
</el-form>
</div>
......
......@@ -403,11 +403,18 @@ export function useJueceData(jcFormData, gdlxListRef) {
},
],
},
{
xh: "4",
zb: "单位工程造价",
dw: "万元",
key: "2.4",
parentKey: "2",
},
],
},
{
xh: "",
zb: "批复总资",
zb: "批复总资",
dw: "万元",
key: "3",
},
......@@ -453,6 +460,8 @@ export function useJueceData(jcFormData, gdlxListRef) {
ykphddw: "%",
xsfwnlDw: "万元",
dwscfwzcbDw: "万元",
dwgczjDtDw: "元/km",
dwgczjJtDw: "元/km",
});
};
const deleteJchxbjtj = (index) => {
......@@ -511,6 +520,7 @@ export function useJueceData(jcFormData, gdlxListRef) {
};
// 申请报告
let bhqkData = reactive([
{ lx: "投标保证金", tjzt: "", je: null, tjsj: "", thsj: "" },
{ lx: "投资人履约保函", tjzt: "", je: null, tjsj: "", thsj: "" },
......
......@@ -139,7 +139,7 @@ export function useLixiangData(formData, gdlxListRef) {
children: [
{
xh: "2.1",
zb: "其中:并非表项目我方贷款/投保额",
zb: "其中:非并表项目我方贷款/担保额",
dw: "万元",
key: "2.1",
parentKey: "2",
......@@ -163,7 +163,7 @@ export function useLixiangData(formData, gdlxListRef) {
},
{
xh: "",
zb: "批复总资",
zb: "批复总资",
dw: "万元",
key: "4",
},
......
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