dengjunjie
3 天以前 4d58609275685b1b5deaace933697dcf3f01359e
优化前端页面显示,优化前后端盘点
已修改13个文件
623 ■■■■■ 文件已修改
新建文件夹/WIDESEA_WMSServer/ClassLibrary2/ContainerService.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/ClassLibrary2/EquipmentAlarmInforService.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/ClassLibrary2/InventoryInfoService.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_DTO/Outbound/OutboundOrderDetailAddDTO.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/extend/Check.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_WMSServer/AlarmJob.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_WMSServer/OutOrderJob.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WMS/src/extension/outbound/outboundOrder.js 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WMS/src/extension/stock/Dt_Inventory_Batch.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WMS/src/views/basic/locationInfo.vue 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WMS/src/views/outbound/outboundOrder.vue 293 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
н¨Îļþ¼Ð/WIDESEA_WMSServer/ClassLibrary2/ContainerService.cs
@@ -41,6 +41,7 @@
                if (response == null || response.code != "000") throw new Exception("接口返回数据报错");
                var deviceNames = response.data.Select(x => x.name?.Trim()).Distinct().ToList();
                var containers = BaseDal.QueryData(x => deviceNames.Contains(x.deviceName)).ToList();
                if (containers == null || containers.Count < 1) return WebResponseContent.Instance.Error();
                List<Dt_Container> containersAdd = new List<Dt_Container>();
                List<Dt_Container> containersUp = new List<Dt_Container>();
                foreach (var item in response.data)
н¨Îļþ¼Ð/WIDESEA_WMSServer/ClassLibrary2/EquipmentAlarmInforService.cs
@@ -50,6 +50,7 @@
                if (codes.Count < 1) return content;
                List<Dt_EquipmentAlarmInfor> equipmentAlarmInfors = BaseDal.QueryData(x => codes.Contains(x.RobotCode));
                if (equipmentAlarmInfors.Count < 1) return content;
                List<Dt_EquipmentAlarmInfor> equipmentAlarmInforsAdd = new List<Dt_EquipmentAlarmInfor>();
                List<Dt_EquipmentAlarmInfor> equipmentAlarmInforsUp = new List<Dt_EquipmentAlarmInfor>();
                foreach (var item in response.data.robot)
