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

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/dist/logwire-wms-pda-ui.js +7 -0
  3. package/package.json +69 -69
  4. package/src/api/common/Device.js +43 -43
  5. package/src/api/common/Dict.js +19 -19
  6. package/src/api/common/GetImgSrc.js +20 -20
  7. package/src/api/common/Language.js +31 -31
  8. package/src/api/common/Lot.js +20 -20
  9. package/src/api/common/Msg.js +26 -26
  10. package/src/api/common/Permissions.js +22 -22
  11. package/src/api/common/Print.js +65 -65
  12. package/src/api/common/Task.js +61 -61
  13. package/src/api/common/UUID.js +28 -28
  14. package/src/api/common/User.js +53 -53
  15. package/src/api/common/Waerhouse.js +28 -28
  16. package/src/api/common/barcode.js +165 -165
  17. package/src/api/common/common.js +33 -33
  18. package/src/api/common/index.js +37 -37
  19. package/src/api/inbound/index.js +6 -6
  20. package/src/api/inbound/quality.js +99 -99
  21. package/src/api/inbound/receive.js +119 -119
  22. package/src/api/inner/count/index.js +97 -97
  23. package/src/api/inner/disposeAbnormal/action.js +69 -69
  24. package/src/api/inner/disposeAbnormal/index.js +33 -33
  25. package/src/api/inner/materialApply/index.js +51 -51
  26. package/src/api/inner/move/abnormalMove.js +25 -25
  27. package/src/api/inner/move/lpnMove.js +25 -25
  28. package/src/api/inner/move/taskMove.js +57 -57
  29. package/src/api/inner/newProject/action.js +88 -88
  30. package/src/api/inner/newProject/index.js +17 -17
  31. package/src/api/inner/reportAbnormal/index.js +34 -34
  32. package/src/api/outbound/bale/checkBale/action.js +123 -123
  33. package/src/api/outbound/bale/checkBale/allCheck.js +25 -25
  34. package/src/api/outbound/bale/checkBale/index.js +52 -52
  35. package/src/api/outbound/delivery/action.js +148 -148
  36. package/src/api/outbound/delivery/addOrder.js +32 -32
  37. package/src/api/outbound/delivery/index.js +25 -25
  38. package/src/api/outbound/pick/alone.js +60 -60
  39. package/src/api/outbound/pick/box.js +42 -42
  40. package/src/api/outbound/pick/index.js +60 -60
  41. package/src/api/outbound/pick/lpn.js +42 -42
  42. package/src/api/outbound/pick/notAlone.js +33 -33
  43. package/src/api/outbound/pickMerge/index.js +69 -69
  44. package/src/api/outbound/sow/action.js +123 -123
  45. package/src/api/outbound/sow/index.js +24 -24
  46. package/src/api/outbound/summary/box.js +33 -33
  47. package/src/api/outbound/summary/lpn.js +23 -23
  48. package/src/api/receive/abnormal.js +34 -34
  49. package/src/api/receive/putaway.js +82 -82
  50. package/src/api/receive/randomMove.js +43 -43
  51. package/src/api/receive/receipt.js +25 -25
  52. package/src/assets/css/changeVant.less +22 -22
  53. package/src/assets/css/global.less +411 -411
  54. package/src/assets/css/index.less +4 -4
  55. package/src/assets/css/var.less +117 -117
  56. package/src/assets/css//345/205/250/345/261/200/346/240/267/345/274/217.md +31 -31
  57. package/src/components/module/InnerAbnormal/index.js +11 -11
  58. package/src/components/module/InnerAbnormal/index.vue +367 -367
  59. package/src/components/module/Login/index.js +11 -11
  60. package/src/components/module/Login/index.vue +324 -328
  61. package/src/components/module/Login//347/231/273/345/275/225/346/250/241/345/235/227.md +1 -1
  62. package/src/components/module/Lot/index.js +11 -11
  63. package/src/components/module/Lot/index.vue +181 -181
  64. package/src/components/module/Lot//346/211/271/346/254/241/345/261/236/346/200/247.md +2 -2
  65. package/src/components/module/LotLook/index.js +11 -11
  66. package/src/components/module/LotLook/index.vue +80 -80
  67. package/src/components/module/Menu/index.js +12 -12
  68. package/src/components/module/Menu/index.vue +118 -118
  69. package/src/components/module/Menu//350/217/234/345/215/225/346/240/217.md +1 -1
  70. package/src/components/module/MsgItem/index.js +11 -11
  71. package/src/components/module/MsgItem/index.vue +109 -109
  72. 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
  73. package/src/components/module/OnLine/index.js +11 -11
  74. package/src/components/module/OnLine/index.vue +195 -195
  75. 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
  76. package/src/components/module/ReceiveAbnormal/index.js +11 -11
  77. package/src/components/module/ReceiveAbnormal/index.vue +865 -865
  78. package/src/components/module/ScanDataList/index.js +11 -11
  79. package/src/components/module/ScanDataList/index.vue +326 -326
  80. package/src/components/module/SkuInfo/index.js +11 -11
  81. package/src/components/module/SkuInfo/index.vue +65 -65
  82. package/src/components/module/SystemInfo/index.js +11 -11
  83. package/src/components/module/SystemInfo/index.vue +217 -217
  84. 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
  85. package/src/components/module/index.js +42 -42
  86. package/src/components/page/common/Device/index.js +11 -11
  87. package/src/components/page/common/Device/index.vue +186 -186
  88. package/src/components/page/common/Device//350/256/276/345/244/207/347/256/241/347/220/206/351/241/265.md +1 -1
  89. package/src/components/page/common/Home/index.js +11 -11
  90. package/src/components/page/common/Home/index.vue +113 -113
  91. package/src/components/page/common/Home//344/270/273/351/241/265.md +1 -1
  92. package/src/components/page/common/Language/index.js +11 -11
  93. package/src/components/page/common/Language/index.vue +142 -142
  94. package/src/components/page/common/Language//350/257/255/350/250/200.md +1 -1
  95. package/src/components/page/common/Login/index.js +11 -11
  96. package/src/components/page/common/Login/index.vue +157 -157
  97. package/src/components/page/common/Login//347/231/273/345/275/225/351/241/265.md +1 -1
  98. package/src/components/page/common/Menu/index.js +11 -11
  99. package/src/components/page/common/Menu/index.vue +71 -71
  100. package/src/components/page/common/Menu//350/217/234/345/215/225/351/241/265.md +1 -1
  101. package/src/components/page/common/Msg/index.js +11 -11
  102. package/src/components/page/common/Msg/index.vue +152 -152
  103. package/src/components/page/common/Msg//346/266/210/346/201/257/351/241/265.md +1 -1
  104. package/src/components/page/common/My/index.js +11 -11
  105. package/src/components/page/common/My/index.vue +477 -477
  106. package/src/components/page/common/My//346/210/221/347/232/204/347/256/241/347/220/206/351/241/265.md +1 -1
  107. package/src/components/page/common/Print/index.js +11 -11
  108. package/src/components/page/common/Print/index.vue +314 -314
  109. 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
  110. package/src/components/page/common/Task/index.js +11 -11
  111. package/src/components/page/common/Task/index.vue +699 -699
  112. package/src/components/page/common/Task//344/273/273/345/212/241/351/241/265.md +1 -1
  113. package/src/components/page/common/Warehouse/index.js +11 -11
  114. package/src/components/page/common/Warehouse/index.vue +216 -213
  115. package/src/components/page/common/Warehouse//344/273/223/345/272/223/351/200/211/346/213/251/351/241/265.md +1 -1
  116. package/src/components/page/common/index.js +39 -39
  117. package/src/components/page/count/components/CountBoard.vue +115 -115
  118. package/src/components/page/count/components/RandomCount.vue +153 -153
  119. package/src/components/page/count/index.js +21 -21
  120. package/src/components/page/count/inv/action/index.js +5 -5
  121. package/src/components/page/count/inv/action/index.vue +271 -271
  122. package/src/components/page/count/inv/index/index.js +5 -5
  123. package/src/components/page/count/inv/index/index.vue +189 -189
  124. package/src/components/page/count/loc/action/index.js +5 -5
  125. package/src/components/page/count/loc/action/index.vue +545 -545
  126. package/src/components/page/count/loc/index/index.js +5 -5
  127. package/src/components/page/count/loc/index/index.vue +184 -184
  128. package/src/components/page/inbound/components/AsnInfo.vue +180 -180
  129. package/src/components/page/inbound/components/AsnSkuInfo.vue +45 -45
  130. package/src/components/page/inbound/components/QualityCard.vue +230 -230
  131. package/src/components/page/inbound/components/QualityTaskInfo.vue +88 -88
  132. package/src/components/page/inbound/components/SnsList.vue +98 -98
  133. package/src/components/page/inbound/index.js +16 -16
  134. package/src/components/page/inbound/newProject/action/index.js +13 -13
  135. package/src/components/page/inbound/newProject/action/index.vue +1468 -1468
  136. package/src/components/page/inbound/newProject/index/index.js +13 -13
  137. package/src/components/page/inbound/newProject/index/index.vue +121 -121
  138. package/src/components/page/inbound/receive/home/index.js +5 -5
  139. package/src/components/page/inbound/receive/home/index.vue +73 -73
  140. package/src/components/page/inbound/receive/index/index.js +5 -5
  141. package/src/components/page/inbound/receive/index/index.vue +89 -89
  142. package/src/components/page/inbound/receive/quality/LwInboundQualityExecutePage.vue +405 -405
  143. package/src/components/page/inbound/receive/quality/LwInboundQualityTaskListPage.vue +163 -163
  144. package/src/components/page/inbound/receive/quality/index.js +16 -16
  145. package/src/components/page/inbound/receive/receive-sku/LwInboundReceiveSkuAdvancePage.vue +320 -320
  146. package/src/components/page/inbound/receive/receive-sku/LwInboundReceiveSkuDirectPage.vue +407 -407
  147. package/src/components/page/inbound/receive/receive-sku/LwInboundReceiveSkuScanPage.vue +149 -149
  148. package/src/components/page/inbound/receive/receive-sku/index.js +19 -19
  149. package/src/components/page/index.js +33 -33
  150. package/src/components/page/inner/abnormalMove/index/index.js +11 -11
  151. package/src/components/page/inner/abnormalMove/index/index.vue +468 -468
  152. package/src/components/page/inner/disposeAbnormal/action/index.js +11 -11
  153. package/src/components/page/inner/disposeAbnormal/action/index.vue +524 -524
  154. package/src/components/page/inner/disposeAbnormal/components/abnInfo/index.vue +655 -655
  155. package/src/components/page/inner/disposeAbnormal/components/disposePopup/index.vue +229 -229
  156. package/src/components/page/inner/disposeAbnormal/components/listItem/index.vue +213 -213
  157. package/src/components/page/inner/disposeAbnormal/components/searchBar/index.vue +264 -264
  158. package/src/components/page/inner/disposeAbnormal/index/index.js +11 -11
  159. package/src/components/page/inner/disposeAbnormal/index/index.vue +237 -237
  160. package/src/components/page/inner/index.js +62 -62
  161. package/src/components/page/inner/lpnMove/action/index.js +11 -11
  162. package/src/components/page/inner/lpnMove/action/index.vue +222 -222
  163. package/src/components/page/inner/lpnMove/index/index.js +11 -11
  164. package/src/components/page/inner/lpnMove/index/index.vue +155 -155
  165. package/src/components/page/inner/materialApply/action/index.js +10 -10
  166. package/src/components/page/inner/materialApply/action/index.vue +563 -563
  167. package/src/components/page/inner/materialApply/generate/index.js +10 -10
  168. package/src/components/page/inner/materialApply/generate/index.vue +376 -376
  169. package/src/components/page/inner/movePutAway/index/index.js +11 -11
  170. package/src/components/page/inner/movePutAway/index/index.vue +363 -363
  171. package/src/components/page/inner/randomMove/components/Down/index.vue +470 -470
  172. package/src/components/page/inner/randomMove/components/Up/index.vue +523 -523
  173. package/src/components/page/inner/randomMove/index/index.js +11 -11
  174. package/src/components/page/inner/randomMove/index/index.vue +152 -152
  175. package/src/components/page/inner/reportAbnormal/action/index.js +11 -11
  176. package/src/components/page/inner/reportAbnormal/action/index.vue +246 -246
  177. package/src/components/page/inner/reportAbnormal/index/index.js +11 -11
  178. package/src/components/page/inner/reportAbnormal/index/index.vue +251 -243
  179. package/src/components/page/inner/taskMove/index/index.js +11 -11
  180. package/src/components/page/inner/taskMove/index/index.vue +1374 -1374
  181. package/src/components/page/outbound/bale/aloneBale/action/index.js +11 -11
  182. package/src/components/page/outbound/bale/aloneBale/action/index.vue +192 -192
  183. package/src/components/page/outbound/bale/aloneBale/index/index.js +11 -11
  184. package/src/components/page/outbound/bale/aloneBale/index/index.vue +86 -86
  185. package/src/components/page/outbound/bale/aloneBale/newBale/index.js +11 -11
  186. package/src/components/page/outbound/bale/aloneBale/newBale/index.vue +53 -53
  187. package/src/components/page/outbound/bale/checkBale/action/index.js +11 -11
  188. package/src/components/page/outbound/bale/checkBale/action/index.vue +1330 -1330
  189. package/src/components/page/outbound/bale/checkBale/allCheck/index.js +11 -11
  190. package/src/components/page/outbound/bale/checkBale/allCheck/index.vue +119 -119
  191. package/src/components/page/outbound/bale/checkBale/index/index.js +11 -11
  192. package/src/components/page/outbound/bale/checkBale/index/index.vue +259 -259
  193. package/src/components/page/outbound/bale/checkBale/newBale/index.js +11 -11
  194. package/src/components/page/outbound/bale/checkBale/newBale/index.vue +62 -62
  195. package/src/components/page/outbound/bale/components/allBlock/index.vue +97 -97
  196. package/src/components/page/outbound/bale/components/containerInfo/index.vue +237 -237
  197. 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
  198. package/src/components/page/outbound/bale/components/containerSkuQty/index.vue +58 -58
  199. package/src/components/page/outbound/bale/components/mainPage/index.vue +620 -620
  200. package/src/components/page/outbound/bale/components/partBlock/index.vue +197 -197
  201. package/src/components/page/outbound/bale/components/planCollapse/index.vue +396 -396
  202. package/src/components/page/outbound/bale/components/storeInfo/index.vue +135 -135
  203. 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
  204. package/src/components/page/outbound/bale/components/storeInfoSkuList/index.vue +121 -121
  205. package/src/components/page/outbound/delivery/action/index.js +11 -11
  206. package/src/components/page/outbound/delivery/action/index.vue +646 -646
  207. package/src/components/page/outbound/delivery/addOrder/index.js +11 -11
  208. package/src/components/page/outbound/delivery/addOrder/index.vue +281 -281
  209. package/src/components/page/outbound/delivery/components/boxItem/index.vue +118 -118
  210. package/src/components/page/outbound/delivery/components/orderContent/index.vue +143 -143
  211. package/src/components/page/outbound/delivery/components/orderContentTitle/index.vue +239 -239
  212. package/src/components/page/outbound/delivery/components/soAndLpnItem/index.vue +152 -152
  213. package/src/components/page/outbound/delivery/index/index.js +11 -11
  214. package/src/components/page/outbound/delivery/index/index.vue +154 -154
  215. package/src/components/page/outbound/index.js +94 -94
  216. package/src/components/page/outbound/pick/alone/index.js +11 -11
  217. package/src/components/page/outbound/pick/alone/index.vue +497 -497
  218. package/src/components/page/outbound/pick/box/index.js +11 -11
  219. package/src/components/page/outbound/pick/box/index.vue +363 -363
  220. package/src/components/page/outbound/pick/components/dataLookAndChange/index.vue +748 -748
  221. package/src/components/page/outbound/pick/components/skuLocationInfo/index.vue +208 -208
  222. package/src/components/page/outbound/pick/components/splitPutDown/index.vue +208 -208
  223. package/src/components/page/outbound/pick/index/index.js +11 -11
  224. package/src/components/page/outbound/pick/index/index.vue +624 -624
  225. package/src/components/page/outbound/pick/lpn/index.js +11 -11
  226. package/src/components/page/outbound/pick/lpn/index.vue +305 -305
  227. package/src/components/page/outbound/pick/mixin/all.js +100 -100
  228. package/src/components/page/outbound/pick/mixin/aloneAndNotAlone.js +132 -132
  229. package/src/components/page/outbound/pick/notAlone/index.js +11 -11
  230. package/src/components/page/outbound/pick/notAlone/index.vue +524 -524
  231. package/src/components/page/outbound/pickMerge/action/index.js +11 -11
  232. package/src/components/page/outbound/pickMerge/action/index.vue +543 -543
  233. package/src/components/page/outbound/pickMerge/components/containerInfo/index.vue +89 -89
  234. package/src/components/page/outbound/pickMerge/components/finishPopup/index.vue +88 -88
  235. package/src/components/page/outbound/pickMerge/components/skuInfo/index.vue +132 -132
  236. package/src/components/page/outbound/pickMerge/content/index.js +11 -11
  237. package/src/components/page/outbound/pickMerge/content/index.vue +170 -170
  238. package/src/components/page/outbound/pickMerge/index/index.js +11 -11
  239. package/src/components/page/outbound/pickMerge/index/index.vue +77 -77
  240. package/src/components/page/outbound/sow/action/index.js +11 -11
  241. package/src/components/page/outbound/sow/action/index.vue +1420 -1420
  242. package/src/components/page/outbound/sow/components/sowLocationList/index.vue +80 -80
  243. package/src/components/page/outbound/sow/components/waitSowCollapse/index.vue +105 -105
  244. package/src/components/page/outbound/sow/index/index.js +11 -11
  245. package/src/components/page/outbound/sow/index/index.vue +374 -374
  246. package/src/components/page/outbound/summary/box/index/index.js +11 -11
  247. package/src/components/page/outbound/summary/box/index/index.vue +645 -645
  248. package/src/components/page/outbound/summary/lpn/action/index.js +12 -12
  249. package/src/components/page/outbound/summary/lpn/action/index.vue +253 -253
  250. package/src/components/page/outbound/summary/lpn/index/index.js +12 -12
  251. package/src/components/page/outbound/summary/lpn/index/index.vue +70 -70
  252. package/src/components/page/receive/abnormal/action/index.js +11 -11
  253. package/src/components/page/receive/abnormal/action/index.vue +45 -45
  254. package/src/components/page/receive/abnormal/index/index.js +11 -11
  255. package/src/components/page/receive/abnormal/index/index.vue +73 -73
  256. package/src/components/page/receive/index.js +36 -36
  257. package/src/components/page/receive/putaway/components/SkuInfo/index.vue +247 -247
  258. package/src/components/page/receive/putaway/components/SkuPutAwayInfo/index.vue +203 -203
  259. package/src/components/page/receive/putaway/components/TaskInfo/index.vue +216 -216
  260. package/src/components/page/receive/putaway/index/index.js +11 -11
  261. package/src/components/page/receive/putaway/index/index.vue +288 -288
  262. package/src/components/page/receive/putaway/lpnAction/index.js +11 -11
  263. package/src/components/page/receive/putaway/lpnAction/index.vue +332 -332
  264. package/src/components/page/receive/putaway/skuAction/index.js +11 -11
  265. package/src/components/page/receive/putaway/skuAction/index.vue +742 -741
  266. package/src/components/page/receive/receipt/action/index.js +11 -11
  267. package/src/components/page/receive/receipt/action/index.vue +260 -260
  268. package/src/components/page/receive/receipt/index/index.js +11 -11
  269. package/src/components/page/receive/receipt/index/index.vue +124 -124
  270. package/src/components/ui/BottomBar/index.js +5 -5
  271. package/src/components/ui/BottomBar/index.vue +72 -72
  272. package/src/components/ui/BottomBarBtnHidden/index.js +11 -11
  273. package/src/components/ui/BottomBarBtnHidden/index.vue +91 -91
  274. package/src/components/ui/Button/index.js +5 -5
  275. package/src/components/ui/Button/index.vue +183 -183
  276. package/src/components/ui/CarPlate/index.js +11 -11
  277. package/src/components/ui/CarPlate/index.vue +378 -378
  278. package/src/components/ui/CarPlate//350/275/246/347/211/214/345/217/267.md +1 -1
  279. package/src/components/ui/Cell/index.js +5 -5
  280. package/src/components/ui/Cell/index.vue +259 -259
  281. package/src/components/ui/CellPopupDate/index.js +11 -11
  282. package/src/components/ui/CellPopupDate/index.vue +167 -167
  283. 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
  284. package/src/components/ui/CellPopupRadio/index.js +11 -11
  285. package/src/components/ui/CellPopupRadio/index.vue +136 -136
  286. 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
  287. package/src/components/ui/CutCard/index.js +11 -11
  288. package/src/components/ui/CutCard/index.vue +132 -132
  289. 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
  290. package/src/components/ui/DataLookBg/index.js +11 -11
  291. package/src/components/ui/DataLookBg/index.vue +104 -104
  292. 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
  293. package/src/components/ui/ErrorMsg/index.js +59 -59
  294. package/src/components/ui/ErrorMsg/index.vue +141 -141
  295. package/src/components/ui/Form/index.js +5 -5
  296. package/src/components/ui/Form/index.vue +36 -36
  297. package/src/components/ui/ImgLook/index.js +5 -5
  298. package/src/components/ui/ImgLook/index.vue +96 -96
  299. package/src/components/ui/ImgUpload/index.js +12 -12
  300. package/src/components/ui/ImgUpload/index.vue +120 -120
  301. package/src/components/ui/Input/index.js +5 -5
  302. package/src/components/ui/Input/index.vue +554 -546
  303. package/src/components/ui/Input//350/276/223/345/205/245/346/241/206.md +1 -1
  304. package/src/components/ui/Loading/index.js +49 -49
  305. package/src/components/ui/Loading/index.vue +61 -61
  306. package/src/components/ui/MenuItem/index.js +5 -5
  307. package/src/components/ui/MenuItem/index.vue +170 -170
  308. package/src/components/ui/NavBar/index.js +5 -5
  309. package/src/components/ui/NavBar/index.vue +143 -143
  310. package/src/components/ui/NavBar//351/241/266/351/203/250/345/257/274/350/210/252/346/240/217.md +1 -1
  311. package/src/components/ui/NotData/index.js +5 -5
  312. package/src/components/ui/NotData/index.vue +75 -75
  313. package/src/components/ui/Pages/index.js +5 -5
  314. package/src/components/ui/Pages/index.vue +186 -186
  315. package/src/components/ui/Popup/index.js +5 -5
  316. package/src/components/ui/Popup/index.vue +245 -245
  317. package/src/components/ui/PopupCheckbox/index.js +5 -5
  318. package/src/components/ui/PopupCheckbox/index.vue +207 -207
  319. package/src/components/ui/PopupRadio/index.js +5 -5
  320. package/src/components/ui/PopupRadio/index.vue +124 -124
  321. package/src/components/ui/TabBar/index.js +11 -11
  322. package/src/components/ui/TabBar/index.vue +132 -132
  323. package/src/components/ui/TabBar//345/272/225/351/203/250/345/257/274/350/210/252/346/240/217.md +1 -1
  324. package/src/components/ui/Table/index.js +5 -5
  325. package/src/components/ui/Table/index.vue +213 -213
  326. package/src/components/ui/Tag/index.js +5 -5
  327. package/src/components/ui/Tag/index.vue +142 -142
  328. package/src/components/ui/TitleValueCell/index.js +11 -11
  329. package/src/components/ui/TitleValueCell/index.vue +61 -61
  330. package/src/components/ui/index.js +84 -84
  331. package/src/directive/Permissions.js +35 -35
  332. package/src/directive/index.js +12 -12
  333. package/src/index.js +67 -67
  334. package/src/mixins/loginAndInit/index.js +27 -0
  335. package/src/mixins/loginAndInit//346/234/211token/346/227/266/345/200/231/345/222/214/346/234/211/344/273/223/345/272/223id/346/227/266/351/234/200/350/246/201/345/210/235/345/247/213/345/214/226/347/232/204/346/225/260/346/215/256.md +0 -0
  336. package/src/mixins//346/267/267/345/205/245.md +0 -0
  337. package/src/router/index.js +405 -405
  338. package/src/router/menu.js +367 -367
  339. package/src/test/file/index.js +11 -11
  340. package/src/test/file/index.vue +25 -25
  341. package/src/utils/ApiUtils.js +48 -48
  342. package/src/utils/AppBack.js +44 -44
  343. package/src/utils/Axios.js +160 -160
  344. package/src/utils/BarcodeResolve.js +281 -281
  345. package/src/utils/DateTime.js +219 -219
  346. package/src/utils/DeepCopy.js +61 -61
  347. package/src/utils/Dict.js +73 -73
  348. package/src/utils/GetImgSrc.js +53 -53
  349. package/src/utils/Init.js +12 -12
  350. package/src/utils/Language.js +59 -59
  351. package/src/utils/LocalStorage.js +30 -30
  352. package/src/utils/Permissions.js +51 -51
  353. package/src/utils/Print.js +179 -179
  354. package/src/utils/README.md +2 -2
  355. package/src/utils/RouteInit.js +14 -14
  356. package/src/utils/ScanRule.js +150 -150
  357. package/src/utils/SetColor.js +22 -22
  358. package/src/utils/TabBar.js +30 -30
  359. package/src/utils/Tip.js +26 -26
  360. package/src/utils/Toast.js +41 -41
  361. package/src/utils/UUID.js +33 -33
  362. package/src/utils/Warehouse.js +26 -26
  363. package/src/utils/index.js +63 -63
  364. package/src/utils/windowGlobalData.js +88 -88
  365. package/src/views/common/home/index.vue +67 -67
  366. package/src/views/common/init/index.vue +128 -124
  367. package/src/views/common/login/index.vue +23 -23
  368. package/src/views/common/menu/menuOne.vue +36 -36
  369. package/src/views/common/menu/menuTwo.vue +33 -33
  370. package/src/views/common/my/device.vue +23 -23
  371. package/src/views/common/my/index.vue +23 -23
  372. package/src/views/common/my/language.vue +23 -23
  373. package/src/views/common/my/msg.vue +23 -23
  374. package/src/views/common/my/print.vue +23 -23
  375. package/src/views/common/my/warehouse.vue +25 -25
  376. package/src/views/common/task/index.vue +23 -23
  377. package/src/views/count/index.vue +87 -87
  378. package/src/views/count/inv/action.vue +12 -12
  379. package/src/views/count/inv/index.vue +12 -12
  380. package/src/views/count/loc/action.vue +12 -12
  381. package/src/views/count/loc/index.vue +12 -12
  382. package/src/views/inbound/newProject/action.vue +23 -23
  383. package/src/views/inbound/newProject/index.vue +23 -23
  384. package/src/views/inbound/quality/InboundQualityExecuteView.vue +11 -11
  385. package/src/views/inbound/quality/InboundQualityTaskListView.vue +11 -11
  386. package/src/views/inbound/receive/home.vue +14 -14
  387. package/src/views/inbound/receive/index.vue +13 -13
  388. package/src/views/inbound/receive/sku/InboundReceiveSkuAdvanceView.vue +13 -13
  389. package/src/views/inbound/receive/sku/InboundReceiveSkuDirectView.vue +13 -13
  390. package/src/views/inbound/receive/sku/InboundReceiveSkuScanView.vue +13 -13
  391. package/src/views/inner/abnormalMove/index.vue +23 -23
  392. package/src/views/inner/disposeAbnormal/action.vue +23 -23
  393. package/src/views/inner/disposeAbnormal/index.vue +23 -23
  394. package/src/views/inner/lpnMove/action.vue +23 -23
  395. package/src/views/inner/lpnMove/index.vue +23 -23
  396. package/src/views/inner/materialApply/action.vue +22 -22
  397. package/src/views/inner/materialApply/generate.vue +22 -22
  398. package/src/views/inner/movePutAway/index.vue +22 -22
  399. package/src/views/inner/randomMove/index.vue +23 -23
  400. package/src/views/inner/reportAbnormal/action.vue +23 -23
  401. package/src/views/inner/reportAbnormal/index.vue +23 -23
  402. package/src/views/inner/taskMove/index.vue +23 -23
  403. package/src/views/outbound/aloneBale/action.vue +23 -23
  404. package/src/views/outbound/aloneBale/index.vue +23 -23
  405. package/src/views/outbound/aloneBale/newBale.vue +23 -23
  406. package/src/views/outbound/bale/action.vue +23 -23
  407. package/src/views/outbound/bale/allCheck.vue +23 -23
  408. package/src/views/outbound/bale/index.vue +23 -23
  409. package/src/views/outbound/bale/newBale.vue +23 -23
  410. package/src/views/outbound/delivery/action.vue +23 -23
  411. package/src/views/outbound/delivery/addOrder.vue +23 -23
  412. package/src/views/outbound/delivery/index.vue +23 -23
  413. package/src/views/outbound/pick/aloneAction.vue +23 -23
  414. package/src/views/outbound/pick/boxAction.vue +23 -23
  415. package/src/views/outbound/pick/index.vue +23 -23
  416. package/src/views/outbound/pick/lpnAction.vue +23 -23
  417. package/src/views/outbound/pick/notAloneAction.vue +23 -23
  418. package/src/views/outbound/pickMerge/action.vue +23 -23
  419. package/src/views/outbound/pickMerge/content.vue +23 -23
  420. package/src/views/outbound/pickMerge/index.vue +23 -23
  421. package/src/views/outbound/sow/action.vue +23 -23
  422. package/src/views/outbound/sow/index.vue +23 -23
  423. package/src/views/outbound/summary/box/index.vue +23 -23
  424. package/src/views/outbound/summary/lpn/action.vue +23 -23
  425. package/src/views/outbound/summary/lpn/index.vue +23 -23
  426. package/src/views/receive/abnormal/action.vue +23 -23
  427. package/src/views/receive/abnormal/index.vue +24 -24
  428. package/src/views/receive/putaway/index.vue +23 -23
  429. package/src/views/receive/putaway/lpnAction.vue +23 -23
  430. package/src/views/receive/putaway/skuAction.vue +23 -23
  431. package/src/views/receive/receipt/action.vue +25 -25
  432. package/src/views/receive/receipt/index.vue +25 -25
@@ -1,1330 +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
- :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>
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>