明树Git Lab

Commit 5ba1d38f authored by yangyajing's avatar yangyajing

费用分项控制、阶段对比表

parent 1dd94d13
Pipeline #106337 passed with stage
in 16 seconds
......@@ -29,6 +29,7 @@ axios.interceptors.response.use(response => {
});
export function $get ({ url, params = {}, callback, error }) {
const userStore = useUserStore();
return axios({
method: "get",
url: windowConfig.baseUrl + url,
......
......@@ -30,39 +30,46 @@
</el-collapse-item>
<el-collapse-item title="费用分项控制、阶段对比表" name="费用分项控制、阶段对比表">
<el-row :gutter="20">
<template v-if="fyfxkzIsEdit">
<el-col :span="6">
<el-form-item label="本期时间">
<el-form-item label="本期时间" required>
<el-date-picker
v-model="fyfxkzFormData.bqsj"
type="month"
placeholder="请选择"
:disabled="!!selectRange"
value-format="YYYY-MM"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="上期时间">
<el-form-item label="上期时间" required>
<el-date-picker
v-model="fyfxkzFormData.sqsj"
type="month"
placeholder="请选择"
:disabled="!!selectRange"
value-format="YYYY-MM"
/>
</el-form-item>
</el-col>
<el-col :span="6">
</el-col>
<el-col :span="6">
</template>
<el-col :span="6" :offset="fyfxkzIsEdit ? 6 : 18">
<div class="tab-handle">
<!-- 点击新增后,这里显示确认按钮 -->
<template v-if="fyfxkzIsEdit">
<el-button type="default" size="small" @click="cancelFyfxkz">取消</el-button>
<el-button type="primary" size="small" @click="saveFyfxkz">确定</el-button>
</template>
<template v-else>
<el-select v-model="selectRange" placeholder="请选择" no-data-text="暂无数据"
:style="{width: '200px', marginRight: '20px'}"
@change="changeRange"
>
<el-option v-for="item in rangeList" :key="item.id"
:label="item.name" :value="item.id"
<el-option v-for="item in rangeList" :key="item.key"
:label="item.key" :value="item.key"
></el-option>
</el-select>
<el-button v-if="selectRange" type="primary" size="small" @click="editFyfxkz">编辑</el-button>
<el-button type="primary" size="small" @click="addFyfxkz">新增</el-button>
</template>
</div>
</el-col>
</el-row>
......@@ -72,82 +79,82 @@
<el-table-column type="index" label="序号" width="60" />
<el-table-column prop="xm" label="项目" width="240">
<template #default="scope">
<el-input v-model="scope.row.xm" />
<el-input v-model="scope.row.xm" :disabled="!fyfxkzIsEdit"/>
</template>
</el-table-column>
<el-table-column prop="zbgs" label="招标估算" width="180">
<template #default="scope">
<el-input-number v-model="scope.row.zbgs" :min="0" :max="99999999999.99999999"
controls-position="right"
controls-position="right" :disabled="!fyfxkzIsEdit"
/>
</template>
</el-table-column>
<el-table-column prop="jcgs" label="决策估算" width="180">
<template #default="scope">
<el-input-number v-model="scope.row.jcgs" :min="0" :max="99999999999.99999999"
controls-position="right"
controls-position="right" :disabled="!fyfxkzIsEdit"
/>
</template>
</el-table-column>
<el-table-column prop="pfgusuan" label="批复估算" width="180">
<template #default="scope">
<el-input-number v-model="scope.row.pfgusuan" :min="0" :max="99999999999.99999999"
controls-position="right"
controls-position="right" :disabled="!fyfxkzIsEdit"
/>
</template>
</el-table-column>
<el-table-column prop="pfgs" label="批复概算" width="180">
<template #default="scope">
<el-input-number v-model="scope.row.pfgs" :min="0" :max="99999999999.99999999"
controls-position="right"
controls-position="right" :disabled="!fyfxkzIsEdit"
/>
</template>
</el-table-column>
<el-table-column prop="tkjgs" label="同口径概算" width="180">
<template #default="scope">
<el-input-number v-model="scope.row.tkjgs" :min="0" :max="99999999999.99999999"
controls-position="right"
controls-position="right" :disabled="!fyfxkzIsEdit"
/>
</template>
</el-table-column>
<el-table-column prop="pfys" label="批复预算" width="180">
<template #default="scope">
<el-input-number v-model="scope.row.pfys" :min="0" :max="99999999999.99999999"
controls-position="right"
controls-position="right" :disabled="!fyfxkzIsEdit"
/>
</template>
</el-table-column>
<el-table-column prop="zbqy" label="招标签约" width="180">
<template #default="scope">
<el-input-number v-model="scope.row.zbqy" :min="0" :max="99999999999.99999999"
controls-position="right"
controls-position="right" :disabled="!fyfxkzIsEdit"
/>
</template>
</el-table-column>
<el-table-column prop="sqyc" label="上期预测" width="180">
<template #default="scope">
<el-input-number v-model="scope.row.sqyc" :min="0" :max="99999999999.99999999"
controls-position="right"
controls-position="right" :disabled="!fyfxkzIsEdit"
/>
</template>
</el-table-column>
<el-table-column prop="bqyc" label="本期预测" width="180">
<template #default="scope">
<el-input-number v-model="scope.row.bqyc" :min="0" :max="99999999999.99999999"
controls-position="right"
controls-position="right" :disabled="!fyfxkzIsEdit"
/>
</template>
</el-table-column>
<el-table-column prop="bqjsq" label="本期-上期" width="180">
<template #default="scope">
<el-input-number v-model="scope.row.bqjsq" :min="0" :max="99999999999.99999999"
controls-position="right"
controls-position="right" :disabled="!fyfxkzIsEdit"
/>
</template>
</el-table-column>
<el-table-column prop="cysm" label="本期较上期差异原因说明" width="240">
<template #default="scope">
<el-input v-model="scope.row.cysm" type="textarea" />
<el-input v-model="scope.row.cysm" type="textarea" :disabled="!fyfxkzIsEdit" />
</template>
</el-table-column>
</el-table>
......@@ -440,6 +447,7 @@
}
];
let fyfxkzData = ref([]);
let fyfxkzIsEdit = ref(false);
let isPreview = !!route.query.isPreview;
let controlId = route.query.controlId;
......@@ -453,24 +461,98 @@
callback: (res) => {
loading.value = false;
Object.assign(formData, res);
// TODO 费用分项控制、阶段对比表,获取到全周期的数据,默认显示最新的
if (res.tzkztzekzs && res.tzkztzekzs.length) {
rangeList.value = res.tzkztzekzs.map(item => {
return {
...item,
bqsj: proxy.moment(item.bqsj).format("YYYY-MM"),
sqsj: proxy.moment(item.sqsj).format("YYYY-MM")
}
});
selectRange.value = res.tzkztzekzs[0].key;
fyfxkzData.value = res.tzkztzekzs[0].tables;
}
Object.assign(pfyjlsqkData.value, res.tzkzjcpfyjs);
Object.assign(mbpcData.value, res.qtjsmbzdpc);
Object.assign(cwpjData.value, res.tzkzcwpjs);
Object.assign(tzsyData.value, res.tzkztzsys);
}
});
}
};
onMounted(() => {
getProjectData();
if (controlId) {
getControlInfo();
fyfxkzIsEdit.value = false;
} else {
fyfxkzData.value = fyfxkzDefaultData;
fyfxkzData.value = JSON.parse(JSON.stringify(fyfxkzDefaultData));
fyfxkzIsEdit.value = true;
}
});
// 新增费用分项控制、阶段对比表
const addFyfxkz = () => {
selectRange.value = "";
fyfxkzIsEdit.value = true;
fyfxkzData.value = JSON.parse(JSON.stringify(fyfxkzDefaultData));
};
const editFyfxkz = () => {
fyfxkzIsEdit.value = true;
let selectData = rangeList.value.filter(item => item.key === selectRange.value);
fyfxkzFormData.bqsj = selectData[0].bqsj;
fyfxkzFormData.sqsj = selectData[0].sqsj;
};
const saveFyfxkz = () => {
if (fyfxkzFormData.bqsj && fyfxkzFormData.sqsj) {
if (selectRange.value) {
rangeList.value = rangeList.value.map(item => {
if (item.key === selectRange.value) {
selectRange.value = fyfxkzFormData.bqsj + "至" + fyfxkzFormData.sqsj;
return {
bqsj: fyfxkzFormData.bqsj,
sqsj: fyfxkzFormData.sqsj,
key: fyfxkzFormData.bqsj + "至" + fyfxkzFormData.sqsj,
tables: fyfxkzData.value
}
} else {
return {
...item
};
}
})
} else {
rangeList.value.push({
bqsj: fyfxkzFormData.bqsj,
sqsj: fyfxkzFormData.sqsj,
key: fyfxkzFormData.bqsj + "至" + fyfxkzFormData.sqsj,
tables: fyfxkzData.value
});
}
fyfxkzIsEdit.value = false;
if (!selectRange.value) {
selectRange.value = rangeList.value[0].key;
fyfxkzData.value = rangeList.value[0].tables;
} else {
let selectData = rangeList.value.filter(item => item.key === selectRange.value);
fyfxkzData.value = selectData.length ? selectData[0].tables : [];
}
} else {
ElMessage.warning("请补充本期及上期时间");
}
}
const cancelFyfxkz = () => {
if (selectRange.value) {
fyfxkzData.value = rangeList.value[0].tables;
} else if (formData.id) {
fyfxkzData.value = [];
} else {
fyfxkzData.value = JSON.parse(JSON.stringify(fyfxkzDefaultData));
}
fyfxkzIsEdit.value = false;
}
const changeRange = (val) => {
fyfxkzData.value = rangeList.value.filter(item => item.key === val)[0].tables;
};
// 项目批复意见落实情况
let pfyjlsqkData = ref([]);
......@@ -625,13 +707,18 @@
router.back(-1)
}
const saveClick = () => {
if (formData.projectId) {
if (!formData.projectId) {
return ElMessage.warning("请选择项目信息");
}
if (fyfxkzIsEdit.value) {
return ElMessage.warning("请先保存正在添加的费用分项控制、阶段对比表");
}
let url = formData.id ? "updateTzkz" : "createTzkz";
proxy.$post({
url: "/api/project/" + url,
data: {
...formData,
// tzkztzekzs: fyfxkzData.value,
tzkztzekzs: rangeList.value,
tzkzjcpfyjs: pfyjlsqkData.value,
qtjsmbzdpc: mbpcData.value,
tzkzcwpjs: cwpjData.value,
......@@ -640,10 +727,7 @@
callback: (data) => {
router.back(-1)
}
})
} else {
ElMessage.warning("请选择项目信息");
}
});
}
</script>
......
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