刘磊
2025-08-25 4c308eab6106324bd40e6ad7fd9e769a5cedcedf
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Boxing/AddInfo.vue
@@ -2,22 +2,42 @@
  <vol-box v-model="show" title="组盘" :width="800" :height="600">
    <template #content>
      <el-form :model="formData" label-width="100px">
        <!-- <el-form-item label="输入项"> -->
        <el-form-item label="料箱号/托盘号" style="width: 50%">
          <el-input type="text" v-model="this.palletCode" placeholder="请扫码条码"> </el-input>
        <el-form-item label="条码" style="width: 50%">
          <el-input type="text" v-model="palletCode" placeholder="请扫码条码"> </el-input>
        </el-form-item>
        <!-- éåŽ†ç‰©æ–™åˆ—è¡¨ -->
        <el-form-item v-for="(item, index) in formData.items" :key="index" style="width: 70%">
          <el-select size="mini" clearable  v-model="item.MaterilName" placeholder="请选择">
            <el-option v-for="item in GetMatetils()" :value="item.value" :label="item.text"
              :key="item.value"></el-option>
          <el-select
            size="mini"
            clearable
            filterable
            v-model="item.MaterilName"
            placeholder="请选择物料"
            style="width: 45%; margin-right: 5%"
          >
            <!-- é¿å…ä½¿ç”¨ä¸Žå¾ªçŽ¯å˜é‡ç›¸åŒçš„item名称 -->
            <el-option
              v-for="material in GetMatetils()"
              :value="material.value"
              :label="material.text"
              :key="material.value"
            ></el-option>
          </el-select>
          <!-- <el-input v-model="item.MaterilName" placeholder="请输入物料名称" style="width: 50%"></el-input> -->
          <el-input v-model="item.num" placeholder="请输入数量" style="width: 70%"></el-input>
          <!-- æ•°é‡åº”该是数字类型 -->
          <el-input
            v-model="item.num"
            placeholder="请输入数量"
            style="width: 35%; margin-right: 5%"
            type="number"
          ></el-input>
          <el-button v-if="index > 0" type="danger" @click="removeItem(index)">X</el-button>
        </el-form-item>
        <!-- </el-form-item> -->
      </el-form>
      <el-button type="primary" @click="addItem">
      <el-button type="primary" @click="addItem" style="margin-top: 10px;">
        æ·»åŠ ç‰©æ–™
      </el-button>
    </template>
@@ -40,17 +60,18 @@
  data() {
    return {
      formData: {
        items: [{ MaterilName: '' }, { num: '' }],
        // æ¯ä¸ªitem应该是一个包含MaterilName和num的对象
        items: [{ MaterilName: '', num: '' }],
      },
      index: 1,
      palletCode: "",
      show: false,
      MatetilList: []
      MatetilList: [] // å‡è®¾è¿™é‡Œä¼šè¢«å¡«å……物料数据
    };
  },
  methods: {
    addItem() {
      this.formData.items.push([{ MaterilName: '' }, { num: '' }]);
      // ä¿æŒä¸Žåˆå§‹æ•°æ®ç»“构一致,添加一个对象而不是数组
      this.formData.items.push({ MaterilName: '', num: '' });
    },
    removeItem(index) {
      this.formData.items.splice(index, 1);
@@ -58,19 +79,24 @@
    //获取物料信息
    GetMatetils() {
      var data = [];
      this.MatetilList.forEach((t) => {
        data.push(t);
      });
      return data;
      // ç®€åŒ–代码,直接返回列表
      return this.MatetilList;
    },
    submitForm() {
      if (
        !this.palletCode ||
        this.palletCode == ""
      ) {
      // éªŒè¯æ¡ç 
      if (!this.palletCode.trim()) {
        this.$message.error("请扫码");
        return;
      }
      // éªŒè¯è‡³å°‘有一个物料且数量有效
      const hasValidItem = this.formData.items.some(item =>
        item.MaterilName && item.num && Number(item.num) > 0
      );
      if (!hasValidItem) {
        this.$message.error("请添加有效的物料和数量");
        return;
      }
@@ -85,16 +111,21 @@
        if (!x.status) {
          this.$message.error(x.message);
        } else {
          this.$Message.success("成功");
          this.$message.success("操作成功");
          // é‡ç½®è¡¨å•
          this.palletCode = '';
          this.formData.items =  [{ MaterilName: '' }, { num: '' }];
          this.formData.items = [{ MaterilName: '', num: '' }];
          this.show = false;
          // é€šçŸ¥çˆ¶ç»„件刷新数据
          if (window.$vue && $vue.refresh) {
          $vue.refresh();
        }
        }
      }).catch(error => {
        this.$message.error("提交失败:" + (error.message || "网络错误"));
      });
    },
  },
};
</script>