н¨Îļþ¼Ð/WIDESEA_WMSServer/ClassLibrary2/InventoryInfoService.cs
@@ -38,33 +38,30 @@
                List<object> lists = new List<object>();
                #region å†·å†»åº“
                string WareCodeLD = WarehouseEnum.冷冻库.ObjToInt().ToString("000");
                List<Dt_InventoryInfo> inventoryInfosLD = BaseDal.QueryData(x => x.WarehouseCode == WareCodeLD);
                object LDQty = new
                var LDQty = Convert.ToInt32(BaseDal.QueryData(x => x.WarehouseCode == WareCodeLD).Sum(x => x.StockQuantity));
                lists.Add(new
                {
                    name = WarehouseEnum.冷冻库.ObjToString(),
                    count = inventoryInfosLD.Sum(x => x.StockQuantity).ObjToInt()
                };
                lists.Add(LDQty);
                    count = LDQty
                });
                #endregion
                #region éº»ç²¾åº“
                string WareCodeMJ = WarehouseEnum.麻精库.ObjToInt().ToString("000");
                List<Dt_InventoryInfo> inventoryInfosMJ = BaseDal.QueryData(x => x.WarehouseCode == WareCodeMJ);
                object MJQty = new
                var MJQty = Convert.ToInt32(BaseDal.QueryData(x => x.WarehouseCode == WareCodeMJ).Sum(x => x.StockQuantity));
                lists.Add(new
                {
                    name = WarehouseEnum.麻精库.ObjToString(),
                    count = inventoryInfosMJ.Sum(x => x.StockQuantity).ObjToInt()
                };
                lists.Add(MJQty);
                    count = MJQty
                });
                #endregion
                #region å¤§ä»¶åº“
                string WareCodeDJ = WarehouseEnum.大件库.ObjToInt().ToString("000");
                List<Dt_InventoryInfo> inventoryInfosDJ = BaseDal.QueryData(x => x.WarehouseCode == WareCodeDJ);
                object DJQty = new
                var DJQty = Convert.ToInt32(BaseDal.QueryData(x => x.WarehouseCode == WareCodeDJ).Sum(x => x.StockQuantity));
                lists.Add(new
                {
                    name = WarehouseEnum.大件库.ObjToString(),
                    count = inventoryInfosDJ.Sum(x => x.StockQuantity).ObjToInt()
                };
                lists.Add(DJQty);
                    count = DJQty
                });
                #endregion
                content.OK(data: lists);
            }
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_DTO/Outbound/OutboundOrderDetailAddDTO.cs
@@ -8,6 +8,33 @@
namespace WIDESEA_DTO.Outbound
{
    [ModelValidate]
    public class DeliveryOrderDetailAddDTO
    {
        public int id {  get; set; }
        /// <summary>
        /// ç‰©æ–™ç¼–号
        /// </summary>
        [PropertyValidate("物料编号", NotNullAndEmpty = true)]
        public string goods_no {  get; set; }
        /// <summary>
        /// æ‰¹æ¬¡å·
        /// </summary>
        public string batch_num { get; set; }
        /// <summary>
        /// æ•ˆæœŸ
        /// </summary>
        public string exp_date { get; set; }
        /// <summary>
        /// è´§ä½å·
        /// </summary>
        public string locationCode { get; set; }
        /// <summary>
        /// æ•°é‡
        /// </summary>
        [PropertyValidate("单据数量", NotNullAndEmpty = true, MinValue = 0, IsContainMinValue = false)]
        public int order_Outqty { get; set; }
    }
    public class OutboundOrderDetailAddDTO
    {
        /// <summary>
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs
@@ -161,8 +161,8 @@
                #region è´§ä½
                var location = _locationInfoService.Repository.QueryFirst(x => x.LocationCode == LocationCode);
                if (location == null) return WebResponseContent.Instance.Error($"请维护货位编号【{LocationCode}】的货位信息");
                if (location.EnableStatus == EnableStatusEnum.Disable.ObjToInt())
                    return WebResponseContent.Instance.Error($"货位编号【{LocationCode}】已禁用,请恢复正常再使用");
                //if (location.EnableStatus == EnableStatusEnum.Disable.ObjToInt())
                //    return WebResponseContent.Instance.Error($"货位编号【{LocationCode}】已禁用,请恢复正常再使用");
                if (location.WarehouseCode != cabinOrderDetail.Reservoirarea)
                    return WebResponseContent.Instance.Error($"货位编号【{LocationCode}】所属库房与当前入库单所属库房不匹配");
                if (location.LocationStatus == LocationStatusEnum.Free.ObjToInt())
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs
@@ -21,6 +21,7 @@
using WIDESEA_Core.BaseServices;
using WIDESEA_Core.Enums;
using WIDESEA_Core.Helper;
using WIDESEA_DTO.Outbound;
using WIDESEA_DTO.SquareCabin;
using WIDESEA_IBasicService;
using WIDESEA_ISquareCabinServices;
@@ -62,7 +63,138 @@
        }
        public override WebResponseContent UpdateData(SaveModel saveModel)
        {
            return base.UpdateData(saveModel);
            try
            {
                int id = saveModel.MainData["id"].ObjToInt();
                var warehouse_no = saveModel.MainData["warehouse_no"].ToString();
                var out_no = saveModel.MainData["out_no"].ToString();
                //OutboundOrderAddDTO outboundOrder = saveModel.MainData.DicToModel<OutboundOrderAddDTO>();
                //Dt_DeliveryOrder deliveryOrder = BaseDal.QueryFirst(x => x.Id == id);
                List<DeliveryOrderDetailAddDTO> orderDetailAddDTOs = saveModel.DetailData.DicToIEnumerable<DeliveryOrderDetailAddDTO>();
                orderDetailAddDTOs = orderDetailAddDTOs.Where(x => x.id == 0).ToList();
                if (orderDetailAddDTOs.Count < 1) return WebResponseContent.Instance.OK();
                if (orderDetailAddDTOs.Where(x => string.IsNullOrEmpty(x.locationCode)).Any()) return WebResponseContent.Instance.Error("货位号为必填字段!");
                if (orderDetailAddDTOs.Where(x => string.IsNullOrEmpty(x.exp_date)).Any()) return WebResponseContent.Instance.Error("效期为必填字段!");
                var LocationCodes = orderDetailAddDTOs.Select(x => x.locationCode);
                List<Dt_LocationInfo> locationInfos = _locationInfoService.Repository.QueryData(x => x.WarehouseCode == warehouse_no && LocationCodes.Contains(x.LocationCode));
                var diff = LocationCodes.Except(locationInfos.Select(x => x.LocationCode)).ToArray();
                if (diff.Length > 0) return WebResponseContent.Instance.Error($"货位编号【{string.Join(", ", diff)}】不属于当前库房");
                var array1 = orderDetailAddDTOs.Select(x => x.goods_no);
                var MaterielInfos = _materielInfoService.Repository.QueryData(x => array1.Contains(x.MaterielCode));
                var array2 = MaterielInfos.Select(x => x.MaterielCode);
                diff = array1.Except(array2).ToArray();
                if (diff.Length > 0) return WebResponseContent.Instance.Error($"请维护物料编号【{string.Join(", ", diff)}】的物料信息");
                if (warehouse_no == WarehouseEnum.立库.ObjToInt().ToString("000"))
                {
                    var MaterielInfos1 = MaterielInfos.Where(x => x.MaterielSourceType == MaterielSourceTypeEnum.PurchasePart).ToList();
                    if (MaterielInfos1.Count > 0)
                    {
                        return WebResponseContent.Instance.Error($"物料编号【{string.Join(", ", MaterielInfos1.Select(x => x.MaterielCode))}】的物料属性分类为大件,不可入立库");
                    }
                }
                var InventoryInfos = _inventoryInfoService.Repository.QueryData(x => x.WarehouseCode == warehouse_no && array2.ToList().Contains(x.MaterielCode));
                var Batchs = _inventory_BatchServices.Repository.QueryData(x => array2.Contains(x.MaterielCode));
                List<Dt_DeliveryOrderDetail> deliveryOrderDetails = new List<Dt_DeliveryOrderDetail>();
                List<Dt_SupplyTask> supplyTasks = new List<Dt_SupplyTask>();
                List<Dt_InventoryInfo> inventoryInfos = new List<Dt_InventoryInfo>();
                List<Dt_Inventory_Batch> inventory_Batches = new List<Dt_Inventory_Batch>();
                foreach (var item in orderDetailAddDTOs)
                {
                    if (InventoryInfos.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).Any())
                        return WebResponseContent.Instance.Error($"物料编号【{item.goods_no}】物料批次【{item.batch_num}】已存在库存");
                    #region æ·»åŠ ç›˜ç‚¹å•è¯¦æƒ…
                    Dt_DeliveryOrderDetail dt_DeliveryOrde = new Dt_DeliveryOrderDetail()
                    {
                        DeliveryOrderId = id,
                        Reservoirarea = warehouse_no,
                        Status = 2,
                        Order_qty = 0,
                        Order_Outqty = item.order_Outqty,
                        Goods_no = item.goods_no,
                        OotDetailStatus = "新建",
                        Batch_num = item.batch_num,
                        Creater = App.User.UserName,
                        CreateDate = DateTime.Now,
                    };
                    deliveryOrderDetails.Add(dt_DeliveryOrde);
                    #endregion
                    #region æ·»åŠ åº“å­˜ã€æ‰¹æ¬¡ä¿¡æ¯ã€ç›˜ç‚¹ä»»åŠ¡
                    var MaterielInfo = MaterielInfos.First(x => x.MaterielCode == item.goods_no);
                    Dt_InventoryInfo inventoryInfo = new Dt_InventoryInfo()
                    {
                        BatchNo = item.batch_num,
                        MaterielCode = MaterielInfo.MaterielCode,
                        AvailableQuantity = 0,
                        CreateDate = DateTime.Now,
                        Creater = App.User.UserName,
                        InDate = DateTime.Now,
                        LocationCode = item.locationCode,
                        MaterielName = MaterielInfo.MaterielName,
                        MaterielSpec = MaterielInfo.MaterielSpec,
                        OutboundQuantity = 0,
                        StockQuantity = 0,
                        StockStatus = StockStatusEmun.盘点锁定.ObjToInt(),
                        SupplyQuantity = 0,
                        WarehouseCode = warehouse_no,
                        ValidityPeriod = item.exp_date
                    };
                    inventoryInfos.Add(inventoryInfo);
                    Dt_Inventory_Batch? inventory_Batch = Batchs.FirstOrDefault(x => x.BatchNo == item.batch_num && x.MaterielCode == item.goods_no);
                    if (inventory_Batch == null)
                    {
                        inventory_Batch = new Dt_Inventory_Batch()
                        {
                            BatchNo = inventoryInfo.BatchNo,
                            CreateDate = inventoryInfo.CreateDate,
                            Creater = inventoryInfo.Creater,
                            MaterielCode = inventoryInfo.MaterielCode,
                            ERPStockQuantity = 0,
                            MaterielName = inventoryInfo.MaterielName,
                            MaterielSpec = inventoryInfo.MaterielSpec,
                            OutboundQuantity = inventoryInfo.OutboundQuantity,
                            ProductionDate = inventoryInfo.ProductionDate,
                            Status = false,
                            StockQuantity = inventoryInfo.StockQuantity,
                            AvailableQuantity = inventoryInfo.AvailableQuantity,
                            ValidityPeriod = inventoryInfo.ValidityPeriod.ObjToDate(),
                            SupplyQuantity = inventoryInfo.SupplyQuantity,
                        };
                        inventory_Batches.Add(inventory_Batch);
                    }
                    Dt_SupplyTask supplyTask = new Dt_SupplyTask()
                    {
                        WarehouseCode = warehouse_no,
                        TaskStatus = SupplyStatusEnum.NewCheck.ObjToInt(),
                        BatchNo = inventoryInfo.BatchNo,
                        MaterielName = inventoryInfo.MaterielName,
                        MaterielCode = inventoryInfo.MaterielCode,
                        MaterielSpec = inventoryInfo.MaterielSpec,
                        TaskType = TaskTypeEnum.OutInventory.ObjToInt(),
                        CreateDate = DateTime.Now,
                        Creater = App.User.UserName,
                        LocationCode = inventoryInfo.LocationCode,
                        OrderNo = out_no,
                        StockQuantity = inventoryInfo.StockQuantity,
                        SupplyQuantity = 0,
                        Remark = "盘点"
                    };
                    supplyTasks.Add(supplyTask);
                    #endregion
                }
                _unitOfWorkManage.BeginTran();
                _deliveryOrderDetailServices.AddData(deliveryOrderDetails);
                _inventoryInfoService.AddData(inventoryInfos);
                if (inventory_Batches.Count > 0) _inventory_BatchServices.AddData(inventory_Batches);
                _supplyTaskService.AddData(supplyTasks);
                _unitOfWorkManage.CommitTran();
                return WebResponseContent.Instance.OK("盘点详情添加成功,请通过ERP平账!");
            }
            catch (Exception ex)
            {
                _unitOfWorkManage.RollbackTran();
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        #region åˆ›å»ºå‡ºåº“单
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/extend/Check.cs
@@ -38,7 +38,7 @@
                    var supplyTasks = _supplyTaskService.Repository.QueryData(x => x.MaterielCode == item.MaterielCode && x.BatchNo == item.BatchNo && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt()).ToList();
                    if (supplyTasks.Count > 0) throw new Exception($"物料编号【{item.MaterielCode}】批次号【{item.BatchNo}】已存在盘点任务,请先完成当前盘点任务");
                    supplyTasks = _supplyTaskService.Repository.QueryData(x => x.MaterielCode == item.MaterielCode && x.BatchNo == item.BatchNo && x.TaskStatus == SupplyStatusEnum.NewOut.ObjToInt()).ToList();
                    if (supplyTasks.Count > 0) throw new Exception($"物料编号【{item.MaterielCode}】批次号【{item.BatchNo}】已存在盘点任务,请先完成当前盘点任务");
                    if (supplyTasks.Count > 0) throw new Exception($"物料编号【{item.MaterielCode}】批次号【{item.BatchNo}】已存在出库任务,请先完成当前出库任务");
                    List<Dt_InventoryInfo> inventoryInfos = _inventoryInfoService.Repository.QueryData(x => item.MaterielCode == x.MaterielCode && x.BatchNo == item.BatchNo);
                    if (inventoryInfos.Count > 0)
                    {
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_WMSServer/AlarmJob.cs
@@ -19,7 +19,7 @@
            _inventoryInfoService = inventoryInfoService;
        }
        //每隔1秒执行一次
        [Invoke(Begin = "2025-11-01", Interval = 1000 * 5, IsEnabled = true, SkipWhileExecuting = true)]
        [Invoke(Begin = "2025-11-01", Interval = 1000 * 10, IsEnabled = true, SkipWhileExecuting = true)]
        public void Run()
        {
            //冷库
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_WMSServer/OutOrderJob.cs
@@ -14,7 +14,7 @@
            _materielInfoService = materielInfoService;
        }
        //每隔1秒执行一次
        [Invoke(Begin = "2025-11-01", Interval = 1000 * 5, IsEnabled = true, SkipWhileExecuting = true)]
        [Invoke(Begin = "2025-11-01", Interval = 1000 * 8, IsEnabled = true, SkipWhileExecuting = true)]
        public void Run()
        {
            //获取上游出库单数据
н¨Îļþ¼Ð/WMS/src/extension/outbound/outboundOrder.js
@@ -2,7 +2,7 @@
//此js文件是用来自定义扩展业务代码,可以扩展一些自定义页面或者重新配置生成的代码
import gridBody from './extend/outOrderDetail.vue'
import http from '../../api/http';
import { el } from 'element-plus/es/locales.mjs';
import { el, fa, sw } from 'element-plus/es/locales.mjs';
let extension = {
  components: {
    //查询界面扩展组件
@@ -40,6 +40,14 @@
          });
        }
      }
      // this.detailOptions.buttons.unshift({//这里可以使用push添加最后一个位置
      //   name: '自定义按钮', //按钮名称
      //   icon: 'el-icon-document', //按钮图标:组件示例->图标
      //   //primary、success、warning、error、info、text、danger
      //   type: 'primary',
      //   plain: true,
      //   onClick: () => { }
      // })
    },
    onInited() {
      //框架初始化配置后
@@ -85,22 +93,54 @@
        })
      })
      this.detailOptions.buttons.forEach((btn) => {
        if (btn.name != '添加行') {
          btn.hidden = true;
          //或者设置只读
          //btn.readonly=true;
        if (row.out_type == "20" && row.warehouse_no != "001") {
          btn.hidden = btn.name != '添加行' && btn.name != '自定义按钮'
        } else {
          btn.hidden = true
        }
        // if (row.out_type != "20") {
        //   btn.hidden = true
        // } else {
        //   btn.hidden = btn.name != '添加行'
        // }
        // if (btn.name != '添加行') {
        //   btn.hidden = btn.name != '添加行';
        //   //或者设置只读
        //   //btn.readonly=true;
        // }
      });
      if (row.out_type == "20") {
        this.detail.columns.forEach((x) => {
          if (x.field == "order_Outqty") {
            x.title = "盘点数量",
              x.edit = true
        switch (x.field) {
          case "creater":
            x.hidden = (row.out_type != "20" && row.out_type != "215");
            break;
          case "locationCode":
            if (row.warehouse_no != "001" && row.out_type == "20") {
              x.hidden = false
            } else {
              x.hidden = true
            }
          case "exp_date":
            x.hidden = row.out_type == "215" || row.out_type == "20" && row.warehouse_no === "001";
            // x.title = (row.out_type == "20") ? "货位号" : "效期";
            x.edit = row.out_type == "20"
            break;
          case "order_qty":
            x.title = row.out_type == "20" ? "库存数量" : "订单数量";
            x.readonly = row.out_type != "20";
            break;
          case "order_Outqty":
            x.title = row.out_type == "20" ? "盘点数量" : "完成数量";
            x.readonly = row.out_type != "20";
            break;
          case "goods_no":
            x.readonly = row.out_type != "20";
            break;
          case "batch_num":
            x.readonly = row.out_type != "20";
            break;
          }
        })
      } else {
      }
    }
  }
};
н¨Îļþ¼Ð/WMS/src/extension/stock/Dt_Inventory_Batch.js
@@ -70,6 +70,13 @@
      this.buttons.forEach(x => {//name改为要隐藏的按钮名字
        if (x.name == '编 è¾‘') {
          x.name = '调 æ‹¨';
          x.onClick = function () {
            let rows = this.$refs.table.getSelected();
            if (rows.length == 0) return this.$error("请选择数据!");
            if (rows.length > 1) return this.$error("只能选择一条数据")
            let row = rows[0];
            this.edit(row)
          }
        }
      })
    },
