refactor(clientquote): 优化操作列布局,将多余按钮收拢到下拉菜单

1. 移除操作列固定宽度,改为自适应宽度
2. 将原有的多个文本按钮整合为下拉菜单,精简页面布局
3. 新增handleMoreCmd方法统一处理下拉菜单命令
4. 新增物料表初始化SQL脚本
This commit is contained in:
2026-06-15 17:12:52 +08:00
parent 41954f6ef1
commit bc15ebf594
2 changed files with 126 additions and 5 deletions

View File

@@ -82,14 +82,21 @@
</el-table-column>
<el-table-column label="创建人" prop="createBy" width="90" align="center" />
<el-table-column label="创建时间" prop="createTime" width="155" align="center" />
<el-table-column label="操作" width="260" align="center" fixed="right">
<el-table-column label="操作" fixed="right">
<template slot-scope="s">
<el-button size="mini" type="text" @click="handleView(s.row)">查看</el-button>
<el-button size="mini" type="text" @click="handleUpdate(s.row)">编辑</el-button>
<el-button size="mini" type="text" @click="handleQuickCreate(s.row)">快速新建</el-button>
<el-button size="mini" type="text" style="color:#67C23A" @click="handleCreateRfq(s.row)">生成RFQ</el-button>
<el-button size="mini" type="text" style="color:#4A6FA5" @click="handleCreateDelivery(s.row)" v-if="s.row.status==='confirmed'">生成发货单</el-button>
<el-button size="mini" type="text" style="color:#f56c6c" @click="handleDelete(s.row)" v-if="s.row.status==='draft'">删除</el-button>
<el-dropdown size="mini" trigger="click" @command="(cmd) => handleMoreCmd(cmd, s.row)" style="margin-left:4px">
<el-button size="mini" type="text">
更多<i class="el-icon-arrow-down el-icon--right"></i>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="quickCreate">快速新建</el-dropdown-item>
<el-dropdown-item command="createRfq">生成RFQ</el-dropdown-item>
<el-dropdown-item command="createDelivery" v-if="s.row.status==='confirmed'">生成发货单</el-dropdown-item>
<el-dropdown-item command="delete" v-if="s.row.status==='draft'" divided>删除</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
@@ -320,6 +327,12 @@ export default {
});
}).then(() => { this.$modal.msgSuccess("甲方发货单已生成"); this.getList() }).catch(e => { if (e.message) this.$modal.msgError(e.message) });
},
handleMoreCmd(cmd, row) {
if (cmd === 'quickCreate') this.handleQuickCreate(row);
else if (cmd === 'createRfq') this.handleCreateRfq(row);
else if (cmd === 'createDelivery') this.handleCreateDelivery(row);
else if (cmd === 'delete') this.handleDelete(row);
},
handleDelete(row) { this.$modal.confirm("确认删除【" + row.quoteNo + "】?").then(() => delClientQuote(row.quoteId)).then(() => { this.$modal.msgSuccess("删除成功"); this.getList(); this.getStats(); }); },
loadRfqForDetail(quoteId) { this.detailRfqLoading = true; listRfq({ clientQuoteId: quoteId, pageSize: 50 }).then(r => { this.detailRfqList = r.rows || []; this.detailRfqLoading = false; }).catch(() => { this.detailRfqLoading = false; }); },
viewRfqDetail(rfq) { this.detailOpen = false; this.$router.push({ path: '/bid/rfq/detail', query: { rfqId: rfq.rfqId } }); },