1
647556386
2025-12-25 dc1a2cac65d1abadabda8b5fb3977199100d2cb3
ÏîÄ¿´úÂë/WIDESEA_WMSClient/src/views/outbound/allocateoutboundOrder.vue
@@ -1,39 +1,15 @@
<template>
  <view-grid
    ref="grid"
        @openOutboundDialog="handleOpenOutboundDialog"
    :columns="columns"
    :detail="detail"
    :editFormFields="editFormFields"
    :editFormOptions="editFormOptions"
    :searchFormFields="searchFormFields"
    :searchFormOptions="searchFormOptions"
    :table="table"
    :extend="extend"
  >
  <view-grid ref="grid" @openOutboundDialog="handleOpenOutboundDialog" :columns="columns" :detail="detail"
    :editFormFields="editFormFields" :editFormOptions="editFormOptions" :searchFormFields="searchFormFields"
    :searchFormOptions="searchFormOptions" :table="table" :extend="extend">
  </view-grid>
      <!-- å‡ºåº“操作弹窗 -->
    <OutboundDialog
      v-model:visible="outboundVisible"
      :selected-document="selectedOutboundDocument"
      @outbound-success="handleOutboundSuccess"
    ></OutboundDialog>
</template>
    <script>
<script>
import extend from "@/extension/outbound/allocateoutboundOrder.js";
import ViewGrid from '@/components/basic/ViewGrid/ViewGrid.vue';
import { ref, defineComponent } from "vue";
import { ElMessage } from "element-plus";
import OutboundDialog from "@/extension/outbound/extend/OutBound.vue";  // å¼•入出库弹窗组件
export default defineComponent({
   components: {
    // å…³é”®ä¿®å¤2:组件注册名与模板标签名适配(kebab-case对应view-grid)
    viewGrid: ViewGrid,  // æ³¨å†Œä¸ºkebab-case,模板用<view-grid>
    OutboundDialog  // æ³¨å†Œå‡ºåº“弹窗组件
  },
  setup() {
    const table = ref({
      key: "id",
@@ -45,11 +21,11 @@
    });
    const editFormFields = ref({
      orderType: "",
      orderNo:"",
      orderNo: "",
      upperOrderNo: "",
      orderStatus: "",
      remark: "",
      warehouseId:""
      warehouseId: ""
    });
    const editFormOptions = ref([
      [
@@ -62,11 +38,11 @@
          data: [],
        },
        {
        field: "orderNo",
        title: "单据编号",
        type: "string",
        readonly:true
      },
          field: "orderNo",
          title: "单据编号",
          type: "string",
          readonly: true
        },
        {
          title: "上游单据编号",
          field: "upperOrderNo",
@@ -220,7 +196,7 @@
        type: "string",
        width: 120,
        align: "left",
        hidden:true
        hidden: true
      },
      {
        field: "departmentName",
@@ -401,41 +377,41 @@
      sortName: "id",
      key: "id",
    });
      // è°ƒæ‹¨å¼¹çª—相关
    const outboundVisible = ref(false);
    const selectedOutboundDocument = ref({});  // å­˜å‚¨é€‰ä¸­çš„调拨单数据
    // è°ƒæ‹¨å¼¹çª—相关
    // const outboundVisible = ref(false);
    // const selectedOutboundDocument = ref({});  // å­˜å‚¨é€‰ä¸­çš„调拨单数据
    // æ‰“开调拨弹窗(从扩展配置的按钮事件触发)
    const handleOpenOutboundDialog = (docData) => {
      selectedOutboundDocument.value = docData;  // ä¿å­˜é€‰ä¸­çš„单据数据
      outboundVisible.value = true;  // æ˜¾ç¤ºå¼¹çª—
    };
    // // æ‰“开调拨弹窗(从扩展配置的按钮事件触发)
    // const handleOpenOutboundDialog = (docData) => {
    //   selectedOutboundDocument.value = docData;  // ä¿å­˜é€‰ä¸­çš„单据数据
    //   outboundVisible.value = true;  // æ˜¾ç¤ºå¼¹çª—
    // };
    // è°ƒæ‹¨æˆåŠŸåŽçš„å›žè°ƒ
    const handleOutboundSuccess = (docNo) => {
      ElMessage.success(`单据 ${docNo} è°ƒæ‹¨æˆåŠŸ`);
      gridRef.value?.refresh();  // åˆ·æ–°è¡¨æ ¼æ•°æ®
    };
    // // è°ƒæ‹¨æˆåŠŸåŽçš„å›žè°ƒ
    // const handleOutboundSuccess = (docNo) => {
    //   ElMessage.success(`单据 ${docNo} è°ƒæ‹¨æˆåŠŸ`);
    //   gridRef.value?.refresh();  // åˆ·æ–°è¡¨æ ¼æ•°æ®
    // };
    // åˆå§‹åŒ–扩展配置:为调拨按钮添加事件触发逻辑
    const initExtension = () => {
      // æ‰¾åˆ°"调拨"按钮并绑定打开弹窗的逻辑
      const outboundBtn = extend.buttons.view.find(btn => btn.name === '出库');
      if (outboundBtn) {
        const originalOnClick = outboundBtn.onClick;
        outboundBtn.onClick = function() {
          // å…ˆæ‰§è¡ŒåŽŸæœ‰æ ¡éªŒé€»è¾‘
          const selectedRows = this.$refs.table.getSelected();
          if (selectedRows.length === 1) {
            // æ ¡éªŒé€šè¿‡åŽï¼Œè§¦å‘主组件的出库弹窗事件
            this.$emit('openOutboundDialog', selectedRows[0]);
          } else {
            // åŽŸæœ‰é€»è¾‘å·²å¤„ç†æç¤ºï¼Œæ— éœ€é‡å¤
            originalOnClick.call(this);
          }
        };
      }
    };
    // // åˆå§‹åŒ–扩展配置:为调拨按钮添加事件触发逻辑
    // const initExtension = () => {
    //   // æ‰¾åˆ°"调拨"按钮并绑定打开弹窗的逻辑
    //   const outboundBtn = extend.buttons.view.find(btn => btn.name === '出库');
    //   if (outboundBtn) {
    //     const originalOnClick = outboundBtn.onClick;
    //     outboundBtn.onClick = function () {
    //       // å…ˆæ‰§è¡ŒåŽŸæœ‰æ ¡éªŒé€»è¾‘
    //       const selectedRows = this.$refs.table.getSelected();
    //       if (selectedRows.length === 1) {
    //         // æ ¡éªŒé€šè¿‡åŽï¼Œè§¦å‘主组件的出库弹窗事件
    //         this.$emit('openOutboundDialog', selectedRows[0]);
    //       } else {
    //         // åŽŸæœ‰é€»è¾‘å·²å¤„ç†æç¤ºï¼Œæ— éœ€é‡å¤
    //         originalOnClick.call(this);
    //       }
    //     };
    //   }
    // };
    return {
      table,
      extend,
@@ -445,11 +421,11 @@
      searchFormOptions,
      columns,
      detail,
       // å‡ºåº“相关
      outboundVisible,
      selectedOutboundDocument,
      handleOpenOutboundDialog,
      handleOutboundSuccess
      // å‡ºåº“相关
      // outboundVisible,
      // selectedOutboundDocument,
      // handleOpenOutboundDialog,
      // handleOutboundSuccess
    };
  },
});