@logwire/logwire-wms-pda-ui 1.1.17 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (753) hide show
  1. package/README.md +4 -21
  2. package/dist/logwire-wms-pda-ui.js +7 -0
  3. package/package.json +16 -42
  4. package/src/api/common/Device.js +43 -43
  5. package/src/api/common/Dict.js +19 -19
  6. package/src/api/common/GetImgSrc.js +20 -20
  7. package/src/api/common/Language.js +31 -31
  8. package/src/api/common/Lot.js +20 -20
  9. package/src/api/common/Msg.js +8 -0
  10. package/src/api/common/Permissions.js +22 -22
  11. package/src/api/common/Print.js +65 -65
  12. package/src/api/common/Task.js +61 -61
  13. package/src/api/common/UUID.js +28 -28
  14. package/src/api/common/User.js +53 -53
  15. package/src/api/common/Waerhouse.js +28 -28
  16. package/src/api/common/common.js +16 -1
  17. package/src/api/common/index.js +37 -37
  18. package/src/api/config/masterLocation/masterLocationConfig/action.js +61 -0
  19. package/src/api/config/masterLocation/masterLocationConfig/index.js +18 -0
  20. package/src/api/config/masterLocation/masterLocationQuery/action.js +28 -0
  21. package/src/api/{inner → config}/newProject/action.js +88 -88
  22. package/src/api/{inner → config}/newProject/index.js +17 -17
  23. package/src/api/inbound/index.js +6 -6
  24. package/src/api/inbound/quality.js +109 -99
  25. package/src/api/inbound/receive.js +438 -119
  26. package/src/api/inner/borrow/index.js +51 -0
  27. package/src/api/inner/count/index.js +97 -97
  28. package/src/api/inner/dead/action.js +24 -0
  29. package/src/api/inner/dead/large.js +78 -0
  30. package/src/api/inner/dead/small.js +96 -0
  31. package/src/api/inner/disposeAbnormal/action.js +69 -69
  32. package/src/api/inner/disposeAbnormal/index.js +33 -33
  33. package/src/api/inner/materialApply/index.js +51 -51
  34. package/src/api/inner/move/abnormalMove.js +25 -25
  35. package/src/api/inner/move/lpnMove.js +25 -25
  36. package/src/api/inner/move/taskMove.js +57 -57
  37. package/src/api/inner/quality/action.js +51 -0
  38. package/src/api/inner/quality/sample.js +24 -0
  39. package/src/api/inner/reportAbnormal/index.js +34 -34
  40. package/src/api/inventory/inventory.js +63 -0
  41. package/src/api/outbound/bale/aloneBale/action.js +123 -0
  42. package/src/api/outbound/bale/aloneBale/index.js +24 -0
  43. package/src/api/outbound/bale/baleChange/action.js +51 -0
  44. package/src/api/outbound/bale/baleChange/addCheck.js +33 -0
  45. package/src/api/outbound/bale/checkBale/action.js +9 -0
  46. package/src/api/outbound/bale/checkBale/allCheck.js +25 -25
  47. package/src/api/outbound/bale/checkBale/index.js +2 -2
  48. package/src/api/outbound/block/index.js +68 -0
  49. package/src/api/outbound/delivery/action.js +181 -149
  50. package/src/api/outbound/delivery/addOrder.js +32 -32
  51. package/src/api/outbound/delivery/index.js +25 -25
  52. package/src/api/outbound/handover/index.js +33 -0
  53. package/src/api/outbound/handover/lpn.js +33 -0
  54. package/src/api/outbound/handover/mixin.js +42 -0
  55. package/src/api/outbound/handover/pageBox.js +24 -0
  56. package/src/api/outbound/pick/alone.js +60 -60
  57. package/src/api/outbound/pick/box.js +42 -42
  58. package/src/api/outbound/pick/index.js +68 -60
  59. package/src/api/outbound/pick/lpn.js +42 -42
  60. package/src/api/outbound/pick/notAlone.js +33 -33
  61. package/src/api/outbound/pick/sow.js +105 -0
  62. package/src/api/outbound/pickMerge/index.js +69 -69
  63. package/src/api/outbound/reprint-box/index.js +17 -0
  64. package/src/api/outbound/sow/action.js +123 -123
  65. package/src/api/outbound/sow/index.js +24 -24
  66. package/src/api/outbound/stockout/index.js +54 -0
  67. package/src/api/outbound/summary/box.js +33 -33
  68. package/src/api/outbound/summary/lpn.js +23 -23
  69. package/src/api/outbound/transfer/index.js +23 -0
  70. package/src/api/receive/abnormal.js +34 -34
  71. package/src/api/receive/putaway.js +116 -82
  72. package/src/api/receive/randomMove.js +43 -43
  73. package/src/api/receive/receipt.js +32 -25
  74. package/src/assets/css/changeVant.less +7 -0
  75. package/src/assets/css/global.less +27 -10
  76. package/src/assets/css/index.less +4 -4
  77. package/src/assets/css/var.less +11 -29
  78. package/src/assets/css//345/205/250/345/261/200/346/240/267/345/274/217.md +1 -31
  79. package/src/assets/img/close_red.png +0 -0
  80. package/src/assets/img/lwLoginModel/language.png +0 -0
  81. package/src/assets/img/lwLoginModel/timezone.png +0 -0
  82. package/src/assets/img/lwNotData/noneData.png +0 -0
  83. package/src/assets/img/menu/allotReceive.png +0 -0
  84. package/src/assets/img/menu/baleChange.png +0 -0
  85. package/src/assets/img/menu/borrowPick.png +0 -0
  86. package/src/assets/img/menu/boxTransfer.png +0 -0
  87. package/src/assets/img/menu/confirmStockOut.png +0 -0
  88. package/src/assets/img/menu/count.png +0 -0
  89. package/src/assets/img/menu/deadPutaway.png +0 -0
  90. package/src/assets/img/menu/disposeAbnormal.png +0 -0
  91. package/src/assets/img/menu/handover.png +0 -0
  92. package/src/assets/img/menu/lpnPack.png +0 -0
  93. package/src/assets/img/menu/mainData.png +0 -0
  94. package/src/assets/img/menu/mainLoc.png +0 -0
  95. package/src/assets/img/menu/mainLocSearch.png +0 -0
  96. package/src/assets/img/menu/moveUp.png +0 -0
  97. package/src/assets/img/menu/newConfig.png +0 -0
  98. package/src/assets/img/menu/outboundBlock.png +0 -0
  99. package/src/assets/img/menu/outboundReprint.png +0 -0
  100. package/src/assets/img/menu/pickContainer.png +0 -0
  101. package/src/assets/img/menu/process.png +0 -0
  102. package/src/assets/img/menu/processTable.png +0 -0
  103. package/src/assets/img/menu/quality.png +0 -0
  104. package/src/assets/img/menu/receive-case.png +0 -0
  105. package/src/assets/img/menu/receive-lpn.png +0 -0
  106. package/src/assets/img/menu/receive-sku.png +0 -0
  107. package/src/assets/img/menu/receive_random.png +0 -0
  108. package/src/assets/img/menu/stockSearch.png +0 -0
  109. package/src/assets/img/my/timezone.png +0 -0
  110. package/src/assets/img/timezone.png +0 -0
  111. package/src/components/module/AbnormalInput/index.js +11 -0
  112. package/src/components/module/AbnormalInput/index.vue +322 -0
  113. package/src/components/module/AbnormalInput//345/274/202/345/270/270/350/276/223/345/205/245/346/250/241/345/235/227.md +1 -0
  114. package/src/components/module/BoxInfo/index.js +10 -0
  115. package/src/components/module/BoxInfo/index.vue +69 -0
  116. package/src/components/{page/inbound/newProject/action/index.less → module/BoxInfo//346/237/245/347/234/213/347/256/261/344/277/241/346/201/257.md} +0 -0
  117. package/src/components/module/InnerAbnormal/index.js +1 -1
  118. package/src/components/module/InnerAbnormal/index.vue +12 -259
  119. package/src/components/module/InnerAbnormal//345/234/250/345/272/223/345/274/202/345/270/270/346/250/241/345/235/227.md +1 -0
  120. package/src/components/module/Login/index.js +11 -11
  121. package/src/components/module/Login/index.vue +355 -328
  122. package/src/components/module/Login//347/231/273/345/275/225/346/250/241/345/235/227.md +1 -1
  123. package/src/components/module/Lot/index.js +11 -11
  124. package/src/components/module/Lot/index.vue +28 -4
  125. package/src/components/module/Lot//346/211/271/346/254/241/345/261/236/346/200/247.md +4 -2
  126. package/src/components/module/LotLook/index.js +11 -11
  127. package/src/components/module/LotLook/index.vue +36 -23
  128. package/src/components/module/LotLook//346/225/260/346/215/256/346/237/245/347/234/213.md +3 -0
  129. package/src/components/module/Menu/index.js +12 -12
  130. package/src/components/module/Menu/index.vue +122 -118
  131. package/src/components/module/Menu//350/217/234/345/215/225/346/240/217.md +1 -1
  132. package/src/components/module/MsgItem/index.js +11 -11
  133. package/src/components/module/MsgItem/index.vue +42 -27
  134. package/src/components/module/MsgItem//346/266/210/346/201/257/345/210/227/350/241/250/345/217/212/345/210/206/351/241/265/346/250/241/345/235/227.md +1 -1
  135. package/src/components/module/OnLine/index.js +11 -11
  136. package/src/components/module/OnLine/index.vue +1 -1
  137. package/src/components/module/OnLine//344/270/212/344/270/213/347/272/277/347/256/241/347/220/206/346/250/241/345/235/227.md +1 -1
  138. package/src/components/module/ReceiveAbnormal/index.js +11 -11
  139. package/src/components/module/ReceiveAbnormal/index.vue +123 -32
  140. package/src/components/module/ReceiveAbnormal//346/224/266/350/264/247/345/274/202/345/270/270/346/250/241/345/235/227.md +1 -0
  141. package/src/components/module/ScanDataList/index.js +11 -11
  142. package/src/components/module/ScanDataList/index.vue +34 -27
  143. package/src/components/module/ScanDataList//346/211/253/346/217/217/346/225/260/346/215/256/345/261/225/347/244/272/345/217/212/345/210/240/351/231/244.md +2 -0
  144. package/src/components/module/SkuInfo/index.js +11 -11
  145. package/src/components/module/SkuInfo/index.vue +6 -3
  146. package/src/components/module/SkuInfo//346/237/245/347/234/213/345/225/206/345/223/201/344/277/241/346/201/257.md +4 -0
  147. package/src/components/module/SystemInfo/index.js +11 -11
  148. package/src/components/module/SystemInfo/index.vue +20 -10
  149. package/src/components/module/SystemInfo//347/263/273/347/273/237/344/277/241/346/201/257/344/270/216/344/270/212/347/272/277/347/212/266/346/200/201/346/250/241/345/235/227.md +1 -1
  150. package/src/components/module/index.js +20 -14
  151. package/src/components/page/common/Device/index.js +11 -11
  152. package/src/components/page/common/Device/index.vue +2 -2
  153. package/src/components/page/common/Device//350/256/276/345/244/207/347/256/241/347/220/206/351/241/265.md +1 -1
  154. package/src/components/page/common/Home/index.js +11 -11
  155. package/src/components/page/common/Home/index.vue +113 -113
  156. package/src/components/page/common/Home//344/270/273/351/241/265.md +1 -1
  157. package/src/components/page/common/Language/index.js +11 -11
  158. package/src/components/page/common/Language/index.vue +143 -142
  159. package/src/components/page/common/Language//350/257/255/350/250/200.md +1 -1
  160. package/src/components/page/common/Login/index.js +11 -11
  161. package/src/components/page/common/Login/index.vue +155 -157
  162. package/src/components/page/common/Login//347/231/273/345/275/225/351/241/265.md +1 -1
  163. package/src/components/page/common/Menu/index.js +11 -11
  164. package/src/components/page/common/Menu/index.vue +77 -71
  165. package/src/components/page/common/Menu//350/217/234/345/215/225/351/241/265.md +1 -1
  166. package/src/components/page/common/Msg/index.js +11 -11
  167. package/src/components/page/common/Msg/index.vue +260 -152
  168. package/src/components/page/common/Msg//346/266/210/346/201/257/351/241/265.md +1 -1
  169. package/src/components/page/common/My/index.js +11 -11
  170. package/src/components/page/common/My/index.vue +520 -477
  171. package/src/components/page/common/My//346/210/221/347/232/204/347/256/241/347/220/206/351/241/265.md +1 -1
  172. package/src/components/page/common/Print/index.js +11 -11
  173. package/src/components/page/common/Print/index.vue +7 -10
  174. package/src/components/page/common/Print//346/211/223/345/215/260/346/234/272/350/256/276/347/275/256/351/241/265.md +1 -1
  175. package/src/components/page/common/Task/index.js +11 -11
  176. package/src/components/page/common/Task/index.vue +707 -699
  177. package/src/components/page/common/Task//344/273/273/345/212/241/351/241/265.md +1 -1
  178. package/src/components/page/common/Timezone/index.js +11 -0
  179. package/src/components/page/common/Timezone/index.vue +82 -0
  180. package/src/components/page/{inbound/newProject/index/index.less → common/Timezone//346/227/266/345/214/272/351/200/211/346/213/251/351/241/265.md} +0 -0
  181. package/src/components/page/common/Warehouse/index.js +11 -11
  182. package/src/components/page/common/Warehouse/index.vue +11 -3
  183. package/src/components/page/common/Warehouse//344/273/223/345/272/223/351/200/211/346/213/251/351/241/265.md +1 -1
  184. package/src/components/page/common/index.js +4 -1
  185. package/src/components/page/config/index.js +28 -0
  186. package/src/components/page/config/masterLocation/masterLocationConfig/action/index.js +11 -0
  187. package/src/components/page/{inbound/newProject//346/226/260/345/223/201/351/205/215/347/275/256.md → config/masterLocation/masterLocationConfig/action/index.less} +0 -0
  188. package/src/components/page/config/masterLocation/masterLocationConfig/action/index.vue +780 -0
  189. package/src/components/page/config/masterLocation/masterLocationConfig/index/index.js +11 -0
  190. package/src/components/page/{inner/lpnPutAway//344/270/212/346/236/266/347/247/273/345/212/250.md → config/masterLocation/masterLocationConfig/index/index.less} +0 -0
  191. package/src/components/page/config/masterLocation/masterLocationConfig/index/index.vue +112 -0
  192. package/src/components/page/{outbound/bale/components/mainPage//351/241/265/351/235/242/345/244/226/346/241/206/347/273/204/344/273/266.md → config/masterLocation/masterLocationConfig//344/270/273/345/272/223/344/275/215/351/205/215/347/275/256.md} +0 -0
  193. package/src/components/page/config/masterLocation/masterLocationQuery/action/index.js +18 -0
  194. package/src/components/page/config/masterLocation/masterLocationQuery/action/queryByLocationCode.vue +165 -0
  195. package/src/components/page/config/masterLocation/masterLocationQuery/action/queryBySkuCode.vue +168 -0
  196. package/src/components/page/config/masterLocation/masterLocationQuery/index/index.js +11 -0
  197. package/src/components/page/config/masterLocation/masterLocationQuery/index/index.less +0 -0
  198. package/src/components/page/config/masterLocation/masterLocationQuery/index/index.vue +114 -0
  199. package/src/components/page/config/masterLocation/masterLocationQuery//344/270/273/345/272/223/344/275/215/346/237/245/350/257/242.md +0 -0
  200. package/src/components/page/config/masterLocation//344/270/273/345/272/223/344/275/215.md +0 -0
  201. package/src/components/page/{inbound → config}/newProject/action/index.js +13 -13
  202. package/src/components/page/config/newProject/action/index.less +0 -0
  203. package/src/components/page/{inbound → config}/newProject/action/index.vue +1595 -1469
  204. package/src/components/page/{inbound → config}/newProject/index/index.js +13 -13
  205. package/src/components/page/config/newProject/index/index.less +0 -0
  206. package/src/components/page/{inbound → config}/newProject/index/index.vue +122 -122
  207. package/src/components/page/config/newProject//346/226/260/345/223/201/351/205/215/347/275/256.md +0 -0
  208. package/src/components/page/count/components/CountBoard.vue +115 -115
  209. package/src/components/page/count/components/RandomCount.vue +16 -16
  210. package/src/components/page/count/index.js +21 -21
  211. package/src/components/page/count/inv/action/index.js +5 -5
  212. package/src/components/page/count/inv/action/index.vue +294 -272
  213. package/src/components/page/count/inv/index/index.js +5 -5
  214. package/src/components/page/count/inv/index/index.vue +190 -190
  215. package/src/components/page/count/loc/action/index.js +5 -5
  216. package/src/components/page/count/loc/action/index.vue +53 -53
  217. package/src/components/page/count/loc/index/index.js +5 -5
  218. package/src/components/page/count/loc/index/index.vue +184 -184
  219. package/src/components/page/inbound/components/AllocReceiveResult.vue +129 -0
  220. package/src/components/page/inbound/components/AllocScanListItem.vue +147 -0
  221. package/src/components/page/inbound/components/AllocSkuListItem.vue +148 -0
  222. package/src/components/page/inbound/components/AsnInfo.vue +243 -181
  223. package/src/components/page/inbound/components/AsnSkuInfo.vue +66 -46
  224. package/src/components/page/inbound/components/QualityCard.vue +230 -230
  225. package/src/components/page/inbound/components/QualityTaskInfo.vue +88 -88
  226. package/src/components/page/inbound/components/SearchBar.vue +85 -0
  227. package/src/components/page/inbound/components/SkuReceiveInfo.vue +69 -0
  228. package/src/components/page/inbound/components/SnsList.vue +10 -6
  229. package/src/components/page/inbound/index.js +23 -17
  230. package/src/components/page/inbound/receive/home/index.js +5 -5
  231. package/src/components/page/inbound/receive/home/index.vue +145 -73
  232. package/src/components/page/inbound/receive/index/index.js +5 -5
  233. package/src/components/page/inbound/receive/index/index.vue +17 -14
  234. package/src/components/page/inbound/receive/quality/LwInboundQualityExecutePage.vue +110 -59
  235. package/src/components/page/inbound/receive/quality/LwInboundQualityTaskListPage.vue +19 -19
  236. package/src/components/page/inbound/receive/quality/index.js +16 -16
  237. package/src/components/page/inbound/receive/receive-alloc/LwInboundReceiveAllocSkuExecutePage.vue +595 -0
  238. package/src/components/page/inbound/receive/receive-alloc/LwInboundReceiveAllocSnExecutePage.vue +233 -0
  239. package/src/components/page/inbound/receive/receive-alloc/LwInboundReceiveAllocTabListPage.vue +247 -0
  240. package/src/components/page/inbound/receive/receive-alloc/index.js +19 -0
  241. package/src/components/page/inbound/receive/receive-case/LwInboundReceiveCaseExecutePage.vue +312 -0
  242. package/src/components/page/inbound/receive/receive-case/LwInboundReceiveCaseScanPage.vue +80 -0
  243. package/src/components/page/inbound/receive/receive-case/index.js +16 -0
  244. package/src/components/page/inbound/receive/receive-lpn/LwInboundReceiveLpnBatchExecutePage.vue +386 -0
  245. package/src/components/page/inbound/receive/receive-lpn/LwInboundReceiveLpnExecutePage.vue +216 -0
  246. package/src/components/page/inbound/receive/receive-lpn/LwInboundReceiveLpnScanPage.vue +80 -0
  247. package/src/components/page/inbound/receive/receive-lpn/index.js +19 -0
  248. package/src/components/page/inbound/receive/receive-random/LwInboundReceiveRandomSkuExecutePage.vue +340 -0
  249. package/src/components/page/inbound/receive/receive-random/LwInboundReceiveRandomSkuScanPage.vue +111 -0
  250. package/src/components/page/inbound/receive/receive-random/LwInboundReceiveRandomSkuSnExecutePage.vue +340 -0
  251. package/src/components/page/inbound/receive/receive-random/index.js +19 -0
  252. package/src/components/page/inbound/receive/receive-sku/LwInboundReceiveSkuAdvancePage.vue +85 -76
  253. package/src/components/page/inbound/receive/receive-sku/LwInboundReceiveSkuDirectPage.vue +103 -87
  254. package/src/components/page/inbound/receive/receive-sku/LwInboundReceiveSkuScanPage.vue +65 -54
  255. package/src/components/page/inbound/receive/receive-sku/index.js +19 -19
  256. package/src/components/page/inbound/util/InboundUtils.js +72 -0
  257. package/src/components/page/index.js +8 -0
  258. package/src/components/page/inner/abnormalMove/index/index.js +11 -11
  259. package/src/components/page/inner/abnormalMove/index/index.vue +9 -11
  260. package/src/components/page/inner/borrow/action/index.js +11 -0
  261. package/src/components/page/inner/borrow/action/index.vue +831 -0
  262. package/src/components/page/inner/borrow/index/index.js +11 -0
  263. package/src/components/page/inner/borrow/index/index.vue +249 -0
  264. package/src/components/page/inner/borrow//345/200/237/344/273/266.md +0 -0
  265. package/src/components/page/inner/dead/components/abnPopup.vue +83 -0
  266. package/src/components/page/inner/dead/components/bagItem.vue +104 -0
  267. package/src/components/page/inner/dead/components/boxListItem.vue +135 -0
  268. package/src/components/page/inner/dead/components/dataInfo.vue +94 -0
  269. package/src/components/page/inner/dead/components/lackPopup.vue +190 -0
  270. package/src/components/page/inner/dead/components/lpnListItem.vue +115 -0
  271. package/src/components/page/inner/dead/components/taskItem.vue +570 -0
  272. package/src/components/page/inner/dead/components/waitOverLpn.vue +74 -0
  273. package/src/components/page/inner/dead/large/index.js +11 -0
  274. package/src/components/page/inner/dead/large/index.vue +376 -0
  275. package/src/components/page/inner/dead/large//344/270/255/345/244/247/344/273/266 - /346/211/223/346/211/230.md +0 -0
  276. package/src/components/page/inner/dead/putaway/action/index.js +11 -0
  277. package/src/components/page/inner/dead/putaway/action/index.vue +131 -0
  278. package/src/components/page/inner/dead/putaway/components/collapseItem.vue +128 -0
  279. package/src/components/page/inner/dead/putaway/index/index.js +11 -0
  280. package/src/components/page/inner/dead/putaway/index/index.vue +63 -0
  281. package/src/components/page/inner/dead/putaway//345/221/206/346/273/236/345/223/201/344/270/212/346/236/266.md +0 -0
  282. package/src/components/page/inner/dead/small/index.js +11 -0
  283. package/src/components/page/inner/dead/small/index.vue +656 -0
  284. package/src/components/page/inner/dead/small//345/260/217/344/273/266 - /350/243/205/347/256/261.md +0 -0
  285. package/src/components/page/inner/dead/taskEntrance/index.js +11 -0
  286. package/src/components/page/inner/dead/taskEntrance/index.vue +49 -0
  287. package/src/components/page/inner/dead/taskEntrance//344/273/273/345/212/241/345/205/245/345/217/243/351/241/265/351/235/242.md +0 -0
  288. package/src/components/page/inner/dead//345/221/206/346/273/236/345/223/201/346/225/264/347/220/206.md +0 -0
  289. package/src/components/page/inner/disposeAbnormal/action/index.js +11 -11
  290. package/src/components/page/inner/disposeAbnormal/action/index.vue +37 -37
  291. package/src/components/page/inner/disposeAbnormal/components/abnInfo/index.vue +655 -655
  292. package/src/components/page/inner/disposeAbnormal/components/disposePopup/index.vue +17 -17
  293. package/src/components/page/inner/disposeAbnormal/components/listItem/index.vue +213 -213
  294. package/src/components/page/inner/disposeAbnormal/components/searchBar/index.vue +13 -13
  295. package/src/components/page/inner/disposeAbnormal/index/index.js +11 -11
  296. package/src/components/page/inner/disposeAbnormal/index/index.vue +16 -5
  297. package/src/components/page/inner/index.js +119 -62
  298. package/src/components/page/inner/lpnMove/action/index.js +11 -11
  299. package/src/components/page/inner/lpnMove/action/index.vue +24 -3
  300. package/src/components/page/inner/lpnMove/index/index.js +11 -11
  301. package/src/components/page/inner/materialApply/action/index.js +10 -10
  302. package/src/components/page/inner/materialApply/action/index.vue +10 -18
  303. package/src/components/page/inner/materialApply/generate/index.js +10 -10
  304. package/src/components/page/inner/materialApply/generate/index.vue +10 -1
  305. package/src/components/page/inner/movePutAway/index/index.js +11 -11
  306. package/src/components/page/inner/movePutAway/index/index.vue +5 -5
  307. package/src/components/page/inner/quality/action/index.js +11 -0
  308. package/src/components/page/inner/quality/action/index.vue +720 -0
  309. package/src/components/page/inner/quality/components/lookData.vue +109 -0
  310. package/src/components/page/inner/quality/components/sampleInfo.vue +62 -0
  311. package/src/components/page/inner/quality/sample/index.js +11 -0
  312. package/src/components/page/inner/quality/sample/index.vue +426 -0
  313. package/src/components/page/inner/quality/sample//346/212/275/346/243/200.md +0 -0
  314. package/src/components/page/inner/quality//350/264/250/346/243/200.md +0 -0
  315. package/src/components/page/inner/randomMove/components/Down/index.vue +61 -24
  316. package/src/components/page/inner/randomMove/components/Up/index.vue +100 -36
  317. package/src/components/page/inner/randomMove/index/index.js +11 -11
  318. package/src/components/page/inner/randomMove/index/index.vue +152 -152
  319. package/src/components/page/inner/reportAbnormal/action/index.js +11 -11
  320. package/src/components/page/inner/reportAbnormal/action/index.vue +244 -246
  321. package/src/components/page/inner/reportAbnormal/index/index.js +11 -11
  322. package/src/components/page/inner/reportAbnormal/index/index.vue +9 -1
  323. package/src/components/page/inner/taskMove/index/index.js +11 -11
  324. package/src/components/page/inner/taskMove/index/index.vue +1495 -1374
  325. package/src/components/page/inventory/index.js +17 -0
  326. package/src/components/page/inventory/inventoryItem/index.vue +127 -0
  327. package/src/components/page/inventory/inventoryLotPage/index.vue +208 -0
  328. package/src/components/page/inventory/queryInventory/index/index.js +11 -0
  329. package/src/components/page/inventory/queryInventory/index/index.less +0 -0
  330. package/src/components/page/inventory/queryInventory/index/index.vue +231 -0
  331. package/src/components/page/inventory/queryInventory/page/index.js +11 -0
  332. package/src/components/page/inventory/queryInventory/page/index.less +0 -0
  333. package/src/components/page/inventory/queryInventory/page/index.vue +525 -0
  334. package/src/components/page/outbound/bale/aloneBale/action/index.js +11 -11
  335. package/src/components/page/outbound/bale/aloneBale/action/index.vue +699 -112
  336. package/src/components/page/outbound/bale/aloneBale/index/index.js +11 -11
  337. package/src/components/page/outbound/bale/aloneBale/index/index.vue +148 -86
  338. package/src/components/page/outbound/bale/aloneBale/newBale/index.js +11 -11
  339. package/src/components/page/outbound/bale/aloneBale/newBale/index.vue +67 -53
  340. package/src/components/page/outbound/bale/baleChange/action/index.js +11 -0
  341. package/src/components/page/outbound/bale/baleChange/action/index.vue +585 -0
  342. package/src/components/page/outbound/bale/baleChange/index/index.js +11 -0
  343. package/src/components/page/outbound/bale/baleChange/index/index.vue +67 -0
  344. package/src/components/page/outbound/bale/baleChange/skuCheck/index.js +11 -0
  345. package/src/components/page/outbound/bale/baleChange/skuCheck/index.vue +351 -0
  346. package/src/components/page/outbound/bale/baleChange//346/215/206/345/214/205/347/256/261/350/260/203/346/225/264.md +0 -0
  347. package/src/components/page/outbound/bale/checkBale/action/index.js +11 -11
  348. package/src/components/page/outbound/bale/checkBale/action/index.vue +247 -636
  349. package/src/components/page/outbound/bale/checkBale/allCheck/index.js +11 -11
  350. package/src/components/page/outbound/bale/checkBale/allCheck/index.vue +119 -119
  351. package/src/components/page/outbound/bale/checkBale/index/index.js +11 -11
  352. package/src/components/page/outbound/bale/checkBale/index/index.vue +261 -259
  353. package/src/components/page/outbound/bale/checkBale/newBale/index.js +11 -11
  354. package/src/components/page/outbound/bale/checkBale/newBale/index.vue +68 -62
  355. package/src/components/page/outbound/bale/components/allBlock/index.vue +97 -97
  356. package/src/components/page/outbound/bale/components/containerInfo/index.vue +43 -38
  357. package/src/components/page/outbound/bale/components/containerInfo//346/215/206/345/214/205/345/256/271/345/231/250/344/277/241/346/201/257.md +2 -2
  358. package/src/components/page/outbound/bale/components/containerSkuQty/img.png +0 -0
  359. package/src/components/page/outbound/bale/components/containerSkuQty/index.vue +58 -58
  360. package/src/components/page/outbound/bale/components/containerSkuQty//345/275/223/345/211/215/346/215/206/345/214/205/345/256/271/345/231/250/345/217/212/345/223/201/347/247/215/346/225/260.md +1 -0
  361. package/src/components/page/outbound/bale/components/delSku/index.vue +317 -0
  362. package/src/components/page/outbound/bale/components/delSku//345/211/224/351/231/244/345/225/206/345/223/201/345/274/271/346/241/206.md +0 -0
  363. package/src/components/page/outbound/bale/components/partBlock/index.vue +17 -13
  364. package/src/components/page/outbound/bale/components/planCollapse/index.vue +21 -25
  365. package/src/components/page/outbound/bale/components/repeatCheck/index.vue +101 -0
  366. package/src/components/page/outbound/bale/components/repeatCheck//351/207/215/346/226/260/345/244/215/346/240/270/345/274/271/346/241/206.md +0 -0
  367. package/src/components/page/outbound/bale/components/storeInfo/index.vue +9 -9
  368. package/src/components/page/outbound/bale/components/storeInfo//345/256/242/346/210/267/346/215/206/345/214/205/344/277/241/346/201/257.md +1 -1
  369. package/src/components/page/outbound/bale/components/storeInfoSkuList/index.vue +18 -11
  370. package/src/components/page/outbound/bale/components//346/215/206/345/214/205/344/275/277/347/224/250/347/232/204/347/273/204/344/273/266.md +0 -0
  371. package/src/components/page/outbound/bale/mixins.js +212 -0
  372. package/src/components/page/outbound/bale//346/215/206/345/214/205/347/233/270/345/205/263/351/241/265/351/235/242-/345/244/215/346/240/270/346/215/206/345/214/205-/347/213/254/347/253/213/346/215/206/345/214/205-/346/215/206/345/214/205/347/256/261/350/260/203/346/225/264.md +0 -0
  373. package/src/components/page/outbound/block/LwOutboundBlockBoxListPage.vue +67 -0
  374. package/src/components/page/outbound/block/LwOutboundBlockExecutePage.vue +316 -0
  375. package/src/components/page/outbound/block/components/BlockInfo.vue +56 -0
  376. package/src/components/page/outbound/block/index.js +16 -0
  377. package/src/components/page/outbound/block//345/207/272/345/272/223/346/213/246/346/210/252.txt +0 -0
  378. package/src/components/page/outbound/boxTransfer/action/index.js +11 -0
  379. package/src/components/page/outbound/boxTransfer/action/index.vue +214 -0
  380. package/src/components/page/outbound/boxTransfer/index/index.js +11 -0
  381. package/src/components/page/outbound/boxTransfer/index/index.vue +174 -0
  382. package/src/components/page/outbound/boxTransfer//346/273/236/347/225/231/344/273/266/350/275/254/345/255/230.md +0 -0
  383. package/src/components/page/outbound/delivery/action/index.js +11 -11
  384. package/src/components/page/outbound/delivery/action/index.vue +383 -245
  385. package/src/components/page/outbound/delivery/addOrder/index.js +11 -11
  386. package/src/components/page/outbound/delivery/addOrder/index.vue +24 -24
  387. package/src/components/page/outbound/delivery/components/boxItem/index.vue +68 -32
  388. package/src/components/page/outbound/delivery/components/orderContent/index.vue +177 -143
  389. package/src/components/page/outbound/delivery/components/orderContentTitle/index.vue +525 -239
  390. package/src/components/page/outbound/delivery/components/soAndLpnItem/index.vue +91 -44
  391. package/src/components/page/outbound/delivery/index/index.js +11 -11
  392. package/src/components/page/outbound/delivery/index/index.vue +63 -12
  393. package/src/components/page/outbound/handover/components/boxInfo.vue +51 -0
  394. package/src/components/page/outbound/handover/components/boxNumList.vue +158 -0
  395. package/src/components/page/outbound/handover/components/collapseItem.vue +136 -0
  396. package/src/components/page/outbound/handover/components/customerAndLine.vue +179 -0
  397. package/src/components/page/outbound/handover/components/customerList.vue +94 -0
  398. package/src/components/page/outbound/handover/components/lineInfo.vue +129 -0
  399. package/src/components/page/outbound/handover/components/lpnListItem.vue +119 -0
  400. package/src/components/page/outbound/handover/components/nowScan.vue +59 -0
  401. package/src/components/page/outbound/handover/components/pageBox.vue +524 -0
  402. package/src/components/page/outbound/handover/components/storeInfo.vue +128 -0
  403. package/src/components/page/outbound/handover/customer/index.js +11 -0
  404. package/src/components/page/outbound/handover/customer/index.vue +34 -0
  405. package/src/components/page/outbound/handover/index/index.js +11 -0
  406. package/src/components/page/outbound/handover/index/index.vue +217 -0
  407. package/src/components/page/outbound/handover/line/index.js +11 -0
  408. package/src/components/page/outbound/handover/line/index.vue +32 -0
  409. package/src/components/page/outbound/handover/lpn/index.js +11 -0
  410. package/src/components/page/outbound/handover/lpn/index.vue +262 -0
  411. package/src/components/page/outbound/handover/mixin.js +207 -0
  412. package/src/components/page/outbound/handover//345/207/272/345/272/223/344/272/244/346/216/245.md +0 -0
  413. package/src/components/page/outbound/index.js +58 -0
  414. package/src/components/page/outbound/lpnPack/action/index.js +11 -0
  415. package/src/components/page/outbound/lpnPack/action/index.vue +287 -0
  416. package/src/components/page/outbound/lpnPack/components/lpnActionInfo.vue +113 -0
  417. package/src/components/page/outbound/lpnPack/components/lpnItem.vue +126 -0
  418. package/src/components/page/outbound/lpnPack/index/index.js +11 -0
  419. package/src/components/page/outbound/lpnPack/index/index.vue +166 -0
  420. package/src/components/page/outbound/lpnPack/newLpnPack/index.js +11 -0
  421. package/src/components/page/outbound/lpnPack/newLpnPack/index.vue +80 -0
  422. package/src/components/page/outbound/lpnPack/newLpnPack//346/226/260/346/211/223/346/211/230.md +0 -0
  423. package/src/components/page/outbound/lpnPack/over/index.js +11 -0
  424. package/src/components/page/outbound/lpnPack/over/index.vue +85 -0
  425. package/src/components/page/outbound/lpnPack/over//345/267/262/346/211/223/346/211/230.md +0 -0
  426. package/src/components/page/outbound/lpnPack//346/211/223/346/211/230.md +0 -0
  427. package/src/components/page/outbound/pick/alone/index.js +11 -11
  428. package/src/components/page/outbound/pick/alone/index.vue +34 -27
  429. package/src/components/page/outbound/pick/box/index.js +11 -11
  430. package/src/components/page/outbound/pick/box/index.vue +34 -26
  431. package/src/components/page/outbound/pick/components/dataLookAndChange/index.vue +57 -134
  432. package/src/components/page/outbound/pick/components/skuLocationInfo/index.vue +209 -208
  433. package/src/components/page/outbound/pick/components/sowList.vue +190 -0
  434. package/src/components/page/outbound/pick/components/splitPutDown/index.vue +13 -13
  435. package/src/components/page/outbound/pick/components/taskInfo.vue +129 -0
  436. package/src/components/page/outbound/pick/index/index.js +11 -11
  437. package/src/components/page/outbound/pick/index/index.vue +76 -78
  438. package/src/components/page/outbound/pick/lpn/index.js +11 -11
  439. package/src/components/page/outbound/pick/lpn/index.vue +36 -20
  440. package/src/components/page/outbound/pick/mixin/all.js +14 -16
  441. package/src/components/page/outbound/pick/mixin/aloneAndNotAlone.js +13 -13
  442. package/src/components/page/outbound/pick/notAlone/index.js +11 -11
  443. package/src/components/page/outbound/pick/notAlone/index.vue +39 -30
  444. package/src/components/page/outbound/pick/sow/index.js +11 -0
  445. package/src/components/page/outbound/pick/sow/index.vue +1290 -0
  446. package/src/components/page/outbound/pick/sow//350/276/271/346/213/243/350/276/271/345/210/206.md +0 -0
  447. package/src/components/page/outbound/pickContainer/action/index.js +11 -0
  448. package/src/components/page/outbound/pickContainer/action/index.vue +219 -0
  449. package/src/components/page/outbound/pickContainer/index/index.js +11 -0
  450. package/src/components/page/outbound/pickContainer/index/index.vue +63 -0
  451. package/src/components/page/outbound/pickContainer//346/213/243/351/200/211/345/256/271/345/231/250/346/237/245/350/257/242.md +0 -0
  452. package/src/components/page/outbound/pickMerge/action/index.js +11 -11
  453. package/src/components/page/outbound/pickMerge/action/index.vue +543 -543
  454. package/src/components/page/outbound/pickMerge/components/containerInfo/index.vue +89 -89
  455. package/src/components/page/outbound/pickMerge/components/finishPopup/index.vue +88 -88
  456. package/src/components/page/outbound/pickMerge/components/skuInfo/index.vue +132 -132
  457. package/src/components/page/outbound/pickMerge/content/index.js +11 -11
  458. package/src/components/page/outbound/pickMerge/content/index.vue +9 -9
  459. package/src/components/page/outbound/pickMerge/index/index.js +11 -11
  460. package/src/components/page/outbound/pickMerge/index/index.vue +77 -77
  461. package/src/components/page/outbound/reprint-box/LwOutboundReprintBoxListPage.vue +206 -0
  462. package/src/components/page/outbound/reprint-box/index.js +13 -0
  463. package/src/components/page/outbound/reprint-box//347/256/261/347/245/250/350/241/245/346/211/223.txt +0 -0
  464. package/src/components/page/outbound/sow/action/index.js +11 -11
  465. package/src/components/page/outbound/sow/action/index.vue +1406 -1420
  466. package/src/components/page/outbound/sow/components/sowLocationList/index.vue +94 -80
  467. package/src/components/page/outbound/sow/components/waitSowCollapse/index.vue +105 -105
  468. package/src/components/page/outbound/sow/index/index.js +11 -11
  469. package/src/components/page/outbound/sow/index/index.vue +23 -26
  470. package/src/components/page/outbound/stockout/LwOutboundStockoutExecutePage.vue +108 -0
  471. package/src/components/page/outbound/stockout/LwOutboundStockoutListPage.vue +103 -0
  472. package/src/components/page/outbound/stockout/components/StockoutInfo.vue +42 -0
  473. package/src/components/page/outbound/stockout/index.js +16 -0
  474. package/src/components/page/outbound/stockout//347/274/272/350/264/247.txt +0 -0
  475. package/src/components/page/outbound/summary/box/index/index.js +11 -11
  476. package/src/components/page/outbound/summary/box/index/index.vue +39 -39
  477. package/src/components/page/outbound/summary/lpn/action/index.js +12 -12
  478. package/src/components/page/outbound/summary/lpn/action/index.vue +13 -12
  479. package/src/components/page/outbound/summary/lpn/index/index.js +12 -12
  480. package/src/components/page/outbound/summary/lpn/index/index.vue +70 -70
  481. package/src/components/page/process/index.js +21 -0
  482. package/src/components/page/process/prepare/index.js +11 -0
  483. package/src/components/page/process/prepare/index.vue +841 -0
  484. package/src/components/page/process/process/action/index.js +11 -0
  485. package/src/components/page/process/process/action/index.vue +158 -0
  486. package/src/components/page/process/process/components/craftCollapse.vue +130 -0
  487. package/src/components/page/process/process/components/dockInfo.vue +79 -0
  488. package/src/components/page/process/process/components/dockTaskInfo.vue +192 -0
  489. package/src/components/page/process/process/components/overCollapse.vue +376 -0
  490. package/src/components/page/process/process/components/rawCollapse.vue +113 -0
  491. package/src/components/page/process/process/components/stopPopup.vue +90 -0
  492. package/src/components/page/process/process/console/index.js +11 -0
  493. package/src/components/page/process/process/console/index.vue +525 -0
  494. package/src/components/page/process/process/content/index.js +11 -0
  495. package/src/components/page/process/process/content/index.vue +367 -0
  496. package/src/components/page/process/process/index/index.js +11 -0
  497. package/src/components/page/process/process/index/index.vue +68 -0
  498. package/src/components/page/process//345/212/240/345/267/245.md +0 -0
  499. package/src/components/page/receive/abnormal/action/index.js +11 -11
  500. package/src/components/page/receive/abnormal/action/index.vue +45 -45
  501. package/src/components/page/receive/abnormal/index/index.js +11 -11
  502. package/src/components/page/receive/abnormal/index/index.vue +73 -73
  503. package/src/components/page/receive/index.js +40 -36
  504. package/src/components/page/receive/putaway/caseAction/index.js +9 -0
  505. package/src/components/page/receive/putaway/caseAction/index.vue +542 -0
  506. package/src/components/page/receive/putaway/components/CaseInfo/index.vue +178 -0
  507. package/src/components/page/receive/putaway/components/SkuInfo/index.vue +291 -247
  508. package/src/components/page/receive/putaway/components/SkuPutAwayInfo/index.vue +5 -5
  509. package/src/components/page/receive/putaway/components/TaskInfo/index.vue +241 -216
  510. package/src/components/page/receive/putaway/components/lpnBatchItem.vue +112 -0
  511. package/src/components/page/receive/putaway/components/overPutawayItem.vue +119 -0
  512. package/src/components/page/receive/putaway/index/index.js +11 -11
  513. package/src/components/page/receive/putaway/index/index.vue +254 -92
  514. package/src/components/page/receive/putaway/lpnAction/index.js +11 -11
  515. package/src/components/page/receive/putaway/lpnAction/index.vue +42 -12
  516. package/src/components/page/receive/putaway/lpnBatchAction/index.js +11 -0
  517. package/src/components/page/receive/putaway/lpnBatchAction/index.vue +213 -0
  518. package/src/components/page/receive/putaway/lpnBatchAction//346/225/264/346/211/230/347/233/230/346/211/271/351/207/217/344/270/212/346/236/266.md +0 -0
  519. package/src/components/page/receive/putaway/skuAction/index.js +11 -11
  520. package/src/components/page/receive/putaway/skuAction/index.vue +4 -3
  521. package/src/components/page/receive/receipt/action/index.js +11 -11
  522. package/src/components/page/receive/receipt/action/index.vue +60 -44
  523. package/src/components/page/receive/receipt/index/index.js +11 -11
  524. package/src/components/page/receive/receipt/index/index.vue +11 -3
  525. package/src/components/ui/BottomBar/index.js +5 -5
  526. package/src/components/ui/BottomBar/index.vue +31 -5
  527. package/src/components/ui/BottomBarBtnHidden/index.js +11 -11
  528. package/src/components/ui/BottomBarBtnHidden/index.vue +1 -1
  529. package/src/components/ui/BottomBarBtnHidden//345/272/225/351/203/250/346/214/211/351/222/256/346/240/217/351/232/220/350/227/217/345/244/232/344/275/231/346/214/211/351/222/256.md +1 -0
  530. package/src/components/ui/Button/index.js +5 -5
  531. package/src/components/ui/Button/index.vue +8 -8
  532. package/src/components/ui/CarPlate/index.js +11 -11
  533. package/src/components/ui/CarPlate/index.vue +202 -85
  534. package/src/components/ui/CarPlate//350/275/246/347/211/214/345/217/267.md +1 -1
  535. package/src/components/ui/Cell/index.js +5 -5
  536. package/src/components/ui/CellPopupDate/index.js +11 -11
  537. package/src/components/ui/CellPopupDate/index.vue +57 -12
  538. package/src/components/ui/CellPopupDate//345/215/225/345/205/203/350/241/214/345/212/240/346/227/266/351/227/264/351/200/211/346/213/251/345/231/250.md +1 -1
  539. package/src/components/ui/CellPopupRadio/index.js +11 -11
  540. package/src/components/ui/CellPopupRadio//350/241/214/345/212/240/345/215/225/351/200/211/345/274/271/345/207/272/346/241/206.md +1 -1
  541. package/src/components/ui/CutCard/index.js +11 -11
  542. package/src/components/ui/CutCard/index.vue +143 -132
  543. package/src/components/ui/CutCard//345/215/241/347/211/207/351/241/265/351/235/242/345/210/207/346/215/242.md +1 -1
  544. package/src/components/ui/DataLookBg/index.js +11 -11
  545. package/src/components/ui/DataLookBg/index.vue +134 -104
  546. package/src/components/ui/DataLookBg//346/225/260/346/215/256/347/234/213/346/235/277.md +1 -0
  547. package/src/components/ui/ErrorMsg/index.js +59 -59
  548. package/src/components/ui/ErrorMsg/index.vue +141 -141
  549. package/src/components/ui/Form/index.js +5 -5
  550. package/src/components/ui/Form/index.vue +36 -36
  551. package/src/components/ui/ImgLook/index.js +5 -5
  552. package/src/components/ui/ImgLook/index.vue +12 -3
  553. package/src/components/ui/ImgUpload/index.js +12 -12
  554. package/src/components/ui/ImgUpload/index.vue +1 -1
  555. package/src/components/ui/ImgUpload/request.js +39 -39
  556. package/src/components/ui/Input/index.js +5 -5
  557. package/src/components/ui/Input/index.vue +51 -16
  558. package/src/components/ui/Input//350/276/223/345/205/245/346/241/206.md +1 -1
  559. package/src/components/ui/Loading/index.js +1 -1
  560. package/src/components/ui/Loading/index.vue +61 -61
  561. package/src/components/ui/MenuItem/index.js +5 -5
  562. package/src/components/ui/MenuItem/index.vue +170 -170
  563. package/src/components/ui/NavBar/index.js +5 -5
  564. package/src/components/ui/NavBar/index.vue +143 -143
  565. package/src/components/ui/NavBar//351/241/266/351/203/250/345/257/274/350/210/252/346/240/217.md +1 -1
  566. package/src/components/ui/NotData/index.js +5 -5
  567. package/src/components/ui/NotData/index.vue +81 -75
  568. package/src/components/ui/Pages/index.js +5 -5
  569. package/src/components/ui/Pages/index.vue +187 -186
  570. package/src/components/ui/Pagination/index.js +11 -0
  571. package/src/components/ui/Pagination/index.vue +274 -0
  572. package/src/components/ui/Pagination//345/210/206/351/241/265V2.md +1 -0
  573. package/src/components/ui/Popup/index.js +5 -5
  574. package/src/components/ui/Popup/index.vue +3 -6
  575. package/src/components/ui/PopupCheckbox/index.js +5 -5
  576. package/src/components/ui/PopupCheckbox/index.vue +207 -207
  577. package/src/components/ui/PopupRadio/index.js +5 -5
  578. package/src/components/ui/PopupRadio/index.vue +124 -124
  579. package/src/components/ui/TabBar/index.js +11 -11
  580. package/src/components/ui/TabBar/index.vue +132 -132
  581. package/src/components/ui/TabBar//345/272/225/351/203/250/345/257/274/350/210/252/346/240/217.md +1 -1
  582. package/src/components/ui/Table/index.js +5 -5
  583. package/src/components/ui/Table/index.vue +213 -213
  584. package/src/components/ui/Tag/index.js +5 -5
  585. package/src/components/ui/Tag/index.vue +142 -142
  586. package/src/components/ui/TitleValueCell/index.js +11 -11
  587. package/src/components/ui/TitleValueCell/index.vue +33 -6
  588. package/src/components/ui/TitleValueCell//346/240/207/351/242/230/345/200/274/350/241/214.md +2 -0
  589. package/src/components/ui/index.js +3 -0
  590. package/src/directive/Permissions.js +35 -35
  591. package/src/directive/index.js +12 -12
  592. package/src/index.js +67 -67
  593. package/src/mixins/loginAndInit/index.js +31 -0
  594. package/src/mixins/loginAndInit//346/234/211token/346/227/266/345/200/231/345/222/214/346/234/211/344/273/223/345/272/223id/346/227/266/351/234/200/350/246/201/345/210/235/345/247/213/345/214/226/347/232/204/346/225/260/346/215/256.md +0 -0
  595. package/src/mixins//346/267/267/345/205/245.md +0 -0
  596. package/src/router/index.js +342 -5
  597. package/src/router/menu.js +316 -45
  598. package/src/test/file/index.js +1 -1
  599. package/src/test/file/index.vue +25 -25
  600. package/src/utils/ApiUtils.js +17 -6
  601. package/src/utils/AppBack.js +5 -6
  602. package/src/utils/AppPower.js +191 -183
  603. package/src/utils/Axios.js +164 -160
  604. package/src/utils/BarcodeResolve.js +322 -281
  605. package/src/utils/DateTime.js +22 -8
  606. package/src/utils/DeepCopy.js +1 -1
  607. package/src/utils/Dialog.js +58 -0
  608. package/src/utils/Dict.js +7 -7
  609. package/src/utils/GetImgSrc.js +1 -0
  610. package/src/utils/Init.js +12 -12
  611. package/src/utils/Language.js +41 -21
  612. package/src/utils/LocalStorage.js +41 -5
  613. package/src/utils/Permissions.js +21 -7
  614. package/src/utils/Print.js +13 -15
  615. package/src/utils/README.md +60 -2
  616. package/src/utils/RouteInit.js +14 -14
  617. package/src/utils/ScanRule.js +23 -134
  618. package/src/utils/SetColor.js +46 -11
  619. package/src/utils/TabBar.js +4 -3
  620. package/src/utils/Timezone.js +179 -0
  621. package/src/utils/Tip.js +6 -6
  622. package/src/utils/Toast.js +41 -41
  623. package/src/utils/UUID.js +7 -1
  624. package/src/utils/Utils.js +34 -0
  625. package/src/utils/Warehouse.js +6 -2
  626. package/src/utils/index.js +69 -63
  627. package/src/utils/windowGlobalData.js +27 -1
  628. package/src/views/common/home/index.vue +67 -67
  629. package/src/views/common/init/index.vue +25 -11
  630. package/src/views/common/login/index.vue +23 -23
  631. package/src/views/common/menu/menuOne.vue +36 -36
  632. package/src/views/common/menu/menuTwo.vue +33 -33
  633. package/src/views/common/my/device.vue +23 -23
  634. package/src/views/common/my/index.vue +23 -23
  635. package/src/views/common/my/language.vue +23 -23
  636. package/src/views/common/my/msg.vue +23 -23
  637. package/src/views/common/my/print.vue +23 -23
  638. package/src/views/common/my/timezone.vue +23 -0
  639. package/src/views/common/my/warehouse.vue +25 -25
  640. package/src/views/common/task/index.vue +23 -23
  641. package/src/views/config/masterLocation/masterLocationConfig/action.vue +23 -0
  642. package/src/views/config/masterLocation/masterLocationConfig/index.vue +23 -0
  643. package/src/views/config/masterLocation/masterLocationQuery/index.vue +23 -0
  644. package/src/views/config/masterLocation/masterLocationQuery/queryByLocationCode.vue +23 -0
  645. package/src/views/config/masterLocation/masterLocationQuery/queryBySkuCode.vue +23 -0
  646. package/src/views/{inbound → config}/newProject/action.vue +23 -23
  647. package/src/views/{inbound → config}/newProject/index.vue +23 -23
  648. package/src/views/count/index.vue +88 -88
  649. package/src/views/count/inv/action.vue +12 -12
  650. package/src/views/count/inv/index.vue +12 -12
  651. package/src/views/count/loc/action.vue +12 -12
  652. package/src/views/count/loc/index.vue +12 -12
  653. package/src/views/inbound/quality/InboundQualityExecuteView.vue +12 -12
  654. package/src/views/inbound/quality/InboundQualityTaskListView.vue +12 -12
  655. package/src/views/inbound/receive/alloc/InboundReceiveAllocSkuExecuteView.vue +13 -0
  656. package/src/views/inbound/receive/alloc/InboundReceiveAllocSnExecuteView.vue +13 -0
  657. package/src/views/inbound/receive/alloc/InboundReceiveAllocTabListView.vue +13 -0
  658. package/src/views/inbound/receive/case/InboundReceiveCaseExecuteView.vue +13 -0
  659. package/src/views/inbound/receive/case/InboundReceiveCaseScanView.vue +13 -0
  660. package/src/views/inbound/receive/home.vue +14 -14
  661. package/src/views/inbound/receive/index.vue +13 -13
  662. package/src/views/inbound/receive/lpn/InboundReceiveLpnBatchExecuteView.vue +13 -0
  663. package/src/views/inbound/receive/lpn/InboundReceiveLpnExecuteView.vue +13 -0
  664. package/src/views/inbound/receive/lpn/InboundReceiveLpnScanView.vue +13 -0
  665. package/src/views/inbound/receive/random/InboundReceiveRandomSkuExecuteView.vue +13 -0
  666. package/src/views/inbound/receive/random/InboundReceiveRandomSkuScanView.vue +13 -0
  667. package/src/views/inbound/receive/random/InboundReceiveRandomSkuSnExecuteView.vue +13 -0
  668. package/src/views/inbound/receive/sku/InboundReceiveSkuAdvanceView.vue +13 -13
  669. package/src/views/inbound/receive/sku/InboundReceiveSkuDirectView.vue +13 -13
  670. package/src/views/inbound/receive/sku/InboundReceiveSkuScanView.vue +13 -13
  671. package/src/views/inner/abnormalMove/index.vue +23 -23
  672. package/src/views/inner/borrow/action.vue +23 -0
  673. package/src/views/inner/borrow/index.vue +23 -0
  674. package/src/views/inner/dead/large.vue +23 -0
  675. package/src/views/inner/dead/putaway/action.vue +23 -0
  676. package/src/views/inner/dead/putaway/index.vue +23 -0
  677. package/src/views/inner/dead/smallPage.vue +23 -0
  678. package/src/views/inner/dead/taskEntrance.vue +23 -0
  679. package/src/views/inner/disposeAbnormal/action.vue +23 -23
  680. package/src/views/inner/disposeAbnormal/index.vue +23 -23
  681. package/src/views/inner/lpnMove/action.vue +23 -23
  682. package/src/views/inner/lpnMove/index.vue +23 -23
  683. package/src/views/inner/materialApply/action.vue +22 -22
  684. package/src/views/inner/materialApply/generate.vue +22 -22
  685. package/src/views/inner/movePutAway/index.vue +22 -22
  686. package/src/views/inner/quality/action.vue +23 -0
  687. package/src/views/inner/quality/sample.vue +23 -0
  688. package/src/views/inner/randomMove/index.vue +23 -23
  689. package/src/views/inner/reportAbnormal/action.vue +23 -23
  690. package/src/views/inner/reportAbnormal/index.vue +23 -23
  691. package/src/views/inner/taskMove/index.vue +23 -23
  692. package/src/views/inventory/queryInventory/index.vue +23 -0
  693. package/src/views/inventory/queryInventory/page.vue +23 -0
  694. package/src/views/outbound/aloneBale/action.vue +23 -23
  695. package/src/views/outbound/aloneBale/index.vue +23 -23
  696. package/src/views/outbound/aloneBale/newBale.vue +23 -23
  697. package/src/views/outbound/bale/action.vue +23 -23
  698. package/src/views/outbound/bale/allCheck.vue +23 -23
  699. package/src/views/outbound/bale/index.vue +23 -23
  700. package/src/views/outbound/bale/newBale.vue +23 -23
  701. package/src/views/outbound/baleChange/action.vue +23 -0
  702. package/src/views/outbound/baleChange/index.vue +23 -0
  703. package/src/views/outbound/baleChange/skuCheck.vue +23 -0
  704. package/src/views/outbound/block/OutboundBlockBoxListView.vue +12 -0
  705. package/src/views/outbound/block/OutboundBlockExecuteView.vue +12 -0
  706. package/src/views/outbound/boxTransfer/action.vue +23 -0
  707. package/src/views/outbound/boxTransfer/index.vue +23 -0
  708. package/src/views/outbound/delivery/action.vue +23 -23
  709. package/src/views/outbound/delivery/addOrder.vue +23 -23
  710. package/src/views/outbound/delivery/index.vue +23 -23
  711. package/src/views/outbound/handover/customer.vue +23 -0
  712. package/src/views/outbound/handover/index.vue +23 -0
  713. package/src/views/outbound/handover/line.vue +23 -0
  714. package/src/views/outbound/handover/lpn.vue +23 -0
  715. package/src/views/outbound/lpnPack/action.vue +23 -0
  716. package/src/views/outbound/lpnPack/index.vue +23 -0
  717. package/src/views/outbound/lpnPack/newLpn.vue +23 -0
  718. package/src/views/outbound/lpnPack/over.vue +23 -0
  719. package/src/views/outbound/pick/aloneAction.vue +23 -23
  720. package/src/views/outbound/pick/boxAction.vue +23 -23
  721. package/src/views/outbound/pick/index.vue +23 -23
  722. package/src/views/outbound/pick/lpnAction.vue +23 -23
  723. package/src/views/outbound/pick/notAloneAction.vue +23 -23
  724. package/src/views/outbound/pick/sowAction.vue +23 -0
  725. package/src/views/outbound/pickContainer/action.vue +23 -0
  726. package/src/views/outbound/pickContainer/index.vue +23 -0
  727. package/src/views/outbound/pickMerge/action.vue +23 -23
  728. package/src/views/outbound/pickMerge/content.vue +23 -23
  729. package/src/views/outbound/pickMerge/index.vue +23 -23
  730. package/src/views/outbound/reprint-box/LwOutboundReprintBoxView.vue +13 -0
  731. package/src/views/outbound/sow/action.vue +23 -23
  732. package/src/views/outbound/sow/index.vue +23 -23
  733. package/src/views/outbound/stockout/LwOutboundStockoutExecuteView.vue +12 -0
  734. package/src/views/outbound/stockout/LwOutboundStockoutListView.vue +12 -0
  735. package/src/views/outbound/summary/box/index.vue +23 -23
  736. package/src/views/outbound/summary/lpn/action.vue +23 -23
  737. package/src/views/outbound/summary/lpn/index.vue +23 -23
  738. package/src/views/process/action/action.vue +23 -0
  739. package/src/views/process/action/consoleInfo.vue +23 -0
  740. package/src/views/process/action/contentInfo.vue +23 -0
  741. package/src/views/process/action/index.vue +23 -0
  742. package/src/views/process/prepare/index.vue +23 -0
  743. package/src/views/receive/abnormal/action.vue +23 -23
  744. package/src/views/receive/abnormal/index.vue +24 -24
  745. package/src/views/receive/putaway/caseAction.vue +21 -0
  746. package/src/views/receive/putaway/index.vue +23 -23
  747. package/src/views/receive/putaway/lpnAction.vue +23 -23
  748. package/src/views/receive/putaway/lpnBatchAction.vue +23 -0
  749. package/src/views/receive/putaway/skuAction.vue +23 -23
  750. package/src/views/receive/receipt/action.vue +25 -25
  751. package/src/views/receive/receipt/index.vue +25 -25
  752. package/src/components/page/outbound/bale/components/mainPage/index.vue +0 -620
  753. package/src/components/ui/DataLookBg//346/225/260/346/215/256/347/234/213/346/235/277/350/203/214/346/231/257/345/233/276.md +0 -1
@@ -1,1420 +1,1406 @@
1
- <!--
2
- 播种分拣 - 执行页
3
- @author: 张文
4
- @date: 2022-06-27
5
- -->
6
- <template>
7
- <div>
8
-
9
- <lw-nav-bar :title="$lwLanguage.get('','播种分拣')"/>
10
-
11
- <div v-if="Object.keys(sowData).length" class="lw-global-page-box">
12
-
13
- <div
14
- class="lw-global-model-box"
15
- style="border-radius: 10px 10px 0 0"
16
- >
17
-
18
- <div class="lw-global-flex-between lw-global-row">
19
-
20
- <div
21
- style="flex: 1"
22
- class="lw-global-flex-start"
23
- >
24
- <div class="lw-global-title">
25
- {{ $lwLanguage.get('','播种墙编号') }}
26
- </div>
27
- <div class="lw-global-value-bold">{{ sowData.sowWallCode }}</div>
28
- </div>
29
-
30
- <lw-tag
31
- round
32
- plain
33
- type="danger"
34
- >{{ $lwLanguage.get('','播种中') }}</lw-tag>
35
-
36
- </div>
37
-
38
- <lw-title-value-cell
39
- :title="$lwLanguage.get('','当前批次')"
40
- :value="sowData.sowLot"
41
- val-bold
42
- />
43
-
44
- <van-progress
45
- style="margin: 15px 0 5px 0"
46
- stroke-width="8"
47
- :percentage="sowData.sowRate ||0"
48
- color="linear-gradient(90deg, #FF8E8F 0%, #C5000A 100%)"
49
- />
50
-
51
- </div>
52
- <lw-data-look-bg
53
- style="margin-bottom: 10px"
54
- type="bottom"
55
- click-style
56
- @click="openWaitSowPopup"
57
- >
58
- <div>
59
- <div>{{ sowData.containerCount }}</div>
60
- <div
61
- class="lw-data-look-bg-title"
62
- >{{ $lwLanguage.get('','托盘数') }}</div>
63
- </div>
64
-
65
- <div>
66
- <div>{{ sowData.waitSowQty }}</div>
67
- <div
68
- class="lw-data-look-bg-title"
69
- >{{ $lwLanguage.get('','待播种') }}</div>
70
- </div>
71
- <div>
72
- <div>{{ sowData.sowQty }}</div>
73
- <div
74
- class="lw-data-look-bg-title"
75
- >{{ $lwLanguage.get('','已播种') }}</div>
76
- </div>
77
-
78
- <div class="lw-data-last-item">
79
- <div>{{ sowData.abnormalQty }}</div>
80
- <div
81
- class="lw-data-look-bg-title"
82
- >{{ $lwLanguage.get('','异常') }}</div>
83
- </div>
84
- </lw-data-look-bg>
85
-
86
- <!-- 绑定周转箱的提示信息 -->
87
- <div
88
- class="lw-global-model-box border-2"
89
- style="text-align: center;padding: 20px 10px;color: #aaa"
90
- v-if="sowData.needBindContainer"
91
- >{{ $lwLanguage.get('','请绑定周转箱到播种墙') }}</div>
92
- <!-- 已经绑定周转箱 -->
93
- <div
94
- v-else
95
- class="lw-global-model-box border-2"
96
- style="padding-top: 3px"
97
- >
98
-
99
- <!-- 扫描拣选容器号获取播种类型 -->
100
- <lw-input
101
- :title="$lwLanguage.get('','拣选容器号')"
102
- v-model="startSow.pickContainer.value"
103
- :get-focus.sync="startSow.pickContainer.focus"
104
- :disabled="startSow.start"
105
- rule-key="container"
106
- @confirm="pickConfirm"
107
- >
108
-
109
- <template #button>
110
- <lw-button
111
- v-if="!startSow.start"
112
- round
113
- mini
114
- @click="pickConfirm"
115
- >{{ $lwLanguage.get('','确认') }}</lw-button>
116
- <div v-else>
117
- <span class="lw-global-value-bold-red">{{ startSow.data.sowQty }}</span>
118
- <span class="lw-global-value-bold"> / {{ startSow.data.pickQty }}</span>
119
- </div>
120
- </template>
121
-
122
- </lw-input>
123
-
124
- <!-- 获取到播种类型 -->
125
- <template v-if="startSow.start">
126
-
127
- <div
128
- style="margin-top: 10px"
129
- class="lw-global-flex-between"
130
- >
131
- <div style="flex: 1">
132
- <!-- 播种方式 -->
133
- <lw-tag
134
- type="danger"
135
- size="large"
136
- round
137
- plain
138
- >{{ sowMethod.method }}</lw-tag>
139
-
140
- <!-- 批量播种输入的商品号 -->
141
- <lw-input
142
- v-if="sowMethod.sku"
143
- :title="sowMethod.inputTitle"
144
- v-model="skuSow.sku.value"
145
- :get-focus.sync="skuSow.sku.focus"
146
- auto-clear-val
147
- rule-key="batchSku"
148
- @confirm="skuSowConfirm"
149
- />
150
-
151
- <!-- 逐件扫描的序列号 -->
152
- <lw-input
153
- v-else
154
- :title="sowMethod.inputTitle"
155
- v-model="snSow.value"
156
- :get-focus.sync="snSow.focus"
157
- auto-clear-val
158
- rule-key="sn"
159
- @confirm="snSowConfirm"
160
- />
161
- </div>
162
-
163
- <!-- 播种位指示 -->
164
- <div
165
- v-if="Object.keys(nowSowSkuInfo.data).length"
166
- :class="[
167
- 'lw-global-flex-center',
168
- 'lw-outbound-sow-code',
169
- nowSowSkuInfo.animation ? 'lw-global-animation-breath' : ''
170
- ]"
171
- >{{ nowSowSkuInfo.data.sowWallLineCode }}</div>
172
- </div>
173
-
174
- <!-- 播种信息展示 -->
175
- <template v-if="Object.keys(nowSowSkuInfo.data).length">
176
-
177
- <div class="lw-global-row">
178
- <div class="lw-global-value-bold">{{ nowSowSkuInfo.data.skuCode }}</div>
179
- <div class="lw-global-title">{{ nowSowSkuInfo.data.skuName }}</div>
180
- </div>
181
-
182
- <lw-title-value-cell
183
- :title="$lwLanguage.get('','最小销售量')"
184
- :value="nowSowSkuInfo.data.minSellQty"
185
- val-bold
186
- />
187
-
188
- <div class="lw-global-row lw-global-flex-between">
189
-
190
- <lw-title-value-cell
191
- :title="$lwLanguage.get('','待播种')"
192
- :value="nowSowSkuInfo.data.waitSowQty"
193
- val-red
194
- val-bold
195
- :is-row="false"
196
- />
197
-
198
-
199
- <div class="lw-global-flex-between">
200
-
201
- <div class="lw-global-title">
202
- {{ $lwLanguage.get('','已播种/总量') }}
203
- </div>
204
- <div class="lw-global-value">
205
- <span class="lw-global-value-bold-red">{{ nowSowSkuInfo.data.sowQty }}</span>
206
- <span class="lw-global-value-bold"> / {{ nowSowSkuInfo.data.totalQty }}</span>
207
- </div>
208
-
209
- </div>
210
-
211
- </div>
212
-
213
-
214
- <!-- 批量播种数量输入框 -->
215
- <template v-if="sowMethod.sku">
216
- <lw-input
217
- :title="$lwLanguage.get('','当前扫描量')"
218
- v-model="skuSow.qty.value"
219
- :get-focus.sync="skuSow.qty.focus"
220
- type="digit"
221
- @confirm="skuSowQtyConfirm"
222
- />
223
-
224
- <div
225
- class="lw-global-flex-between lw-global-row-end"
226
- style="padding-bottom: 0"
227
- >
228
- <lw-button
229
- type="last"
230
- plain
231
- block
232
- mini
233
- round
234
- @click="skuSowRepeatScan"
235
- >{{ $lwLanguage.get('','重新扫描') }}</lw-button>
236
-
237
- <lw-button
238
- style="margin-left: 10px"
239
- block
240
- mini
241
- round
242
- @click="skuSowQtyConfirm"
243
- >{{ $lwLanguage.get('','确认播种') }}</lw-button>
244
- </div>
245
- </template>
246
-
247
-
248
- <!-- 逐件扫描播种 -->
249
- <template v-else>
250
- <lw-title-value-cell
251
- :title="$lwLanguage.get('','当前序列号')"
252
- :value="snSow.scanData.sn"
253
- val-bold
254
- />
255
- <lw-input
256
- :title="$lwLanguage.get('','当前扫描量')"
257
- v-model="snSow.scanData.qty"
258
- :disabled="true"
259
- >
260
-
261
- <template #button>
262
-
263
- <lw-button
264
- round
265
- mini
266
- @click="snSowClearNow"
267
- >{{ $lwLanguage.get('','取消本次扫描') }}</lw-button>
268
-
269
- </template>
270
-
271
- </lw-input>
272
- </template>
273
-
274
- </template>
275
-
276
- </template>
277
-
278
- </div>
279
-
280
- <!-- 拣选容器折叠框 -->
281
- <div class="lw-global-model-box lw-global-collapse-box">
282
- <van-collapse
283
- v-model="pickCollapse"
284
- :border="false"
285
- >
286
- <van-collapse-item name="pick">
287
-
288
- <template #title>
289
- <div class="lw-global-flex-between">
290
-
291
- <div>{{ $lwLanguage.get('', '拣选容器') }}</div>
292
- <div class="lw-global-value-bold-red">
293
- {{ sowData.containerList.length || 0 }}
294
- {{ $lwLanguage.get('', '行') }}
295
- </div>
296
-
297
- </div>
298
- </template>
299
-
300
- <div
301
- v-for="(i,k) in sowData.containerList"
302
- :key="k"
303
- class="lw-global-row lw-global-flex-between"
304
- >
305
-
306
- <div
307
- style="flex-shrink: 0"
308
- class="lw-global-title"
309
- >
310
- {{ $lwLanguage.get('', '拣选容器号') }}
311
- </div>
312
-
313
- <div
314
- style="flex: 1"
315
- class="lw-global-flex-between lw-global-value-bold"
316
- >
317
-
318
- <div style="flex: 1">{{ i.pickContainer }}</div>
319
- <div style="flex-shrink: 0">
320
- <span class="lw-global-value-bold-red">{{ i.sowQty }}</span>
321
- /
322
- {{ i.pickQty }}
323
- </div>
324
-
325
- </div>
326
-
327
- </div>
328
-
329
- </van-collapse-item>
330
- </van-collapse>
331
- </div>
332
-
333
- <!-- 播种位列表折叠框 -->
334
- <div class="lw-global-model-box lw-global-collapse-box">
335
- <van-collapse
336
- v-model="sowCollapse"
337
- :border="false"
338
- >
339
- <van-collapse-item name="sow">
340
-
341
- <template #title>
342
- <div class="lw-global-flex-between">
343
-
344
- <div>{{ $lwLanguage.get('', '播种位列表') }}</div>
345
- <div class="lw-global-value-bold-red">
346
- {{ sowData.sowWallLineList.length || 0 }}
347
- {{ $lwLanguage.get('', '行') }}
348
- </div>
349
-
350
- </div>
351
- </template>
352
- <sow-location-list :sow-list="sowData.sowWallLineList"/>
353
-
354
- </van-collapse-item>
355
- </van-collapse>
356
- </div>
357
-
358
- </div>
359
-
360
- <lw-bottom-bar-btn-hidden :btn-list="bottomBtnList"/>
361
-
362
- <!-- 绑定周转箱 -->
363
- <lw-popup
364
- :title="$lwLanguage.get('','绑定周转箱')"
365
- v-model="bindContainerPopup.show"
366
- @closed="bindContainerPopupOff"
367
- >
368
-
369
- <template v-if="sowData.sowWallLineList">
370
- <lw-title-value-cell
371
- :title="$lwLanguage.get('','播种墙')"
372
- :value="sowData.sowWallCode"
373
- val-bold
374
- />
375
-
376
- <lw-title-value-cell
377
- :title="$lwLanguage.get('','当前正在绑定播种位')"
378
- :value="sowData.sowWallLineList[bindContainerPopup.index].sowWallLineCode"
379
- val-bold
380
- val-red
381
- val-size="16px"
382
- />
383
-
384
- <lw-input
385
- :title="$lwLanguage.get('','周转箱号')"
386
- v-model="bindContainerPopup.container.value"
387
- :get-focus.sync="bindContainerPopup.container.focus"
388
- rule-key="container"
389
- @confirm="sowLocationBindContainerConfirm"
390
- >
391
-
392
- <template #button>
393
- <lw-button
394
- mini
395
- round
396
- @click="sowLocationBindContainerConfirm"
397
- >{{ $lwLanguage.get('','绑定') }}</lw-button>
398
- </template>
399
-
400
- </lw-input>
401
-
402
- <div
403
- class="lw-global-flex-between lw-global-row lw-global-click-style"
404
- v-for="(i,k) in sowData.sowWallLineList"
405
- :key="k"
406
- @click="selectSowLocation(k)"
407
- >
408
-
409
- <div class="lw-global-value-bold">{{ i.sowWallLineCode }}</div>
410
- <div class="lw-global-value-bold">{{ i.sowPositionContainer }}</div>
411
-
412
- </div>
413
- </template>
414
-
415
- <template #button>
416
- <lw-button @click="repeatBind">
417
- {{ $lwLanguage.get('','重新绑定') }}
418
- </lw-button>
419
- </template>
420
-
421
- </lw-popup>
422
-
423
- <!-- 缺货完成 -->
424
- <lw-popup
425
- :title="$lwLanguage.get('','缺货完成')"
426
- v-model="littlePopup.show"
427
- >
428
-
429
- <div style="margin-bottom: 10px" class="lw-global-flex-between">
430
-
431
- <lw-title-value-cell
432
- :title="$lwLanguage.get('','播种墙')"
433
- :value="sowData.sowWallCode"
434
- val-bold
435
- :is-row="false"
436
- />
437
-
438
- <lw-title-value-cell
439
- :title="$lwLanguage.get('','总缺货量')"
440
- :value="littlePopup.data.waitSowQty"
441
- val-bold
442
- val-red
443
- :is-row="false"
444
- />
445
-
446
- </div>
447
-
448
- <sow-location-list :sow-list="littlePopup.data.sowWallLineList"/>
449
-
450
- <template #button>
451
- <lw-button @click="littleConfirm">
452
- {{ $lwLanguage.get('','确认缺货完成') }}
453
- </lw-button>
454
- </template>
455
- </lw-popup>
456
-
457
- <!-- 播种位播种完成 -->
458
- <lw-popup
459
- :title="$lwLanguage.get('','播种位播种完成')"
460
- v-model="sowLocationOverPopup.show"
461
- @closed="getData"
462
- >
463
-
464
- <lw-title-value-cell
465
- :title="$lwLanguage.get('','播种墙')"
466
- :value="sowData.sowWallCode"
467
- val-bold
468
- />
469
-
470
- <lw-title-value-cell
471
- :title="$lwLanguage.get('','播种位')"
472
- :value="sowLocationOverPopup.data.sowWallLineCode"
473
- val-bold
474
- />
475
-
476
- <lw-title-value-cell
477
- :title="$lwLanguage.get('','周转箱号')"
478
- :value="sowLocationOverPopup.data.sowPositionContainer"
479
- val-bold
480
- />
481
-
482
- <lw-title-value-cell
483
- :title="$lwLanguage.get('','商品数量')"
484
- :value="sowLocationOverPopup.data.sowWallLineQty"
485
- val-bold
486
- val-red
487
- />
488
-
489
- <div
490
- class="lw-global-row-end"
491
- style="text-align: center;padding-bottom: 0"
492
- >
493
- <lw-tag
494
- plain
495
- size="large"
496
- >{{ $lwLanguage.get('','已播种完成') }}</lw-tag>
497
- </div>
498
-
499
- </lw-popup>
500
-
501
- <!-- 播种批次完成 -->
502
- <lw-popup
503
- :title="$lwLanguage.get('','播种批次完成')"
504
- v-model="sowLotOverPopup.show"
505
- @closed="goBack"
506
- >
507
-
508
- <lw-title-value-cell
509
- :title="$lwLanguage.get('','播种墙')"
510
- :value="sowData.sowWallCode"
511
- val-bold
512
- />
513
-
514
- <div class="lw-global-row" style="text-align: center">
515
- <lw-tag
516
- plain
517
- size="large"
518
- >{{ $lwLanguage.get('','已播种完成') }}</lw-tag>
519
- </div>
520
-
521
- <sow-location-list :sow-list="sowLotOverPopup.data.sowWallLineList"/>
522
-
523
- </lw-popup>
524
-
525
- <!-- 播满换箱 -->
526
- <lw-popup
527
- :title="$lwLanguage.get('','播满换箱')"
528
- v-model="sowFullPopup.show"
529
- @closed="sowFullOff"
530
- >
531
-
532
- <lw-input
533
- :title="$lwLanguage.get('','已满容器号')"
534
- v-model="sowFullPopup.fullContainer.value"
535
- :get-focus.sync="sowFullPopup.fullContainer.focus"
536
- rule-key="fullContainer"
537
- @confirm="sowFullContainerConfirm"
538
- />
539
-
540
- <div class="lw-global-row lw-global-flex-between">
541
-
542
- <lw-title-value-cell
543
- :title="$lwLanguage.get('','播种位')"
544
- :value="sowFullPopup.sowLocationInfo.sowWallLineCode"
545
- val-bold
546
- :is-row="false"
547
- />
548
-
549
- <lw-title-value-cell
550
- :title="$lwLanguage.get('','已播种量')"
551
- :value="sowFullPopup.sowLocationInfo.sowQty"
552
- val-bold
553
- val-red
554
- :is-row="false"
555
- />
556
-
557
- </div>
558
-
559
- <lw-input
560
- :title="$lwLanguage.get('','新容器号')"
561
- v-model="sowFullPopup.newContainer.value"
562
- :get-focus.sync="sowFullPopup.newContainer.focus"
563
- rule-key="newContainer"
564
- @confirm="sowFullNewContainerConfirm"
565
- />
566
-
567
- <div
568
- class="lw-global-value"
569
- style="margin-top: 8px;text-align: center"
570
- >{{$lwLanguage.get(
571
- '',
572
- '拿下已播满容器号!因为没有播种完成,还需要扫码新空容器号,继续播种接货'
573
- )}}</div>
574
-
575
- <template #button>
576
- <lw-button @click="sowFullNewContainerConfirm">
577
- {{ $lwLanguage.get('','确认') }}
578
- </lw-button>
579
- </template>
580
-
581
- </lw-popup>
582
-
583
- <!-- 查看未播种数 -->
584
- <lw-popup
585
- :title="$lwLanguage.get('','未播种商品')"
586
- v-model="waitSowSkuPopup.show"
587
- @closed="waitSowSkuPopup.showCom=false"
588
- >
589
-
590
- <template v-if="waitSowSkuPopup.showCom && waitSowSkuPopup.data.length">
591
- <wait-sow-collapse
592
- v-for="(i,k) in waitSowSkuPopup.data"
593
- :key="k"
594
- :item="i"
595
- @abn="abnClick"
596
- />
597
- </template>
598
- <lw-not-data v-else/>
599
-
600
- </lw-popup>
601
-
602
- <!-- 异常弹框 -->
603
- <lw-popup
604
- :title="$lwLanguage.get('','播种分拣异常上报')"
605
- v-model="abnPopup.show"
606
- @closed="abnPopup.showCom=false"
607
- >
608
-
609
- <lw-inner-abnormal-module
610
- ref="abnormal"
611
- v-if="abnPopup.showCom"
612
- :location="abnPopup.data.locationCode"
613
- :sku-code="abnPopup.data.skuCode"
614
- :sku-name="abnPopup.data.skuName"
615
- :qty="abnPopup.data.waitSowQty"
616
- :type="$lwLanguage.get('','出库')"
617
- :ab-type="$lwLanguage.get('','播种分拣')"
618
- />
619
-
620
- <template #button>
621
- <lw-button @click="abnConfirm">
622
- {{ $lwLanguage.get('','上报') }}
623
- </lw-button>
624
- </template>
625
-
626
- </lw-popup>
627
-
628
- </div>
629
- </template>
630
-
631
- <script>
632
-
633
- import sowLocationList from './../components/sowLocationList/index.vue'
634
- import waitSowCollapse from './../components/waitSowCollapse/index.vue'
635
- import {
636
- projectWmsBindSowPositionContainer,
637
- projectWmsSowBatchSubmit,
638
- projectWmsSowChangePositionContainer,
639
- projectWmsSowComputeSkuSowPosition,
640
- projectWmsSowContainerData,
641
- projectWmsSowLotQueryUnfinishContainer,
642
- projectWmsSowQuerySowLotData,
643
- projectWmsSowQueryStockoutData,
644
- projectWmsSowRebindContainer,
645
- projectWmsSowSingleCancel,
646
- projectWmsSowSingleSubmit,
647
- projectWmsSowStockoutFinish,
648
- projectWmsSowSubmitAbnormal
649
- } from "../../../../../api/outbound/sow/action";
650
-
651
- export default {
652
- name: "lwOutboundSowActionPage",
653
- components:{
654
- sowLocationList,
655
- waitSowCollapse
656
- },
657
- data() {
658
- return {
659
-
660
- // 底部按钮列表
661
- bottomBtnAll:{
662
- bindContainer:{
663
- text: this.$lwLanguage.get('','绑定容器号'),
664
- click: this.bindContainerClick
665
- },
666
- littleOver:{
667
- text: this.$lwLanguage.get('','缺货完成'),
668
- click: this.littleClick
669
- },
670
- abn:{
671
- text: this.$lwLanguage.get('','商品异常'),
672
- click: this.openWaitSowPopup
673
- },
674
- cutContainer:{
675
- text: this.$lwLanguage.get('','切换容器'),
676
- click: this.cutPickContainer
677
- },
678
- sowFull:{
679
- text: this.$lwLanguage.get('','播满换箱'),
680
- click: this.openSowFullPopup
681
- },
682
- },
683
-
684
- // 拣选容器折叠
685
- pickCollapse:['pick'],
686
-
687
- // 播种位折叠
688
- sowCollapse:['sow'],
689
-
690
- // 播种数据
691
- sowData:{},
692
-
693
- // 播种方式
694
- sowMethod:{},
695
-
696
- // 当前播种商品信息
697
- nowSowSkuInfo:{
698
- data:{},
699
- animation: false,
700
- },
701
-
702
- // 扫描播种
703
- startSow:{
704
- start: false,
705
- pickContainer:{
706
- value:'',
707
- focus: false
708
- },
709
- data:{},
710
- },
711
-
712
- // 批量播种商品
713
- skuSow:{
714
- sku:{
715
- value: '',
716
- focus: false
717
- },
718
-
719
- qty:{
720
- value:'',
721
- focus: false,
722
- disabled: false
723
- }
724
- },
725
-
726
- // 逐件播种
727
- snSow:{
728
- value: '',
729
- focus: false,
730
- scanData:{}
731
- },
732
-
733
- // 绑定周转箱弹框
734
- bindContainerPopup:{
735
- show: false,
736
- container:{
737
- value:'',
738
- focus: true
739
- },
740
- index: 0,
741
- sowLocation:''
742
- },
743
-
744
- // 缺货完成弹框
745
- littlePopup:{
746
- show: false,
747
- data:{}
748
- },
749
-
750
- // 播种位播种完成弹框
751
- sowLocationOverPopup:{
752
- show: false,
753
- data:{}
754
- },
755
-
756
- // 播种批次完成弹框
757
- sowLotOverPopup:{
758
- show: false,
759
- data:{}
760
- },
761
-
762
- // 播满换箱弹框
763
- sowFullPopup:{
764
- show: false,
765
- fullContainer:{
766
- value: '',
767
- focus: false
768
- },
769
- sowLocationInfo:{},
770
- newContainer:{
771
- value:'',
772
- focus: false
773
- }
774
- },
775
-
776
- // 未播种商品弹框
777
- waitSowSkuPopup:{
778
- show: false,
779
- showCom: false,
780
- data:{}
781
- },
782
-
783
- // 异常上报
784
- abnPopup:{
785
- show: false,
786
- showCom: false,
787
- data:{}
788
- }
789
- }
790
- },
791
- computed:{
792
- // 底部按钮显示列表
793
- bottomBtnList(){
794
- // 是否需要绑定容器号
795
- if (this.sowData.needBindContainer){
796
- return [
797
- this.bottomBtnAll.bindContainer,
798
- this.bottomBtnAll.littleOver
799
- ]
800
- }
801
-
802
- // 是否已经扫描了拣选容器
803
- if (!this.startSow.start){
804
- return [
805
- this.bottomBtnAll.littleOver,
806
- this.bottomBtnAll.abn
807
- ]
808
- }
809
-
810
- return [
811
- this.bottomBtnAll.cutContainer,
812
- this.bottomBtnAll.littleOver,
813
- this.bottomBtnAll.sowFull,
814
- this.bottomBtnAll.abn,
815
- ]
816
- },
817
- },
818
- mounted() {
819
- this.getData()
820
- },
821
- methods: {
822
- // 获取数据
823
- getData(isSow=false, isSn=false){
824
- return new Promise((pres, err)=>{
825
- const qutry = this.$route.query
826
- projectWmsSowQuerySowLotData({
827
- sowWallId: qutry.lwSowWallId,
828
- sowWallCode: qutry.lwSowWallCode,
829
- sowLot:qutry.lwSowLot,
830
- }).then(res=>{
831
- this.sowData = res
832
-
833
- // 判断当前是否存在正在播种的拣选容器
834
- if (this.startSow.start){
835
-
836
- // 过滤找到当前播种的拣选容器
837
- const list = res.containerList.filter(item=>{
838
- return item.pickContainer === this.startSow.pickContainer.value
839
- })
840
-
841
- let over = false
842
-
843
- // 判断当前拣选容器是否存在新返回的数据中,如果存在就替换数据
844
- if (list.length){
845
- const data = list[0]
846
- this.startSow.data.pickQty = data.pickQty
847
- this.startSow.data.sowQty = data.sowQty
848
-
849
- over = data.sowQty === data.pickQty
850
- over && !isSn && this.cutPickContainer()
851
-
852
- }else {
853
- !isSn && this.cutPickContainer()
854
- }
855
-
856
- const msg = over ?
857
- this.$lwLanguage.get('','当前容器已播种完成') :
858
- this.$lwLanguage.get('','播种成功')
859
-
860
- isSow && this.$lwToast.success(msg)
861
- }
862
- pres()
863
- }).catch(()=>{
864
- this.goBack()
865
- err()
866
- })
867
- })
868
- },
869
-
870
- // 绑定周转箱
871
- bindContainerClick(){
872
- this.selectFistSowBind(true)
873
- this.bindContainerPopup.show = true
874
- },
875
- // 找到第一个需要绑定容器的播种位
876
- selectFistSowBind(need){
877
- const wait = this.sowData.sowWallLineList
878
-
879
- // 找到第一个需要绑定的播种位
880
- for (let i=0;i<wait.length;i++){
881
- if (wait[i].needBindContainer){
882
- this.bindContainerPopup.index = i
883
- this.bindContainerPopup.container.focus = true
884
- return
885
- }
886
- }
887
-
888
- if (need) {
889
- this.bindContainerPopup.index = 0
890
- this.bindContainerPopup.container.focus = true
891
- return;
892
- }
893
-
894
- this.$lwToast.success(
895
- this.$lwLanguage.get('','播种位已全部绑定周转箱')
896
- )
897
- this.bindContainerPopup.show = false
898
- },
899
- // 播种位绑定周转箱确认
900
- sowLocationBindContainerConfirm(){
901
-
902
- if (!this.bindContainerPopup.container.value){
903
- this.bindContainerPopup.container.focus = true
904
- this.$lwShowErrorMsg(
905
- this.$lwLanguage.get('','容器号不能为空')
906
- )
907
- return
908
- }
909
-
910
- const item = this.sowData.sowWallLineList[this.bindContainerPopup.index]
911
- projectWmsBindSowPositionContainer({
912
- sowWallId: this.sowData.sowWallId,
913
- sowWallLineId: item.sowWallLineId,
914
- sowWallLineCode: item.sowWallLineCode,
915
- bindContainer: this.bindContainerPopup.container.value
916
- }).then(()=>{
917
- item.sowPositionContainer = this.bindContainerPopup.container.value
918
- item.needBindContainer = false
919
- this.bindContainerPopup.container.value = ''
920
- this.selectFistSowBind()
921
- }).catch(()=>{
922
- this.bindContainerPopup.container.focus = true
923
- this.bindContainerPopup.container.value = ''
924
- })
925
- },
926
- // 点击播种位位选择绑定容器
927
- selectSowLocation(index){
928
- this.bindContainerPopup.container.value = ''
929
- this.bindContainerPopup.container.focus = true
930
- this.bindContainerPopup.index = index
931
- },
932
- // 重新绑定
933
- repeatBind(){
934
- this.$dialog.confirm({
935
- title: this.$lwLanguage.get('','警告'),
936
- message: this.$lwLanguage.get('','当前播种位绑定的容器将会被全部清空')
937
- }).then(()=>{
938
- projectWmsSowRebindContainer({
939
- sowWallId: this.sowData.sowWallId,
940
- sowWallCode: this.sowData.sowWallCode,
941
- sowLot: this.sowData.sowLot,
942
- }).then(()=>{
943
- this.$lwToast.success(
944
- this.$lwLanguage.get('','操作成功')
945
- )
946
- this.getData().then(()=>this.selectFistSowBind(true))
947
- })
948
- }).catch(()=>{})
949
- },
950
- // 绑定周转箱弹出框关闭
951
- bindContainerPopupOff(){
952
- this.bindContainerPopup.container.value=''
953
- this.getData()
954
- },
955
-
956
-
957
- // 缺货完成按钮点击
958
- littleClick(){
959
- projectWmsSowQueryStockoutData({
960
- sowWallId: this.sowData.sowWallId,
961
- sowLot: this.sowData.sowLot,
962
- }).then(res=>{
963
- this.littlePopup.data = res
964
- this.littlePopup.show = true
965
- })
966
- },
967
- // 确认缺货完成
968
- littleConfirm(){
969
- projectWmsSowStockoutFinish({
970
- sowWallId: this.sowData.sowWallId,
971
- sowLot: this.sowData.sowLot
972
- }).then(()=>{
973
- this.$lwToast.success(
974
- this.$lwLanguage.get('','缺货完成')
975
- )
976
- history.go(-1)
977
- })
978
- },
979
-
980
- // 拣选容器号确认
981
- pickConfirm(){
982
- if (!this.startSow.pickContainer.value){
983
- this.startSow.pickContainer.focus = true
984
- this.$lwShowErrorMsg(
985
- this.$lwLanguage.get('','拣选容器号不能为空')
986
- )
987
- return
988
- }
989
-
990
- const list = this.sowData.containerList.filter(item=>{
991
- return item.pickContainer === this.startSow.pickContainer.value
992
- })
993
-
994
- if(!list.length){
995
- this.startSow.pickContainer.focus = true
996
- this.$lwShowErrorMsg(
997
- this.$lwLanguage.get('','扫描容器号不在当前播种批次内')
998
- )
999
- this.startSow.pickContainer.value = ''
1000
- return
1001
- }
1002
-
1003
- projectWmsSowContainerData({
1004
- sowWallId: this.sowData.sowWallId,
1005
- sowWallCode: this.sowData.sowWallCode,
1006
- sowLot: this.sowData.sowLot,
1007
- pickContainer: this.startSow.pickContainer.value
1008
- }).then(res=>{
1009
-
1010
- // 判断是否是批量播种
1011
- if (res.sowMethod === 'BATCH') {
1012
- this.sowMethod = {
1013
- method: this.$lwLanguage.get('', '批量播种'),
1014
- inputTitle: this.$lwLanguage.get('', '商品条码'),
1015
- sku: true
1016
- }
1017
- this.skuSow.sku.focus = true
1018
- } else {
1019
- this.sowMethod = {
1020
- method: this.$lwLanguage.get('', '逐件扫描播种'),
1021
- inputTitle: this.$lwLanguage.get('', '商品序列号'),
1022
- sku: false
1023
- }
1024
- this.snSow.focus = true
1025
- }
1026
-
1027
- this.startSow.data = res
1028
- this.startSow.start = true
1029
- })
1030
- },
1031
- // 切换拣选容器号
1032
- cutPickContainer(){
1033
- this.startSow.pickContainer.value = ''
1034
- this.startSow.pickContainer.focus = true
1035
- this.startSow.start = false
1036
- this.startSow.data = {}
1037
- this.clearSkuSowData()
1038
- },
1039
-
1040
- // 商品合法性校验
1041
- skuCodeCheck(skuCode){
1042
-
1043
- if (!skuCode){
1044
- this.skuSow.sku.focus = true
1045
- this.$lwShowErrorMsg(
1046
- this.$lwLanguage.get('','商品号不能为空')
1047
- )
1048
- return {
1049
- success: false
1050
- }
1051
- }
1052
-
1053
- const skuList = this.startSow.data.skuList.filter(item=>{
1054
- return item.skuCode === skuCode
1055
- })
1056
-
1057
- if(!skuList.length){
1058
- this.skuSow.sku.focus = true
1059
- this.$lwShowErrorMsg(
1060
- this.$lwLanguage.get('','当前商品不在拣选容器内')
1061
- )
1062
- return {
1063
- success: false
1064
- }
1065
- }
1066
-
1067
- return {
1068
- success: true,
1069
- skuList
1070
- }
1071
- },
1072
-
1073
- // 设置当前播种的商品数据
1074
- setNowSowSkuInfo(res){
1075
- this.nowSowSkuInfo.data = res
1076
- this.nowSowSkuInfo.animation = true
1077
- this.$lwAppPower.speak(this.nowSowSkuInfo.data.sowWallLineCode)
1078
- },
1079
-
1080
- // 清除当前播种数据
1081
- clearSkuSowData(){
1082
- this.nowSowSkuInfo.data = {}
1083
- this.snSow.value = ''
1084
- this.skuSow.qty.value = ''
1085
- this.nowSowSkuInfo.data = {}
1086
- this.nowSowSkuInfo.animation = false
1087
- },
1088
-
1089
- // 批量播种商品扫描完成
1090
- skuSowConfirm(val, data){
1091
- const {skuCode, qty} = data.data
1092
-
1093
- this.nowSowSkuInfo.animation = false
1094
-
1095
- const {success, skuList} = this.skuCodeCheck(skuCode)
1096
- if(!success) return
1097
-
1098
- const oldSkuCode = this.nowSowSkuInfo.data.skuCode
1099
- if (oldSkuCode && oldSkuCode !== skuCode){
1100
- this.skuSow.sku.focus = true
1101
- this.$lwShowErrorMsg(
1102
- this.$lwLanguage.get('','当前商品与正在播种商品不一致')
1103
- )
1104
- return
1105
- }
1106
-
1107
- projectWmsSowComputeSkuSowPosition({
1108
- sowWallId: this.sowData.sowWallId,
1109
- sowWallCode: this.sowData.sowWallCode,
1110
- sowLot: this.sowData.sowLot,
1111
- pickContainer: this.startSow.pickContainer.value,
1112
- ownerId: skuList[0].ownerId,
1113
- skuId: skuList[0].skuId,
1114
- skuCode: skuList[0].skuCode,
1115
- }).then(res=>{
1116
-
1117
- const oldSowWall = this.nowSowSkuInfo.data.sowWallLineCode
1118
- if (oldSowWall && oldSowWall !== res.sowWallLineCode){
1119
- this.skuSow.sku.focus = true
1120
- this.$lwShowErrorMsg(
1121
- this.$lwLanguage.get('','当前商品与正在播种商品不在同一播种位,不能播种!')
1122
- )
1123
- return
1124
- }
1125
-
1126
- this.setNowSowSkuInfo(res)
1127
-
1128
- const total = Number(this.skuSow.qty.value || 0) + Number(qty || 0)
1129
- this.skuSow.qty.value = total
1130
-
1131
- // 如果播种量等于待播种量就自动提交
1132
- if (total === Number(res.waitSowQty || 0)){
1133
- this.skuSowQtyConfirm()
1134
- return
1135
- }
1136
-
1137
- this.skuSow.sku.focus = true
1138
- })
1139
- },
1140
- // 扫描数量确定
1141
- skuSowQtyConfirm(){
1142
-
1143
- const qty = Number(this.skuSow.qty.value || 0)
1144
- if (!qty){
1145
- this.skuSow.qty.focus = true
1146
- this.$lwShowErrorMsg(
1147
- this.$lwLanguage.get('','播种量不能为空,且应当是大于0的整数')
1148
- )
1149
- return
1150
- }
1151
- if (qty > Number(this.nowSowSkuInfo.data.waitSowQty ||0)){
1152
- this.skuSow.qty.focus = true
1153
- this.$lwShowErrorMsg(
1154
- this.$lwLanguage.get('','播种量不能大于待播种量')
1155
- )
1156
- this.skuSow.qty.value = ''
1157
- return
1158
- }
1159
-
1160
- projectWmsSowBatchSubmit({
1161
- sowWallId: this.sowData.sowWallId,
1162
- sowWallCode: this.sowData.sowWallCode,
1163
- sowLot: this.sowData.sowLot,
1164
- sowWallLineId: this.nowSowSkuInfo.data.sowWallLineId,
1165
- sowWallLineCode: this.nowSowSkuInfo.data.sowWallLineCode,
1166
- sowPositionContainer: this.nowSowSkuInfo.data.sowPositionContainer,
1167
- ownerId: this.nowSowSkuInfo.data.ownerId,
1168
- skuId: this.nowSowSkuInfo.data.skuId,
1169
- pickContainer: this.startSow.pickContainer.value,
1170
- currentSowQty: qty
1171
- }).then(res=>{
1172
-
1173
- this.sowOver(res)
1174
- })
1175
- },
1176
- // 批量扫描 - 重新扫描
1177
- skuSowRepeatScan(){
1178
- this.clearSkuSowData()
1179
- this.skuSow.sku.focus = true
1180
- },
1181
-
1182
- // 逐件扫描序列号确认
1183
- snSowConfirm(val,data){
1184
- const {skuCode, sn, qty} = data.data
1185
- this.nowSowSkuInfo.animation = false
1186
-
1187
- const {success, skuList} = this.skuCodeCheck(skuCode)
1188
- if(!success) return
1189
-
1190
- if (!sn){
1191
- this.skuSow.sku.focus = true
1192
- this.$lwShowErrorMsg(
1193
- this.$lwLanguage.get('','序列号不能为空')
1194
- )
1195
- return
1196
- }
1197
-
1198
- const scanData = {
1199
- sn,
1200
- qty: qty || skuList[0].minSellQty,
1201
- ownerId: skuList[0].ownerId,
1202
- skuId: skuList[0].skuId,
1203
- skuCode: skuList[0].skuCode,
1204
- sowWallId: this.sowData.sowWallId,
1205
- sowLot: this.sowData.sowLot,
1206
- pickContainer: this.startSow.pickContainer.value,
1207
- sowWallCode: this.sowData.sowWallCode,
1208
- }
1209
-
1210
- projectWmsSowSingleSubmit({
1211
- ...scanData,
1212
- currentSowQty: scanData.qty
1213
- }).then(res=>{
1214
-
1215
- this.setNowSowSkuInfo(res)
1216
-
1217
- this.snSow.scanData = {
1218
- ...scanData,
1219
- sowWallLineId: res.sowWallLineId,
1220
- sowWallLineCode: res.sowWallLineCode,
1221
- sowPositionContainer: res.sowPositionContainer,
1222
- }
1223
-
1224
- this.sowOver(res, true)
1225
- })
1226
- },
1227
- // 逐件扫描 - 取消本次扫描
1228
- snSowClearNow(){
1229
- projectWmsSowSingleCancel({
1230
- ...this.snSow.scanData,
1231
- cancelQty: this.snSow.scanData.qty
1232
- }).then(()=>{
1233
- this.$lwToast.success(
1234
- this.$lwLanguage.get('','已取消')
1235
- )
1236
-
1237
- this.clearSkuSowData()
1238
- this.getData(false, true)
1239
- this.snSow.focus = true
1240
-
1241
- })
1242
- },
1243
-
1244
- // 校验当前播种是否完成
1245
- checkSowOver(res){
1246
- // 当前批次是否完成
1247
- if (res.sowLotFinish){
1248
- this.sowLotOverPopup.data = res
1249
- this.sowLotOverPopup.show = true
1250
- return true
1251
- }
1252
-
1253
- // 当前播种位是否完成
1254
- if (res.sowWallLineFinish){
1255
- this.sowLocationOverPopup.data = res
1256
- this.sowLocationOverPopup.show = true
1257
- return true
1258
- }
1259
-
1260
- return false
1261
- },
1262
- // 播种完成
1263
- sowOver(res, isSn=false){
1264
-
1265
- !isSn && this.clearSkuSowData()
1266
-
1267
- !isSn && this.cutPickContainer()
1268
-
1269
- if(this.checkSowOver(res)) return
1270
-
1271
- this.getData(true, isSn)
1272
- this.startSow.pickContainer.focus = true
1273
- },
1274
-
1275
- // 返回上一页
1276
- goBack(){
1277
- history.go(-1)
1278
- },
1279
-
1280
- // 播满换箱弹框 - 打开弹框
1281
- openSowFullPopup(){
1282
- this.sowFullPopup.show = true
1283
- this.sowFullPopup.fullContainer.focus = true
1284
- },
1285
- // 播满换箱弹框 - 已满容器确认
1286
- sowFullContainerConfirm(){
1287
-
1288
- if(!this.sowFullPopup.fullContainer.value){
1289
- this.sowFullPopup.fullContainer.focus = true
1290
- this.$lwShowErrorMsg(
1291
- this.$lwLanguage.get('','已满容器不能为空')
1292
- )
1293
- return
1294
- }
1295
-
1296
- const list = this.sowData.sowWallLineList.filter(item=>{
1297
- return item.sowPositionContainer === this.sowFullPopup.fullContainer.value
1298
- })
1299
-
1300
- if(!list.length){
1301
- this.sowFullPopup.fullContainer.focus = true
1302
- this.$lwShowErrorMsg(
1303
- this.$lwLanguage.get('','没有找到已满的容器号')
1304
- )
1305
- this.sowFullPopup.fullContainer.value = ''
1306
- return
1307
- }
1308
-
1309
- this.sowFullPopup.sowLocationInfo = list[0]
1310
- this.sowFullPopup.newContainer.focus = true
1311
-
1312
- },
1313
- // 播满换箱弹框 - 新容器确定
1314
- sowFullNewContainerConfirm(){
1315
-
1316
- if (!this.sowFullPopup.sowLocationInfo.sowWallLineCode){
1317
- this.sowFullPopup.fullContainer.focus = true
1318
- this.$lwShowErrorMsg(
1319
- this.$lwLanguage.get('','请输入已满容器,并获取容器对应的播种位信息')
1320
- )
1321
- return
1322
- }
1323
-
1324
- if (!this.sowFullPopup.newContainer.value){
1325
- this.sowFullPopup.newContainer.focus = true
1326
- this.$lwShowErrorMsg(
1327
- this.$lwLanguage.get('','新容器不能为空')
1328
- )
1329
- return
1330
- }
1331
-
1332
- projectWmsSowChangePositionContainer({
1333
- sowWallId: this.sowData.sowWallId,
1334
- sowLot: this.sowData.sowLot,
1335
- sowWallLineId: this.sowFullPopup.sowLocationInfo.sowWallLineId,
1336
- sowWallLineCode: this.sowFullPopup.sowLocationInfo.sowWallLineCode,
1337
- sowPositionContainer: this.sowFullPopup.fullContainer.value,
1338
- bindContainer: this.sowFullPopup.newContainer.value,
1339
- }).then(()=>{
1340
- this.$lwToast.success(
1341
- this.$lwLanguage.get('','已更换')
1342
- )
1343
- this.getData()
1344
- this.sowFullPopup.show = false
1345
- })
1346
- },
1347
- // 播满换箱弹框 - 关闭
1348
- sowFullOff(){
1349
- this.sowFullPopup.fullContainer.value = ''
1350
- this.sowFullPopup.newContainer.value = ''
1351
- this.sowFullPopup.sowLocationInfo = {}
1352
- },
1353
-
1354
- // 查看未播种商品弹框
1355
- openWaitSowPopup(){
1356
- projectWmsSowLotQueryUnfinishContainer({
1357
- sowWallId: this.sowData.sowWallId,
1358
- sowWallCode: this.sowData.sowWallCode,
1359
- sowLot: this.sowData.sowLot,
1360
- }).then(res=>{
1361
- this.waitSowSkuPopup.data = res
1362
- this.waitSowSkuPopup.showCom = true
1363
- this.waitSowSkuPopup.show = true
1364
- })
1365
- },
1366
-
1367
- // 异常弹框打开
1368
- abnClick(data){
1369
- this.abnPopup.data = data
1370
- this.abnPopup.showCom = true
1371
- this.abnPopup.show = true
1372
- this.waitSowSkuPopup.show = false
1373
- },
1374
- // 确认异常上报
1375
- abnConfirm(){
1376
- const {success, data} = this.$refs.abnormal.getAbnormalData()
1377
-
1378
- if (!success) return
1379
-
1380
- projectWmsSowSubmitAbnormal({
1381
- ...data,
1382
- ...this.abnPopup.data,
1383
- sowLot: this.sowData.sowLot,
1384
- sowWallId: this.sowData.sowWallId,
1385
- sowWallCode: this.sowData.sowWallCode,
1386
- }).then(res=>{
1387
- this.$lwToast.success(
1388
- this.$lwLanguage.get('','异常上报成功')
1389
- )
1390
- this.abnPopup.show = false
1391
-
1392
- if (this.checkSowOver(res)) return
1393
-
1394
- this.getData()
1395
- })
1396
- }
1397
- }
1398
- }
1399
- </script>
1400
-
1401
- <style scoped lang="less">
1402
- @import "./../../../../../assets/css/var.less";
1403
-
1404
- .border-2{
1405
- border: solid 2px @baseColor;
1406
- }
1407
-
1408
- .lw-outbound-sow-code{
1409
- flex-shrink: 0;
1410
- padding: 5px;
1411
- width: 50px;
1412
- height: 50px;
1413
- background: #ccc;
1414
- color: @baseColor;
1415
- font-size: 24px;
1416
- font-weight: bold;
1417
- border-radius: 8px;
1418
- }
1419
-
1420
- </style>
1
+ <!--
2
+ 播种分拣 - 执行页
3
+ @author: 张文
4
+ @date: 2022-06-27
5
+ -->
6
+ <template>
7
+ <div>
8
+
9
+ <lw-nav-bar :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.xogujxom','播种分拣')"/>
10
+
11
+ <div v-if="Object.keys(sowData).length" class="lw-global-page-box">
12
+
13
+ <div class="lw-global-model-top-radius">
14
+
15
+ <div class="lw-global-flex-between lw-global-row">
16
+
17
+ <div
18
+ style="flex: 1"
19
+ class="lw-global-flex-start"
20
+ >
21
+ <div class="lw-global-title">
22
+ {{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.cgughozf','播种墙编号') }}
23
+ </div>
24
+ <div class="lw-global-value-bold">{{ sowData.sowWallCode }}</div>
25
+ </div>
26
+
27
+ <lw-tag
28
+ round
29
+ plain
30
+ type="danger"
31
+ >{{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.hjzmazni','播种中') }}</lw-tag>
32
+
33
+ </div>
34
+
35
+ <lw-title-value-cell
36
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.mspznjus','当前批次')"
37
+ :value="sowData.sowLot"
38
+ val-bold
39
+ />
40
+
41
+ <van-progress
42
+ style="margin: 15px 0 5px 0"
43
+ stroke-width="8"
44
+ :percentage="sowData.sowRate ||0"
45
+ color="linear-gradient(90deg, #FF8E8F 0%, #C5000A 100%)"
46
+ />
47
+
48
+ </div>
49
+ <lw-data-look-bg
50
+ style="margin-bottom: 10px"
51
+ type="bottom"
52
+ click-style
53
+ @click="openWaitSowPopup"
54
+ >
55
+ <div>
56
+ <div>{{ sowData.containerCount }}</div>
57
+ <div>{{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.zvaqhzwl','托盘数') }}</div>
58
+ </div>
59
+
60
+ <div>
61
+ <div>{{ sowData.waitSowQty }}</div>
62
+ <div>{{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.ybyxwflh','待播种') }}</div>
63
+ </div>
64
+ <div>
65
+ <div>{{ sowData.sowQty }}</div>
66
+ <div>{{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.lyojpssf','已播种') }}</div>
67
+ </div>
68
+
69
+ <div>
70
+ <div>{{ sowData.abnormalQty }}</div>
71
+ <div>{{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.pnlvhvbv','异常') }}</div>
72
+ </div>
73
+ </lw-data-look-bg>
74
+
75
+ <!-- 绑定周转箱的提示信息 -->
76
+ <div
77
+ class="lw-global-model-box lw-global-border-2px"
78
+ style="text-align: center;padding: 20px 10px;color: #aaa"
79
+ v-if="sowData.needBindContainer"
80
+ >{{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.ibyeddyp','请绑定周转箱到播种墙') }}</div>
81
+ <!-- 已经绑定周转箱 -->
82
+ <div
83
+ v-else
84
+ class="lw-global-model-box lw-global-border-2px"
85
+ style="padding-top: 3px"
86
+ >
87
+
88
+ <!-- 扫描拣选容器号获取播种类型 -->
89
+ <lw-input
90
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.uvcwuaui','拣选容器号')"
91
+ v-model="startSow.pickContainer.value"
92
+ :get-focus.sync="startSow.pickContainer.focus"
93
+ :disabled="startSow.start"
94
+ rule-key="container"
95
+ @confirm="pickConfirm"
96
+ >
97
+
98
+ <template #button>
99
+ <lw-button
100
+ v-if="!startSow.start"
101
+ round
102
+ mini
103
+ @click="pickConfirm"
104
+ >{{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.qrxfaeqv','确认') }}</lw-button>
105
+ <div v-else>
106
+ <span class="lw-global-value-bold-red">{{ startSow.data.sowQty }}</span>
107
+ <span class="lw-global-value-bold"> / {{ startSow.data.pickQty }}</span>
108
+ </div>
109
+ </template>
110
+
111
+ </lw-input>
112
+
113
+ <!-- 获取到播种类型 -->
114
+ <template v-if="startSow.start">
115
+
116
+ <div
117
+ style="margin-top: 10px"
118
+ class="lw-global-flex-between"
119
+ >
120
+ <div style="flex: 1">
121
+ <!-- 播种方式 -->
122
+ <lw-tag
123
+ type="danger"
124
+ size="large"
125
+ round
126
+ plain
127
+ >{{ sowMethod.method }}</lw-tag>
128
+
129
+ <!-- 批量播种输入的商品号 -->
130
+ <lw-input
131
+ v-if="sowMethod.sku"
132
+ :title="sowMethod.inputTitle"
133
+ v-model="skuSow.sku.value"
134
+ :get-focus.sync="skuSow.sku.focus"
135
+ auto-clear-val
136
+ rule-key="batchSku"
137
+ @confirm="skuSowConfirm"
138
+ />
139
+
140
+ <!-- 逐件扫描的序列号 -->
141
+ <lw-input
142
+ v-else
143
+ :title="sowMethod.inputTitle"
144
+ v-model="snSow.value"
145
+ :get-focus.sync="snSow.focus"
146
+ auto-clear-val
147
+ rule-key="sn"
148
+ @confirm="snSowConfirm"
149
+ />
150
+ </div>
151
+
152
+ <!-- 播种位指示 -->
153
+ <div
154
+ v-if="Object.keys(nowSowSkuInfo.data).length"
155
+ :class="[
156
+ 'lw-global-flex-center',
157
+ 'lw-outbound-sow-code',
158
+ nowSowSkuInfo.animation ? 'lw-global-animation-breath' : ''
159
+ ]"
160
+ >{{ nowSowSkuInfo.data.sowWallLineCode }}</div>
161
+ </div>
162
+
163
+ <!-- 播种信息展示 -->
164
+ <template v-if="Object.keys(nowSowSkuInfo.data).length">
165
+
166
+ <div class="lw-global-row">
167
+ <div class="lw-global-value-bold">{{ nowSowSkuInfo.data.skuCode }}</div>
168
+ <div class="lw-global-title">{{ nowSowSkuInfo.data.skuName }}</div>
169
+ </div>
170
+
171
+ <lw-title-value-cell
172
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.tntbmxje','最小销售量')"
173
+ :value="nowSowSkuInfo.data.minSellQty"
174
+ val-bold
175
+ />
176
+
177
+ <div class="lw-global-row lw-global-flex-between">
178
+
179
+ <lw-title-value-cell
180
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.ybyxwflh','待播种')"
181
+ :value="nowSowSkuInfo.data.waitSowQty"
182
+ val-red
183
+ val-bold
184
+ :is-row="false"
185
+ />
186
+
187
+
188
+ <div class="lw-global-flex-between">
189
+
190
+ <div class="lw-global-title">
191
+ {{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.mergelma','已播种/总量') }}
192
+ </div>
193
+ <div class="lw-global-value">
194
+ <span class="lw-global-value-bold-red">{{ nowSowSkuInfo.data.sowQty }}</span>
195
+ <span class="lw-global-value-bold"> / {{ nowSowSkuInfo.data.totalQty }}</span>
196
+ </div>
197
+
198
+ </div>
199
+
200
+ </div>
201
+
202
+
203
+ <!-- 批量播种数量输入框 -->
204
+ <template v-if="sowMethod.sku">
205
+ <lw-input
206
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.kryqgmmf','当前扫描量')"
207
+ v-model="skuSow.qty.value"
208
+ :get-focus.sync="skuSow.qty.focus"
209
+ type="digit"
210
+ @confirm="skuSowQtyConfirm"
211
+ />
212
+
213
+ <div
214
+ class="lw-global-flex-between lw-global-row-end"
215
+ style="padding-bottom: 0"
216
+ >
217
+ <lw-button
218
+ type="last"
219
+ plain
220
+ block
221
+ mini
222
+ round
223
+ @click="skuSowRepeatScan"
224
+ >{{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.eteyzfxv','重新扫描') }}</lw-button>
225
+
226
+ <lw-button
227
+ style="margin-left: 10px"
228
+ block
229
+ mini
230
+ round
231
+ @click="skuSowQtyConfirm"
232
+ >{{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.xqbkjchp','确认播种') }}</lw-button>
233
+ </div>
234
+ </template>
235
+
236
+
237
+ <!-- 逐件扫描播种 -->
238
+ <template v-else>
239
+ <lw-title-value-cell
240
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.kwvbnjar','当前序列号')"
241
+ :value="snSow.scanData.sn"
242
+ val-bold
243
+ />
244
+ <lw-input
245
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.kryqgmmf','当前扫描量')"
246
+ v-model="snSow.scanData.qty"
247
+ :disabled="true"
248
+ >
249
+
250
+ <template #button>
251
+
252
+ <lw-button
253
+ round
254
+ mini
255
+ @click="snSowClearNow"
256
+ >{{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.ftpaanlx','取消本次扫描') }}</lw-button>
257
+
258
+ </template>
259
+
260
+ </lw-input>
261
+ </template>
262
+
263
+ </template>
264
+
265
+ </template>
266
+
267
+ </div>
268
+
269
+ <!-- 拣选容器折叠框 -->
270
+ <div class="lw-global-model-box lw-global-collapse-box">
271
+ <van-collapse
272
+ v-model="pickCollapse"
273
+ :border="false"
274
+ >
275
+ <van-collapse-item name="pick">
276
+
277
+ <template #title>
278
+ <div class="lw-global-flex-between">
279
+
280
+ <div>{{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.ztwgjrql','拣选容器') }}</div>
281
+ <div class="lw-global-value-bold-red">
282
+ {{ sowData.containerList.length || 0 }}
283
+ {{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.glfrjdqs','行') }}
284
+ </div>
285
+
286
+ </div>
287
+ </template>
288
+
289
+ <div
290
+ v-for="(i,k) in sowData.containerList"
291
+ :key="k"
292
+ class="lw-global-row lw-global-flex-between"
293
+ >
294
+
295
+ <div
296
+ style="flex-shrink: 0"
297
+ class="lw-global-title"
298
+ >
299
+ {{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.iccvekzl','拣选容器号') }}
300
+ </div>
301
+
302
+ <div
303
+ style="flex: 1"
304
+ class="lw-global-flex-between lw-global-value-bold"
305
+ >
306
+
307
+ <div style="flex: 1">{{ i.pickContainer }}</div>
308
+ <div style="flex-shrink: 0">
309
+ <span class="lw-global-value-bold-red">{{ i.sowQty }}</span>
310
+ /
311
+ {{ i.pickQty }}
312
+ </div>
313
+
314
+ </div>
315
+
316
+ </div>
317
+
318
+ </van-collapse-item>
319
+ </van-collapse>
320
+ </div>
321
+
322
+ <!-- 播种位列表折叠框 -->
323
+ <div class="lw-global-model-box lw-global-collapse-box">
324
+ <van-collapse
325
+ v-model="sowCollapse"
326
+ :border="false"
327
+ >
328
+ <van-collapse-item name="sow">
329
+
330
+ <template #title>
331
+ <div class="lw-global-flex-between">
332
+
333
+ <div>{{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.rbipohic','播种位列表') }}</div>
334
+ <div class="lw-global-value-bold-red">
335
+ {{ sowData.sowWallLineList.length || 0 }}
336
+ {{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.glfrjdqs','行') }}
337
+ </div>
338
+
339
+ </div>
340
+ </template>
341
+ <sow-location-list :sow-list="sowData.sowWallLineList"/>
342
+
343
+ </van-collapse-item>
344
+ </van-collapse>
345
+ </div>
346
+
347
+ </div>
348
+
349
+ <lw-bottom-bar-btn-hidden :btn-list="bottomBtnList"/>
350
+
351
+ <!-- 绑定周转箱 -->
352
+ <lw-popup
353
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.xwytxnhv','绑定周转箱')"
354
+ v-model="bindContainerPopup.show"
355
+ @closed="bindContainerPopupOff"
356
+ >
357
+
358
+ <template v-if="sowData.sowWallLineList">
359
+ <lw-title-value-cell
360
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.fnwpvtiw','播种墙')"
361
+ :value="sowData.sowWallCode"
362
+ val-bold
363
+ />
364
+
365
+ <lw-title-value-cell
366
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.vsynzroi','当前正在绑定播种位')"
367
+ :value="sowData.sowWallLineList[bindContainerPopup.index].sowWallLineCode"
368
+ val-bold
369
+ val-red
370
+ val-size="16px"
371
+ />
372
+
373
+ <lw-input
374
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.mioibyem','周转箱号')"
375
+ v-model="bindContainerPopup.container.value"
376
+ :get-focus.sync="bindContainerPopup.container.focus"
377
+ rule-key="containerBox"
378
+ @confirm="sowLocationBindContainerConfirm"
379
+ >
380
+
381
+ <template #button>
382
+ <lw-button
383
+ mini
384
+ round
385
+ @click="sowLocationBindContainerConfirm"
386
+ >{{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.nfljxtde','绑定') }}</lw-button>
387
+ </template>
388
+
389
+ </lw-input>
390
+
391
+ <div
392
+ class="lw-global-flex-between lw-global-row lw-global-click-style"
393
+ v-for="(i,k) in sowData.sowWallLineList"
394
+ :key="k"
395
+ @click="selectSowLocation(k)"
396
+ >
397
+
398
+ <div class="lw-global-value-bold">{{ i.sowWallLineCode }}</div>
399
+ <div class="lw-global-value-bold">{{ i.sowPositionContainer }}</div>
400
+
401
+ </div>
402
+ </template>
403
+
404
+ <template #button>
405
+ <lw-button @click="repeatBind">
406
+ {{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.rvqhgdhm','重新绑定') }}
407
+ </lw-button>
408
+ </template>
409
+
410
+ </lw-popup>
411
+
412
+ <!-- 缺货完成 -->
413
+ <lw-popup
414
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.qrmdudpw','缺货完成')"
415
+ v-model="littlePopup.show"
416
+ >
417
+
418
+ <div style="margin-bottom: 10px" class="lw-global-flex-between">
419
+
420
+ <lw-title-value-cell
421
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.fnwpvtiw','播种墙')"
422
+ :value="sowData.sowWallCode"
423
+ val-bold
424
+ :is-row="false"
425
+ />
426
+
427
+ <lw-title-value-cell
428
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.vtdcyglb','总缺货量')"
429
+ :value="littlePopup.data.waitSowQty"
430
+ val-bold
431
+ val-red
432
+ :is-row="false"
433
+ />
434
+
435
+ </div>
436
+
437
+ <sow-location-list :sow-list="littlePopup.data.sowWallLineList"/>
438
+
439
+ <template #button>
440
+ <lw-button @click="littleConfirm">
441
+ {{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.bdybuqve','确认缺货完成') }}
442
+ </lw-button>
443
+ </template>
444
+ </lw-popup>
445
+
446
+ <!-- 播种位播种完成 -->
447
+ <lw-popup
448
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.twgkxbjm','播种位播种完成')"
449
+ v-model="sowLocationOverPopup.show"
450
+ @closed="getData"
451
+ >
452
+
453
+ <lw-title-value-cell
454
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.fnwpvtiw','播种墙')"
455
+ :value="sowData.sowWallCode"
456
+ val-bold
457
+ />
458
+
459
+ <lw-title-value-cell
460
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.btwbzrft','播种位')"
461
+ :value="sowLocationOverPopup.data.sowWallLineCode"
462
+ val-bold
463
+ />
464
+
465
+ <lw-title-value-cell
466
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.mioibyem','周转箱号')"
467
+ :value="sowLocationOverPopup.data.sowPositionContainer"
468
+ val-bold
469
+ />
470
+
471
+ <lw-title-value-cell
472
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.layghqha','商品数量')"
473
+ :value="sowLocationOverPopup.data.sowWallLineQty"
474
+ val-bold
475
+ val-red
476
+ />
477
+
478
+ <div
479
+ class="lw-global-row-end"
480
+ style="text-align: center;padding-bottom: 0"
481
+ >
482
+ <lw-tag
483
+ plain
484
+ size="large"
485
+ >{{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.erhsxeyk','已播种完成') }}</lw-tag>
486
+ </div>
487
+
488
+ </lw-popup>
489
+
490
+ <!-- 播种批次完成 -->
491
+ <lw-popup
492
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.iemvcplq','播种批次完成')"
493
+ v-model="sowLotOverPopup.show"
494
+ @closed="goBack"
495
+ >
496
+
497
+ <lw-title-value-cell
498
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.fnwpvtiw','播种墙')"
499
+ :value="sowData.sowWallCode"
500
+ val-bold
501
+ />
502
+
503
+ <div class="lw-global-row" style="text-align: center">
504
+ <lw-tag
505
+ plain
506
+ size="large"
507
+ >{{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.erhsxeyk','已播种完成') }}</lw-tag>
508
+ </div>
509
+
510
+ <sow-location-list :sow-list="sowLotOverPopup.data.sowWallLineList"/>
511
+
512
+ </lw-popup>
513
+
514
+ <!-- 播满换箱 -->
515
+ <lw-popup
516
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.hurwedtb','播满换箱')"
517
+ v-model="sowFullPopup.show"
518
+ @closed="sowFullOff"
519
+ >
520
+
521
+ <lw-input
522
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.xtmeftpy','已满容器号')"
523
+ v-model="sowFullPopup.fullContainer.value"
524
+ :get-focus.sync="sowFullPopup.fullContainer.focus"
525
+ rule-key="fullContainer"
526
+ @confirm="sowFullContainerConfirm"
527
+ />
528
+
529
+ <div class="lw-global-row lw-global-flex-between">
530
+
531
+ <lw-title-value-cell
532
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.btwbzrft','播种位')"
533
+ :value="sowFullPopup.sowLocationInfo.sowWallLineCode"
534
+ val-bold
535
+ :is-row="false"
536
+ />
537
+
538
+ <lw-title-value-cell
539
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.zzppzvmi','已播种量')"
540
+ :value="sowFullPopup.sowLocationInfo.sowQty"
541
+ val-bold
542
+ val-red
543
+ :is-row="false"
544
+ />
545
+
546
+ </div>
547
+
548
+ <lw-input
549
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.zzzkhyvl','新容器号')"
550
+ v-model="sowFullPopup.newContainer.value"
551
+ :get-focus.sync="sowFullPopup.newContainer.focus"
552
+ rule-key="newContainer"
553
+ @confirm="sowFullNewContainerConfirm"
554
+ />
555
+
556
+ <div
557
+ class="lw-global-value"
558
+ style="margin-top: 8px;text-align: center"
559
+ >{{$lwLanguage.get(
560
+ '',
561
+ '拿下已播满容器号!因为没有播种完成,还需要扫码新空容器号,继续播种接货'
562
+ )}}</div>
563
+
564
+ <template #button>
565
+ <lw-button @click="sowFullNewContainerConfirm">
566
+ {{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.qrxfaeqv','确认') }}
567
+ </lw-button>
568
+ </template>
569
+
570
+ </lw-popup>
571
+
572
+ <!-- 查看未播种数 -->
573
+ <lw-popup
574
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.zjezchcw','未播种商品')"
575
+ v-model="waitSowSkuPopup.show"
576
+ @closed="waitSowSkuPopup.showCom=false"
577
+ >
578
+
579
+ <template v-if="waitSowSkuPopup.showCom && waitSowSkuPopup.data.length">
580
+ <wait-sow-collapse
581
+ v-for="(i,k) in waitSowSkuPopup.data"
582
+ :key="k"
583
+ :item="i"
584
+ @abn="abnClick"
585
+ />
586
+ </template>
587
+ <lw-not-data v-else/>
588
+
589
+ </lw-popup>
590
+
591
+ <!-- 异常弹框 -->
592
+ <lw-popup
593
+ :title="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.cnycqqqr','播种分拣异常上报')"
594
+ v-model="abnPopup.show"
595
+ @closed="abnPopup.showCom=false"
596
+ >
597
+
598
+ <lw-inner-abnormal-module
599
+ ref="abnormal"
600
+ v-if="abnPopup.showCom"
601
+ :location="abnPopup.data.locationCode"
602
+ :sku-code="abnPopup.data.skuCode"
603
+ :sku-name="abnPopup.data.skuName"
604
+ :qty="abnPopup.data.waitSowQty"
605
+ :type="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.bxblrpvw','出库')"
606
+ :ab-type="$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.xogujxom','播种分拣')"
607
+ />
608
+
609
+ <template #button>
610
+ <lw-button @click="abnConfirm">
611
+ {{ $lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.wyrjpppa','上报') }}
612
+ </lw-button>
613
+ </template>
614
+
615
+ </lw-popup>
616
+
617
+ </div>
618
+ </template>
619
+
620
+ <script>
621
+
622
+ import sowLocationList from './../components/sowLocationList/index.vue'
623
+ import waitSowCollapse from './../components/waitSowCollapse/index.vue'
624
+ import {
625
+ projectWmsBindSowPositionContainer,
626
+ projectWmsSowBatchSubmit,
627
+ projectWmsSowChangePositionContainer,
628
+ projectWmsSowComputeSkuSowPosition,
629
+ projectWmsSowContainerData,
630
+ projectWmsSowLotQueryUnfinishContainer,
631
+ projectWmsSowQuerySowLotData,
632
+ projectWmsSowQueryStockoutData,
633
+ projectWmsSowRebindContainer,
634
+ projectWmsSowSingleCancel,
635
+ projectWmsSowSingleSubmit,
636
+ projectWmsSowStockoutFinish,
637
+ projectWmsSowSubmitAbnormal
638
+ } from "../../../../../api/outbound/sow/action";
639
+
640
+ export default {
641
+ name: "lwOutboundSowActionPage",
642
+ components:{
643
+ sowLocationList,
644
+ waitSowCollapse
645
+ },
646
+ data() {
647
+ return {
648
+
649
+ // 底部按钮列表
650
+ bottomBtnAll:{
651
+ bindContainer:{
652
+ text: this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.poudnshj','绑定容器号'),
653
+ click: this.bindContainerClick
654
+ },
655
+ littleOver:{
656
+ text: this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.qrmdudpw','缺货完成'),
657
+ click: this.littleClick
658
+ },
659
+ abn:{
660
+ text: this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.onnqxewx','商品异常'),
661
+ click: this.openWaitSowPopup
662
+ },
663
+ cutContainer:{
664
+ text: this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.pklmzaxe','切换容器'),
665
+ click: this.cutPickContainer
666
+ },
667
+ sowFull:{
668
+ text: this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.hurwedtb','播满换箱'),
669
+ click: this.openSowFullPopup
670
+ },
671
+ },
672
+
673
+ // 拣选容器折叠
674
+ pickCollapse:['pick'],
675
+
676
+ // 播种位折叠
677
+ sowCollapse:['sow'],
678
+
679
+ // 播种数据
680
+ sowData:{},
681
+
682
+ // 播种方式
683
+ sowMethod:{},
684
+
685
+ // 当前播种商品信息
686
+ nowSowSkuInfo:{
687
+ data:{},
688
+ animation: false,
689
+ },
690
+
691
+ // 扫描播种
692
+ startSow:{
693
+ start: false,
694
+ pickContainer:{
695
+ value:'',
696
+ focus: false
697
+ },
698
+ data:{},
699
+ },
700
+
701
+ // 批量播种商品
702
+ skuSow:{
703
+ sku:{
704
+ value: '',
705
+ focus: false
706
+ },
707
+
708
+ qty:{
709
+ value:'',
710
+ focus: false,
711
+ disabled: false
712
+ }
713
+ },
714
+
715
+ // 逐件播种
716
+ snSow:{
717
+ value: '',
718
+ focus: false,
719
+ scanData:{}
720
+ },
721
+
722
+ // 绑定周转箱弹框
723
+ bindContainerPopup:{
724
+ show: false,
725
+ container:{
726
+ value:'',
727
+ focus: true
728
+ },
729
+ index: 0,
730
+ sowLocation:''
731
+ },
732
+
733
+ // 缺货完成弹框
734
+ littlePopup:{
735
+ show: false,
736
+ data:{}
737
+ },
738
+
739
+ // 播种位播种完成弹框
740
+ sowLocationOverPopup:{
741
+ show: false,
742
+ data:{}
743
+ },
744
+
745
+ // 播种批次完成弹框
746
+ sowLotOverPopup:{
747
+ show: false,
748
+ data:{}
749
+ },
750
+
751
+ // 播满换箱弹框
752
+ sowFullPopup:{
753
+ show: false,
754
+ fullContainer:{
755
+ value: '',
756
+ focus: false
757
+ },
758
+ sowLocationInfo:{},
759
+ newContainer:{
760
+ value:'',
761
+ focus: false
762
+ }
763
+ },
764
+
765
+ // 未播种商品弹框
766
+ waitSowSkuPopup:{
767
+ show: false,
768
+ showCom: false,
769
+ data:{}
770
+ },
771
+
772
+ // 异常上报
773
+ abnPopup:{
774
+ show: false,
775
+ showCom: false,
776
+ data:{}
777
+ }
778
+ }
779
+ },
780
+ computed:{
781
+ // 底部按钮显示列表
782
+ bottomBtnList(){
783
+ // 是否需要绑定容器号
784
+ if (this.sowData.needBindContainer){
785
+ return [
786
+ this.bottomBtnAll.bindContainer,
787
+ this.bottomBtnAll.littleOver
788
+ ]
789
+ }
790
+
791
+ // 是否已经扫描了拣选容器
792
+ if (!this.startSow.start){
793
+ return [
794
+ this.bottomBtnAll.littleOver,
795
+ this.bottomBtnAll.abn
796
+ ]
797
+ }
798
+
799
+ return [
800
+ this.bottomBtnAll.cutContainer,
801
+ this.bottomBtnAll.littleOver,
802
+ this.bottomBtnAll.sowFull,
803
+ this.bottomBtnAll.abn,
804
+ ]
805
+ },
806
+ },
807
+ mounted() {
808
+ this.getData()
809
+ },
810
+ methods: {
811
+ // 获取数据
812
+ getData(isSow=false, isSn=false){
813
+ return new Promise((pres, err)=>{
814
+ const qutry = this.$route.query
815
+ projectWmsSowQuerySowLotData({
816
+ sowWallId: qutry.lwSowWallId,
817
+ sowWallCode: qutry.lwSowWallCode,
818
+ sowLot:qutry.lwSowLot,
819
+ }).then(res=>{
820
+ this.sowData = res
821
+
822
+ // 判断当前是否存在正在播种的拣选容器
823
+ if (this.startSow.start){
824
+
825
+ // 过滤找到当前播种的拣选容器
826
+ const list = res.containerList.filter(item=>{
827
+ return item.pickContainer === this.startSow.pickContainer.value
828
+ })
829
+
830
+ let over = false
831
+
832
+ // 判断当前拣选容器是否存在新返回的数据中,如果存在就替换数据
833
+ if (list.length){
834
+ const data = list[0]
835
+ this.startSow.data.pickQty = data.pickQty
836
+ this.startSow.data.sowQty = data.sowQty
837
+
838
+ over = data.sowQty === data.pickQty
839
+ over && !isSn && this.cutPickContainer()
840
+
841
+ }else {
842
+ !isSn && this.cutPickContainer()
843
+ }
844
+
845
+ const msg = over ?
846
+ this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.padkxwtn','当前容器已播种完成') :
847
+ this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.phsmbsgr','播种成功')
848
+
849
+ isSow && this.$lwToast.success(msg)
850
+ }
851
+ pres()
852
+ }).catch(()=>{
853
+ this.goBack()
854
+ err()
855
+ })
856
+ })
857
+ },
858
+
859
+ // 绑定周转箱
860
+ bindContainerClick(){
861
+ this.selectFistSowBind(true)
862
+ this.bindContainerPopup.show = true
863
+ },
864
+ // 找到第一个需要绑定容器的播种位
865
+ selectFistSowBind(need){
866
+ const wait = this.sowData.sowWallLineList
867
+
868
+ // 找到第一个需要绑定的播种位
869
+ for (let i=0;i<wait.length;i++){
870
+ if (wait[i].needBindContainer){
871
+ this.bindContainerPopup.index = i
872
+ this.bindContainerPopup.container.focus = true
873
+ return
874
+ }
875
+ }
876
+
877
+ if (need) {
878
+ this.bindContainerPopup.index = 0
879
+ this.bindContainerPopup.container.focus = true
880
+ return;
881
+ }
882
+
883
+ this.$lwToast.success(
884
+ this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.awxqwgwf','播种位已全部绑定周转箱')
885
+ )
886
+ this.bindContainerPopup.show = false
887
+ },
888
+ // 播种位绑定周转箱确认
889
+ sowLocationBindContainerConfirm(){
890
+
891
+ if (!this.bindContainerPopup.container.value){
892
+ this.bindContainerPopup.container.focus = true
893
+ this.$lwShowErrorMsg(
894
+ this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.lucxewqs','容器号不能为空')
895
+ )
896
+ return
897
+ }
898
+
899
+ const item = this.sowData.sowWallLineList[this.bindContainerPopup.index]
900
+ projectWmsBindSowPositionContainer({
901
+ sowWallId: this.sowData.sowWallId,
902
+ sowWallLineId: item.sowWallLineId,
903
+ sowWallLineCode: item.sowWallLineCode,
904
+ bindContainer: this.bindContainerPopup.container.value
905
+ }).then(()=>{
906
+ item.sowPositionContainer = this.bindContainerPopup.container.value
907
+ item.needBindContainer = false
908
+ this.bindContainerPopup.container.value = ''
909
+ this.selectFistSowBind()
910
+ }).catch(()=>{
911
+ this.bindContainerPopup.container.focus = true
912
+ this.bindContainerPopup.container.value = ''
913
+ })
914
+ },
915
+ // 点击播种位位选择绑定容器
916
+ selectSowLocation(index){
917
+ this.bindContainerPopup.container.value = ''
918
+ this.bindContainerPopup.container.focus = true
919
+ this.bindContainerPopup.index = index
920
+ },
921
+ // 重新绑定
922
+ repeatBind(){
923
+ this.$lwDialog.confirm({
924
+ title: this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.kkiiroqy','警告'),
925
+ message: this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.kzotfrbz','当前播种位绑定的容器将会被全部清空')
926
+ }).then(()=>{
927
+ projectWmsSowRebindContainer({
928
+ sowWallId: this.sowData.sowWallId,
929
+ sowWallCode: this.sowData.sowWallCode,
930
+ sowLot: this.sowData.sowLot,
931
+ }).then(()=>{
932
+ this.$lwToast.success(
933
+ this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.djccepmx','操作成功')
934
+ )
935
+ this.getData().then(()=>this.selectFistSowBind(true))
936
+ })
937
+ }).catch(()=>{})
938
+ },
939
+ // 绑定周转箱弹出框关闭
940
+ bindContainerPopupOff(){
941
+ this.bindContainerPopup.container.value=''
942
+ this.getData()
943
+ },
944
+
945
+
946
+ // 缺货完成按钮点击
947
+ littleClick(){
948
+ projectWmsSowQueryStockoutData({
949
+ sowWallId: this.sowData.sowWallId,
950
+ sowLot: this.sowData.sowLot,
951
+ }).then(res=>{
952
+ this.littlePopup.data = res
953
+ this.littlePopup.show = true
954
+ })
955
+ },
956
+ // 确认缺货完成
957
+ littleConfirm(){
958
+ projectWmsSowStockoutFinish({
959
+ sowWallId: this.sowData.sowWallId,
960
+ sowLot: this.sowData.sowLot
961
+ }).then(()=>{
962
+ this.$lwToast.success(
963
+ this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.qrmdudpw','缺货完成')
964
+ )
965
+ history.go(-1)
966
+ })
967
+ },
968
+
969
+ // 拣选容器号确认
970
+ pickConfirm(){
971
+ if (!this.startSow.pickContainer.value){
972
+ this.startSow.pickContainer.focus = true
973
+ this.$lwShowErrorMsg(
974
+ this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.idilyldh','拣选容器号不能为空')
975
+ )
976
+ return
977
+ }
978
+
979
+ const list = this.sowData.containerList.filter(item=>{
980
+ return item.pickContainer === this.startSow.pickContainer.value
981
+ })
982
+
983
+ if(!list.length){
984
+ this.startSow.pickContainer.focus = true
985
+ this.$lwShowErrorMsg(
986
+ this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.uferyhhh','扫描容器号不在当前播种批次内')
987
+ )
988
+ this.startSow.pickContainer.value = ''
989
+ return
990
+ }
991
+
992
+ projectWmsSowContainerData({
993
+ sowWallId: this.sowData.sowWallId,
994
+ sowWallCode: this.sowData.sowWallCode,
995
+ sowLot: this.sowData.sowLot,
996
+ pickContainer: this.startSow.pickContainer.value
997
+ }).then(res=>{
998
+
999
+ // 判断是否是批量播种
1000
+ if (res.sowMethod === 'BATCH') {
1001
+ this.sowMethod = {
1002
+ method: this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.vcoakpnr','批量播种'),
1003
+ inputTitle: this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.rthuzmrd','商品条码'),
1004
+ sku: true
1005
+ }
1006
+ this.skuSow.sku.focus = true
1007
+ } else {
1008
+ this.sowMethod = {
1009
+ method: this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.chibydou','逐件扫描播种'),
1010
+ inputTitle: this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.tueftwyn','商品序列号'),
1011
+ sku: false
1012
+ }
1013
+ this.snSow.focus = true
1014
+ }
1015
+
1016
+ this.startSow.data = res
1017
+ this.startSow.start = true
1018
+ })
1019
+ },
1020
+ // 切换拣选容器号
1021
+ cutPickContainer(){
1022
+ this.startSow.pickContainer.value = ''
1023
+ this.startSow.pickContainer.focus = true
1024
+ this.startSow.start = false
1025
+ this.startSow.data = {}
1026
+ this.clearSkuSowData()
1027
+ },
1028
+
1029
+ // 商品合法性校验
1030
+ skuCodeCheck(skuCode){
1031
+
1032
+ if (!skuCode){
1033
+ this.skuSow.sku.focus = true
1034
+ this.$lwShowErrorMsg(
1035
+ this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.wquvfuow','商品号不能为空')
1036
+ )
1037
+ return {
1038
+ success: false
1039
+ }
1040
+ }
1041
+
1042
+ const skuList = this.startSow.data.skuList.filter(item=>{
1043
+ return item.skuCode === skuCode
1044
+ })
1045
+
1046
+ if(!skuList.length){
1047
+ this.skuSow.sku.focus = true
1048
+ this.$lwShowErrorMsg(
1049
+ this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.lvlquawh','当前商品不在拣选容器内')
1050
+ )
1051
+ return {
1052
+ success: false
1053
+ }
1054
+ }
1055
+
1056
+ return {
1057
+ success: true,
1058
+ skuList
1059
+ }
1060
+ },
1061
+
1062
+ // 设置当前播种的商品数据
1063
+ setNowSowSkuInfo(res){
1064
+ this.nowSowSkuInfo.data = res
1065
+ this.nowSowSkuInfo.animation = true
1066
+ this.$lwAppPower.speak(this.nowSowSkuInfo.data.sowWallLineCode)
1067
+ },
1068
+
1069
+ // 清除当前播种数据
1070
+ clearSkuSowData(){
1071
+ this.nowSowSkuInfo.data = {}
1072
+ this.snSow.value = ''
1073
+ this.skuSow.qty.value = ''
1074
+ this.nowSowSkuInfo.data = {}
1075
+ this.nowSowSkuInfo.animation = false
1076
+ },
1077
+
1078
+ // 批量播种商品扫描完成
1079
+ skuSowConfirm(val, data){
1080
+
1081
+ const {key, qty} = data.data
1082
+
1083
+ this.nowSowSkuInfo.animation = false
1084
+
1085
+ const {success, skuList} = this.skuCodeCheck(key)
1086
+ if(!success) return
1087
+
1088
+ const oldSkuCode = this.nowSowSkuInfo.data.skuCode
1089
+ if (oldSkuCode && oldSkuCode !== key){
1090
+ this.skuSow.sku.focus = true
1091
+ this.$lwShowErrorMsg(
1092
+ this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.ooaohetj','当前商品与正在播种商品不一致')
1093
+ )
1094
+ return
1095
+ }
1096
+
1097
+ projectWmsSowComputeSkuSowPosition({
1098
+ sowWallId: this.sowData.sowWallId,
1099
+ sowWallCode: this.sowData.sowWallCode,
1100
+ sowLot: this.sowData.sowLot,
1101
+ pickContainer: this.startSow.pickContainer.value,
1102
+ ownerId: skuList[0].ownerId,
1103
+ skuId: skuList[0].skuId,
1104
+ skuCode: skuList[0].skuCode,
1105
+ }).then(res=>{
1106
+
1107
+ const oldSowWall = this.nowSowSkuInfo.data.sowWallLineCode
1108
+ if (oldSowWall && oldSowWall !== res.sowWallLineCode){
1109
+ this.skuSow.sku.focus = true
1110
+ this.$lwShowErrorMsg(
1111
+ this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.kzhmqspc','当前商品与正在播种商品不在同一播种位,不能播种!')
1112
+ )
1113
+ return
1114
+ }
1115
+
1116
+ this.setNowSowSkuInfo(res)
1117
+
1118
+ const total = Number(this.skuSow.qty.value || 0) + Number(qty || 0)
1119
+ this.skuSow.qty.value = total
1120
+
1121
+ // 如果播种量等于待播种量就自动提交
1122
+ if (total === Number(res.waitSowQty || 0)){
1123
+ this.skuSowQtyConfirm()
1124
+ return
1125
+ }
1126
+
1127
+ this.skuSow.sku.focus = true
1128
+ })
1129
+ },
1130
+ // 扫描数量确定
1131
+ skuSowQtyConfirm(){
1132
+
1133
+ const qty = Number(this.skuSow.qty.value || 0)
1134
+ if (!qty){
1135
+ this.skuSow.qty.focus = true
1136
+ this.$lwShowErrorMsg(
1137
+ this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.ieihmtxg','播种量不能为空,且应当是大于0的整数')
1138
+ )
1139
+ return
1140
+ }
1141
+ if (qty > Number(this.nowSowSkuInfo.data.waitSowQty ||0)){
1142
+ this.skuSow.qty.focus = true
1143
+ this.$lwShowErrorMsg(
1144
+ this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.qxfemtgp','播种量不能大于待播种量')
1145
+ )
1146
+ this.skuSow.qty.value = ''
1147
+ return
1148
+ }
1149
+
1150
+ projectWmsSowBatchSubmit({
1151
+ sowWallId: this.sowData.sowWallId,
1152
+ sowWallCode: this.sowData.sowWallCode,
1153
+ sowLot: this.sowData.sowLot,
1154
+ sowWallLineId: this.nowSowSkuInfo.data.sowWallLineId,
1155
+ sowWallLineCode: this.nowSowSkuInfo.data.sowWallLineCode,
1156
+ sowPositionContainer: this.nowSowSkuInfo.data.sowPositionContainer,
1157
+ ownerId: this.nowSowSkuInfo.data.ownerId,
1158
+ skuId: this.nowSowSkuInfo.data.skuId,
1159
+ pickContainer: this.startSow.pickContainer.value,
1160
+ currentSowQty: qty
1161
+ }).then(res=>{
1162
+
1163
+ this.sowOver(res)
1164
+ })
1165
+ },
1166
+ // 批量扫描 - 重新扫描
1167
+ skuSowRepeatScan(){
1168
+ this.clearSkuSowData()
1169
+ this.skuSow.sku.focus = true
1170
+ },
1171
+
1172
+ // 逐件扫描序列号确认
1173
+ snSowConfirm(val,data){
1174
+ const {skuCode, sn, qty} = data.data
1175
+ this.nowSowSkuInfo.animation = false
1176
+
1177
+ const {success, skuList} = this.skuCodeCheck(skuCode)
1178
+ if(!success) return
1179
+
1180
+ if (!sn){
1181
+ this.skuSow.sku.focus = true
1182
+ this.$lwShowErrorMsg(
1183
+ this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.hdrtexta','序列号不能为空')
1184
+ )
1185
+ return
1186
+ }
1187
+
1188
+ const scanData = {
1189
+ sn,
1190
+ qty: qty || skuList[0].minSellQty,
1191
+ ownerId: skuList[0].ownerId,
1192
+ skuId: skuList[0].skuId,
1193
+ skuCode: skuList[0].skuCode,
1194
+ sowWallId: this.sowData.sowWallId,
1195
+ sowLot: this.sowData.sowLot,
1196
+ pickContainer: this.startSow.pickContainer.value,
1197
+ sowWallCode: this.sowData.sowWallCode,
1198
+ }
1199
+
1200
+ projectWmsSowSingleSubmit({
1201
+ ...scanData,
1202
+ currentSowQty: scanData.qty
1203
+ }).then(res=>{
1204
+
1205
+ this.setNowSowSkuInfo(res)
1206
+
1207
+ this.snSow.scanData = {
1208
+ ...scanData,
1209
+ sowWallLineId: res.sowWallLineId,
1210
+ sowWallLineCode: res.sowWallLineCode,
1211
+ sowPositionContainer: res.sowPositionContainer,
1212
+ }
1213
+
1214
+ this.sowOver(res, true)
1215
+ })
1216
+ },
1217
+ // 逐件扫描 - 取消本次扫描
1218
+ snSowClearNow(){
1219
+ projectWmsSowSingleCancel({
1220
+ ...this.snSow.scanData,
1221
+ cancelQty: this.snSow.scanData.qty
1222
+ }).then(()=>{
1223
+ this.$lwToast.success(
1224
+ this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.xtpkcohv','已取消')
1225
+ )
1226
+
1227
+ this.clearSkuSowData()
1228
+ this.getData(false, true)
1229
+ this.snSow.focus = true
1230
+
1231
+ })
1232
+ },
1233
+
1234
+ // 校验当前播种是否完成
1235
+ checkSowOver(res){
1236
+ // 当前批次是否完成
1237
+ if (res.sowLotFinish){
1238
+ this.sowLotOverPopup.data = res
1239
+ this.sowLotOverPopup.show = true
1240
+ return true
1241
+ }
1242
+
1243
+ // 当前播种位是否完成
1244
+ if (res.sowWallLineFinish){
1245
+ this.sowLocationOverPopup.data = res
1246
+ this.sowLocationOverPopup.show = true
1247
+ return true
1248
+ }
1249
+
1250
+ return false
1251
+ },
1252
+ // 播种完成
1253
+ sowOver(res, isSn=false){
1254
+
1255
+ !isSn && this.clearSkuSowData()
1256
+
1257
+ !isSn && this.cutPickContainer()
1258
+
1259
+ if(this.checkSowOver(res)) return
1260
+
1261
+ this.getData(true, isSn)
1262
+ this.startSow.pickContainer.focus = true
1263
+ },
1264
+
1265
+ // 返回上一页
1266
+ goBack(){
1267
+ history.go(-1)
1268
+ },
1269
+
1270
+ // 播满换箱弹框 - 打开弹框
1271
+ openSowFullPopup(){
1272
+ this.sowFullPopup.show = true
1273
+ this.sowFullPopup.fullContainer.focus = true
1274
+ },
1275
+ // 播满换箱弹框 - 已满容器确认
1276
+ sowFullContainerConfirm(){
1277
+
1278
+ if(!this.sowFullPopup.fullContainer.value){
1279
+ this.sowFullPopup.fullContainer.focus = true
1280
+ this.$lwShowErrorMsg(
1281
+ this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.nhhkmhsa','已满容器不能为空')
1282
+ )
1283
+ return
1284
+ }
1285
+
1286
+ const list = this.sowData.sowWallLineList.filter(item=>{
1287
+ return item.sowPositionContainer === this.sowFullPopup.fullContainer.value
1288
+ })
1289
+
1290
+ if(!list.length){
1291
+ this.sowFullPopup.fullContainer.focus = true
1292
+ this.$lwShowErrorMsg(
1293
+ this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.meczwsds','没有找到已满的容器号')
1294
+ )
1295
+ this.sowFullPopup.fullContainer.value = ''
1296
+ return
1297
+ }
1298
+
1299
+ this.sowFullPopup.sowLocationInfo = list[0]
1300
+ this.sowFullPopup.newContainer.focus = true
1301
+
1302
+ },
1303
+ // 播满换箱弹框 - 新容器确定
1304
+ sowFullNewContainerConfirm(){
1305
+
1306
+ if (!this.sowFullPopup.sowLocationInfo.sowWallLineCode){
1307
+ this.sowFullPopup.fullContainer.focus = true
1308
+ this.$lwShowErrorMsg(
1309
+ this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.fhgyfjuh','请输入已满容器,并获取容器对应的播种位信息')
1310
+ )
1311
+ return
1312
+ }
1313
+
1314
+ if (!this.sowFullPopup.newContainer.value){
1315
+ this.sowFullPopup.newContainer.focus = true
1316
+ this.$lwShowErrorMsg(
1317
+ this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.zzwwpgjj','新容器不能为空')
1318
+ )
1319
+ return
1320
+ }
1321
+
1322
+ projectWmsSowChangePositionContainer({
1323
+ sowWallId: this.sowData.sowWallId,
1324
+ sowLot: this.sowData.sowLot,
1325
+ sowWallLineId: this.sowFullPopup.sowLocationInfo.sowWallLineId,
1326
+ sowWallLineCode: this.sowFullPopup.sowLocationInfo.sowWallLineCode,
1327
+ sowPositionContainer: this.sowFullPopup.fullContainer.value,
1328
+ bindContainer: this.sowFullPopup.newContainer.value,
1329
+ }).then(()=>{
1330
+ this.$lwToast.success(
1331
+ this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.bxiymdni','已更换')
1332
+ )
1333
+ this.getData()
1334
+ this.sowFullPopup.show = false
1335
+ })
1336
+ },
1337
+ // 播满换箱弹框 - 关闭
1338
+ sowFullOff(){
1339
+ this.sowFullPopup.fullContainer.value = ''
1340
+ this.sowFullPopup.newContainer.value = ''
1341
+ this.sowFullPopup.sowLocationInfo = {}
1342
+ },
1343
+
1344
+ // 查看未播种商品弹框
1345
+ openWaitSowPopup(){
1346
+ projectWmsSowLotQueryUnfinishContainer({
1347
+ sowWallId: this.sowData.sowWallId,
1348
+ sowWallCode: this.sowData.sowWallCode,
1349
+ sowLot: this.sowData.sowLot,
1350
+ }).then(res=>{
1351
+ this.waitSowSkuPopup.data = res
1352
+ this.waitSowSkuPopup.showCom = true
1353
+ this.waitSowSkuPopup.show = true
1354
+ })
1355
+ },
1356
+
1357
+ // 异常弹框打开
1358
+ abnClick(data){
1359
+ this.abnPopup.data = data
1360
+ this.abnPopup.showCom = true
1361
+ this.abnPopup.show = true
1362
+ this.waitSowSkuPopup.show = false
1363
+ },
1364
+ // 确认异常上报
1365
+ abnConfirm(){
1366
+ const {success, data} = this.$refs.abnormal.getAbnormalData()
1367
+
1368
+ if (!success) return
1369
+
1370
+ projectWmsSowSubmitAbnormal({
1371
+ ...data,
1372
+ ...this.abnPopup.data,
1373
+ sowLot: this.sowData.sowLot,
1374
+ sowWallId: this.sowData.sowWallId,
1375
+ sowWallCode: this.sowData.sowWallCode,
1376
+ }).then(res=>{
1377
+ this.$lwToast.success(
1378
+ this.$lwLanguage.get('wms_project.pda.components.page.outbound.sow.action.uleyatow','异常上报成功')
1379
+ )
1380
+ this.abnPopup.show = false
1381
+
1382
+ if (this.checkSowOver(res)) return
1383
+
1384
+ this.getData()
1385
+ })
1386
+ }
1387
+ }
1388
+ }
1389
+ </script>
1390
+
1391
+ <style scoped lang="less">
1392
+ @import "./../../../../../assets/css/var.less";
1393
+
1394
+ .lw-outbound-sow-code{
1395
+ flex-shrink: 0;
1396
+ padding: 5px;
1397
+ width: 50px;
1398
+ height: 50px;
1399
+ background: #ccc;
1400
+ color: @baseColor;
1401
+ font-size: 24px;
1402
+ font-weight: bold;
1403
+ border-radius: 8px;
1404
+ }
1405
+
1406
+ </style>