1
huangxiaoqiang
22 小时以前 a296223898d61a9838bbd35ed75c87575e308a36
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Dt_BillGroupStock.jsx
@@ -9,12 +9,12 @@
// import gridHeader from "./demo_Product/Dt_BillGroupStockDetail.vue";
// import gridHeader from './extend/printView.vue'
// import gridBody from './extend/OtherOutBound.vue'
import gridBody from './extend/Remark.vue'
let extension = {
  components: {
    //查询界面扩展组件
    gridHeader: '',
    gridBody: '',
    gridBody: gridBody,
    gridFooter: '',
    //新建、编辑弹出框扩展组件
    modelHeader: '',
@@ -26,78 +26,184 @@
  methods: {
    //下面这些方法可以保留也可以删除
    onInit() {
      this.detailOptions.buttons.unshift({
      // this.detailOptions.buttons.unshift({
      //   name: '其他出库', //按钮名称
      //   icon: 'el-icon-document', //按钮图标vue2版本见iview文档icon,vue3版本见element ui文档icon(注意不是element puls文档)
      //   type: 'primary',
      //   onClick: function () {
      //     this.$confirm('是否其他出库', "警告你正在使用其他出库", {
      //       confirmButtonText: '确定',
      //       cancelButtonText: '取消',
      //       type: 'warning',
      //       center: true
      //     }).then(() => {
      //       this.http.post(`/api/Task/OtherOutBoundTaskAsync`, row, "正在完成任务").then((res) => {
      //         //示例:调用后台接口
      //         if (res.status) {
      //           this.$Message.success('任务完成')
      //         } else {
      //           this.$Message.error(res.message) //错误提示
      //         }
      //       })
      //     })
      //   }
      // });
      this.boxButtons.push({
        name: '其他出库', //按钮名称
        icon: '', //按钮图标vue2版本见iview文档icon,vue3版本见element ui文档icon(注意不是element puls文档)
        type: 'primary', //按钮样式vue2版本见iview文档button,vue3版本见element ui文档button
        icon: 'el-icon-document', //按钮图标:组件示例->图标
        //primary、success、warning、error、info、text、danger
        type: 'primary',
        plain: true,
        onClick: function () {
          let row = this.$refs.table.getSelected() //获取选中的行
          if (row <= 0 && row > 1) {
            //如果没有选中行
            this.$Message.error('请选择一行数据')
            return
          }
          let taskNum = row[0].taskNum
          this.http.get(`/api/Task/CompleteTaskAsync?taskNum=${taskNum}`, {}, "正在完成任务").then((res) => {
            //示例:调用后台接口
            if (res.status) {
              this.$Message.success('任务完成')
            } else {
              this.$Message.error(res.message) //错误提示
            }
          this.$confirm('是否其他出库', '警告', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning',
            center: true
          }).then(() => {
            this.http
              .post(
                `/api/Task/OtherOutBoundTaskAsync`,
                this.$refs.detail.rowData,
                '正在生成出库任务'
              )
              .then((res) => {
                if (res.status) {
                  this.$Message.success(res.message)
                  this.boxModel = false
                  this.refresh()
                } else {
                  this.$Message.error(res.message) //错误提示
                }
              })
          })
        }
      });
      this.detailOptions.buttons.unshift({
        name: '盘点出库', //按钮名称
        icon: '', //按钮图标vue2版本见iview文档icon,vue3版本见element ui文档icon(注意不是element puls文档)
        type: 'primary', //按钮样式vue2版本见iview文档button,vue3版本见element ui文档button
        onClick: function (e) {
          // this.$Message.success('点击了按钮');
          console.log(e);
          let row = this.$refs.table.getSelected() //获取选中的行
          if (row <= 0) {
            //如果没有选中行
            this.$Message.error('请选择一行数据')
            return
          }
          let taskNum = row[0].taskNum
          this.http.get(`/api/Task/CompleteTaskAsync?taskNum=${taskNum}`, {}, "正在完成任务").then((res) => {
            //示例:调用后台接口
            if (res.status) {
              this.$Message.success('任务完成')
            } else {
              this.$Message.error(res.message) //错误提示
            }
      })
      this.boxButtons.push({
        name: '调拨出库', //按钮名称
        icon: 'el-icon-document', //按钮图标:组件示例->图标
        //primary、success、warning、error、info、text、danger
        type: 'danger',
        plain: true,
        onClick: function () {
          this.$confirm('是否调拨出库', '警告', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning',
            center: true
          }).then(() => {
            this.http
              .post(
                `/api/Task/HandAllocateOutBoundTaskAsync`,
                this.$refs.detail.rowData,
                '正在生成出库任务'
              )
              .then((res) => {
                if (res.status) {
                  this.$Message.success(res.message)
                  this.boxModel = false
                  this.refresh()
                } else {
                  this.$Message.error(res.message) //错误提示
                }
              })
          })
        }
      });
      })
      // this.detailOptions.buttons.unshift({
      //   name: '调拨出库',
      //   icon: '',
      //   type: 'primary',
      //   onClick: function (e) {
      //     let row = this.$refs.table.getSelected() //获取选中的行
      //     if (row <= 0) {
      //       //如果没有选中行
      //       this.$Message.error('请选择一行数据')
      //       return
      //     }
      //     let taskNum = row[0].taskNum
      //     this.http.post(`/api/Task/CompleteTaskAsync?taskNum=${taskNum}`, {}, "正在完成任务").then((res) => {
      //       //示例:调用后台接口
      //       if (res.status) {
      //         this.$Message.success(res.message)
      //       } else {
      //         this.$Message.error(res.message) //错误提示
      //       }
      //     })
      //   }
      // });
      // this.columns.push({
      //   field: '操作',
      //   title: '操作',
      //   width: 90,
      //   fixed: 'right',
      //   align: 'center',
      //   type:'jsx',
      //   formatter: (row) => {
      //     //return '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-view">盘点出库</i>'
      //     return [{
      //       name:"btn1",
      //       type:"primary"
      //     },{
      //       name:"btn1",
      //       type:"success"
      //     }]
      //   },
      //   click: (row,formatter) => {
      //     console.log(formatter);
      //     this.http
      //       .post(`/api/Task/OutBoundTaskAsync?palletCode=${row.palletCode}`, {}, '正在生成任务')
      //       .then((res) => {
      //         //示例:调用后台接口
      //         if (res.status) {
      //           this.$Message.success(row.palletCode + '出库成功')
      //           this.refresh()
      //         } else {
      //           this.$Message.error(res.message) //错误提示
      //           this.refresh()
      //         }
      //       })
      //   }
      // })
      this.columns.push({
        field: '操作',
        title: '操作',
        width: 90,
        fixed: 'right',
        align: 'center',
        formatter: (row) => {
        field: '操作',
        width: 250,
        align: 'center', // 'center',
        render: (h, { row, column, index }) => {
          return (
            '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-view">盘点出库</i>'
          );
        },
        click: (row) => {
          console.log(row);
          this.http.post(`/api/Task/OutBoundTaskAsync?palletCode=${row.palletCode}`, {}, "正在生成任务").then((res) => {
            //示例:调用后台接口
            if (res.status) {
              this.$Message.success(row[0].palletCode + "出库成功");
              this.refresh();
            } else {
              this.$Message.error(res.message) //错误提示
              this.refresh();
            }
          })
            <div>
              <el-button onClick={($e) => { }} type="primary">
                å…¶ä»–出库
              </el-button>
              <el-button onClick={($e) => {
               }} type="success" >
                è°ƒæ‹¨å‡ºåº“
              </el-button>
              <el-button onClick={($e) => {
                    // this.http
                    //   .post(`/api/Task/OutBoundTaskAsync?palletCode=${row.palletCode}`, {}, '正在生成任务')
                    //   .then((res) => {
                    //     //示例:调用后台接口
                    //     if (res.status) {
                    //       this.$Message.success(row.palletCode + '出库成功')
                    //       this.refresh()
                    //     } else {
                    //       this.$Message.error(res.message) //错误提示
                    //       this.refresh()
                    //     }
                    //   })
                    this.$refs.gridBody.open(row.palletCode);
                }} type="warning">
                ç›˜ç‚¹å‡ºåº“
              </el-button>
            </div>
          )
        }
      });
      })
      // this.columns.push({
      //   title: "操作",
      //   field: "操作",
@@ -117,7 +223,7 @@
      //           style="height:26px; padding: 10px !important;"
      //         >
      //           æ‰“印
      //         </el-button>
      //         </el-button>
      //       </div>
      //     );
      //   },
@@ -125,55 +231,53 @@
      //示例:设置修改新建、编辑弹出框字段标签的长度
      this.boxOptions.labelWidth = 150
      this.buttons.forEach((btn) => {
        if (btn.name == '编辑') {
          btn.hidden = true
        }
      })
      this.columns.forEach((column) => {
        if (column.field == 'floor') {
          const floorMap = {
            '1F': '一楼',
            '2F': '二楼',
          };
            '2F': '二楼'
          }
          column.formatter = (row) => {
            return floorMap[row?.locationInfo?.floor] || ''
          }
        }
        if (column.field == 'areaId') {
          const floorMap = {
            '1': '一楼堆垛机区域',
            '2': '一楼AGV出库缓存区',
            '3': '一楼AGV立库缓存区',
            '4': '一楼AGV入库缓存区',
            '5': '二楼B4-G4缓存区',
            '6': '二楼B5-G5缓存区',
          };
            1: '一楼堆垛机区域',
            2: '一楼AGV出库缓存区',
            3: '一楼AGV立库缓存区',
            4: '一楼AGV入库缓存区',
            5: '二楼B4-G4缓存区',
            6: '二楼B5-G5缓存区'
          }
          column.formatter = (row) => {
            return floorMap[row?.locationInfo?.areaId] || ''
          }
        }
        if (column.field == 'locationStatus') {
          const statusMap = {
            '0': '空闲',
            '1': '锁定',
            '2': '有货',
            '3': '有货禁用',
            '4': '无货禁用'
          };
            0: '空闲',
            1: '锁定',
            2: '有货',
            3: '有货禁用',
            4: '无货禁用'
          }
          column.formatter = (row) => {
            return statusMap[row?.locationInfo?.locationStatus] || '';
            return statusMap[row?.locationInfo?.locationStatus] || ''
          }
        }
      })
    },
    onInited() {
      //框架初始化配置后
      //如果要配置明细表,在此方法操作
      this.detailOptions.columns.forEach(column => {
      });
      this.detailOptions.columns.forEach((column) => {})
    },
    searchBefore(param) {
      //界面查询前,可以给param.wheres添加查询参数
@@ -193,41 +297,41 @@
    },
    rowClick({ row, column, event }) {
      //查询界面点击行事件
      this.$refs.table.$refs.table.toggleRowSelection(row) //单击行时选中当前行;
      //this.$refs.table.$refs.table.toggleRowSelection(row) //单击行时选中当前行;
    },
    modelOpenAfter(row) {
      const isAdd = this.currentAction == 'Add';//判断是否为新建操作
      const isAdd = this.currentAction == 'Add' //判断是否为新建操作
      //隐藏明细表按钮
      this.detailOptions.buttons.forEach((btn) => {
        if (btn.name == '添加行') {
          btn.hidden = true;
          btn.hidden = true
          //或者设置只读
          //btn.readonly=true;
        }
      });
      const isDel = this.currentAction == 'Add';//判断是否为新建操作
      })
      const isDel = this.currentAction == 'Add' //判断是否为新建操作
      //隐藏明细表按钮
      this.detailOptions.buttons.forEach((btn) => {
        if (btn.name == '删除行') {
          btn.hidden = true;
          btn.hidden = true
          //或者设置只读
          //btn.readonly=true;
        }
      });
      })
      this.detailOptions.buttons.forEach((btn) => {
        if (btn.name == '导入') {
          btn.hidden = true;
          btn.hidden = true
          //或者设置只读
          //btn.readonly=true;
        }
      });
      })
      this.detailOptions.buttons.forEach((btn) => {
        if (btn.name == '导出') {
          btn.hidden = true;
          btn.hidden = true
          //或者设置只读
          //btn.readonly=true;
        }
      });
      })
      //点击编辑、新建按钮弹出框后,可以在此处写逻辑,如,从后台获取数据
      //(1)判断是编辑还是新建操作: this.currentAction=='Add';
      //(2)给弹出框设置默认值