н¨Îļþ¼Ð/WMS/src/views/basic/locationInfo.vue
@@ -58,51 +58,50 @@
          required: true,
          span: 12,
          dataKey:  "warehouseNuber", 
          data: []
          data: [],
        },
        
        {
          field: "locationCode",
          title: "货位编号",
          type: "string",
          span: 12
        }
          span: 12,
        },
      ],
      [
        {
          field: "locationName",
          title: "货位名称",
          type: "string",
          span: 12
          span: 12,
        },
        {
          field: "roadwayNo",
          title: "巷道编号",
          type: "string",
          span: 12
        }
          span: 12,
        },
      ],
      [
        {
          field: "row",
          title: "货位行",
          type: "int",
          span: 8
          span: 8,
        },
        {
          field: "column",
          title: "货位列",
          type: "int",
          span: 8
          span: 8,
        },
      ],
      [
        {
          field: "depth",
          title: "货位深度",
          type: "int",
          span: 12
          span: 12,
        },
        // {
        //   field: "locationType",
@@ -116,8 +115,8 @@
          field: "layer",
          title: "货位层",
          type: "int",
          span: 8
        }
          span: 8,
        },
      ],
      [
        {
@@ -135,7 +134,7 @@
          span: 12,
          dataKey:"EnableStatusEnum",
          data: [],
        }
        },
      ],
      // [
      //   {
