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

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 (432) hide show
  1. package/README.md +134 -134
  2. package/package.json +69 -69
  3. package/src/api/common/Device.js +43 -43
  4. package/src/api/common/Dict.js +19 -19
  5. package/src/api/common/GetImgSrc.js +20 -20
  6. package/src/api/common/Language.js +31 -31
  7. package/src/api/common/Lot.js +20 -20
  8. package/src/api/common/Msg.js +26 -26
  9. package/src/api/common/Permissions.js +22 -22
  10. package/src/api/common/Print.js +65 -65
  11. package/src/api/common/Task.js +61 -61
  12. package/src/api/common/UUID.js +28 -28
  13. package/src/api/common/User.js +53 -53
  14. package/src/api/common/Waerhouse.js +28 -28
  15. package/src/api/common/barcode.js +165 -165
  16. package/src/api/common/common.js +33 -33
  17. package/src/api/common/index.js +37 -37
  18. package/src/api/inbound/index.js +6 -6
  19. package/src/api/inbound/quality.js +99 -99
  20. package/src/api/inbound/receive.js +119 -119
  21. package/src/api/inner/count/index.js +97 -97
  22. package/src/api/inner/disposeAbnormal/action.js +69 -69
  23. package/src/api/inner/disposeAbnormal/index.js +33 -33
  24. package/src/api/inner/materialApply/index.js +51 -51
  25. package/src/api/inner/move/abnormalMove.js +25 -25
  26. package/src/api/inner/move/lpnMove.js +25 -25
  27. package/src/api/inner/move/taskMove.js +57 -57
  28. package/src/api/inner/newProject/action.js +88 -88
  29. package/src/api/inner/newProject/index.js +17 -17
  30. package/src/api/inner/reportAbnormal/index.js +34 -34
  31. package/src/api/outbound/bale/checkBale/action.js +123 -114
  32. package/src/api/outbound/bale/checkBale/allCheck.js +25 -25
  33. package/src/api/outbound/bale/checkBale/index.js +52 -52
  34. package/src/api/outbound/delivery/action.js +148 -148
  35. package/src/api/outbound/delivery/addOrder.js +32 -32
  36. package/src/api/outbound/delivery/index.js +25 -25
  37. package/src/api/outbound/pick/alone.js +60 -60
  38. package/src/api/outbound/pick/box.js +42 -42
  39. package/src/api/outbound/pick/index.js +60 -60
  40. package/src/api/outbound/pick/lpn.js +42 -42
  41. package/src/api/outbound/pick/notAlone.js +33 -33
  42. package/src/api/outbound/pickMerge/index.js +69 -69
  43. package/src/api/outbound/sow/action.js +123 -123
  44. package/src/api/outbound/sow/index.js +24 -24
  45. package/src/api/outbound/summary/box.js +33 -33
  46. package/src/api/outbound/summary/lpn.js +23 -23
  47. package/src/api/receive/abnormal.js +34 -34
  48. package/src/api/receive/putaway.js +82 -82
  49. package/src/api/receive/randomMove.js +43 -43
  50. package/src/api/receive/receipt.js +25 -25
  51. package/src/assets/css/changeVant.less +22 -22
  52. package/src/assets/css/global.less +411 -411
  53. package/src/assets/css/index.less +4 -4
  54. package/src/assets/css/var.less +117 -117
  55. package/src/assets/css//345/205/250/345/261/200/346/240/267/345/274/217.md +31 -31
  56. package/src/components/module/InnerAbnormal/index.js +11 -11
  57. package/src/components/module/InnerAbnormal/index.vue +367 -347
  58. package/src/components/module/Login/index.js +11 -11
  59. package/src/components/module/Login/index.vue +328 -328
  60. package/src/components/module/Login//347/231/273/345/275/225/346/250/241/345/235/227.md +1 -1
  61. package/src/components/module/Lot/index.js +11 -11
  62. package/src/components/module/Lot/index.vue +181 -181
  63. package/src/components/module/Lot//346/211/271/346/254/241/345/261/236/346/200/247.md +2 -2
  64. package/src/components/module/LotLook/index.js +11 -11
  65. package/src/components/module/LotLook/index.vue +80 -80
  66. package/src/components/module/Menu/index.js +12 -12
  67. package/src/components/module/Menu/index.vue +118 -118
  68. package/src/components/module/Menu//350/217/234/345/215/225/346/240/217.md +1 -1
  69. package/src/components/module/MsgItem/index.js +11 -11
  70. package/src/components/module/MsgItem/index.vue +109 -109
  71. 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
  72. package/src/components/module/OnLine/index.js +11 -11
  73. package/src/components/module/OnLine/index.vue +195 -195
  74. 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
  75. package/src/components/module/ReceiveAbnormal/index.js +11 -11
  76. package/src/components/module/ReceiveAbnormal/index.vue +865 -865
  77. package/src/components/module/ScanDataList/index.js +11 -11
  78. package/src/components/module/ScanDataList/index.vue +326 -326
  79. package/src/components/module/SkuInfo/index.js +11 -11
  80. package/src/components/module/SkuInfo/index.vue +65 -65
  81. package/src/components/module/SystemInfo/index.js +11 -11
  82. package/src/components/module/SystemInfo/index.vue +217 -217
  83. 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
  84. package/src/components/module/index.js +42 -42
  85. package/src/components/page/common/Device/index.js +11 -11
  86. package/src/components/page/common/Device/index.vue +186 -186
  87. package/src/components/page/common/Device//350/256/276/345/244/207/347/256/241/347/220/206/351/241/265.md +1 -1
  88. package/src/components/page/common/Home/index.js +11 -11
  89. package/src/components/page/common/Home/index.vue +113 -113
  90. package/src/components/page/common/Home//344/270/273/351/241/265.md +1 -1
  91. package/src/components/page/common/Language/index.js +11 -11
  92. package/src/components/page/common/Language/index.vue +142 -142
  93. package/src/components/page/common/Language//350/257/255/350/250/200.md +1 -1
  94. package/src/components/page/common/Login/index.js +11 -11
  95. package/src/components/page/common/Login/index.vue +157 -157
  96. package/src/components/page/common/Login//347/231/273/345/275/225/351/241/265.md +1 -1
  97. package/src/components/page/common/Menu/index.js +11 -11
  98. package/src/components/page/common/Menu/index.vue +71 -71
  99. package/src/components/page/common/Menu//350/217/234/345/215/225/351/241/265.md +1 -1
  100. package/src/components/page/common/Msg/index.js +11 -11
  101. package/src/components/page/common/Msg/index.vue +152 -152
  102. package/src/components/page/common/Msg//346/266/210/346/201/257/351/241/265.md +1 -1
  103. package/src/components/page/common/My/index.js +11 -11
  104. package/src/components/page/common/My/index.vue +477 -477
  105. package/src/components/page/common/My//346/210/221/347/232/204/347/256/241/347/220/206/351/241/265.md +1 -1
  106. package/src/components/page/common/Print/index.js +11 -11
  107. package/src/components/page/common/Print/index.vue +314 -314
  108. 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
  109. package/src/components/page/common/Task/index.js +11 -11
  110. package/src/components/page/common/Task/index.vue +699 -699
  111. package/src/components/page/common/Task//344/273/273/345/212/241/351/241/265.md +1 -1
  112. package/src/components/page/common/Warehouse/index.js +11 -11
  113. package/src/components/page/common/Warehouse/index.vue +213 -213
  114. package/src/components/page/common/Warehouse//344/273/223/345/272/223/351/200/211/346/213/251/351/241/265.md +1 -1
  115. package/src/components/page/common/index.js +39 -39
  116. package/src/components/page/count/components/CountBoard.vue +115 -115
  117. package/src/components/page/count/components/RandomCount.vue +153 -162
  118. package/src/components/page/count/index.js +21 -21
  119. package/src/components/page/count/inv/action/index.js +5 -5
  120. package/src/components/page/count/inv/action/index.vue +271 -271
  121. package/src/components/page/count/inv/index/index.js +5 -5
  122. package/src/components/page/count/inv/index/index.vue +189 -189
  123. package/src/components/page/count/loc/action/index.js +5 -5
  124. package/src/components/page/count/loc/action/index.vue +545 -545
  125. package/src/components/page/count/loc/index/index.js +5 -5
  126. package/src/components/page/count/loc/index/index.vue +184 -184
  127. package/src/components/page/inbound/components/AsnInfo.vue +180 -180
  128. package/src/components/page/inbound/components/AsnSkuInfo.vue +45 -45
  129. package/src/components/page/inbound/components/QualityCard.vue +230 -230
  130. package/src/components/page/inbound/components/QualityTaskInfo.vue +88 -88
  131. package/src/components/page/inbound/components/SnsList.vue +98 -98
  132. package/src/components/page/inbound/index.js +16 -10
  133. package/src/components/page/{inner → inbound}/newProject/action/index.js +13 -13
  134. package/src/components/page/{inner → inbound}/newProject/action/index.less +0 -0
  135. package/src/components/page/{inner → inbound}/newProject/action/index.vue +1468 -1463
  136. package/src/components/page/{inner → inbound}/newProject/index/index.js +13 -13
  137. package/src/components/page/{inner → inbound}/newProject/index/index.less +0 -0
  138. package/src/components/page/{inner → inbound}/newProject/index/index.vue +121 -121
  139. package/src/components/page/{inner → inbound}/newProject//346/226/260/345/223/201/351/205/215/347/275/256.md +0 -0
  140. package/src/components/page/inbound/receive/home/index.js +5 -5
  141. package/src/components/page/inbound/receive/home/index.vue +73 -73
  142. package/src/components/page/inbound/receive/index/index.js +5 -5
  143. package/src/components/page/inbound/receive/index/index.vue +89 -89
  144. package/src/components/page/inbound/receive/quality/LwInboundQualityExecutePage.vue +405 -397
  145. package/src/components/page/inbound/receive/quality/LwInboundQualityTaskListPage.vue +163 -166
  146. package/src/components/page/inbound/receive/quality/index.js +16 -16
  147. package/src/components/page/inbound/receive/receive-sku/LwInboundReceiveSkuAdvancePage.vue +320 -318
  148. package/src/components/page/inbound/receive/receive-sku/LwInboundReceiveSkuDirectPage.vue +407 -401
  149. package/src/components/page/inbound/receive/receive-sku/LwInboundReceiveSkuScanPage.vue +149 -149
  150. package/src/components/page/inbound/receive/receive-sku/index.js +19 -19
  151. package/src/components/page/index.js +33 -33
  152. package/src/components/page/inner/abnormalMove/index/index.js +11 -11
  153. package/src/components/page/inner/abnormalMove/index/index.vue +468 -468
  154. package/src/components/page/inner/disposeAbnormal/action/index.js +11 -11
  155. package/src/components/page/inner/disposeAbnormal/action/index.vue +524 -524
  156. package/src/components/page/inner/disposeAbnormal/components/abnInfo/index.vue +655 -655
  157. package/src/components/page/inner/disposeAbnormal/components/disposePopup/index.vue +229 -229
  158. package/src/components/page/inner/disposeAbnormal/components/listItem/index.vue +213 -213
  159. package/src/components/page/inner/disposeAbnormal/components/searchBar/index.vue +264 -264
  160. package/src/components/page/inner/disposeAbnormal/index/index.js +11 -11
  161. package/src/components/page/inner/disposeAbnormal/index/index.vue +237 -237
  162. package/src/components/page/inner/index.js +62 -66
  163. package/src/components/page/inner/lpnMove/action/index.js +11 -11
  164. package/src/components/page/inner/lpnMove/action/index.vue +222 -222
  165. package/src/components/page/inner/lpnMove/index/index.js +11 -11
  166. package/src/components/page/inner/lpnMove/index/index.vue +155 -155
  167. package/src/components/page/inner/materialApply/action/index.js +10 -10
  168. package/src/components/page/inner/materialApply/action/index.vue +563 -563
  169. package/src/components/page/inner/materialApply/generate/index.js +10 -10
  170. package/src/components/page/inner/materialApply/generate/index.vue +376 -376
  171. package/src/components/page/inner/movePutAway/index/index.js +11 -11
  172. package/src/components/page/inner/movePutAway/index/index.vue +363 -363
  173. package/src/components/page/inner/randomMove/components/Down/index.vue +470 -470
  174. package/src/components/page/inner/randomMove/components/Up/index.vue +523 -523
  175. package/src/components/page/inner/randomMove/index/index.js +11 -11
  176. package/src/components/page/inner/randomMove/index/index.vue +152 -152
  177. package/src/components/page/inner/reportAbnormal/action/index.js +11 -11
  178. package/src/components/page/inner/reportAbnormal/action/index.vue +246 -246
  179. package/src/components/page/inner/reportAbnormal/index/index.js +11 -11
  180. package/src/components/page/inner/reportAbnormal/index/index.vue +243 -243
  181. package/src/components/page/inner/taskMove/index/index.js +11 -11
  182. package/src/components/page/inner/taskMove/index/index.vue +1374 -1374
  183. package/src/components/page/outbound/bale/aloneBale/action/index.js +11 -11
  184. package/src/components/page/outbound/bale/aloneBale/action/index.vue +192 -192
  185. package/src/components/page/outbound/bale/aloneBale/index/index.js +11 -11
  186. package/src/components/page/outbound/bale/aloneBale/index/index.vue +86 -86
  187. package/src/components/page/outbound/bale/aloneBale/newBale/index.js +11 -11
  188. package/src/components/page/outbound/bale/aloneBale/newBale/index.vue +53 -53
  189. package/src/components/page/outbound/bale/checkBale/action/index.js +11 -11
  190. package/src/components/page/outbound/bale/checkBale/action/index.vue +1330 -1321
  191. package/src/components/page/outbound/bale/checkBale/allCheck/index.js +11 -11
  192. package/src/components/page/outbound/bale/checkBale/allCheck/index.vue +119 -119
  193. package/src/components/page/outbound/bale/checkBale/index/index.js +11 -11
  194. package/src/components/page/outbound/bale/checkBale/index/index.vue +259 -259
  195. package/src/components/page/outbound/bale/checkBale/newBale/index.js +11 -11
  196. package/src/components/page/outbound/bale/checkBale/newBale/index.vue +62 -62
  197. package/src/components/page/outbound/bale/components/allBlock/index.vue +97 -97
  198. package/src/components/page/outbound/bale/components/containerInfo/index.vue +237 -229
  199. 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
  200. package/src/components/page/outbound/bale/components/containerSkuQty/index.vue +58 -58
  201. package/src/components/page/outbound/bale/components/mainPage/index.vue +620 -620
  202. package/src/components/page/outbound/bale/components/partBlock/index.vue +197 -197
  203. package/src/components/page/outbound/bale/components/planCollapse/index.vue +396 -396
  204. package/src/components/page/outbound/bale/components/storeInfo/index.vue +135 -135
  205. 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
  206. package/src/components/page/outbound/bale/components/storeInfoSkuList/index.vue +121 -121
  207. package/src/components/page/outbound/delivery/action/index.js +11 -11
  208. package/src/components/page/outbound/delivery/action/index.vue +646 -646
  209. package/src/components/page/outbound/delivery/addOrder/index.js +11 -11
  210. package/src/components/page/outbound/delivery/addOrder/index.vue +281 -281
  211. package/src/components/page/outbound/delivery/components/boxItem/index.vue +118 -118
  212. package/src/components/page/outbound/delivery/components/orderContent/index.vue +143 -143
  213. package/src/components/page/outbound/delivery/components/orderContentTitle/index.vue +239 -239
  214. package/src/components/page/outbound/delivery/components/soAndLpnItem/index.vue +152 -152
  215. package/src/components/page/outbound/delivery/index/index.js +11 -11
  216. package/src/components/page/outbound/delivery/index/index.vue +154 -154
  217. package/src/components/page/outbound/index.js +94 -94
  218. package/src/components/page/outbound/pick/alone/index.js +11 -11
  219. package/src/components/page/outbound/pick/alone/index.vue +497 -497
  220. package/src/components/page/outbound/pick/box/index.js +11 -11
  221. package/src/components/page/outbound/pick/box/index.vue +363 -363
  222. package/src/components/page/outbound/pick/components/dataLookAndChange/index.vue +748 -748
  223. package/src/components/page/outbound/pick/components/skuLocationInfo/index.vue +208 -208
  224. package/src/components/page/outbound/pick/components/splitPutDown/index.vue +208 -208
  225. package/src/components/page/outbound/pick/index/index.js +11 -11
  226. package/src/components/page/outbound/pick/index/index.vue +624 -624
  227. package/src/components/page/outbound/pick/lpn/index.js +11 -11
  228. package/src/components/page/outbound/pick/lpn/index.vue +305 -305
  229. package/src/components/page/outbound/pick/mixin/all.js +100 -100
  230. package/src/components/page/outbound/pick/mixin/aloneAndNotAlone.js +132 -132
  231. package/src/components/page/outbound/pick/notAlone/index.js +11 -11
  232. package/src/components/page/outbound/pick/notAlone/index.vue +524 -524
  233. package/src/components/page/outbound/pickMerge/action/index.js +11 -11
  234. package/src/components/page/outbound/pickMerge/action/index.vue +543 -543
  235. package/src/components/page/outbound/pickMerge/components/containerInfo/index.vue +89 -89
  236. package/src/components/page/outbound/pickMerge/components/finishPopup/index.vue +88 -88
  237. package/src/components/page/outbound/pickMerge/components/skuInfo/index.vue +132 -132
  238. package/src/components/page/outbound/pickMerge/content/index.js +11 -11
  239. package/src/components/page/outbound/pickMerge/content/index.vue +170 -170
  240. package/src/components/page/outbound/pickMerge/index/index.js +11 -11
  241. package/src/components/page/outbound/pickMerge/index/index.vue +77 -77
  242. package/src/components/page/outbound/sow/action/index.js +11 -11
  243. package/src/components/page/outbound/sow/action/index.vue +1420 -1420
  244. package/src/components/page/outbound/sow/components/sowLocationList/index.vue +80 -80
  245. package/src/components/page/outbound/sow/components/waitSowCollapse/index.vue +105 -105
  246. package/src/components/page/outbound/sow/index/index.js +11 -11
  247. package/src/components/page/outbound/sow/index/index.vue +374 -374
  248. package/src/components/page/outbound/summary/box/index/index.js +11 -11
  249. package/src/components/page/outbound/summary/box/index/index.vue +645 -645
  250. package/src/components/page/outbound/summary/lpn/action/index.js +12 -12
  251. package/src/components/page/outbound/summary/lpn/action/index.vue +253 -253
  252. package/src/components/page/outbound/summary/lpn/index/index.js +12 -12
  253. package/src/components/page/outbound/summary/lpn/index/index.vue +70 -70
  254. package/src/components/page/receive/abnormal/action/index.js +11 -11
  255. package/src/components/page/receive/abnormal/action/index.vue +45 -45
  256. package/src/components/page/receive/abnormal/index/index.js +11 -11
  257. package/src/components/page/receive/abnormal/index/index.vue +73 -73
  258. package/src/components/page/receive/index.js +36 -36
  259. package/src/components/page/receive/putaway/components/SkuInfo/index.vue +247 -247
  260. package/src/components/page/receive/putaway/components/SkuPutAwayInfo/index.vue +203 -203
  261. package/src/components/page/receive/putaway/components/TaskInfo/index.vue +216 -216
  262. package/src/components/page/receive/putaway/index/index.js +11 -11
  263. package/src/components/page/receive/putaway/index/index.vue +288 -288
  264. package/src/components/page/receive/putaway/lpnAction/index.js +11 -11
  265. package/src/components/page/receive/putaway/lpnAction/index.vue +332 -332
  266. package/src/components/page/receive/putaway/skuAction/index.js +11 -11
  267. package/src/components/page/receive/putaway/skuAction/index.vue +741 -741
  268. package/src/components/page/receive/receipt/action/index.js +11 -11
  269. package/src/components/page/receive/receipt/action/index.vue +260 -260
  270. package/src/components/page/receive/receipt/index/index.js +11 -11
  271. package/src/components/page/receive/receipt/index/index.vue +124 -124
  272. package/src/components/ui/BottomBar/index.js +5 -5
  273. package/src/components/ui/BottomBar/index.vue +72 -72
  274. package/src/components/ui/BottomBarBtnHidden/index.js +11 -11
  275. package/src/components/ui/BottomBarBtnHidden/index.vue +91 -91
  276. package/src/components/ui/Button/index.js +5 -5
  277. package/src/components/ui/Button/index.vue +183 -183
  278. package/src/components/ui/CarPlate/index.js +11 -11
  279. package/src/components/ui/CarPlate/index.vue +378 -378
  280. package/src/components/ui/CarPlate//350/275/246/347/211/214/345/217/267.md +1 -1
  281. package/src/components/ui/Cell/index.js +5 -5
  282. package/src/components/ui/Cell/index.vue +259 -259
  283. package/src/components/ui/CellPopupDate/index.js +11 -11
  284. package/src/components/ui/CellPopupDate/index.vue +167 -167
  285. 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
  286. package/src/components/ui/CellPopupRadio/index.js +11 -11
  287. package/src/components/ui/CellPopupRadio/index.vue +136 -136
  288. 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
  289. package/src/components/ui/CutCard/index.js +11 -11
  290. package/src/components/ui/CutCard/index.vue +132 -132
  291. 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
  292. package/src/components/ui/DataLookBg/index.js +11 -11
  293. package/src/components/ui/DataLookBg/index.vue +104 -104
  294. 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 +1 -1
  295. package/src/components/ui/ErrorMsg/index.js +59 -59
  296. package/src/components/ui/ErrorMsg/index.vue +141 -141
  297. package/src/components/ui/Form/index.js +5 -5
  298. package/src/components/ui/Form/index.vue +36 -36
  299. package/src/components/ui/ImgLook/index.js +5 -5
  300. package/src/components/ui/ImgLook/index.vue +96 -96
  301. package/src/components/ui/ImgUpload/index.js +12 -12
  302. package/src/components/ui/ImgUpload/index.vue +120 -120
  303. package/src/components/ui/Input/index.js +5 -5
  304. package/src/components/ui/Input/index.vue +546 -546
  305. package/src/components/ui/Input//350/276/223/345/205/245/346/241/206.md +1 -1
  306. package/src/components/ui/Loading/index.js +49 -49
  307. package/src/components/ui/Loading/index.vue +61 -61
  308. package/src/components/ui/MenuItem/index.js +5 -5
  309. package/src/components/ui/MenuItem/index.vue +170 -170
  310. package/src/components/ui/NavBar/index.js +5 -5
  311. package/src/components/ui/NavBar/index.vue +143 -143
  312. package/src/components/ui/NavBar//351/241/266/351/203/250/345/257/274/350/210/252/346/240/217.md +1 -1
  313. package/src/components/ui/NotData/index.js +5 -5
  314. package/src/components/ui/NotData/index.vue +75 -75
  315. package/src/components/ui/Pages/index.js +5 -5
  316. package/src/components/ui/Pages/index.vue +186 -186
  317. package/src/components/ui/Popup/index.js +5 -5
  318. package/src/components/ui/Popup/index.vue +245 -245
  319. package/src/components/ui/PopupCheckbox/index.js +5 -5
  320. package/src/components/ui/PopupCheckbox/index.vue +207 -207
  321. package/src/components/ui/PopupRadio/index.js +5 -5
  322. package/src/components/ui/PopupRadio/index.vue +124 -124
  323. package/src/components/ui/TabBar/index.js +11 -11
  324. package/src/components/ui/TabBar/index.vue +132 -132
  325. package/src/components/ui/TabBar//345/272/225/351/203/250/345/257/274/350/210/252/346/240/217.md +1 -1
  326. package/src/components/ui/Table/index.js +5 -5
  327. package/src/components/ui/Table/index.vue +213 -213
  328. package/src/components/ui/Tag/index.js +5 -5
  329. package/src/components/ui/Tag/index.vue +142 -142
  330. package/src/components/ui/TitleValueCell/index.js +11 -11
  331. package/src/components/ui/TitleValueCell/index.vue +61 -61
  332. package/src/components/ui/index.js +84 -84
  333. package/src/directive/Permissions.js +35 -35
  334. package/src/directive/index.js +12 -12
  335. package/src/index.js +67 -67
  336. package/src/router/index.js +405 -405
  337. package/src/router/menu.js +367 -367
  338. package/src/test/file/index.js +11 -11
  339. package/src/test/file/index.vue +25 -25
  340. package/src/utils/ApiUtils.js +48 -48
  341. package/src/utils/AppBack.js +44 -44
  342. package/src/utils/Axios.js +160 -160
  343. package/src/utils/BarcodeResolve.js +281 -281
  344. package/src/utils/DateTime.js +219 -219
  345. package/src/utils/DeepCopy.js +61 -61
  346. package/src/utils/Dict.js +73 -73
  347. package/src/utils/GetImgSrc.js +53 -53
  348. package/src/utils/Init.js +12 -12
  349. package/src/utils/Language.js +59 -59
  350. package/src/utils/LocalStorage.js +30 -30
  351. package/src/utils/Permissions.js +51 -51
  352. package/src/utils/Print.js +179 -179
  353. package/src/utils/README.md +2 -2
  354. package/src/utils/RouteInit.js +14 -14
  355. package/src/utils/ScanRule.js +150 -150
  356. package/src/utils/SetColor.js +22 -22
  357. package/src/utils/TabBar.js +30 -30
  358. package/src/utils/Tip.js +26 -26
  359. package/src/utils/Toast.js +41 -41
  360. package/src/utils/UUID.js +33 -33
  361. package/src/utils/Warehouse.js +26 -26
  362. package/src/utils/index.js +63 -63
  363. package/src/utils/windowGlobalData.js +88 -88
  364. package/src/views/common/home/index.vue +67 -67
  365. package/src/views/common/init/index.vue +124 -124
  366. package/src/views/common/login/index.vue +23 -23
  367. package/src/views/common/menu/menuOne.vue +36 -36
  368. package/src/views/common/menu/menuTwo.vue +33 -33
  369. package/src/views/common/my/device.vue +23 -23
  370. package/src/views/common/my/index.vue +23 -23
  371. package/src/views/common/my/language.vue +23 -23
  372. package/src/views/common/my/msg.vue +23 -23
  373. package/src/views/common/my/print.vue +23 -23
  374. package/src/views/common/my/warehouse.vue +25 -25
  375. package/src/views/common/task/index.vue +23 -23
  376. package/src/views/count/index.vue +87 -87
  377. package/src/views/count/inv/action.vue +12 -12
  378. package/src/views/count/inv/index.vue +12 -12
  379. package/src/views/count/loc/action.vue +12 -12
  380. package/src/views/count/loc/index.vue +12 -12
  381. package/src/views/{inner → inbound}/newProject/action.vue +23 -23
  382. package/src/views/{inner → inbound}/newProject/index.vue +23 -23
  383. package/src/views/inbound/quality/InboundQualityExecuteView.vue +11 -11
  384. package/src/views/inbound/quality/InboundQualityTaskListView.vue +11 -11
  385. package/src/views/inbound/receive/home.vue +14 -14
  386. package/src/views/inbound/receive/index.vue +13 -13
  387. package/src/views/inbound/receive/sku/InboundReceiveSkuAdvanceView.vue +13 -13
  388. package/src/views/inbound/receive/sku/InboundReceiveSkuDirectView.vue +13 -13
  389. package/src/views/inbound/receive/sku/InboundReceiveSkuScanView.vue +13 -13
  390. package/src/views/inner/abnormalMove/index.vue +23 -23
  391. package/src/views/inner/disposeAbnormal/action.vue +23 -23
  392. package/src/views/inner/disposeAbnormal/index.vue +23 -23
  393. package/src/views/inner/lpnMove/action.vue +23 -23
  394. package/src/views/inner/lpnMove/index.vue +23 -23
  395. package/src/views/inner/materialApply/action.vue +22 -22
  396. package/src/views/inner/materialApply/generate.vue +22 -22
  397. package/src/views/inner/movePutAway/index.vue +22 -22
  398. package/src/views/inner/randomMove/index.vue +23 -23
  399. package/src/views/inner/reportAbnormal/action.vue +23 -23
  400. package/src/views/inner/reportAbnormal/index.vue +23 -23
  401. package/src/views/inner/taskMove/index.vue +23 -23
  402. package/src/views/outbound/aloneBale/action.vue +23 -23
  403. package/src/views/outbound/aloneBale/index.vue +23 -23
  404. package/src/views/outbound/aloneBale/newBale.vue +23 -23
  405. package/src/views/outbound/bale/action.vue +23 -23
  406. package/src/views/outbound/bale/allCheck.vue +23 -23
  407. package/src/views/outbound/bale/index.vue +23 -23
  408. package/src/views/outbound/bale/newBale.vue +23 -23
  409. package/src/views/outbound/delivery/action.vue +23 -23
  410. package/src/views/outbound/delivery/addOrder.vue +23 -23
  411. package/src/views/outbound/delivery/index.vue +23 -23
  412. package/src/views/outbound/pick/aloneAction.vue +23 -23
  413. package/src/views/outbound/pick/boxAction.vue +23 -23
  414. package/src/views/outbound/pick/index.vue +23 -23
  415. package/src/views/outbound/pick/lpnAction.vue +23 -23
  416. package/src/views/outbound/pick/notAloneAction.vue +23 -23
  417. package/src/views/outbound/pickMerge/action.vue +23 -23
  418. package/src/views/outbound/pickMerge/content.vue +23 -23
  419. package/src/views/outbound/pickMerge/index.vue +23 -23
  420. package/src/views/outbound/sow/action.vue +23 -23
  421. package/src/views/outbound/sow/index.vue +23 -23
  422. package/src/views/outbound/summary/box/index.vue +23 -23
  423. package/src/views/outbound/summary/lpn/action.vue +23 -23
  424. package/src/views/outbound/summary/lpn/index.vue +23 -23
  425. package/src/views/receive/abnormal/action.vue +23 -23
  426. package/src/views/receive/abnormal/index.vue +24 -24
  427. package/src/views/receive/putaway/index.vue +23 -23
  428. package/src/views/receive/putaway/lpnAction.vue +23 -23
  429. package/src/views/receive/putaway/skuAction.vue +23 -23
  430. package/src/views/receive/receipt/action.vue +25 -25
  431. package/src/views/receive/receipt/index.vue +25 -25
  432. package/dist/logwire-wms-pda-ui.js +0 -7
