批量优化产品和产品分类

This commit is contained in:
2026-09-12 00:44:13 +08:00
parent 184c604bee
commit 2b1874943f
33 changed files with 2595 additions and 59 deletions
+22 -19
View File
@@ -3,7 +3,7 @@
<div class="page-header">
<div>
<h2>合同管理</h2>
<p>进度式创建合同,绑定项目或无头合同,管理甲乙丙丁各方与产品清单</p>
<p>进度式创建合同,绑定项目或无头合同</p>
</div>
<div class="header-actions">
<el-button :icon="Refresh" @click="fetchList">刷新</el-button>
@@ -73,12 +73,19 @@
<div class="table-container" v-loading="loading">
<el-table :data="tableData" stripe border row-key="id">
<el-table-column label="状态" width="90" align="center" fixed>
<template #default="{ row }">
<el-tag :type="contractStatusTag(row.status)" size="small">
{{ contractStatusText(row.status) }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="contract_no" label="合同编号" width="150" show-overflow-tooltip />
<el-table-column label="合同名称" min-width="190" show-overflow-tooltip fixed>
<template #default="{ row }">
<span class="name-link" @click="openRow(row)">
{{ row.contract_name }}
<el-tag v-if="Number(row.status) === 1" size="small" type="warning" effect="light">草稿</el-tag>
<!-- <el-tag v-if="Number(row.status) === 1" size="small" type="warning" effect="light">草稿</el-tag> -->
</span>
</template>
</el-table-column>
@@ -95,12 +102,6 @@
{{ row.project_name || "无" }}
</template>
</el-table-column>
<el-table-column label="甲方" min-width="150" show-overflow-tooltip>
<template #default="{ row }">{{ partyName(row, "party_a") }}</template>
</el-table-column>
<el-table-column label="乙方" min-width="150" show-overflow-tooltip>
<template #default="{ row }">{{ partyName(row, "party_b") }}</template>
</el-table-column>
<el-table-column label="合同总金额" width="130" align="right">
<template #default="{ row }">
{{ formatMoney(row.summary?.total_amount ?? row.total_amount) }}
@@ -117,18 +118,8 @@
<el-table-column label="签订日期" width="110" align="center">
<template #default="{ row }">{{ formatDateOnly(row.sign_date) }}</template>
</el-table-column>
<el-table-column label="状态" width="90" align="center">
<el-table-column label="操作" width="190" align="center" class-name="op-col" fixed="right">
<template #default="{ row }">
<el-tag :type="contractStatusTag(row.status)" size="small">
{{ contractStatusText(row.status) }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="180" align="center" fixed="right">
<template #default="{ row }">
<el-button link type="primary" size="small" @click="openEdit(row)">
{{ Number(row.status) === 1 ? "继续填写" : "编辑" }}
</el-button>
<!-- 状态流转:草稿 / 已完成 / 履约中 / 执行异常 / 已作废 互切 -->
<el-dropdown trigger="click" @command="(cmd) => handleChangeStatus(row, cmd)">
<el-button link type="warning" size="small">
@@ -146,6 +137,9 @@
</el-dropdown-menu>
</template>
</el-dropdown>
<el-button link type="primary" size="small" @click="openEdit(row)">
编辑
</el-button>
<el-button link type="danger" size="small" @click="handleDelete(row)">删除</el-button>
</template>
</el-table-column>
@@ -368,4 +362,13 @@ async function handleDelete(row) {
}
}
}
/* 操作列:强制水平居中(多按钮换行也整体居中) */
:deep(.el-table .op-col .cell) {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
gap: 4px;
}
</style>