pan
6 天以前 a7b15461d3dc6d07c18e065fa3a6acd234c2d7c8
ÏîÄ¿´úÂë/WIDESEA_WMSClient/src/views/inbound/Dt_AllocateOrder.vue
@@ -1,6 +1,7 @@
<template>
  <view-grid
    ref="gridRef"
    ref="grid"
    @openPalletDialog="handleOpenPalletDialog"
    :columns="columns"
    :detail="detail"
    :editFormFields="editFormFields"
@@ -11,30 +12,36 @@
    :extend="extend"
  >
  </view-grid>
      <!-- 2. ç»„盘弹窗:确保props和事件绑定正确 -->
    <PalletDialog
      v-model:visible="palletVisible"
      :docNo="currentPalletDocNo"
      @back-success="handlePalletBackSuccess"
    ></PalletDialog>
</template>
<script>
import extend from "@/extension/inbound/Dt_AllocateOrder.js";
import ViewGrid from '@/components/basic/ViewGrid/ViewGrid.vue';
    <script>
import extend from "@/extension/inbound/Dt_AllocateOrder.js";
import ViewGrid from '@/components/basic/ViewGrid/ViewGrid.vue';
import { ref, defineComponent } from "vue";
import PalletDialog from "@/extension/inbound/extend/AllocatedPallet.vue";
export default defineComponent({
  components: {
    viewGrid: ViewGrid,
    PalletDialog
   components: {
    // å…³é”®ä¿®å¤2:组件注册名与模板标签名适配(kebab-case对应view-grid)
    viewGrid: ViewGrid,  // æ³¨å†Œä¸ºkebab-case,模板用<view-grid>
    PalletDialog      // æ³¨å†Œç»„盘弹窗
  },
  setup() {
    // è¡¨æ ¼åŸºç¡€é…ç½®ï¼šå¯¹é½è°ƒæ‹¨å•实体
    const table = ref({
      key: "id",
      footer: "Foots",
      cnName: "调拨单",
      name: "allocateOrder",
      url: "/allocateOrder/", // åŽç«¯æŽ¥å£è·¯å¾„需与调拨单接口匹配
      name: "AllocateOrder",
      url: "/AllocateOrder/",
      sortName: "id",
    });
    // ç¼–辑表单字段:对应Dt_AllocateOrder可编辑属性
    const editFormFields = ref({
      orderNo: "",
      upperOrderNo: "",
@@ -48,7 +55,6 @@
      remark: "",
    });
    // ç¼–辑表单配置:按实体字段类型设置组件
    const editFormOptions = ref([
      [
        {
@@ -72,7 +78,7 @@
          title: "订单类型",
          field: "orderType",
          type: "select",
          dataKey: "allocateOrderType", // è°ƒæ‹¨å•专属枚举key
          dataKey: "allocateOrderType",
          data: [],
          required: true,
        },
@@ -88,7 +94,7 @@
          title: "来源仓库",
          field: "fromWarehouse",
          type: "select",
          dataKey: "warehouses", // ä»“库枚举key(复用或单独配置)
          dataKey: "warehouses",
          data: [],
          required: true,
        },
@@ -121,7 +127,7 @@
      ],
    ]);
    // æœç´¢è¡¨å•字段:对应Dt_AllocateOrder查询属性
    const searchFormFields = ref({
      orderNo: "",
      upperOrderNo: "",
@@ -137,7 +143,7 @@
      createDate: "",
    });
    // æœç´¢è¡¨å•配置:按查询需求设置字段类型
    const searchFormOptions = ref([
      [
        { title: "单据编号", field: "orderNo", type: "like" },
@@ -179,7 +185,7 @@
      ],
    ]);
    // ä¸»è¡¨æ ¼åˆ—配置:完全对齐Dt_AllocateOrder字段
    const columns = ref([
      {
        field: "id",
@@ -196,7 +202,6 @@
        type: "string",
        width: 120,
        align: "left",
        link: true,
      },
      {
        field: "upperOrderNo",
@@ -338,11 +343,11 @@
          width: 150,
          align: "left",
          required: true,
          dataKey: "materielCodes", // ç‰©æ–™ç¼–码枚举key
          dataKey: "materielCodes",
          data: [],
        },
        {
          field: "materielName", // å®žä½“中无该字段,需后端关联返回或调整为bind映射
          field: "materielName",
          title: "物料名称",
          type: "string",
          width: 100,
@@ -458,6 +463,21 @@
      key: "id",
    });
    // 6. ç»„盘弹窗联动(所有变量必须返回)
    const palletVisible = ref(false);
    const currentPalletDocNo = ref("");
    const handleOpenPalletDialog = (docNo) => {
      console.log('主组件收到组盘事件,单据号:', docNo);
      currentPalletDocNo.value = docNo;
      palletVisible.value = true;
    };
    const handlePalletBackSuccess = () => {
      console.log('组盘回传成功,刷新表格');
      grid.value?.refresh();  // æ­¤æ—¶gridRef已挂载,可调用方法
    };
    return {
      table,
      extend,
@@ -467,11 +487,12 @@
      searchFormOptions,
      columns,
      detail,
       // ç»„盘弹窗相关
      PalletDialog,    // å¼¹çª—组件(无需返回,注册即可,但变量需返回)
      palletVisible,
      currentPalletDocNo,
      handleOpenPalletDialog,
      handlePalletBackSuccess,
      gridRef
      handlePalletBackSuccess
    };
  },
});