@@ -1,1321 +1,1330 @@
1
- ;<!--
2
- 复核捆包执行页
3
- @author: 张文
4
- @date: 2022-06-30
5
- -->
6
- <template>
7
-
8
- <div>
9
- <lw-nav-bar :title="$lwLanguage.get('','复核捆包')"/>
10
-
11
- <div class="lw-global-page-box">
12
-
13
- <!-- 门店信息 -->
14
- <store-info-sku-list
15
- :item="checkData.boxData"
16
- :customer-code="checkData.containerData.customerCode"
17
- :customer-name="checkData.containerData.customerName"
18
- show-bale-info
19
- >
20
- <div
21
- style="text-align: center"
22
- class="lw-global-row-end lw-global-value-bold-red"
23
- >
24
- {{ $lwLanguage.get('','当前还未执行捆包,请扫描商品号执行捆包') }}
25
- </div>
26
- </store-info-sku-list>
27
-
28
- <!-- 复核操作 -->
29
- <template v-if="!fromAllCheck">
30
-
31
- <div
32
- style="border: solid 2px #D50000"
33
- class="lw-global-model-box"
34
- >
35
-
36
- <lw-input
37
- :title="$lwLanguage.get('','商品号')"
38
- v-model="actionCheck.sku.value"
39
- :get-focus.sync="actionCheck.sku.focus"
40
- auto-clear-val
41
- @confirm="actionCheckSkuConfirm"
42
- />
43
-
44
- <template v-if="Object.keys(actionCheck.skuInfo).length">
45
-
46
- <lw-input
47
- :title="$lwLanguage.get('','复核数量')"
48
- v-model="actionCheck.qty.value"
49
- :get-focus.sync="actionCheck.qty.focus"
50
- type="digit"
51
- @confirm="actionCheckQtyConfirm"
52
- >
53
-
54
- <template #button>
55
- <lw-button
56
- mini
57
- round
58
- @click="actionCheckQtyConfirm"
59
- >{{ $lwLanguage.get('','确认复核') }}</lw-button>
60
- </template>
61
-
62
- </lw-input>
63
-
64
- <lw-sku-info-module
65
- :sku-name="actionCheck.skuInfo.skuName"
66
- :sku-code="actionCheck.skuInfo.skuCode"
67
- :show-right="false"
68
- />
69
-
70
- <div class="lw-global-flex-between lw-global-row-end">
71
-
72
- <lw-title-value-cell
73
- :title="$lwLanguage.get('','最小销售数')"
74
- :value="actionCheck.skuInfo.minSellQty"
75
- val-bold
76
- val-red
77
- :is-row="false"
78
- />
79
-
80
- <div>
81
- <span class="lw-global-title">
82
- {{ $lwLanguage.get('','数量') }}
83
- </span>
84
- <span class="lw-global-value">
85
- <span class="lw-global-value-bold-red">
86
- {{ actionCheck.skuInfo.packQty }}
87
- </span>
88
- / {{ actionCheck.skuInfo.totalQty }}
89
- </span>
90
- </div>
91
-
92
- </div>
93
- </template>
94
-
95
- </div>
96
-
97
- </template>
98
-
99
- <!-- 容器信息 -->
100
- <container-info
101
- style="margin-top: 10px"
102
- :container="checkData.containerData.pickContainer"
103
- :sku-count="checkData.containerData.skuTypeCount"
104
- :over-count="checkData.containerData.packQty"
105
- :wait-count="checkData.containerData.waitPackQty"
106
- :abnormal-count="checkData.containerData.abnormalQty"
107
- :sku-list="checkData.containerData.packSkuList"
108
- :show-abn-btn="!fromAllCheck"
109
- :show-all-check="!fromAllCheck && allowAllCheck"
110
- />
111
-
112
- </div>
113
-
114
- <lw-bottom-bar-btn-hidden
115
- v-if="checkData.boxData && Object.keys(checkData.boxData).length"
116
- :btn-list="btnList"
117
- />
118
-
119
- <!-- 复核序列号 -->
120
- <lw-popup
121
- :title="$lwLanguage.get('','复核序列号')"
122
- v-model="checkPopup.show"
123
- @closed="checkPopupOff"
124
- >
125
-
126
- <lw-sku-info-module
127
- :sku-name="actionCheck.skuInfo.skuName"
128
- :sku-code="actionCheck.skuInfo.skuCode"
129
- :qty="actionCheck.skuInfo.minSellQty"
130
- :qty-text="$lwLanguage.get('','最小销售量')"
131
- />
132
-
133
- <div class="lw-global-row lw-global-flex-between">
134
-
135
- <lw-title-value-cell
136
- :title="$lwLanguage.get('','待复核量')"
137
- :value="actionCheck.skuInfo.totalQty - actionCheck.skuInfo.packQty"
138
- val-red
139
- val-bold
140
- :is-row="false"
141
- />
142
-
143
- <lw-title-value-cell
144
- :title="$lwLanguage.get('','当前扫描数量')"
145
- :value="checkPopup.nowScanNum"
146
- val-red
147
- val-bold
148
- :is-row="false"
149
- />
150
-
151
- </div>
152
-
153
- <lw-input
154
- :title="$lwLanguage.get('','序列号')"
155
- v-model="checkPopup.sn.value"
156
- :get-focus.sync="checkPopup.sn.focus"
157
- auto-clear-val
158
- @confirm="checkPopupSnConfirm"
159
- />
160
-
161
- <div
162
- class="lw-global-flex-between lw-global-row"
163
- v-for="(i,k) in checkPopup.snList"
164
- :key="k"
165
- >
166
- <div class="col-2">{{ i.sn }}</div>
167
- <div class="col-1">{{ i.qty }}</div>
168
- <div class="col-3">
169
- <van-icon
170
- color="#D50000"
171
- name="clear"
172
- size="20"
173
- @click="checkPopupSnDel(k)"
174
- />
175
- </div>
176
- </div>
177
-
178
- <template #button>
179
-
180
- <lw-button
181
- type="last"
182
- plain
183
- @click="checkPopupRepeatScan"
184
- >
185
- {{ $lwLanguage.get('','重新扫描') }}
186
- </lw-button>
187
-
188
-
189
- <lw-button @click="checkPopupSubmit">
190
- {{ $lwLanguage.get('','确认复核') }}
191
- </lw-button>
192
-
193
- </template>
194
- </lw-popup>
195
-
196
- <!-- 完成捆包弹框 -->
197
- <lw-popup
198
- :title="$lwLanguage.get('','完成捆包')"
199
- v-model="overBalePopup.show"
200
- @closed="overBaleOff"
201
- >
202
- <container-sku-qty
203
- :box-no="checkData.boxData.boxNo"
204
- :pack-qty="checkData.boxData.packQty"
205
- :type-count="checkData.boxData.skuTypeCount"
206
- />
207
-
208
- <lw-title-value-cell
209
- :title="$lwLanguage.get('','标准重量') + '(KG)'"
210
- :value="overBalePopup.data.standardWeight"
211
- val-bold
212
- />
213
-
214
- <lw-input
215
- :title="$lwLanguage.get('','实际重量') + '(KG)'"
216
- v-model="overBalePopup.real.value"
217
- :get-focus.sync="overBalePopup.real.focus"
218
- type="number"
219
- @confirm="realConfirm"
220
- />
221
-
222
- <lw-input
223
- :title="$lwLanguage.get('','捆包包材')"
224
- v-model="overBalePopup.materials.value"
225
- :get-focus.sync="overBalePopup.materials.focus"
226
- :show-bottom-border="false"
227
- @confirm="materialsConfirm"
228
- />
229
-
230
- <div
231
- v-if="overBalePopup.materials.list.length"
232
- class="materials-box"
233
- >
234
- <div
235
- class="lw-global-flex-between lw-global-row-start"
236
- style="padding: 5px 0"
237
- >
238
-
239
- <div class="lw-global-title col-1">
240
- {{ $lwLanguage.get('','包材编码') }}
241
- </div>
242
-
243
- <div class="lw-global-title col-2">
244
- {{ $lwLanguage.get('','包材规格') }}
245
- </div>
246
-
247
- <div class="col-3"></div>
248
-
249
- </div>
250
-
251
- <div style="max-height: 84px;overflow-y: scroll">
252
- <div
253
- class="lw-global-flex-between lw-global-row"
254
- style="padding: 5px 0"
255
- v-for="(i,k) in overBalePopup.materials.list"
256
- :key="k"
257
- >
258
-
259
- <!-- 包材编码 -->
260
- <div class="lw-global-value-bold col-1">{{ i.packMaterialCode }}</div>
261
-
262
- <!-- 尺寸 -->
263
- <div class="lw-global-value-bold col-2">
264
- {{ i.length || '-' }} *
265
- {{ i.width || '-' }} *
266
- {{ i.height || '-' }}
267
- </div>
268
-
269
- <!-- 删除按钮 -->
270
- <div class="col-3">
271
- <van-icon
272
- color="#D50000"
273
- name="clear"
274
- size="20"
275
- @click="delMaterials(k)"
276
- />
277
- </div>
278
-
279
- </div>
280
- </div>
281
-
282
-
283
- </div>
284
-
285
- <template #button>
286
- <lw-button
287
- v-if="overBalePopup.materials.list.length"
288
- @click="overBaleConfirm"
289
- >
290
- {{ $lwLanguage.get('','完成复核(封箱)') }}
291
- </lw-button>
292
- <lw-button
293
- v-else
294
- @click="overBaleConfirm"
295
- >
296
- {{ $lwLanguage.get('','无需包材(封箱)') }}
297
- </lw-button>
298
- </template>
299
-
300
- </lw-popup>
301
-
302
- <!-- 重新复核弹框 -->
303
- <lw-popup
304
- :title="$lwLanguage.get('','重新复核')"
305
- v-model="repeatPopup.show"
306
- @closed="repeatPopup.container.value=''"
307
- >
308
-
309
- <container-sku-qty
310
- :box-no="checkData.boxData.boxNo"
311
- :pack-qty="checkData.boxData.packQty"
312
- :type-count="checkData.boxData.skuTypeCount"
313
- />
314
-
315
- <lw-input
316
- :title="$lwLanguage.get('','商品撤回容器')"
317
- v-model="repeatPopup.container.value"
318
- :get-focus.sync="repeatPopup.container.focus"
319
- :show-bottom-border="false"
320
- required
321
- @confirm="repeatConfirm"
322
- />
323
-
324
- <template #button>
325
- <lw-button @click="repeatConfirm">
326
- {{ $lwLanguage.get('','确认重新复核') }}
327
- </lw-button>
328
- </template>
329
-
330
- </lw-popup>
331
-
332
- <!-- 追加弹框 -->
333
- <lw-popup
334
- :title="$lwLanguage.get('','追加')"
335
- v-model="addPopup.show"
336
- @closed="addPopupOff"
337
- >
338
-
339
- <container-sku-qty
340
- :box-no="checkData.boxData.boxNo"
341
- :pack-qty="checkData.boxData.packQty"
342
- :type-count="checkData.boxData.skuTypeCount"
343
- />
344
-
345
- <lw-input
346
- :title="$lwLanguage.get('','拣选容器号')"
347
- v-model="addPopup.container.value"
348
- :get-focus.sync="addPopup.container.focus"
349
- required
350
- @confirm="addContainerConfirm"
351
- />
352
-
353
- <div
354
- v-if="Object.keys(addPopup.data).length"
355
- class="lw-global-flex-between lw-global-row-end"
356
- >
357
-
358
- <lw-title-value-cell
359
- :title="$lwLanguage.get('','品种数')"
360
- :value="addPopup.data.skuTypeCount"
361
- val-bold
362
- :is-row="false"
363
- />
364
-
365
- <lw-title-value-cell
366
- :title="$lwLanguage.get('','待复核')"
367
- :value="addPopup.data.waitPackQty"
368
- val-bold
369
- :is-row="false"
370
- />
371
-
372
- </div>
373
-
374
- <template #button>
375
-
376
- <lw-button @click="addConfirm">
377
- {{ $lwLanguage.get('','确认追加') }}
378
- </lw-button>
379
-
380
- </template>
381
-
382
- </lw-popup>
383
-
384
- <!-- 剔除商品 -->
385
- <lw-popup
386
- :title="$lwLanguage.get('','剔除商品')"
387
- v-model="delSkuPopup.show"
388
- @closed="delSkuOff"
389
- >
390
-
391
- <container-sku-qty
392
- :box-no="checkData.boxData.boxNo"
393
- :pack-qty="checkData.boxData.packQty"
394
- :type-count="checkData.boxData.skuTypeCount"
395
- />
396
-
397
- <!-- 商品条码 -->
398
- <lw-input
399
- :title="$lwLanguage.get('','商品条码')"
400
- v-model="delSkuPopup.sku.value"
401
- :get-focus.sync="delSkuPopup.sku.focus"
402
- required
403
- @confirm="delSkuSkuCodeConfirm"
404
- />
405
-
406
- <!-- 序列号 -->
407
- <lw-input
408
- v-if="delSkuPopup.isSn"
409
- :title="$lwLanguage.get('','序列号')"
410
- v-model="delSkuPopup.sn.value"
411
- :get-focus.sync="delSkuPopup.sn.focus"
412
- required
413
- rule-key="delSkuSn"
414
- rule-value-key="sn"
415
- @confirm="delSkuSnConfirm"
416
- />
417
-
418
- <!-- 剔除数量 -->
419
- <lw-input
420
- :title="$lwLanguage.get('','剔除数量')"
421
- v-model="delSkuPopup.qty.value"
422
- :get-focus.sync="delSkuPopup.qty.focus"
423
- type="digit"
424
- :disabled="delSkuPopup.isSn"
425
- required
426
- @confirm="delSkuQtyConfirm"
427
- >
428
- <template #button>
429
- <lw-tag
430
- v-if="delSkuPopup.isSn"
431
- type="danger"
432
- plain
433
- round
434
- >{{ $lwLanguage.get('','不可修改') }}</lw-tag>
435
- </template>
436
- </lw-input>
437
-
438
- <!-- 商品信息 -->
439
- <lw-sku-info-module
440
- :sku-code="delSkuPopup.data.skuCode"
441
- :sku-name="delSkuPopup.data.skuName"
442
- :qty="delSkuPopup.data.minSellQty"
443
- :qty-text="$lwLanguage.get('','最小销售数')"
444
- is-row
445
- />
446
-
447
- <!-- 剔除容器号 -->
448
- <lw-input
449
- :title="$lwLanguage.get('','容器号')"
450
- v-model="delSkuPopup.container.value"
451
- :get-focus="delSkuPopup.container.focus"
452
- :show-bottom-border="false"
453
- :placeholder="$lwLanguage.get('','剔除商品放入的容器号')"
454
- required
455
- @confirm="delSkuConfirm"
456
- />
457
-
458
- <template #button>
459
-
460
- <lw-button @click="delSkuConfirm">
461
- {{ $lwLanguage.get('','确认剔除') }}
462
- </lw-button>
463
-
464
- </template>
465
-
466
- </lw-popup>
467
-
468
- <!-- 全部拦截 -->
469
- <all-block
470
- v-model="allBlockShow"
471
- :container="checkData.containerData.pickContainer"
472
- :type-count="checkData.containerData.skuTypeCount"
473
- :qty="checkData.containerData.blockQty"
474
- @confirm="allBlockConfirm"
475
- />
476
-
477
- <!-- 部分拦截 -->
478
- <part-block
479
- v-model="partBlockPopup.show"
480
- :pick-container="partBlockPopup.data.pickContainer"
481
- :type-count="partBlockPopup.data.skuTypeCount"
482
- :sku-qty="partBlockPopup.data.skuQty"
483
- :block-data="partBlockPopup.data.blockData"
484
- @confirm="partBlockConfirm"
485
- />
486
-
487
- </div>
488
-
489
- </template>
490
-
491
- <script>
492
- import containerInfo from './../../components/containerInfo/index.vue'
493
- import storeInfoSkuList from './../../components/storeInfoSkuList/index.vue'
494
- import containerSkuQty from './../../components/containerSkuQty/index.vue'
495
- import allBlock from './../../components/allBlock/index.vue'
496
- import partBlock from './../../components/partBlock/index.vue'
497
- import {
498
- projectWmsContainerWholePack,
499
- projectWmsMixPackQueryPackData
500
- } from "../../../../../../api/outbound/bale/checkBale/allCheck";
501
- import {
502
- projectWmsMixPackAddContainerCheck,
503
- projectWmsMixPackCheckSn,
504
- projectWmsMixPackCloseBox,
505
- projectWmsMixPackComputeBoxSuggest,
506
- projectWmsMixPackContainerSkuBlock,
507
- projectWmsMixPackContainerWholeBlock,
508
- projectWmsMixPackDeleteSku,
509
- projectWmsMixPackDeleteSkuWithSn,
510
- projectWmsMixPackRePack,
511
- projectWmsMixPackSubmitSku,
512
- projectWmsMixPackSubmitWithSn,
513
- projectWmsOutbondQueryPackMaterial
514
- } from "../../../../../../api/outbound/bale/checkBale/action";
515
-
516
- export default {
517
- name: "lwOutboundBaleActionPage",
518
- components:{
519
- containerInfo,
520
- storeInfoSkuList,
521
- containerSkuQty,
522
- allBlock,
523
- partBlock,
524
- },
525
- data() {
526
- return {
527
-
528
- // 复核的数据
529
- checkData:{
530
- "boxData": {
531
- "boxNo": "BOX-001",
532
- "boxId": 0,
533
- "customerCode": "KH001",
534
- "customerName": "客户001",
535
- "skuTypeCount": 0,
536
- "packQty": 10,
537
- "skuList": [
538
- {
539
- "skuId": 0,
540
- "skuCode": "LJ-001",
541
- "skuName": "零件001",
542
- "qty": 5,
543
- "minSellQty": 0,
544
- "needHandleSn": false
545
- }
546
- ],
547
- "packSnList": [
548
- {
549
- "sn": "",
550
- "qty": 0
551
- }
552
- ]
553
- },
554
- "containerData": {
555
- "pickContainer": "RQ-001",
556
- "canWholePack": false,
557
- "skuTypeCount": 2,
558
- "packQty": 4,
559
- "waitPackQty": 6,
560
- "abnormalQty": 0,
561
- "blockStatus": "",
562
- "blockQty": 0,
563
- "packSkuList": [
564
- {
565
- "skuId": 0,
566
- "skuCode": "LJ-001",
567
- "skuName": "零件001",
568
- "minSellQty": 0,
569
- "totalQty": 10,
570
- "packQty": 4,
571
- "locationId": 0,
572
- "locationCode": "",
573
- "needHandleSn": false
574
- }
575
- ]
576
- }
577
- },
578
-
579
- // 是否是全部复核进入
580
- fromAllCheck: true,
581
-
582
- // 允许全部复核
583
- allowAllCheck: false,
584
-
585
- // 开始复核
586
- actionCheck:{
587
- sku:{
588
- value: '',
589
- focus: false
590
- },
591
- qty:{
592
- value: '',
593
- focus: false
594
- },
595
-
596
- skuInfo:{}
597
- },
598
-
599
- // 序列号复核弹框
600
- checkPopup:{
601
- show: true,
602
- // 当前扫描量
603
- nowScanNum: 0,
604
- sn:{
605
- value:'',
606
- focus: false
607
- },
608
- snList: []
609
- },
610
-
611
-
612
- // 完成捆包弹框
613
- overBalePopup:{
614
- show: false,
615
- // 实际重量
616
- real:{
617
- value: '',
618
- focus: false
619
- },
620
- // 包材输入框
621
- materials:{
622
- value:'',
623
- focus:false,
624
- list:[]
625
- },
626
- data:{}
627
- },
628
-
629
- // 重新复核
630
- repeatPopup:{
631
- show: false,
632
- container:{
633
- value: '',
634
- focus: false
635
- }
636
- },
637
-
638
- // 追加
639
- addPopup:{
640
- show: false,
641
- container:{
642
- value: '',
643
- focus: false
644
- },
645
- data:{}
646
- },
647
-
648
- // 剔除商品
649
- delSkuPopup:{
650
- show: false,
651
- // 是否需要扫描sn
652
- isSn: false,
653
- // 商品号
654
- sku: {
655
- value: '',
656
- focus: false
657
- },
658
- // 序列号
659
- sn: {
660
- value: '',
661
- focus: false
662
- },
663
- // 数量
664
- qty: {
665
- value: '',
666
- focus: false
667
- },
668
- // 剔除容器号
669
- container: {
670
- value: '',
671
- focus: false
672
- },
673
- data:{}
674
- },
675
-
676
- // 是否全部拦截
677
- allBlockShow: true,
678
-
679
- // 部分拦截弹框
680
- partBlockPopup:{
681
- show: false,
682
- data:{
683
- pickContainer:'',
684
- skuTypeCount:'',
685
- skuQty:'',
686
- blockData:{}
687
- }
688
- },
689
- }
690
- },
691
- computed:{
692
- // 底部按钮
693
- btnList(){
694
- return [
695
- {
696
- text: this.$lwLanguage.get('','完成复核(封箱)'),
697
- click: this.overBaleOpen
698
- },
699
- {
700
- text: this.$lwLanguage.get('','重新复核'),
701
- click: this.repeatOpen
702
- },
703
- {
704
- text: this.$lwLanguage.get('','剔除商品'),
705
- click: this.delSkuOpen
706
- },
707
- {
708
- text: this.$lwLanguage.get('','追加'),
709
- click: this.addSkuOpen
710
- }
711
- ]
712
-
713
- // 是否显示追加商品按钮
714
- /*if (this.showAddBtn){
715
- list.push({
716
- text: this.$lwLanguage.get('','追加'),
717
- click: this.addSkuOpen
718
- })
719
- }*/
720
-
721
- // return list
722
- }
723
- },
724
- mounted() {
725
- const query = this.$route.query
726
- if (query.lwType === 'allCheck'){
727
- this.fromAllCheck = true
728
- this.allowAllCheck = false
729
-
730
- projectWmsContainerWholePack({
731
- pickContainer: query.lwContainer
732
- }).then(res=>{
733
- this.checkBlock(res)
734
-
735
- this.checkData = res
736
- })
737
- return
738
- }
739
-
740
- this.getData()
741
- },
742
- methods: {
743
- // 获取数据
744
- getData(){
745
- return new Promise((PR,PE)=>{
746
-
747
- projectWmsMixPackQueryPackData({
748
- queryContainer: this.$route.query.lwContainer
749
- }).then(res=>{
750
-
751
- if (res.containerData.blockStatus === '200') this.allBlockShow = true
752
-
753
- this.checkData = res
754
-
755
- PR()
756
- }).catch(()=>{
757
- PE()
758
- history.go(-1)
759
- })
760
- })
761
- },
762
-
763
- // 开始复核 - 商品号确认
764
- actionCheckSkuConfirm(val,{data}){
765
-
766
- if (
767
- Object.keys(this.actionCheck.skuInfo).length &&
768
- data.key !== this.actionCheck.skuInfo.skuCode
769
- ){
770
- this.actionCheck.sku.focus = true
771
- this.$lwShowErrorMsg(
772
- this.$lwLanguage.get(
773
- '',
774
- '当前扫描商品与上一次扫描商品不一致!如需更换商品,请完成上次商品复核或点击重新扫描按钮')
775
- )
776
- return
777
- }
778
-
779
- for (let i of this.checkData.containerData.packSkuList){
780
-
781
- if (i.skuCode === data.key){
782
-
783
- this.actionCheck.skuInfo = {
784
- ...i,
785
- waitQty: i.totalQty - i.packQty
786
- }
787
-
788
- if(i.needHandleSn){
789
- this.checkPopup.show = true
790
- this.checkPopup.sn.focus = true
791
- this.getCheckPopupNum()
792
- }else {
793
- this.actionCheck.qty.value += Number(data.qty || 0)
794
-
795
- if (this.actionCheck.qty.value === this.actionCheck.skuInfo.waitQty){
796
- this.actionCheckQtyConfirm()
797
- }
798
- }
799
- return
800
- }
801
-
802
- }
803
-
804
- this.actionCheck.sku.focus = true
805
- this.$lwShowErrorMsg(
806
- this.$lwLanguage.get('','当前商品不在拣选容器中')
807
- )
808
- this.actionCheck.sku.value = ''
809
-
810
- },
811
- // 开始复核 - 商品数量确认
812
- actionCheckQtyConfirm(){
813
-
814
- const qty = Number(this.actionCheck.qty.value ||0)
815
-
816
- if (!qty){
817
- this.actionCheck.qty.focus = true
818
- this.$lwShowErrorMsg(
819
- this.$lwLanguage.get('','复核数不能为空,且应当是大于0的整数')
820
- )
821
- return
822
- }
823
-
824
- if (qty > this.actionCheck.skuInfo.waitQty){
825
- this.actionCheck.qty.focus = true
826
- this.$lwShowErrorMsg(
827
- this.$lwLanguage.get('','复核数不能大于待复核数')
828
- )
829
- return
830
- }
831
-
832
-
833
- projectWmsMixPackSubmitSku({
834
- boxId: this.checkData.containerData.boxId,
835
- pickContainer: this.checkData.containerData.pickContainer,
836
- skuId: this.actionCheck.skuInfo.skuId,
837
- currentPackQty: qty
838
- }).then(res=>{
839
-
840
- this.checkData = res
841
-
842
- if (res.containerPackFinish){
843
- this.$lwToast.success(
844
- this.$lwLanguage.get('','当前容器已复核完毕')
845
- )
846
-
847
- this.overBaleOpen()
848
-
849
- }
850
-
851
- this.actionCheck.sku.value = ''
852
- this.actionCheck.sku.focus = true
853
- this.actionCheck.qty.focus = ''
854
- this.actionCheck.skuInfo = {}
855
-
856
- this.checkBlock(res)
857
- })
858
- },
859
-
860
- // 复核序列号 - 当前复核量
861
- getCheckPopupNum(){
862
- let num = 0
863
- this.checkPopup.snList.forEach(item=>{
864
- num += Number(item.qty || 0)
865
- })
866
- this.checkPopup.nowScanNum = num
867
-
868
- if (num === this.actionCheck.skuInfo.waitQty){
869
- this.checkPopupSubmit()
870
- }
871
-
872
- },
873
- // 复核序列号 - 确认
874
- checkPopupSnConfirm(val,{data}){
875
- const sn = data.key
876
- if (!sn){
877
- this.checkPopup.sn.focus = true
878
- this.$lwShowErrorMsg(
879
- this.$lwLanguage.get('','序列号不能为空')
880
- )
881
- return
882
- }
883
-
884
- projectWmsMixPackCheckSn({
885
- pickContainer:'',
886
- skuId: this.actionCheck.skuInfo.skuId,
887
- sn,
888
- qty: data.qty || 0
889
- }).then(res=>{
890
- this.checkPopup.snList.unshift(res)
891
- this.getCheckPopupNum()
892
- })
893
- },
894
- // 复核序列号 - 删除
895
- checkPopupSnDel(index){
896
-
897
- this.checkPopup.snList.splice(index, 1)
898
- this.getCheckPopupNum()
899
-
900
- },
901
- // 复核序列号 - 提交数据
902
- checkPopupSubmit(){
903
-
904
- const snList = this.checkPopup.snList
905
- if (!snList.length){
906
- this.checkPopup.sn.focus = true
907
- this.$lwShowErrorMsg(
908
- this.$lwLanguage.get('','请输入或扫描需要复核的序列号')
909
- )
910
- return
911
- }
912
-
913
- projectWmsMixPackSubmitWithSn({
914
- boxId: this.checkData.containerData.boxId,
915
- pickContainer: this.checkData.containerData.pickContainer,
916
- skuId: this.actionCheck.skuInfo.skuId,
917
- snList
918
- }).then(res=>{
919
- this.checkData = res
920
-
921
- if (res.containerPackFinish){
922
- this.$lwToast.success(
923
- this.$lwLanguage.get('','当前容器已复核完毕')
924
- )
925
-
926
- this.overBaleOpen()
927
- }
928
-
929
- this.checkPopup.show = false
930
-
931
- this.checkBlock(res)
932
- })
933
- },
934
- // 复核序列号 - 重新扫描
935
- checkPopupRepeatScan(){
936
- this.$dialog.confirm({
937
- title: this.$lwLanguage.get('','警告'),
938
- message: this.$lwLanguage.get('','当前扫描数据将会被清空')
939
- }).then(()=>{
940
- this.checkPopup.sn = ''
941
- this.snList = []
942
- this.getCheckPopupNum()
943
- }).catch(()=>{})
944
- },
945
- // 复核序列号 - 弹框关闭
946
- checkPopupOff(){
947
- this.checkPopup.sn = ''
948
- this.snList = []
949
- this.actionCheck.sku.value = ''
950
- this.actionCheck.skuInfo = {}
951
- },
952
-
953
-
954
- // 完成捆包 - 打开弹框
955
- overBaleOpen(){
956
- projectWmsMixPackComputeBoxSuggest({
957
- boxId: this.checkData.boxData.boxId
958
- }).then(res=>{
959
- this.overBalePopup.data = res
960
- this.overBalePopup.show = true
961
- this.overBalePopup.real.focus = true
962
- })
963
- },
964
- // 完成捆包 - 实际重量确认
965
- realConfirm(){
966
- if (this.realCheck()) this.overBalePopup.materials.focus = true
967
- },
968
- // 完成捆包 - 实际重量校验
969
- realCheck(){
970
- const num = Number(this.overBalePopup.real.value || 0)
971
-
972
- if (!num) return true
973
-
974
- const data = this.overBalePopup.data
975
- if (data.weightFloor > num){
976
- this.overBalePopup.real.focus = true
977
- this.$lwShowErrorMsg(
978
- this.$lwLanguage.get('','实际重量不能低于标准重量下限') + ':' + data.weightFloor
979
- )
980
- return false
981
- }
982
- if (data.weightLimit < num){
983
- this.overBalePopup.real.focus = true
984
- this.$lwShowErrorMsg(
985
- this.$lwLanguage.get('','实际重量不能大于标准重量上限') + ':' + data.weightLimit
986
- )
987
- return false
988
- }
989
-
990
- return true
991
- },
992
- // 完成捆包 - 包材确认
993
- materialsConfirm(){
994
- const materials = this.overBalePopup.materials.value
995
- if (!materials){
996
- this.overBalePopup.materials.focus = true
997
- this.$lwShowErrorMsg(
998
- this.$lwLanguage.get('','捆包包材不能为空')
999
- )
1000
- return
1001
- }
1002
-
1003
-
1004
- projectWmsOutbondQueryPackMaterial({
1005
- packMaterialCode: materials
1006
- }).then(res=>{
1007
- this.overBalePopup.materials.list.unshift(res)
1008
- })
1009
- },
1010
- // 完成捆包 - 删除包材
1011
- delMaterials(index){
1012
- this.overBalePopup.materials.list.splice(index, 1)
1013
- },
1014
- // 完成捆包 - 封箱
1015
- overBaleConfirm(){
1016
- if (!this.realCheck()) return
1017
-
1018
- // 通过包材长度判断是否是有包材还是无包材封箱
1019
- const list = this.overBalePopup.materials.list
1020
-
1021
- // 获取每一个包材的使用量
1022
- let obj = {}
1023
- list.forEach(item=>{
1024
- if (obj[item.packMaterialId]){
1025
- obj[item.packMaterialId] = obj[item.packMaterialId] + 1
1026
- }else {
1027
- obj[item.packMaterialId] = 1
1028
- }
1029
- })
1030
- let packMaterialList = []
1031
- for (let i in obj){
1032
- packMaterialList.push({
1033
- packMaterialId: i,
1034
- qty: obj[i]
1035
- })
1036
- }
1037
-
1038
- projectWmsMixPackCloseBox({
1039
- boxId: this.boxId,
1040
- packWeight: this.overBalePopup.real.value || this.overBalePopup.data.standardWeight,
1041
- packMaterialList
1042
- }).then(()=>{
1043
- this.$lwToast.success(
1044
- this.$lwLanguage.get('','捆包成功')
1045
- )
1046
- history.go(-1)
1047
- })
1048
-
1049
- },
1050
- // 完成捆包 - 弹框关闭
1051
- overBaleOff(){
1052
- this.overBalePopup.materials.value = ''
1053
- this.overBalePopup.materials.list = []
1054
- this.overBalePopup.real.value = ''
1055
- this.overBalePopup.data = {}
1056
- },
1057
-
1058
- // 重新复核 - 打开弹框
1059
- repeatOpen(){
1060
- this.repeatPopup.show = true
1061
- this.repeatPopup.container.focus = true
1062
- },
1063
- // 重新复核 - 确认
1064
- repeatConfirm(){
1065
- const container = this.repeatPopup.container.value
1066
- if (!container){
1067
- this.repeatPopup.container.focus = true
1068
- this.$lwShowErrorMsg(
1069
- this.$lwLanguage.get('','商品撤回容器号不能为空')
1070
- )
1071
- return
1072
- }
1073
-
1074
- projectWmsMixPackRePack({
1075
- boxId: this.checkData.boxData.boxId,
1076
- toPickContainer: container
1077
- }).then(()=>{
1078
- this.$lwToast.success(
1079
- this.$lwLanguage.get('','操作成功')
1080
- )
1081
- history.go(-1)
1082
- })
1083
- },
1084
-
1085
- // 追加 - 弹框打开
1086
- addSkuOpen(){
1087
- this.addPopup.container.focus = true
1088
- this.addPopup.show = true
1089
- },
1090
- // 追加 - 确认拣选容器号
1091
- addContainerConfirm(){
1092
- const container = this.addPopup.container.value
1093
- if (!container){
1094
- this.addPopup.container.focus = true
1095
- this.$lwShowErrorMsg(
1096
- this.$lwLanguage.get('','拣选容器号不能为空')
1097
- )
1098
- return
1099
- }
1100
-
1101
- projectWmsMixPackAddContainerCheck({
1102
- boxId: this.checkData.boxData.boxId,
1103
- addPickContainer: container
1104
- }).then(res=>{
1105
- this.addPopup.data = res
1106
- })
1107
- },
1108
- // 追加 - 确认追加
1109
- addConfirm(){
1110
- this.checkData.containerData = this.$lwDeepCopy(this.addPopup.data)
1111
- this.addPopup.show = false
1112
- },
1113
- // 追加 - 弹框关闭
1114
- addPopupOff(){
1115
- this.addPopup.container.value = ''
1116
- this.addPopup.data = {}
1117
- },
1118
-
1119
- // 剔除商品 - 打开弹框
1120
- delSkuOpen(){
1121
- this.delSkuPopup.show = true
1122
- this.delSkuPopup.sku.focus = true
1123
- },
1124
- // 剔除商品 - 商品号确认
1125
- delSkuSkuCodeConfirm(val, {data}){
1126
-
1127
- for (let i of this.checkData.boxData.skuList) {
1128
- if (i.skuCode === data.key){
1129
- this.delSkuPopup.data = i
1130
-
1131
- // 判断是否需要sn
1132
- if (i.needHandleSn){
1133
- this.delSkuPopup.isSn = true
1134
-
1135
- // 看看条码是否解析出了sn
1136
- if (data.sn){
1137
- this.delSkuPopup.sn.value = data.sn
1138
- this.delSkuSnConfirm(data.sn,{data:{key:data.sn}})
1139
- }else {
1140
- this.delSkuPopup.sn.focus = ''
1141
- }
1142
-
1143
- }else {
1144
- this.delSkuPopup.isSn = false
1145
- this.delSkuPopup.qty.focus = true
1146
- }
1147
- return
1148
- }
1149
- }
1150
-
1151
-
1152
- this.delSkuPopup.sku.focus = true
1153
- this.$lwShowErrorMsg(
1154
- this.$lwLanguage.get('','当前商品不在捆包箱中')
1155
- )
1156
- this.delSkuPopup.sku.value = ''
1157
- },
1158
- // 剔除商品 - 序列号确认
1159
- delSkuSnConfirm(val, {data}){
1160
-
1161
- for (let i of this.checkData.boxData.packSnList) {
1162
- if (i.sn === data.key){
1163
- this.delSkuPopup.qty.value = i.qty
1164
- this.delSkuQtyConfirm()
1165
- return
1166
- }
1167
- }
1168
-
1169
- this.delSkuPopup.sn.focus = true
1170
- this.$lwShowErrorMsg(
1171
- this.$lwLanguage.get('','当前商品序列号不在捆包箱中')
1172
- )
1173
- this.delSkuPopup.sn.value = ''
1174
-
1175
- },
1176
- // 剔除商品 - 剔除数量确认
1177
- delSkuQtyConfirm(){
1178
- if(this.delSkuQtyCheck()) this.delSkuPopup.container.focus = true
1179
- },
1180
- // 剔除商品 - 剔除数量校验
1181
- delSkuQtyCheck(){
1182
- const qty = Number(this.delSkuPopup.qty.value || 0)
1183
-
1184
- if(!qty){
1185
- this.delSkuPopup.qty.focus = true
1186
- this.$lwShowErrorMsg(
1187
- this.$lwLanguage.get('','剔除数量不能为空,且应当是大于0的整数')
1188
- )
1189
- return false
1190
- }
1191
-
1192
- if (qty%this.delSkuPopup.data.minSellQty !== 0){
1193
- this.delSkuPopup.qty.focus = true
1194
- this.$lwShowErrorMsg(
1195
- this.$lwLanguage.get('','剔除数量必须是最小销售数的整数倍')
1196
- )
1197
- this.delSkuPopup.qty.value = ''
1198
- return false
1199
- }
1200
-
1201
- return true
1202
-
1203
- },
1204
- // 剔除商品 - 确认剔除
1205
- delSkuConfirm(){
1206
- const data = this.delSkuPopup
1207
- const container = data.container.value
1208
-
1209
- if (!container){
1210
- this.delSkuPopup.container.focus = true
1211
- this.$lwShowErrorMsg(
1212
- this.$lwLanguage.get('','剔除容器号不能为空')
1213
- )
1214
- return
1215
- }
1216
-
1217
- // 判断当前是需要sn还是不需要
1218
- const fn = this.delSkuPopup.isSn ?
1219
- projectWmsMixPackDeleteSkuWithSn :
1220
- projectWmsMixPackDeleteSku
1221
-
1222
- fn({
1223
- boxId: this.checkData.boxData.boxId,
1224
- deleteToContainer: container,
1225
- skuId: data.data.skuId,
1226
- // 按唯一号剔除需要
1227
- snList:[{sn: data.sn.value, qty: data.qty.value}],
1228
- // 按商品剔除需要
1229
- currentDeleteQty: data.qty.value
1230
- }).then(res=>{
1231
- if (res.boxDelAll){
1232
- this.$lwToast.success(
1233
- this.$lwLanguage.get('','当前箱已全部剔除')
1234
- )
1235
- history.go(-1)
1236
- return
1237
- }
1238
-
1239
- this.$lwToast.success(
1240
- this.$lwLanguage.get('','剔除成功')
1241
- )
1242
- this.getData()
1243
- this.delSkuPopup.show = false
1244
- })
1245
- },
1246
- // 剔除商品 - 弹框关闭
1247
- delSkuOff(){
1248
- this.delSkuPopup.sku.value = ''
1249
- this.delSkuPopup.sn.value = ''
1250
- this.delSkuPopup.qty.value = ''
1251
- this.delSkuPopup.container.value = ''
1252
- this.delSkuPopup.isSn = false
1253
- this.delSkuPopup.data = {}
1254
- },
1255
-
1256
- // 校验是否拦截
1257
- checkBlock(res){
1258
- if (res.containerBlockData.blockStatus === '200') this.allBlockShow = true
1259
- if (res.containerBlockData.blockStatus === '100') {
1260
- this.partBlockPopup.data={
1261
- pickContainer: res.containerData.pickContainer,
1262
- skuTypeCount:res.containerData.skuTypeCount,
1263
- skuQty:res.containerData.packQty,
1264
- blockData:res.containerBlockData.blockSkuList[0]
1265
- }
1266
- }
1267
- },
1268
- // 全部拦截
1269
- allBlockConfirm(){
1270
- projectWmsMixPackContainerWholeBlock({
1271
- pickContainer: this.checkData.containerData.pickContainer
1272
- }).then(()=>{
1273
- this.$lwToast.success(
1274
- this.$lwLanguage.get('','已拦截')
1275
- )
1276
- history.go(-1)
1277
- })
1278
- },
1279
- // 部分拦截
1280
- async partBlockConfirm(data){
1281
-
1282
- const res = await projectWmsMixPackContainerSkuBlock({
1283
- pickContainer: data.container,
1284
- currentBlockQty: data.qty,
1285
- skuId: ''
1286
- })
1287
-
1288
- await this.getData()
1289
-
1290
- if (res.containerPackFinish){
1291
- this.$lwToast.success(
1292
- this.$lwLanguage.get('','当前容器已全部捆包')
1293
- )
1294
- this.overBaleOpen()
1295
- }
1296
- }
1297
- }
1298
- }
1299
- </script>
1300
-
1301
- <style scoped lang="less">
1302
- .materials-box{
1303
- margin-top: 5px;
1304
- padding: 0 5px;
1305
- border-radius: 5px;
1306
- border: solid 1px #f0f0f0;
1307
- }
1308
-
1309
- .col-1{
1310
- width: 35%;
1311
- flex-shrink: 0;
1312
- }
1313
- .col-2{
1314
- width: 55%;
1315
- flex-shrink: 0;
1316
- }
1317
- .col-3{
1318
- width: 24px;
1319
- flex-shrink: 0;
1320
- }
1321
- </style>
1
+ ;<!--
2
+ 复核捆包执行页
3
+ @author: 张文
4
+ @date: 2022-06-30
5
+ -->
6
+ <template>
7
+
8
+ <div>
9
+ <lw-nav-bar :title="$lwLanguage.get('','复核捆包')"/>
10
+
11
+ <div class="lw-global-page-box">
12
+
13
+ <!-- 门店信息 -->
14
+ <store-info-sku-list
15
+ :item="checkData.boxData"
16
+ :customer-code="checkData.containerData.customerCode"
17
+ :customer-name="checkData.containerData.customerName"
18
+ show-bale-info
19
+ >
20
+ <div
21
+ style="text-align: center"
22
+ class="lw-global-row-end lw-global-value-bold-red"
23
+ >
24
+ {{ $lwLanguage.get('','当前还未执行捆包,请扫描商品号执行捆包') }}
25
+ </div>
26
+ </store-info-sku-list>
27
+
28
+ <!-- 复核操作 -->
29
+ <template v-if="!fromAllCheck">
30
+
31
+ <div
32
+ style="border: solid 2px #D50000"
33
+ class="lw-global-model-box"
34
+ >
35
+
36
+ <lw-input
37
+ :title="$lwLanguage.get('','商品号')"
38
+ v-model="actionCheck.sku.value"
39
+ :get-focus.sync="actionCheck.sku.focus"
40
+ auto-clear-val
41
+ @confirm="actionCheckSkuConfirm"
42
+ />
43
+
44
+ <template v-if="Object.keys(actionCheck.skuInfo).length">
45
+
46
+ <lw-input
47
+ :title="$lwLanguage.get('','复核数量')"
48
+ v-model="actionCheck.qty.value"
49
+ :get-focus.sync="actionCheck.qty.focus"
50
+ type="digit"
51
+ @confirm="actionCheckQtyConfirm"
52
+ >
53
+
54
+ <template #button>
55
+ <lw-button
56
+ mini
57
+ round
58
+ @click="actionCheckQtyConfirm"
59
+ >{{ $lwLanguage.get('','确认复核') }}</lw-button>
60
+ </template>
61
+
62
+ </lw-input>
63
+
64
+ <lw-sku-info-module
65
+ :sku-name="actionCheck.skuInfo.skuName"
66
+ :sku-code="actionCheck.skuInfo.skuCode"
67
+ :show-right="false"
68
+ />
69
+
70
+ <div class="lw-global-flex-between lw-global-row-end">
71
+
72
+ <lw-title-value-cell
73
+ :title="$lwLanguage.get('','最小销售数')"
74
+ :value="actionCheck.skuInfo.minSellQty"
75
+ val-bold
76
+ val-red
77
+ :is-row="false"
78
+ />
79
+
80
+ <div>
81
+ <span class="lw-global-title">
82
+ {{ $lwLanguage.get('','数量') }}
83
+ </span>
84
+ <span class="lw-global-value">
85
+ <span class="lw-global-value-bold-red">
86
+ {{ actionCheck.skuInfo.packQty }}
87
+ </span>
88
+ / {{ actionCheck.skuInfo.totalQty }}
89
+ </span>
90
+ </div>
91
+
92
+ </div>
93
+ </template>
94
+
95
+ </div>
96
+
97
+ </template>
98
+
99
+ <!-- 容器信息 -->
100
+ <container-info
101
+ style="margin-top: 10px"
102
+ :container="checkData.containerData.pickContainer"
103
+ :sku-count="checkData.containerData.skuTypeCount"
104
+ :over-count="checkData.containerData.packQty"
105
+ :wait-count="checkData.containerData.waitPackQty"
106
+ :abnormal-count="checkData.containerData.abnormalQty"
107
+ :sku-list="checkData.containerData.packSkuList"
108
+ :show-abn-btn="!fromAllCheck"
109
+ :show-all-check="!fromAllCheck && allowAllCheck"
110
+ :abn-confirm="abnConfirm"
111
+ />
112
+
113
+ </div>
114
+
115
+ <lw-bottom-bar-btn-hidden
116
+ v-if="checkData.boxData && Object.keys(checkData.boxData).length"
117
+ :btn-list="btnList"
118
+ />
119
+
120
+ <!-- 复核序列号 -->
121
+ <lw-popup
122
+ :title="$lwLanguage.get('','复核序列号')"
123
+ v-model="checkPopup.show"
124
+ @closed="checkPopupOff"
125
+ >
126
+
127
+ <lw-sku-info-module
128
+ :sku-name="actionCheck.skuInfo.skuName"
129
+ :sku-code="actionCheck.skuInfo.skuCode"
130
+ :qty="actionCheck.skuInfo.minSellQty"
131
+ :qty-text="$lwLanguage.get('','最小销售量')"
132
+ />
133
+
134
+ <div class="lw-global-row lw-global-flex-between">
135
+
136
+ <lw-title-value-cell
137
+ :title="$lwLanguage.get('','待复核量')"
138
+ :value="actionCheck.skuInfo.totalQty - actionCheck.skuInfo.packQty"
139
+ val-red
140
+ val-bold
141
+ :is-row="false"
142
+ />
143
+
144
+ <lw-title-value-cell
145
+ :title="$lwLanguage.get('','当前扫描数量')"
146
+ :value="checkPopup.nowScanNum"
147
+ val-red
148
+ val-bold
149
+ :is-row="false"
150
+ />
151
+
152
+ </div>
153
+
154
+ <lw-input
155
+ :title="$lwLanguage.get('','序列号')"
156
+ v-model="checkPopup.sn.value"
157
+ :get-focus.sync="checkPopup.sn.focus"
158
+ auto-clear-val
159
+ @confirm="checkPopupSnConfirm"
160
+ />
161
+
162
+ <div
163
+ class="lw-global-flex-between lw-global-row"
164
+ v-for="(i,k) in checkPopup.snList"
165
+ :key="k"
166
+ >
167
+ <div class="col-2">{{ i.sn }}</div>
168
+ <div class="col-1">{{ i.qty }}</div>
169
+ <div class="col-3">
170
+ <van-icon
171
+ color="#D50000"
172
+ name="clear"
173
+ size="20"
174
+ @click="checkPopupSnDel(k)"
175
+ />
176
+ </div>
177
+ </div>
178
+
179
+ <template #button>
180
+
181
+ <lw-button
182
+ type="last"
183
+ plain
184
+ @click="checkPopupRepeatScan"
185
+ >
186
+ {{ $lwLanguage.get('','重新扫描') }}
187
+ </lw-button>
188
+
189
+
190
+ <lw-button @click="checkPopupSubmit">
191
+ {{ $lwLanguage.get('','确认复核') }}
192
+ </lw-button>
193
+
194
+ </template>
195
+ </lw-popup>
196
+
197
+ <!-- 完成捆包弹框 -->
198
+ <lw-popup
199
+ :title="$lwLanguage.get('','完成捆包')"
200
+ v-model="overBalePopup.show"
201
+ @closed="overBaleOff"
202
+ >
203
+ <container-sku-qty
204
+ :box-no="checkData.boxData.boxNo"
205
+ :pack-qty="checkData.boxData.packQty"
206
+ :type-count="checkData.boxData.skuTypeCount"
207
+ />
208
+
209
+ <lw-title-value-cell
210
+ :title="$lwLanguage.get('','标准重量') + '(KG)'"
211
+ :value="overBalePopup.data.standardWeight"
212
+ val-bold
213
+ />
214
+
215
+ <lw-input
216
+ :title="$lwLanguage.get('','实际重量') + '(KG)'"
217
+ v-model="overBalePopup.real.value"
218
+ :get-focus.sync="overBalePopup.real.focus"
219
+ type="number"
220
+ @confirm="realConfirm"
221
+ />
222
+
223
+ <lw-input
224
+ :title="$lwLanguage.get('','捆包包材')"
225
+ v-model="overBalePopup.materials.value"
226
+ :get-focus.sync="overBalePopup.materials.focus"
227
+ :show-bottom-border="false"
228
+ @confirm="materialsConfirm"
229
+ />
230
+
231
+ <div
232
+ v-if="overBalePopup.materials.list.length"
233
+ class="materials-box"
234
+ >
235
+ <div
236
+ class="lw-global-flex-between lw-global-row-start"
237
+ style="padding: 5px 0"
238
+ >
239
+
240
+ <div class="lw-global-title col-1">
241
+ {{ $lwLanguage.get('','包材编码') }}
242
+ </div>
243
+
244
+ <div class="lw-global-title col-2">
245
+ {{ $lwLanguage.get('','包材规格') }}
246
+ </div>
247
+
248
+ <div class="col-3"></div>
249
+
250
+ </div>
251
+
252
+ <div style="max-height: 84px;overflow-y: scroll">
253
+ <div
254
+ class="lw-global-flex-between lw-global-row"
255
+ style="padding: 5px 0"
256
+ v-for="(i,k) in overBalePopup.materials.list"
257
+ :key="k"
258
+ >
259
+
260
+ <!-- 包材编码 -->
261
+ <div class="lw-global-value-bold col-1">{{ i.packMaterialCode }}</div>
262
+
263
+ <!-- 尺寸 -->
264
+ <div class="lw-global-value-bold col-2">
265
+ {{ i.length || '-' }} *
266
+ {{ i.width || '-' }} *
267
+ {{ i.height || '-' }}
268
+ </div>
269
+
270
+ <!-- 删除按钮 -->
271
+ <div class="col-3">
272
+ <van-icon
273
+ color="#D50000"
274
+ name="clear"
275
+ size="20"
276
+ @click="delMaterials(k)"
277
+ />
278
+ </div>
279
+
280
+ </div>
281
+ </div>
282
+
283
+
284
+ </div>
285
+
286
+ <template #button>
287
+ <lw-button
288
+ v-if="overBalePopup.materials.list.length"
289
+ @click="overBaleConfirm"
290
+ >
291
+ {{ $lwLanguage.get('','完成复核(封箱)') }}
292
+ </lw-button>
293
+ <lw-button
294
+ v-else
295
+ @click="overBaleConfirm"
296
+ >
297
+ {{ $lwLanguage.get('','无需包材(封箱)') }}
298
+ </lw-button>
299
+ </template>
300
+
301
+ </lw-popup>
302
+
303
+ <!-- 重新复核弹框 -->
304
+ <lw-popup
305
+ :title="$lwLanguage.get('','重新复核')"
306
+ v-model="repeatPopup.show"
307
+ @closed="repeatPopup.container.value=''"
308
+ >
309
+
310
+ <container-sku-qty
311
+ :box-no="checkData.boxData.boxNo"
312
+ :pack-qty="checkData.boxData.packQty"
313
+ :type-count="checkData.boxData.skuTypeCount"
314
+ />
315
+
316
+ <lw-input
317
+ :title="$lwLanguage.get('','商品撤回容器')"
318
+ v-model="repeatPopup.container.value"
319
+ :get-focus.sync="repeatPopup.container.focus"
320
+ :show-bottom-border="false"
321
+ required
322
+ @confirm="repeatConfirm"
323
+ />
324
+
325
+ <template #button>
326
+ <lw-button @click="repeatConfirm">
327
+ {{ $lwLanguage.get('','确认重新复核') }}
328
+ </lw-button>
329
+ </template>
330
+
331
+ </lw-popup>
332
+
333
+ <!-- 追加弹框 -->
334
+ <lw-popup
335
+ :title="$lwLanguage.get('','追加')"
336
+ v-model="addPopup.show"
337
+ @closed="addPopupOff"
338
+ >
339
+
340
+ <container-sku-qty
341
+ :box-no="checkData.boxData.boxNo"
342
+ :pack-qty="checkData.boxData.packQty"
343
+ :type-count="checkData.boxData.skuTypeCount"
344
+ />
345
+
346
+ <lw-input
347
+ :title="$lwLanguage.get('','拣选容器号')"
348
+ v-model="addPopup.container.value"
349
+ :get-focus.sync="addPopup.container.focus"
350
+ required
351
+ @confirm="addContainerConfirm"
352
+ />
353
+
354
+ <div
355
+ v-if="Object.keys(addPopup.data).length"
356
+ class="lw-global-flex-between lw-global-row-end"
357
+ >
358
+
359
+ <lw-title-value-cell
360
+ :title="$lwLanguage.get('','品种数')"
361
+ :value="addPopup.data.skuTypeCount"
362
+ val-bold
363
+ :is-row="false"
364
+ />
365
+
366
+ <lw-title-value-cell
367
+ :title="$lwLanguage.get('','待复核')"
368
+ :value="addPopup.data.waitPackQty"
369
+ val-bold
370
+ :is-row="false"
371
+ />
372
+
373
+ </div>
374
+
375
+ <template #button>
376
+
377
+ <lw-button @click="addConfirm">
378
+ {{ $lwLanguage.get('','确认追加') }}
379
+ </lw-button>
380
+
381
+ </template>
382
+
383
+ </lw-popup>
384
+
385
+ <!-- 剔除商品 -->
386
+ <lw-popup
387
+ :title="$lwLanguage.get('','剔除商品')"
388
+ v-model="delSkuPopup.show"
389
+ @closed="delSkuOff"
390
+ >
391
+
392
+ <container-sku-qty
393
+ :box-no="checkData.boxData.boxNo"
394
+ :pack-qty="checkData.boxData.packQty"
395
+ :type-count="checkData.boxData.skuTypeCount"
396
+ />
397
+
398
+ <!-- 商品条码 -->
399
+ <lw-input
400
+ :title="$lwLanguage.get('','商品条码')"
401
+ v-model="delSkuPopup.sku.value"
402
+ :get-focus.sync="delSkuPopup.sku.focus"
403
+ required
404
+ @confirm="delSkuSkuCodeConfirm"
405
+ />
406
+
407
+ <!-- 序列号 -->
408
+ <lw-input
409
+ v-if="delSkuPopup.isSn"
410
+ :title="$lwLanguage.get('','序列号')"
411
+ v-model="delSkuPopup.sn.value"
412
+ :get-focus.sync="delSkuPopup.sn.focus"
413
+ required
414
+ rule-key="delSkuSn"
415
+ rule-value-key="sn"
416
+ @confirm="delSkuSnConfirm"
417
+ />
418
+
419
+ <!-- 剔除数量 -->
420
+ <lw-input
421
+ :title="$lwLanguage.get('','剔除数量')"
422
+ v-model="delSkuPopup.qty.value"
423
+ :get-focus.sync="delSkuPopup.qty.focus"
424
+ type="digit"
425
+ :disabled="delSkuPopup.isSn"
426
+ required
427
+ @confirm="delSkuQtyConfirm"
428
+ >
429
+ <template #button>
430
+ <lw-tag
431
+ v-if="delSkuPopup.isSn"
432
+ type="danger"
433
+ plain
434
+ round
435
+ >{{ $lwLanguage.get('','不可修改') }}</lw-tag>
436
+ </template>
437
+ </lw-input>
438
+
439
+ <!-- 商品信息 -->
440
+ <lw-sku-info-module
441
+ :sku-code="delSkuPopup.data.skuCode"
442
+ :sku-name="delSkuPopup.data.skuName"
443
+ :qty="delSkuPopup.data.minSellQty"
444
+ :qty-text="$lwLanguage.get('','最小销售数')"
445
+ is-row
446
+ />
447
+
448
+ <!-- 剔除容器号 -->
449
+ <lw-input
450
+ :title="$lwLanguage.get('','容器号')"
451
+ v-model="delSkuPopup.container.value"
452
+ :get-focus="delSkuPopup.container.focus"
453
+ :show-bottom-border="false"
454
+ :placeholder="$lwLanguage.get('','剔除商品放入的容器号')"
455
+ required
456
+ @confirm="delSkuConfirm"
457
+ />
458
+
459
+ <template #button>
460
+
461
+ <lw-button @click="delSkuConfirm">
462
+ {{ $lwLanguage.get('','确认剔除') }}
463
+ </lw-button>
464
+
465
+ </template>
466
+
467
+ </lw-popup>
468
+
469
+ <!-- 全部拦截 -->
470
+ <all-block
471
+ v-model="allBlockShow"
472
+ :container="checkData.containerData.pickContainer"
473
+ :type-count="checkData.containerData.skuTypeCount"
474
+ :qty="checkData.containerData.blockQty"
475
+ @confirm="allBlockConfirm"
476
+ />
477
+
478
+ <!-- 部分拦截 -->
479
+ <part-block
480
+ v-model="partBlockPopup.show"
481
+ :pick-container="partBlockPopup.data.pickContainer"
482
+ :type-count="partBlockPopup.data.skuTypeCount"
483
+ :sku-qty="partBlockPopup.data.skuQty"
484
+ :block-data="partBlockPopup.data.blockData"
485
+ @confirm="partBlockConfirm"
486
+ />
487
+
488
+ </div>
489
+
490
+ </template>
491
+
492
+ <script>
493
+ import containerInfo from './../../components/containerInfo/index.vue'
494
+ import storeInfoSkuList from './../../components/storeInfoSkuList/index.vue'
495
+ import containerSkuQty from './../../components/containerSkuQty/index.vue'
496
+ import allBlock from './../../components/allBlock/index.vue'
497
+ import partBlock from './../../components/partBlock/index.vue'
498
+ import {
499
+ projectWmsContainerWholePack,
500
+ projectWmsMixPackQueryPackData
501
+ } from "../../../../../../api/outbound/bale/checkBale/allCheck";
502
+ import {
503
+ projectWmsMixPackAddContainerCheck,
504
+ projectWmsMixPackCheckSn,
505
+ projectWmsMixPackCloseBox,
506
+ projectWmsMixPackComputeBoxSuggest,
507
+ projectWmsMixPackContainerSkuBlock,
508
+ projectWmsMixPackContainerWholeBlock,
509
+ projectWmsMixPackDeleteSku,
510
+ projectWmsMixPackDeleteSkuWithSn,
511
+ projectWmsMixPackRePack, projectWmsMixPackSubmitAbnormal,
512
+ projectWmsMixPackSubmitSku,
513
+ projectWmsMixPackSubmitWithSn,
514
+ projectWmsOutbondQueryPackMaterial
515
+ } from "../../../../../../api/outbound/bale/checkBale/action";
516
+
517
+ export default {
518
+ name: "lwOutboundBaleActionPage",
519
+ components:{
520
+ containerInfo,
521
+ storeInfoSkuList,
522
+ containerSkuQty,
523
+ allBlock,
524
+ partBlock,
525
+ },
526
+ data() {
527
+ return {
528
+
529
+ // 复核的数据
530
+ checkData:{
531
+ "boxData": {
532
+ "boxNo": "BOX-001",
533
+ "boxId": 0,
534
+ "customerCode": "KH001",
535
+ "customerName": "客户001",
536
+ "skuTypeCount": 0,
537
+ "packQty": 10,
538
+ "skuList": [
539
+ {
540
+ "skuId": 0,
541
+ "skuCode": "LJ-001",
542
+ "skuName": "零件001",
543
+ "qty": 5,
544
+ "minSellQty": 0,
545
+ "needHandleSn": false
546
+ }
547
+ ],
548
+ "packSnList": [
549
+ {
550
+ "sn": "",
551
+ "qty": 0
552
+ }
553
+ ]
554
+ },
555
+ "containerData": {
556
+ "pickContainer": "RQ-001",
557
+ "canWholePack": false,
558
+ "skuTypeCount": 2,
559
+ "packQty": 4,
560
+ "waitPackQty": 6,
561
+ "abnormalQty": 0,
562
+ "blockStatus": "",
563
+ "blockQty": 0,
564
+ "packSkuList": [
565
+ {
566
+ "skuId": 0,
567
+ "skuCode": "LJ-001",
568
+ "skuName": "零件001",
569
+ "minSellQty": 0,
570
+ "totalQty": 10,
571
+ "packQty": 4,
572
+ "locationId": 0,
573
+ "locationCode": "",
574
+ "needHandleSn": false
575
+ }
576
+ ]
577
+ }
578
+ },
579
+
580
+ // 是否是全部复核进入
581
+ fromAllCheck: true,
582
+
583
+ // 允许全部复核
584
+ allowAllCheck: false,
585
+
586
+ // 开始复核
587
+ actionCheck:{
588
+ sku:{
589
+ value: '',
590
+ focus: false
591
+ },
592
+ qty:{
593
+ value: '',
594
+ focus: false
595
+ },
596
+
597
+ skuInfo:{}
598
+ },
599
+
600
+ // 序列号复核弹框
601
+ checkPopup:{
602
+ show: true,
603
+ // 当前扫描量
604
+ nowScanNum: 0,
605
+ sn:{
606
+ value:'',
607
+ focus: false
608
+ },
609
+ snList: []
610
+ },
611
+
612
+
613
+ // 完成捆包弹框
614
+ overBalePopup:{
615
+ show: false,
616
+ // 实际重量
617
+ real:{
618
+ value: '',
619
+ focus: false
620
+ },
621
+ // 包材输入框
622
+ materials:{
623
+ value:'',
624
+ focus:false,
625
+ list:[]
626
+ },
627
+ data:{}
628
+ },
629
+
630
+ // 重新复核
631
+ repeatPopup:{
632
+ show: false,
633
+ container:{
634
+ value: '',
635
+ focus: false
636
+ }
637
+ },
638
+
639
+ // 追加
640
+ addPopup:{
641
+ show: false,
642
+ container:{
643
+ value: '',
644
+ focus: false
645
+ },
646
+ data:{}
647
+ },
648
+
649
+ // 剔除商品
650
+ delSkuPopup:{
651
+ show: false,
652
+ // 是否需要扫描sn
653
+ isSn: false,
654
+ // 商品号
655
+ sku: {
656
+ value: '',
657
+ focus: false
658
+ },
659
+ // 序列号
660
+ sn: {
661
+ value: '',
662
+ focus: false
663
+ },
664
+ // 数量
665
+ qty: {
666
+ value: '',
667
+ focus: false
668
+ },
669
+ // 剔除容器号
670
+ container: {
671
+ value: '',
672
+ focus: false
673
+ },
674
+ data:{}
675
+ },
676
+
677
+ // 是否全部拦截
678
+ allBlockShow: true,
679
+
680
+ // 部分拦截弹框
681
+ partBlockPopup:{
682
+ show: false,
683
+ data:{
684
+ pickContainer:'',
685
+ skuTypeCount:'',
686
+ skuQty:'',
687
+ blockData:{}
688
+ }
689
+ },
690
+ }
691
+ },
692
+ computed:{
693
+ // 底部按钮
694
+ btnList(){
695
+ return [
696
+ {
697
+ text: this.$lwLanguage.get('','完成复核(封箱)'),
698
+ click: this.overBaleOpen
699
+ },
700
+ {
701
+ text: this.$lwLanguage.get('','重新复核'),
702
+ click: this.repeatOpen
703
+ },
704
+ {
705
+ text: this.$lwLanguage.get('','剔除商品'),
706
+ click: this.delSkuOpen
707
+ },
708
+ {
709
+ text: this.$lwLanguage.get('','追加'),
710
+ click: this.addSkuOpen
711
+ }
712
+ ]
713
+
714
+ // 是否显示追加商品按钮
715
+ /*if (this.showAddBtn){
716
+ list.push({
717
+ text: this.$lwLanguage.get('','追加'),
718
+ click: this.addSkuOpen
719
+ })
720
+ }*/
721
+
722
+ // return list
723
+ }
724
+ },
725
+ mounted() {
726
+ const query = this.$route.query
727
+ if (query.lwType === 'allCheck'){
728
+ this.fromAllCheck = true
729
+ this.allowAllCheck = false
730
+
731
+ projectWmsContainerWholePack({
732
+ pickContainer: query.lwContainer
733
+ }).then(res=>{
734
+ this.checkBlock(res)
735
+
736
+ this.checkData = res
737
+ })
738
+ return
739
+ }
740
+
741
+ this.getData()
742
+ },
743
+ methods: {
744
+ // 获取数据
745
+ getData(){
746
+ return new Promise((PR,PE)=>{
747
+
748
+ projectWmsMixPackQueryPackData({
749
+ queryContainer: this.$route.query.lwContainer
750
+ }).then(res=>{
751
+
752
+ if (res.containerData.blockStatus === '200') this.allBlockShow = true
753
+
754
+ this.checkData = res
755
+
756
+ PR()
757
+ }).catch(()=>{
758
+ PE()
759
+ history.go(-1)
760
+ })
761
+ })
762
+ },
763
+
764
+ // 开始复核 - 商品号确认
765
+ actionCheckSkuConfirm(val,{data}){
766
+
767
+ if (
768
+ Object.keys(this.actionCheck.skuInfo).length &&
769
+ data.key !== this.actionCheck.skuInfo.skuCode
770
+ ){
771
+ this.actionCheck.sku.focus = true
772
+ this.$lwShowErrorMsg(
773
+ this.$lwLanguage.get(
774
+ '',
775
+ '当前扫描商品与上一次扫描商品不一致!如需更换商品,请完成上次商品复核或点击重新扫描按钮')
776
+ )
777
+ return
778
+ }
779
+
780
+ for (let i of this.checkData.containerData.packSkuList){
781
+
782
+ if (i.skuCode === data.key){
783
+
784
+ this.actionCheck.skuInfo = {
785
+ ...i,
786
+ waitQty: i.totalQty - i.packQty
787
+ }
788
+
789
+ if(i.needHandleSn){
790
+ this.checkPopup.show = true
791
+ this.checkPopup.sn.focus = true
792
+ this.getCheckPopupNum()
793
+ }else {
794
+ this.actionCheck.qty.value += Number(data.qty || 0)
795
+
796
+ if (this.actionCheck.qty.value === this.actionCheck.skuInfo.waitQty){
797
+ this.actionCheckQtyConfirm()
798
+ }
799
+ }
800
+ return
801
+ }
802
+
803
+ }
804
+
805
+ this.actionCheck.sku.focus = true
806
+ this.$lwShowErrorMsg(
807
+ this.$lwLanguage.get('','当前商品不在拣选容器中')
808
+ )
809
+ this.actionCheck.sku.value = ''
810
+
811
+ },
812
+ // 开始复核 - 商品数量确认
813
+ actionCheckQtyConfirm(){
814
+
815
+ const qty = Number(this.actionCheck.qty.value ||0)
816
+
817
+ if (!qty){
818
+ this.actionCheck.qty.focus = true
819
+ this.$lwShowErrorMsg(
820
+ this.$lwLanguage.get('','复核数不能为空,且应当是大于0的整数')
821
+ )
822
+ return
823
+ }
824
+
825
+ if (qty > this.actionCheck.skuInfo.waitQty){
826
+ this.actionCheck.qty.focus = true
827
+ this.$lwShowErrorMsg(
828
+ this.$lwLanguage.get('','复核数不能大于待复核数')
829
+ )
830
+ return
831
+ }
832
+
833
+
834
+ projectWmsMixPackSubmitSku({
835
+ boxId: this.checkData.containerData.boxId,
836
+ pickContainer: this.checkData.containerData.pickContainer,
837
+ skuId: this.actionCheck.skuInfo.skuId,
838
+ currentPackQty: qty
839
+ }).then(res=>{
840
+
841
+ this.checkData = res
842
+
843
+ if (res.containerPackFinish){
844
+ this.$lwToast.success(
845
+ this.$lwLanguage.get('','当前容器已复核完毕')
846
+ )
847
+
848
+ this.overBaleOpen()
849
+
850
+ }
851
+
852
+ this.actionCheck.sku.value = ''
853
+ this.actionCheck.sku.focus = true
854
+ this.actionCheck.qty.focus = ''
855
+ this.actionCheck.skuInfo = {}
856
+
857
+ this.checkBlock(res)
858
+ })
859
+ },
860
+
861
+ // 复核序列号 - 当前复核量
862
+ getCheckPopupNum(){
863
+ let num = 0
864
+ this.checkPopup.snList.forEach(item=>{
865
+ num += Number(item.qty || 0)
866
+ })
867
+ this.checkPopup.nowScanNum = num
868
+
869
+ if (num === this.actionCheck.skuInfo.waitQty){
870
+ this.checkPopupSubmit()
871
+ }
872
+
873
+ },
874
+ // 复核序列号 - 确认
875
+ checkPopupSnConfirm(val,{data}){
876
+ const sn = data.key
877
+ if (!sn){
878
+ this.checkPopup.sn.focus = true
879
+ this.$lwShowErrorMsg(
880
+ this.$lwLanguage.get('','序列号不能为空')
881
+ )
882
+ return
883
+ }
884
+
885
+ projectWmsMixPackCheckSn({
886
+ pickContainer:'',
887
+ skuId: this.actionCheck.skuInfo.skuId,
888
+ sn,
889
+ qty: data.qty || 0
890
+ }).then(res=>{
891
+ this.checkPopup.snList.unshift(res)
892
+ this.getCheckPopupNum()
893
+ })
894
+ },
895
+ // 复核序列号 - 删除
896
+ checkPopupSnDel(index){
897
+
898
+ this.checkPopup.snList.splice(index, 1)
899
+ this.getCheckPopupNum()
900
+
901
+ },
902
+ // 复核序列号 - 提交数据
903
+ checkPopupSubmit(){
904
+
905
+ const snList = this.checkPopup.snList
906
+ if (!snList.length){
907
+ this.checkPopup.sn.focus = true
908
+ this.$lwShowErrorMsg(
909
+ this.$lwLanguage.get('','请输入或扫描需要复核的序列号')
910
+ )
911
+ return
912
+ }
913
+
914
+ projectWmsMixPackSubmitWithSn({
915
+ boxId: this.checkData.containerData.boxId,
916
+ pickContainer: this.checkData.containerData.pickContainer,
917
+ skuId: this.actionCheck.skuInfo.skuId,
918
+ snList
919
+ }).then(res=>{
920
+ this.checkData = res
921
+
922
+ if (res.containerPackFinish){
923
+ this.$lwToast.success(
924
+ this.$lwLanguage.get('','当前容器已复核完毕')
925
+ )
926
+
927
+ this.overBaleOpen()
928
+ }
929
+
930
+ this.checkPopup.show = false
931
+
932
+ this.checkBlock(res)
933
+ })
934
+ },
935
+ // 复核序列号 - 重新扫描
936
+ checkPopupRepeatScan(){
937
+ this.$dialog.confirm({
938
+ title: this.$lwLanguage.get('','警告'),
939
+ message: this.$lwLanguage.get('','当前扫描数据将会被清空')
940
+ }).then(()=>{
941
+ this.checkPopup.sn = ''
942
+ this.snList = []
943
+ this.getCheckPopupNum()
944
+ }).catch(()=>{})
945
+ },
946
+ // 复核序列号 - 弹框关闭
947
+ checkPopupOff(){
948
+ this.checkPopup.sn = ''
949
+ this.snList = []
950
+ this.actionCheck.sku.value = ''
951
+ this.actionCheck.skuInfo = {}
952
+ },
953
+
954
+
955
+ // 完成捆包 - 打开弹框
956
+ overBaleOpen(){
957
+ projectWmsMixPackComputeBoxSuggest({
958
+ boxId: this.checkData.boxData.boxId
959
+ }).then(res=>{
960
+ this.overBalePopup.data = res
961
+ this.overBalePopup.show = true
962
+ this.overBalePopup.real.focus = true
963
+ })
964
+ },
965
+ // 完成捆包 - 实际重量确认
966
+ realConfirm(){
967
+ if (this.realCheck()) this.overBalePopup.materials.focus = true
968
+ },
969
+ // 完成捆包 - 实际重量校验
970
+ realCheck(){
971
+ const num = Number(this.overBalePopup.real.value || 0)
972
+
973
+ if (!num) return true
974
+
975
+ const data = this.overBalePopup.data
976
+ if (data.weightFloor > num){
977
+ this.overBalePopup.real.focus = true
978
+ this.$lwShowErrorMsg(
979
+ this.$lwLanguage.get('','实际重量不能低于标准重量下限') + ':' + data.weightFloor
980
+ )
981
+ return false
982
+ }
983
+ if (data.weightLimit < num){
984
+ this.overBalePopup.real.focus = true
985
+ this.$lwShowErrorMsg(
986
+ this.$lwLanguage.get('','实际重量不能大于标准重量上限') + ':' + data.weightLimit
987
+ )
988
+ return false
989
+ }
990
+
991
+ return true
992
+ },
993
+ // 完成捆包 - 包材确认
994
+ materialsConfirm(){
995
+ const materials = this.overBalePopup.materials.value
996
+ if (!materials){
997
+ this.overBalePopup.materials.focus = true
998
+ this.$lwShowErrorMsg(
999
+ this.$lwLanguage.get('','捆包包材不能为空')
1000
+ )
1001
+ return
1002
+ }
1003
+
1004
+
1005
+ projectWmsOutbondQueryPackMaterial({
1006
+ packMaterialCode: materials
1007
+ }).then(res=>{
1008
+ this.overBalePopup.materials.list.unshift(res)
1009
+ })
1010
+ },
1011
+ // 完成捆包 - 删除包材
1012
+ delMaterials(index){
1013
+ this.overBalePopup.materials.list.splice(index, 1)
1014
+ },
1015
+ // 完成捆包 - 封箱
1016
+ overBaleConfirm(){
1017
+ if (!this.realCheck()) return
1018
+
1019
+ // 通过包材长度判断是否是有包材还是无包材封箱
1020
+ const list = this.overBalePopup.materials.list
1021
+
1022
+ // 获取每一个包材的使用量
1023
+ let obj = {}
1024
+ list.forEach(item=>{
1025
+ if (obj[item.packMaterialId]){
1026
+ obj[item.packMaterialId] = obj[item.packMaterialId] + 1
1027
+ }else {
1028
+ obj[item.packMaterialId] = 1
1029
+ }
1030
+ })
1031
+ let packMaterialList = []
1032
+ for (let i in obj){
1033
+ packMaterialList.push({
1034
+ packMaterialId: i,
1035
+ qty: obj[i]
1036
+ })
1037
+ }
1038
+
1039
+ projectWmsMixPackCloseBox({
1040
+ boxId: this.boxId,
1041
+ packWeight: this.overBalePopup.real.value || this.overBalePopup.data.standardWeight,
1042
+ packMaterialList
1043
+ }).then(()=>{
1044
+ this.$lwToast.success(
1045
+ this.$lwLanguage.get('','捆包成功')
1046
+ )
1047
+ history.go(-1)
1048
+ })
1049
+
1050
+ },
1051
+ // 完成捆包 - 弹框关闭
1052
+ overBaleOff(){
1053
+ this.overBalePopup.materials.value = ''
1054
+ this.overBalePopup.materials.list = []
1055
+ this.overBalePopup.real.value = ''
1056
+ this.overBalePopup.data = {}
1057
+ },
1058
+
1059
+ // 重新复核 - 打开弹框
1060
+ repeatOpen(){
1061
+ this.repeatPopup.show = true
1062
+ this.repeatPopup.container.focus = true
1063
+ },
1064
+ // 重新复核 - 确认
1065
+ repeatConfirm(){
1066
+ const container = this.repeatPopup.container.value
1067
+ if (!container){
1068
+ this.repeatPopup.container.focus = true
1069
+ this.$lwShowErrorMsg(
1070
+ this.$lwLanguage.get('','商品撤回容器号不能为空')
1071
+ )
1072
+ return
1073
+ }
1074
+
1075
+ projectWmsMixPackRePack({
1076
+ boxId: this.checkData.boxData.boxId,
1077
+ toPickContainer: container
1078
+ }).then(()=>{
1079
+ this.$lwToast.success(
1080
+ this.$lwLanguage.get('','操作成功')
1081
+ )
1082
+ history.go(-1)
1083
+ })
1084
+ },
1085
+
1086
+ // 追加 - 弹框打开
1087
+ addSkuOpen(){
1088
+ this.addPopup.container.focus = true
1089
+ this.addPopup.show = true
1090
+ },
1091
+ // 追加 - 确认拣选容器号
1092
+ addContainerConfirm(){
1093
+ const container = this.addPopup.container.value
1094
+ if (!container){
1095
+ this.addPopup.container.focus = true
1096
+ this.$lwShowErrorMsg(
1097
+ this.$lwLanguage.get('','拣选容器号不能为空')
1098
+ )
1099
+ return
1100
+ }
1101
+
1102
+ projectWmsMixPackAddContainerCheck({
1103
+ boxId: this.checkData.boxData.boxId,
1104
+ addPickContainer: container
1105
+ }).then(res=>{
1106
+ this.addPopup.data = res
1107
+ })
1108
+ },
1109
+ // 追加 - 确认追加
1110
+ addConfirm(){
1111
+ this.checkData.containerData = this.$lwDeepCopy(this.addPopup.data)
1112
+ this.addPopup.show = false
1113
+ },
1114
+ // 追加 - 弹框关闭
1115
+ addPopupOff(){
1116
+ this.addPopup.container.value = ''
1117
+ this.addPopup.data = {}
1118
+ },
1119
+
1120
+ // 剔除商品 - 打开弹框
1121
+ delSkuOpen(){
1122
+ this.delSkuPopup.show = true
1123
+ this.delSkuPopup.sku.focus = true
1124
+ },
1125
+ // 剔除商品 - 商品号确认
1126
+ delSkuSkuCodeConfirm(val, {data}){
1127
+
1128
+ for (let i of this.checkData.boxData.skuList) {
1129
+ if (i.skuCode === data.key){
1130
+ this.delSkuPopup.data = i
1131
+
1132
+ // 判断是否需要sn
1133
+ if (i.needHandleSn){
1134
+ this.delSkuPopup.isSn = true
1135
+
1136
+ // 看看条码是否解析出了sn
1137
+ if (data.sn){
1138
+ this.delSkuPopup.sn.value = data.sn
1139
+ this.delSkuSnConfirm(data.sn,{data:{key:data.sn}})
1140
+ }else {
1141
+ this.delSkuPopup.sn.focus = ''
1142
+ }
1143
+
1144
+ }else {
1145
+ this.delSkuPopup.isSn = false
1146
+ this.delSkuPopup.qty.focus = true
1147
+ }
1148
+ return
1149
+ }
1150
+ }
1151
+
1152
+
1153
+ this.delSkuPopup.sku.focus = true
1154
+ this.$lwShowErrorMsg(
1155
+ this.$lwLanguage.get('','当前商品不在捆包箱中')
1156
+ )
1157
+ this.delSkuPopup.sku.value = ''
1158
+ },
1159
+ // 剔除商品 - 序列号确认
1160
+ delSkuSnConfirm(val, {data}){
1161
+
1162
+ for (let i of this.checkData.boxData.packSnList) {
1163
+ if (i.sn === data.key){
1164
+ this.delSkuPopup.qty.value = i.qty
1165
+ this.delSkuQtyConfirm()
1166
+ return
1167
+ }
1168
+ }
1169
+
1170
+ this.delSkuPopup.sn.focus = true
1171
+ this.$lwShowErrorMsg(
1172
+ this.$lwLanguage.get('','当前商品序列号不在捆包箱中')
1173
+ )
1174
+ this.delSkuPopup.sn.value = ''
1175
+
1176
+ },
1177
+ // 剔除商品 - 剔除数量确认
1178
+ delSkuQtyConfirm(){
1179
+ if(this.delSkuQtyCheck()) this.delSkuPopup.container.focus = true
1180
+ },
1181
+ // 剔除商品 - 剔除数量校验
1182
+ delSkuQtyCheck(){
1183
+ const qty = Number(this.delSkuPopup.qty.value || 0)
1184
+
1185
+ if(!qty){
1186
+ this.delSkuPopup.qty.focus = true
1187
+ this.$lwShowErrorMsg(
1188
+ this.$lwLanguage.get('','剔除数量不能为空,且应当是大于0的整数')
1189
+ )
1190
+ return false
1191
+ }
1192
+
1193
+ if (qty%this.delSkuPopup.data.minSellQty !== 0){
1194
+ this.delSkuPopup.qty.focus = true
1195
+ this.$lwShowErrorMsg(
1196
+ this.$lwLanguage.get('','剔除数量必须是最小销售数的整数倍')
1197
+ )
1198
+ this.delSkuPopup.qty.value = ''
1199
+ return false
1200
+ }
1201
+
1202
+ return true
1203
+
1204
+ },
1205
+ // 剔除商品 - 确认剔除
1206
+ delSkuConfirm(){
1207
+ const data = this.delSkuPopup
1208
+ const container = data.container.value
1209
+
1210
+ if (!container){
1211
+ this.delSkuPopup.container.focus = true
1212
+ this.$lwShowErrorMsg(
1213
+ this.$lwLanguage.get('','剔除容器号不能为空')
1214
+ )
1215
+ return
1216
+ }
1217
+
1218
+ // 判断当前是需要sn还是不需要
1219
+ const fn = this.delSkuPopup.isSn ?
1220
+ projectWmsMixPackDeleteSkuWithSn :
1221
+ projectWmsMixPackDeleteSku
1222
+
1223
+ fn({
1224
+ boxId: this.checkData.boxData.boxId,
1225
+ deleteToContainer: container,
1226
+ skuId: data.data.skuId,
1227
+ // 按唯一号剔除需要
1228
+ snList:[{sn: data.sn.value, qty: data.qty.value}],
1229
+ // 按商品剔除需要
1230
+ currentDeleteQty: data.qty.value
1231
+ }).then(res=>{
1232
+ if (res.boxDelAll){
1233
+ this.$lwToast.success(
1234
+ this.$lwLanguage.get('','当前箱已全部剔除')
1235
+ )
1236
+ history.go(-1)
1237
+ return
1238
+ }
1239
+
1240
+ this.$lwToast.success(
1241
+ this.$lwLanguage.get('','剔除成功')
1242
+ )
1243
+ this.getData()
1244
+ this.delSkuPopup.show = false
1245
+ })
1246
+ },
1247
+ // 剔除商品 - 弹框关闭
1248
+ delSkuOff(){
1249
+ this.delSkuPopup.sku.value = ''
1250
+ this.delSkuPopup.sn.value = ''
1251
+ this.delSkuPopup.qty.value = ''
1252
+ this.delSkuPopup.container.value = ''
1253
+ this.delSkuPopup.isSn = false
1254
+ this.delSkuPopup.data = {}
1255
+ },
1256
+
1257
+ // 校验是否拦截
1258
+ checkBlock(res){
1259
+ if (res.containerBlockData.blockStatus === '200') this.allBlockShow = true
1260
+ if (res.containerBlockData.blockStatus === '100') {
1261
+ this.partBlockPopup.data={
1262
+ pickContainer: res.containerData.pickContainer,
1263
+ skuTypeCount:res.containerData.skuTypeCount,
1264
+ skuQty:res.containerData.packQty,
1265
+ blockData:res.containerBlockData.blockSkuList[0]
1266
+ }
1267
+ }
1268
+ },
1269
+ // 全部拦截
1270
+ allBlockConfirm(){
1271
+ projectWmsMixPackContainerWholeBlock({
1272
+ pickContainer: this.checkData.containerData.pickContainer
1273
+ }).then(()=>{
1274
+ this.$lwToast.success(
1275
+ this.$lwLanguage.get('','已拦截')
1276
+ )
1277
+ history.go(-1)
1278
+ })
1279
+ },
1280
+ // 部分拦截
1281
+ async partBlockConfirm(data){
1282
+
1283
+ const res = await projectWmsMixPackContainerSkuBlock({
1284
+ pickContainer: data.container,
1285
+ currentBlockQty: data.qty,
1286
+ skuId: ''
1287
+ })
1288
+
1289
+ await this.getData()
1290
+
1291
+ if (res.containerPackFinish){
1292
+ this.$lwToast.success(
1293
+ this.$lwLanguage.get('','当前容器已全部捆包')
1294
+ )
1295
+ this.overBaleOpen()
1296
+ }
1297
+ },
1298
+
1299
+ // 异常确认
1300
+ abnConfirm(data){
1301
+ return projectWmsMixPackSubmitAbnormal({
1302
+ pickContainer: this.checkData.containerData.pickContainer,
1303
+ ...data
1304
+ })
1305
+ }
1306
+ }
1307
+ }
1308
+ </script>
1309
+
1310
+ <style scoped lang="less">
1311
+ .materials-box{
1312
+ margin-top: 5px;
1313
+ padding: 0 5px;
1314
+ border-radius: 5px;
1315
+ border: solid 1px #f0f0f0;
1316
+ }
1317
+
1318
+ .col-1{
1319
+ width: 35%;
1320
+ flex-shrink: 0;
1321
+ }
1322
+ .col-2{
1323
+ width: 55%;
1324
+ flex-shrink: 0;
1325
+ }
1326
+ .col-3{
1327
+ width: 24px;
1328
+ flex-shrink: 0;
1329
+ }
1330
+ </style>