heshaofeng
7 天以前 ca3e4977395bc02c5d147dffdff7381333fdfbca
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
// 自定义扩展业务代码
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;