@@ -157,26 +156,43 @@
      row: "",
      column: "",
      layer: "",
      warehouseCode: ""
      warehouseCode: "",
    });
    const searchFormOptions = ref([
      [
        // { title: "库房编号", field: "warehouseId", type: "select", dataKey:  "warehouseNuber",  data: [] } ,
         { title: "库房编号", field: "warehousecode", type: "select", dataKey:  "warehouseNuber",  data: [] } ,
        {
          title: "库房编号",
          field: "warehousecode",
          type: "select",
          dataKey: "warehouseNuber",
          data: [],
        },
        { title: "货位编号", field: "locationCode", type: "like" },
        { title: "货位名称", field: "locationName", type: "like" },
      ],
      [
        { title: "巷道编号", field: "roadwayNo", type: "like" },
        // { title: "货位类型", field: "locationType", type: "select",  dataKey:  "locationTypeEnum", data: []  },       
        { title: "货位状态", field: "locationStatus", type: "select",  dataKey:  "locationStatusEnum",data: []},
         { title: "禁用状态", field: "enableStatus", type: "select", data: [], dataKey:"status" },
        {
          title: "货位状态",
          field: "locationStatus",
          type: "select",
          dataKey: "locationStatusEnum",
          data: [],
        },
        {
          title: "禁用状态",
          field: "enableStatus",
          type: "select",
          data: [],
          dataKey: "status",
        },
      ],
      [
        { title: "行", field: "row", type: "int" },
        { title: "列", field: "column", type: "int" },
        { title: "层", field: "layer", type: "int" }
        { title: "层", field: "layer", type: "int" },
      ],
    ]);
    const columns = ref([
@@ -206,7 +222,7 @@
        width: 120,
        align: "left",
        data: [],
        bind: { key: "warehouseNuber", data: [] }
        bind: { key: "warehouseNuber", data: [] },
      },
      {
        field: "locationCode",
@@ -228,6 +244,7 @@
        type: "string",
        width: 100,
        align: "left",
        hidden: true,
      },
      {
        field: "row",
@@ -320,7 +337,7 @@
        width: 160,
        align: "left",
        sort: true,
      }
      },
    ]);
    const detail = ref({
      cnName: "#detailCnName",
н¨Îļþ¼Ð/WMS/src/views/outbound/outboundOrder.vue
@@ -1,6 +1,7 @@
 
<template>
    <view-grid ref="grid"
  <view-grid
    ref="grid"
               :columns="columns"
               :detail="detail"
               :editFormFields="editFormFields"
@@ -8,7 +9,8 @@
               :searchFormFields="searchFormFields"
               :searchFormOptions="searchFormOptions"
               :table="table"
               :extend="extend">
    :extend="extend"
  >
    </view-grid>
</template>
<script>
@@ -17,12 +19,12 @@
    export default defineComponent({
        setup() {
            const table = ref({
                key: 'id',
      key: "id",
                footer: "Foots",
                cnName: '出库单',
                name: 'DeliveryOrder',
      cnName: "出库单",
      name: "DeliveryOrder",
                url: "/DeliveryOrder/",
                sortName: "id"
      sortName: "id",
            });
            
            const editFormFields = ref({
@@ -33,6 +35,7 @@
                warehouse_no: "",
                account_time: "",
                outStatus: "",
      locationCode: "",
            });
            const editFormOptions = ref([
@@ -42,7 +45,7 @@
                        field: "out_no",
                        type: "string",
                        required: true,
                        width: 150
          width: 150,
                    },
                    {
                        title: "出库单类型",
@@ -51,22 +54,22 @@
                        dataKey: "out_type",
                        data: [],
                        required: true,
                        width: 120
                    }
          width: 120,
        },
                ],
                [
                    {
                        title: "客户代码",
                        field: "client_no",
                        type: "string",
                        width: 120
          width: 120,
                    },
                    {
                        title: "客户名称",
                        field: "client_name",
                        type: "string",
                        width: 150
                    }
          width: 150,
        },
                ],
                [
                    {
@@ -75,7 +78,7 @@
                        type: "select",
                        dataKey: "warehouseNuber",
                        data: [],
                        width: 100
          width: 100,
                    },
                    {
                        title: "状态",
@@ -83,17 +86,9 @@
                        type: "string",
                        dataKey: "outStatus",
                        data: [],
                        width: 120
                    }
          width: 120,
        },
                ],
                [
                    {
                        title: "出库记账时间",
                        field: "account_time",
                        type: "datetime",
                        width: 160
                    }
                ]
            ]);
            
            const searchFormFields = ref({
@@ -110,7 +105,13 @@
                [
                    { title: "出库单号", field: "out_no", type: "like" },
                    { title: "客户代码", field: "client_no", type: "like" },
                    { title: "库房号", field: "warehouse_no", type: "select", dataKey: "warehouseNuber", data: [] },
        {
          title: "库房号",
          field: "warehouse_no",
          type: "select",
          dataKey: "warehouseNuber",
          data: [],
        },
                    {
                        title: "出库单类型",
                        field: "out_type",
@@ -129,74 +130,74 @@
                    // },
                    { title: "客户名称", field: "client_name", type: "like" },
                    { title: "出库记账时间", field: "account_time", type: "datetime" },
                ]
      ],
            ]);
            
            const columns = ref([
                {
                    field: 'id',
                    title: '主键',
                    type: 'int',
        field: "id",
        title: "主键",
        type: "int",
                    width: 90,
                    hidden: true,
                    readonly: true,
                    require: true,
                    align: 'left'
        align: "left",
                },
                {
                    field: 'out_no',
                    title: '出库单号',
                    type: 'string',
        field: "out_no",
        title: "出库单号",
        type: "string",
                    width: 150,
                    require: true,
                    align: 'left',
        align: "left",
                    sort: true,
                    link: true
        link: true,
                },
                {
                    field: 'out_type',
                    title: '出库单类型',
                    type: 'string',
        field: "out_type",
        title: "出库单类型",
        type: "string",
                    width: 120,
                    require: true,
                    align: 'left',
                    bind: { key: "out_type", data: [] }
        align: "left",
        bind: { key: "out_type", data: [] },
                },
                {
                    field: 'client_no',
                    title: '客户代码',
                    type: 'string',
        field: "client_no",
        title: "客户代码",
        type: "string",
                    width: 120,
                    align: 'left'
        align: "left",
                },
                {
                    field: 'client_name',
                    title: '客户名称',
                    type: 'string',
        field: "client_name",
        title: "客户名称",
        type: "string",
                    width: 150,
                    align: 'left'
        align: "left",
                },
                {
                    field: 'warehouse_no',
                    title: '库房号',
                    type: 'string',
        field: "warehouse_no",
        title: "库房号",
        type: "string",
                    width: 100,
                    align: 'left',
                    bind: { key: "warehouseNuber", data: [] }
        align: "left",
        bind: { key: "warehouseNuber", data: [] },
                },
                {
                    field: 'account_time',
                    title: '出库记账时间',
                    type: 'datetime',
        field: "account_time",
        title: "出库记账时间",
        type: "datetime",
                    width: 160,
                    align: 'left'
        align: "left",
                },
                {
                    field: 'outStatus',
                    title: '状态',
                    type: 'string',
        field: "outStatus",
        title: "状态",
        type: "string",
                    width: 120,
                    align: 'left',
        align: "left",
                    // bind: { key: "outStatus", data: [] }
                    // edit:{type:""}
                },
@@ -208,12 +209,12 @@
                //     align: 'left'
                // },
                {
                    field: 'createDate',
                    title: '创建时间',
                    type: 'datetime',
        field: "createDate",
        title: "创建时间",
        type: "datetime",
                    width: 160,
                    align: 'left',
                    sort: true
        align: "left",
        sort: true,
                },
                // {
                //     field: 'modifier',
@@ -223,13 +224,13 @@
                //     align: 'left'
                // },
                {
                    field: 'modifyDate',
                    title: '修改时间',
                    type: 'datetime',
        field: "modifyDate",
        title: "修改时间",
        type: "datetime",
                    width: 160,
                    align: 'left',
                    sort: true
                }
        align: "left",
        sort: true,
      },
            ]);
            
            const detail = ref({
@@ -238,34 +239,33 @@
                url: "/DeliveryOrderDetail/",
                columns: [
                    {
                        field: 'id',
                        title: '主键',
                        type: 'int',
          field: "id",
          title: "主键",
          type: "int",
                        width: 90,
                        hidden: true,
                        readonly: true,
                        require: true,
                        align: 'left'
          align: "left",
                    },
                    {
                        field: 'deliveryOrderId',
                        title: '关联出库单ID',
                        type: 'int',
          field: "deliveryOrderId",
          title: "关联出库单ID",
          type: "int",
                        width: 120,
                        require: true,
                        align: 'left',
          align: "left",
                        sort: true,
                        hidden: true
          hidden: true,
                    },
                    {
                        field: 'reservoirarea',
                        title: '库区',
                        type: 'string',
          field: "reservoirarea",
          title: "库区",
          type: "string",
                        width: 120,
                        align: 'left',
          align: "left",
                        bind: { key: "warehouseNuber", data: [] },
                        // edit:{type:""}
          hidden: true,
                    },
                    {
                        field: "goods_no",
@@ -278,100 +278,111 @@
                        bind: { key: "MaterielNames", data: [] },
                    },
                    {
                        field: 'goods_no',
                        title: '药品编码',
                        type: 'string',
          field: "goods_no",
          title: "药品编码",
          type: "string",
                        width: 150,
                        require: true,
                        align: 'left',
          align: "left",
                        bind: { key: "medicineGoods", data: [] },
                        // edit:{type:""}
          edit: true,
                    },
                    {
                        field: 'order_qty',
                        title: '订单数量',
                        type: 'decimal',
          field: "order_qty",
          title: "订单数量",
          type: "decimal",
                        width: 100,
                        require: true,
                        align: 'left',
          align: "left",
                        // edit:{type:"number"}
                    },
                       {
                        field: 'order_Outqty',
                        title: '完成数量',
                        type: 'decimal',
          field: "order_Outqty",
          title: "完成数量",
          type: "decimal",
                        width: 100,
                        require: true,
                        align: 'left',
                        edit:{type:"number"}
          align: "left",
          // edit:{type:"number"}
                    },
                    {
                        field: 'batch_num',
                        title: '批号',
                        type: 'string',
          field: "batch_num",
          title: "批号",
          type: "string",
                        width: 120,
                        require: true,
                        align: 'left',
                        edit:{type:""}
          align: "left",
          edit: true,
                    },
                    {
                        field: 'exp_date',
                        title: '校期',
                        type: 'string',
          field: "exp_date",
          title: "效期",
          type: "string",
                        width: 120,
                        align: 'left',
                        edit:{type:""}
                    },
                    {
                        field: 'ootDetailStatus',
                        title: '状态',
                        type: 'string',
                        width: 120,
                        align: 'left',
          align: "left",
                        // edit:{type:""}
                    },
                    {
                        field: 'status',
                        title: '同步状态',
                        type: 'int',
          field: "locationCode",
          title: "货位号",
          type: "string",
                        width: 120,
                        align: 'left',
          align: "left",
          hidden: true,
          edit: true,
        },
        {
          field: "ootDetailStatus",
          title: "状态",
          type: "string",
          width: 120,
          align: "left",
          // edit:{type:""}
        },
        {
          field: "status",
          title: "同步状态",
          type: "int",
          width: 120,
          align: "left",
                        bind: { key: "syncStatus", data: [] },
                        // edit:{type:'select',dataKey:'syncStatus',data:[]}
                    },
                    {
                        field: 'creater',
                        title: '创建人',
                        type: 'string',
          field: "creater",
          title: "创建人",
          type: "string",
                        width: 90,
                        align: 'left'
          align: "left",
                    },
                    {
                        field: 'createDate',
                        title: '创建时间',
                        type: 'datetime',
          field: "createDate",
          title: "创建时间",
          type: "datetime",
                        width: 160,
                        align: 'left',
                        sort: true
          align: "left",
          sort: true,
                    },
                    {
                        field: 'modifier',
                        title: '修改人',
                        type: 'string',
          field: "modifier",
          title: "修改人",
          type: "string",
                        width: 100,
                        align: 'left'
          align: "left",
          hidden: true,
                    },
                    {
                        field: 'modifyDate',
                        title: '修改时间',
                        type: 'datetime',
          field: "modifyDate",
          title: "修改时间",
          type: "datetime",
                        width: 160,
                        align: 'left',
                        sort: true
                    }
          align: "left",
          hidden: true,
          sort: true,
        },
                ],
                sortName: "id",
                key: "id"
      key: "id",
            });
            
            return {