1
huangxiaoqiang
2025-10-21 6c663b92b0078aa89657df22ec188dff65599f04
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Dt_BillGroupStock.jsx
@@ -8,12 +8,12 @@
//此js文件是用来自定义扩展业务代码,可以扩展一些自定义页面或者重新配置生成的代码
// import gridHeader from "./demo_Product/Dt_BillGroupStockDetail.vue";
import gridHeader from './extend/printView.vue'
// import gridBody from "./extend/SupplementationData.vue"
// import gridHeader from './extend/printView.vue'
// import gridBody from './extend/OtherOutBound.vue'
let extension = {
  components: {
    //查询界面扩展组件
    gridHeader: gridHeader,
    gridHeader: '',
    gridBody: '',
    gridFooter: '',
    //新建、编辑弹出框扩展组件
@@ -26,92 +26,53 @@
  methods: {
    //下面这些方法可以保留也可以删除
    onInit() {
      this.columns.push({
        title: "操作",
        field: "操作",
        width: 150,
        align: "left", // 'center',
        render: (h, { row, column, index }) => {
          return (
            <div>
              <el-button
                onClick={($e) => {
                  // this.$refs.table.load();
                  // console.log(this.$refs.table);
                  this.$refs.gridHeader.open(row);
                }}
                type="primary"
                plain
                style="height:26px; padding: 10px !important;"
              >
                æ‰“印
              </el-button>
            </div>
          );
        },
      });
      //框架初始化配置前,
      let OutBoundBtn = this.buttons.find((x) => x.value == 'OutBound')
      if (OutBoundBtn) {
        OutBoundBtn.onClick = function () {
          // this.$Message.success('点击了按钮')
          let row = this.$refs.table.getSelected() //获取选中的行
          if (row <= 0) {
            //如果没有选中行
            this.$Message.error('请选择一行数据')
            return
          }
          let locationCode = row[0].locationCode
          let palletCode = row[0].palletCode
          this.http
            .get(
              `/api/Task/CreateAndSendOutboundTask?locationCode=${locationCode}&palletCode=${palletCode}`,
              {},
              '正在创建任务'
            )
            .then((res) => {
              //示例:调用后台接口
              if (res.status) {
                this.$Message.success('创建任务成功')
                console.log(res)
                this.refresh() //刷新表格
              } else {
                this.$Message.error(res.message) //错误提示
              }
            })
        }
      }
      var btnSupplementationData = this.buttons.find(x => x.value == "SupplementationData");
            if (btnSupplementationData != null) {
                btnSupplementationData.onClick = () => {
                    let rows = this.$refs.table.getSelected();
                        if (rows.length == 0) {
                            return this.$error("请选择数据!");
                        } else if (rows.length > 1) {
                            return this.$error("只能选择单条数据");
                        }
                        this.$refs.gridBody.open(rows[0].palletCode);
                        this.refresh();
      // let OtherOutBoundbtn=this.buttons.find(x=>x.value=='OtherOutBound');
      // if(OtherOutBoundbtn){
      //   OtherOutBoundbtn.onClick=function(){
      //     let row = this.$refs.table.getSelected() //获取选中的行
      //     if (row <= 0) {
      //       //如果没有选中行
      //       this.$Message.error('请选择一行数据')
      //       return;
      //     }
      //     let palletCode = row[0].palletCode
      //     this.http.get(`/api/Task/CompleteTaskAsync?taskNum=${taskNum}`, {}, "正在完成任务").then((res) => {
      //       //示例:调用后台接口
      //       if (res.status) {
      //         this.$Message.success('任务完成');
      //         this.refresh();
      //       } else {
      //         this.$Message.error(res.message) //错误提示
      //         this.refresh();
      //       }
      //     })
      //   }
      // }
        this.columns.push({
          field: '操作',
          title: '操作',
          width: 90,
          fixed: 'right',
          align: 'center',
          formatter: (row) => {
              return (
                  '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-view">其他出库</i>'
              );
          },
          click: (row) => {
            console.log(row);
            this.http.post(`/api/Task/OtherOutBoundTaskAsync?palletCode=${row.palletCode}`, {}, "正在生成任务").then((res) => {
                    //示例:调用后台接口
                    if (res.status) {
                      this.$Message.success(row[0].palletCode+"出库成功");
                      this.refresh();
                    } else {
                      this.$Message.error(res.message) //错误提示
                      this.refresh();
                    }
                }
      //示例:设置修改新建、编辑弹出框字段标签的长度
      this.boxOptions.labelWidth = 150
                  })
          }
      });
      // this.columns.push({
      //   title: "操作",
      //   field: "操作",
@@ -122,58 +83,71 @@
      //       <div>
      //         <el-button
      //           onClick={($e) => {
      //             this.$refs.gridHeader.openModel1(row);
      //             // this.$refs.table.load();
      //             // console.log(this.$refs.table);
      //             this.$refs.gridHeader.open(row);
      //           }}
      //           type="primary"
      //           plain
      //           style="height:26px; padding: 10px !important;"
      //         >
      //           æŸ¥çœ‹åº“存明细
      //         </el-button>
      //           æ‰“印
      //         </el-button>
      //       </div>
      //     );
      //   },
      // });
      //示例:设置修改新建、编辑弹出框字段标签的长度
      this.boxOptions.labelWidth = 150
      this.columns.forEach((column) => {
        //修改颜色
        if (column.field == 'roadwayNo') {
        if (column.field == 'floor') {
          const floorMap = {
            '1F': '一楼',
            '2F': '二楼',
          };
          column.formatter = (row) => {
            // return '<span style="color: #2d8cf0;">' + row?.locationInfo?.roadwayNo + '</span>'
            return  row?.locationInfo?.roadwayNo
            return floorMap[row?.locationInfo?.floor] || '未知楼层'
          }
        }
        if (column.field == 'materielCode') {
        if (column.field == 'areaId') {
          const floorMap = {
            '1': '一楼堆垛机区域',
            '2': '一楼AGV出库缓存区',
            '3': '一楼AGV立库缓存区',
            '4': '一楼AGV入库缓存区',
            '5': '二楼B4-G4缓存区',
            '6': '二楼B5-G5缓存区',
          };
          column.formatter = (row) => {
            // return '<span style="color: #2d8cf0;">' + row?.locationInfo?.roadwayNo + '</span>'
            return  row?.stockInfoDetails[0]?.materielCode
            return  floorMap[row?.locationInfo?.areaId] || '未知楼层'
          }
        }
        //格式化日期
        // æ£€æŸ¥å½“前列的字段是否为 'locationStatus'
        if (column.field == 'locationStatus') {
          // ä½¿ç”¨å¯¹è±¡å­—面量来映射 'locationStatus' çš„值和对应的文本
          const statusMap = {
            '-1': '全部',
            '0': '空闲',
            '1': '锁定',
            '2': '有货',
            '3': '有货禁用',
            '4': '无货禁用'
          };
          // å®šä¹‰ä¸€ä¸ªæ ¼å¼åŒ–函数,根据 'locationStatus' çš„值返回相应的文本
          column.formatter = (row) => {
            // ä½¿ç”¨ statusMap å¯¹è±¡æ¥èŽ·å–å¯¹åº”çš„æ–‡æœ¬ï¼Œå¦‚æžœæ²¡æœ‰åŒ¹é…åˆ™è¿”å›ž '未知状态'
            return statusMap[row?.locationInfo?.locationStatus] || '未知状态';
          }
        }
      })
    },
    onInited() {
      //框架初始化配置后
      //如果要配置明细表,在此方法操作
      this.detailOptions.columns.forEach(column=>{
        console.log(column)
      this.detailOptions.columns.forEach(column => {
      });
    },
    searchBefore(param) {
@@ -182,7 +156,6 @@
      return true
    },
    searchAfter(result) {
     console.log(result)
      return true
    },
    addBefore(formData) {
@@ -198,7 +171,7 @@
      // this.$refs.table.$refs.table.toggleRowSelection(row) //单击行时选中当前行;
    },
    modelOpenAfter(row) {
      //点击编辑、新建按钮弹出框后,可以在此处写逻辑,如,从后台获取数据
      //(1)判断是编辑还是新建操作: this.currentAction=='Add';
      //(2)给弹出框设置默认值