// 自定义扩展业务代码 import gridBody from "./extend/OrderStockTake.vue"; import gridHeader from "./extend/TakeStockSelect.vue"; import gridFooter from "./extend/StockTakeGroupPallet.vue"; let extension = { components: { // 查询界面扩展组件:将自定义弹窗注册为 gridBody 组件 gridHeader: gridHeader, gridBody: gridBody, // 对应你的盘点弹窗组件 gridFooter: gridFooter, // 新建/编辑弹出框扩展组件(此处不用,留空) modelHeader: '', modelBody: '', modelFooter: '' }, tableAction: '', // 无需指定表名(默认适用当前页面表格) buttons: { view: [], box: [], detail: [] }, // 扩展按钮(如需额外添加可在此配置) methods: { onInit() { let OrderStockTakeBtn = this.buttons.find(x => x.value === 'OrderStockTake'); if (OrderStockTakeBtn) { // 重写按钮点击事件 OrderStockTakeBtn.onClick = function () { this.$refs.gridBody.open(); }; } let OutOrderStockTakeBtn = this.buttons.find(x => x.value === 'OutOrderStockTake'); if (OutOrderStockTakeBtn) { // 重写按钮点击事件 OutOrderStockTakeBtn.onClick = function () { this.$refs.gridHeader.open(); }; } let StockTakeGroupPalletBtn = this.buttons.find(x => x.value === 'StockTakeGroupPallet'); if (StockTakeGroupPalletBtn) { // 重写按钮点击事件 StockTakeGroupPalletBtn.onClick = function () { this.$refs.gridFooter.open(); }; } // 4. 监听自定义弹窗的事件(同步主页面数据) this.$nextTick(() => { const stockTakeComp = this.$refs.gridBody; if (stockTakeComp) { // 监听弹窗的 "refresh" 事件(盘点完成后刷新主页面) stockTakeComp.$on('refresh', () => { this.$refs.table.reload(); // 刷新表格数据 }); // 监听弹窗的 "box-returned" 事件(料箱回库后可按需处理) stockTakeComp.$on('box-returned', (boxNo) => { this.$success(`料箱【${boxNo}】回库成功,表格将刷新!`); this.$refs.table.reload(); // 回库后也刷新表格(可选,根据业务需求) }); } }); }, onInited() { // 框架初始化完成后执行(如需配置明细表可在此操作) }, searchBefore(param) { // 查询前拦截:可添加额外查询条件(如权限过滤) return true; }, searchAfter(result) { // 查询后数据处理(如格式化日期、状态显示) return true; }, addBefore(formData) { // 新建保存前处理(此处不用) return true; }, updateBefore(formData) { // 编辑保存前处理(此处不用) return true; }, rowClick({ row, column, event }) { // 单击行选中当前行(优化用户体验) this.$refs.table.$refs.table.toggleRowSelection(row); }, modelOpenAfter(row) { // 新建/编辑弹窗打开后处理(此处不用) } } }; export default extension;