Files
tms-erp-web/src/views/settlement/pre-settlement-form.vue
T
b2894lxlx 6f2383a7e5 ✨ 结算付款体验优化与合同/运单导入校验
付款申请汇票筛选与提示去重、结算菜单拆分与金蝶同步弹框、应收应付详情高度、合同计费与半月结调整,以及导入运单批量删除校验。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-18 05:12:26 +08:00

93 lines
2.3 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<basic-container class="pre-settlement-form-page">
<div class="pre-settlement-form-page__title">{{ pageTitle }}</div>
<!-- 新增来源明细可直接调整:计费试算走独立接口,调整结果先暂存,保存预付结算单时再落库。 -->
<pre-settlement-editor
v-model="editorVisible"
page-mode
:record-id="recordId"
:initial-data="transferPayload"
@success="handleSuccess"
/>
</basic-container>
</template>
<script>
import PreSettlementEditor from './components/pre-settlement-editor.vue';
import { readSettlementTransfer, removeSettlementTransfer } from '@/utils/settlement-transfer';
export default {
name: 'PreSettlementForm',
components: { PreSettlementEditor },
data() {
return {
editorVisible: true,
savedRecordId: '',
transferPayload: null,
};
},
computed: {
recordId() {
return this.$route.query.id || '';
},
pageTitle() {
return this.recordId || this.savedRecordId ? '编辑预付结算单' : '新增预付结算单';
},
},
watch: {
editorVisible(value) {
if (!value) this.goBack();
},
},
created() {
this.transferPayload = readSettlementTransfer(this.$route.query.transferToken);
this.syncTagTitle();
},
methods: {
handleSuccess(recordId) {
this.savedRecordId = recordId || this.savedRecordId;
this.syncTagTitle();
},
goBack() {
removeSettlementTransfer(this.$route.query.transferToken);
this.$router.$avueRouter.closeTag();
this.$router.push('/settlement/pre-settlement');
},
syncTagTitle() {
this.$nextTick(() => {
this.$store.commit('SET_TAG', {
fullPath: this.$route.fullPath,
name: this.pageTitle,
});
this.$router.$avueRouter.setTitle(this.pageTitle);
});
},
},
};
</script>
<style lang="scss" scoped>
.pre-settlement-form-page {
&__title {
display: flex;
align-items: center;
min-height: 24px;
margin-bottom: 16px;
font-size: 18px;
font-weight: 600;
&::before {
width: 4px;
height: 20px;
margin-right: 8px;
background: #409eff;
content: '';
}
}
}
:deep(.pre-settlement-form-page.basic-container .basic-container__card > .el-card__body) {
padding: 0;
}
</style>