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

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 (435) hide show
  1. package/README.md +134 -134
  2. package/dist/logwire-wms-pda-ui.js +2 -2
  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 -25
  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 -109
  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 -0
  30. package/src/api/inner/newProject/index.js +18 -0
  31. package/src/api/inner/reportAbnormal/index.js +34 -34
  32. package/src/api/outbound/bale/checkBale/action.js +114 -0
  33. package/src/api/outbound/bale/checkBale/allCheck.js +25 -0
  34. package/src/api/outbound/bale/checkBale/index.js +52 -0
  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 +347 -343
  59. package/src/components/module/Login/index.js +11 -11
  60. package/src/components/module/Login/index.vue +328 -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 -847
  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 +213 -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/index.vue → CountBoard.vue} +115 -115
  118. package/src/components/page/count/components/RandomCount.vue +163 -0
  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 -12
  122. package/src/components/page/count/inv/index/index.js +5 -5
  123. package/src/components/page/count/inv/index/index.vue +190 -13
  124. package/src/components/page/count/loc/action/index.js +5 -5
  125. package/src/components/page/count/loc/action/index.vue +545 -514
  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 -177
  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 +10 -10
  134. package/src/components/page/inbound/receive/home/index.js +5 -5
  135. package/src/components/page/inbound/receive/home/index.vue +73 -73
  136. package/src/components/page/inbound/receive/index/index.js +5 -5
  137. package/src/components/page/inbound/receive/index/index.vue +89 -89
  138. package/src/components/page/inbound/receive/quality/LwInboundQualityExecutePage.vue +397 -337
  139. package/src/components/page/inbound/receive/quality/LwInboundQualityTaskListPage.vue +166 -157
  140. package/src/components/page/inbound/receive/quality/index.js +16 -16
  141. package/src/components/page/inbound/receive/receive-sku/LwInboundReceiveSkuAdvancePage.vue +318 -267
  142. package/src/components/page/inbound/receive/receive-sku/LwInboundReceiveSkuDirectPage.vue +401 -351
  143. package/src/components/page/inbound/receive/receive-sku/LwInboundReceiveSkuScanPage.vue +149 -149
  144. package/src/components/page/inbound/receive/receive-sku/index.js +19 -19
  145. package/src/components/page/index.js +33 -33
  146. package/src/components/page/inner/abnormalMove/index/index.js +11 -11
  147. package/src/components/page/inner/abnormalMove/index/index.vue +468 -463
  148. package/src/components/page/inner/disposeAbnormal/action/index.js +11 -11
  149. package/src/components/page/inner/disposeAbnormal/action/index.vue +524 -524
  150. package/src/components/page/inner/disposeAbnormal/components/abnInfo/index.vue +655 -655
  151. package/src/components/page/inner/disposeAbnormal/components/disposePopup/index.vue +229 -229
  152. package/src/components/page/inner/disposeAbnormal/components/listItem/index.vue +213 -213
  153. package/src/components/page/inner/disposeAbnormal/components/searchBar/index.vue +264 -260
  154. package/src/components/page/inner/disposeAbnormal/index/index.js +11 -11
  155. package/src/components/page/inner/disposeAbnormal/index/index.vue +237 -247
  156. package/src/components/page/inner/index.js +66 -58
  157. package/src/components/page/inner/lpnMove/action/index.js +11 -11
  158. package/src/components/page/inner/lpnMove/action/index.vue +222 -221
  159. package/src/components/page/inner/lpnMove/index/index.js +11 -11
  160. package/src/components/page/inner/lpnMove/index/index.vue +155 -153
  161. package/src/components/page/inner/materialApply/action/index.js +10 -10
  162. package/src/components/page/inner/materialApply/action/index.vue +563 -554
  163. package/src/components/page/inner/materialApply/generate/index.js +10 -10
  164. package/src/components/page/inner/materialApply/generate/index.vue +376 -376
  165. package/src/components/page/inner/movePutAway/index/index.js +11 -11
  166. package/src/components/page/inner/movePutAway/index/index.vue +363 -363
  167. package/src/components/page/inner/newProject/action/index.js +13 -0
  168. package/src/components/page/inner/{movePutAway/index → newProject/action}/index.less +0 -0
  169. package/src/components/page/inner/newProject/action/index.vue +1464 -0
  170. package/src/components/page/inner/newProject/index/index.js +13 -0
  171. package/src/components/page/inner/newProject/index/index.less +0 -0
  172. package/src/components/page/inner/newProject/index/index.vue +122 -0
  173. package/src/components/page/inner/newProject//346/226/260/345/223/201/351/205/215/347/275/256.md +0 -0
  174. package/src/components/page/inner/randomMove/components/Down/index.vue +470 -465
  175. package/src/components/page/inner/randomMove/components/Up/index.vue +523 -519
  176. package/src/components/page/inner/randomMove/index/index.js +11 -11
  177. package/src/components/page/inner/randomMove/index/index.vue +152 -152
  178. package/src/components/page/inner/reportAbnormal/action/index.js +11 -11
  179. package/src/components/page/inner/reportAbnormal/action/index.vue +246 -246
  180. package/src/components/page/inner/reportAbnormal/index/index.js +11 -11
  181. package/src/components/page/inner/reportAbnormal/index/index.vue +243 -240
  182. package/src/components/page/inner/taskMove/index/index.js +11 -11
  183. package/src/components/page/inner/taskMove/index/index.vue +1374 -1363
  184. package/src/components/page/outbound/bale/aloneBale/action/index.js +11 -11
  185. package/src/components/page/outbound/bale/aloneBale/action/index.vue +192 -192
  186. package/src/components/page/outbound/bale/aloneBale/index/index.js +11 -11
  187. package/src/components/page/outbound/bale/aloneBale/index/index.vue +86 -86
  188. package/src/components/page/outbound/bale/aloneBale/newBale/index.js +11 -11
  189. package/src/components/page/outbound/bale/aloneBale/newBale/index.vue +53 -53
  190. package/src/components/page/outbound/bale/checkBale/action/index.js +11 -11
  191. package/src/components/page/outbound/bale/checkBale/action/index.vue +1321 -58
  192. package/src/components/page/outbound/bale/checkBale/allCheck/index.js +11 -11
  193. package/src/components/page/outbound/bale/checkBale/allCheck/index.vue +119 -88
  194. package/src/components/page/outbound/bale/checkBale/index/index.js +11 -11
  195. package/src/components/page/outbound/bale/checkBale/index/index.vue +259 -176
  196. package/src/components/page/outbound/bale/checkBale/newBale/index.js +11 -11
  197. package/src/components/page/outbound/bale/checkBale/newBale/index.vue +62 -60
  198. package/src/components/page/outbound/bale/components/allBlock/index.vue +97 -0
  199. package/src/components/page/outbound/bale/components/allBlock//345/205/250/351/203/250/346/213/246/346/210/252.md +0 -0
  200. package/src/components/page/outbound/bale/components/containerInfo/index.vue +229 -229
  201. 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
  202. package/src/components/page/outbound/bale/components/containerSkuQty/index.vue +58 -50
  203. package/src/components/page/outbound/bale/components/mainPage/index.vue +620 -553
  204. package/src/components/page/outbound/bale/components/partBlock/index.vue +197 -0
  205. package/src/components/page/outbound/bale/components/partBlock//351/203/250/345/210/206/346/213/246/346/210/252.md +0 -0
  206. package/src/components/page/outbound/bale/components/planCollapse/index.vue +396 -352
  207. package/src/components/page/outbound/bale/components/storeInfo/index.vue +135 -126
  208. 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
  209. package/src/components/page/outbound/bale/components/storeInfoSkuList/index.vue +121 -123
  210. package/src/components/page/outbound/delivery/action/index.js +11 -11
  211. package/src/components/page/outbound/delivery/action/index.vue +646 -642
  212. package/src/components/page/outbound/delivery/addOrder/index.js +11 -11
  213. package/src/components/page/outbound/delivery/addOrder/index.vue +281 -274
  214. package/src/components/page/outbound/delivery/components/boxItem/index.vue +118 -118
  215. package/src/components/page/outbound/delivery/components/orderContent/index.vue +143 -143
  216. package/src/components/page/outbound/delivery/components/orderContentTitle/index.vue +239 -239
  217. package/src/components/page/outbound/delivery/components/soAndLpnItem/index.vue +152 -152
  218. package/src/components/page/outbound/delivery/index/index.js +11 -11
  219. package/src/components/page/outbound/delivery/index/index.vue +154 -153
  220. package/src/components/page/outbound/index.js +94 -94
  221. package/src/components/page/outbound/pick/alone/index.js +11 -11
  222. package/src/components/page/outbound/pick/alone/index.vue +497 -493
  223. package/src/components/page/outbound/pick/box/index.js +11 -11
  224. package/src/components/page/outbound/pick/box/index.vue +363 -360
  225. package/src/components/page/outbound/pick/components/dataLookAndChange/index.vue +748 -748
  226. package/src/components/page/outbound/pick/components/skuLocationInfo/index.vue +208 -208
  227. package/src/components/page/outbound/pick/components/splitPutDown/index.vue +208 -206
  228. package/src/components/page/outbound/pick/components/splitPutDown//346/213/206/346/235/277/344/270/213/346/236/266.md +0 -0
  229. package/src/components/page/outbound/pick/index/index.js +11 -11
  230. package/src/components/page/outbound/pick/index/index.vue +624 -624
  231. package/src/components/page/outbound/pick/lpn/index.js +11 -11
  232. package/src/components/page/outbound/pick/lpn/index.vue +305 -303
  233. package/src/components/page/outbound/pick/mixin/all.js +100 -100
  234. package/src/components/page/outbound/pick/mixin/aloneAndNotAlone.js +132 -132
  235. package/src/components/page/outbound/pick/notAlone/index.js +11 -11
  236. package/src/components/page/outbound/pick/notAlone/index.vue +524 -519
  237. package/src/components/page/outbound/pickMerge/action/index.js +11 -11
  238. package/src/components/page/outbound/pickMerge/action/index.vue +543 -541
  239. package/src/components/page/outbound/pickMerge/components/containerInfo/index.vue +89 -89
  240. package/src/components/page/outbound/pickMerge/components/finishPopup/index.vue +88 -88
  241. package/src/components/page/outbound/pickMerge/components/skuInfo/index.vue +132 -132
  242. package/src/components/page/outbound/pickMerge/content/index.js +11 -11
  243. package/src/components/page/outbound/pickMerge/content/index.vue +170 -169
  244. package/src/components/page/outbound/pickMerge/index/index.js +11 -11
  245. package/src/components/page/outbound/pickMerge/index/index.vue +77 -76
  246. package/src/components/page/outbound/sow/action/index.js +11 -11
  247. package/src/components/page/outbound/sow/action/index.vue +1420 -1408
  248. package/src/components/page/outbound/sow/components/sowLocationList/index.vue +80 -80
  249. package/src/components/page/outbound/sow/components/waitSowCollapse/index.vue +105 -105
  250. package/src/components/page/outbound/sow/index/index.js +11 -11
  251. package/src/components/page/outbound/sow/index/index.vue +374 -374
  252. package/src/components/page/outbound/summary/box/index/index.js +11 -11
  253. package/src/components/page/outbound/summary/box/index/index.vue +645 -643
  254. package/src/components/page/outbound/summary/lpn/action/index.js +12 -12
  255. package/src/components/page/outbound/summary/lpn/action/index.vue +253 -251
  256. package/src/components/page/outbound/summary/lpn/index/index.js +12 -12
  257. package/src/components/page/outbound/summary/lpn/index/index.vue +70 -69
  258. package/src/components/page/receive/abnormal/action/index.js +11 -11
  259. package/src/components/page/receive/abnormal/action/index.vue +45 -45
  260. package/src/components/page/receive/abnormal/index/index.js +11 -11
  261. package/src/components/page/receive/abnormal/index/index.vue +73 -72
  262. package/src/components/page/receive/index.js +36 -36
  263. package/src/components/page/receive/putaway/components/SkuInfo/index.vue +247 -247
  264. package/src/components/page/receive/putaway/components/SkuPutAwayInfo/index.vue +203 -203
  265. package/src/components/page/receive/putaway/components/TaskInfo/index.vue +216 -216
  266. package/src/components/page/receive/putaway/index/index.js +11 -11
  267. package/src/components/page/receive/putaway/index/index.vue +288 -286
  268. package/src/components/page/receive/putaway/lpnAction/index.js +11 -11
  269. package/src/components/page/receive/putaway/lpnAction/index.vue +332 -330
  270. package/src/components/page/receive/putaway/skuAction/index.js +11 -11
  271. package/src/components/page/receive/putaway/skuAction/index.vue +741 -735
  272. package/src/components/page/receive/receipt/action/index.js +11 -11
  273. package/src/components/page/receive/receipt/action/index.vue +260 -260
  274. package/src/components/page/receive/receipt/index/index.js +11 -11
  275. package/src/components/page/receive/receipt/index/index.vue +124 -123
  276. package/src/components/ui/BottomBar/index.js +5 -5
  277. package/src/components/ui/BottomBar/index.vue +72 -72
  278. package/src/components/ui/BottomBarBtnHidden/index.js +11 -11
  279. package/src/components/ui/BottomBarBtnHidden/index.vue +91 -91
  280. package/src/components/ui/Button/index.js +5 -5
  281. package/src/components/ui/Button/index.vue +183 -183
  282. package/src/components/ui/CarPlate/index.js +11 -11
  283. package/src/components/ui/CarPlate/index.vue +378 -378
  284. package/src/components/ui/CarPlate//350/275/246/347/211/214/345/217/267.md +1 -1
  285. package/src/components/ui/Cell/index.js +5 -5
  286. package/src/components/ui/Cell/index.vue +259 -259
  287. package/src/components/ui/CellPopupDate/index.js +11 -11
  288. package/src/components/ui/CellPopupDate/index.vue +167 -167
  289. 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
  290. package/src/components/ui/CellPopupRadio/index.js +11 -11
  291. package/src/components/ui/CellPopupRadio/index.vue +136 -136
  292. 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
  293. package/src/components/ui/CutCard/index.js +11 -11
  294. package/src/components/ui/CutCard/index.vue +132 -132
  295. 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
  296. package/src/components/ui/DataLookBg/index.js +11 -11
  297. package/src/components/ui/DataLookBg/index.vue +104 -104
  298. 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
  299. package/src/components/ui/ErrorMsg/index.js +59 -59
  300. package/src/components/ui/ErrorMsg/index.vue +141 -141
  301. package/src/components/ui/Form/index.js +5 -5
  302. package/src/components/ui/Form/index.vue +36 -36
  303. package/src/components/ui/ImgLook/index.js +5 -5
  304. package/src/components/ui/ImgLook/index.vue +96 -96
  305. package/src/components/ui/ImgUpload/index.js +12 -12
  306. package/src/components/ui/ImgUpload/index.vue +120 -120
  307. package/src/components/ui/Input/index.js +5 -5
  308. package/src/components/ui/Input/index.vue +546 -544
  309. package/src/components/ui/Input//350/276/223/345/205/245/346/241/206.md +1 -1
  310. package/src/components/ui/Loading/index.js +49 -49
  311. package/src/components/ui/Loading/index.vue +61 -61
  312. package/src/components/ui/MenuItem/index.js +5 -5
  313. package/src/components/ui/MenuItem/index.vue +170 -170
  314. package/src/components/ui/NavBar/index.js +5 -5
  315. package/src/components/ui/NavBar/index.vue +143 -143
  316. package/src/components/ui/NavBar//351/241/266/351/203/250/345/257/274/350/210/252/346/240/217.md +1 -1
  317. package/src/components/ui/NotData/index.js +5 -5
  318. package/src/components/ui/NotData/index.vue +75 -75
  319. package/src/components/ui/Pages/index.js +5 -5
  320. package/src/components/ui/Pages/index.vue +186 -186
  321. package/src/components/ui/Popup/index.js +5 -5
  322. package/src/components/ui/Popup/index.vue +245 -245
  323. package/src/components/ui/PopupCheckbox/index.js +5 -5
  324. package/src/components/ui/PopupCheckbox/index.vue +207 -207
  325. package/src/components/ui/PopupRadio/index.js +5 -5
  326. package/src/components/ui/PopupRadio/index.vue +124 -124
  327. package/src/components/ui/TabBar/index.js +11 -11
  328. package/src/components/ui/TabBar/index.vue +132 -132
  329. package/src/components/ui/TabBar//345/272/225/351/203/250/345/257/274/350/210/252/346/240/217.md +1 -1
  330. package/src/components/ui/Table/index.js +5 -5
  331. package/src/components/ui/Table/index.vue +213 -213
  332. package/src/components/ui/Tag/index.js +5 -5
  333. package/src/components/ui/Tag/index.vue +142 -142
  334. package/src/components/ui/TitleValueCell/index.js +11 -11
  335. package/src/components/ui/TitleValueCell/index.vue +61 -61
  336. package/src/components/ui/index.js +84 -84
  337. package/src/directive/Permissions.js +35 -37
  338. package/src/directive/index.js +12 -12
  339. package/src/index.js +67 -67
  340. package/src/router/index.js +405 -393
  341. package/src/router/menu.js +367 -354
  342. package/src/test/file/index.js +11 -11
  343. package/src/test/file/index.vue +25 -25
  344. package/src/utils/ApiUtils.js +48 -48
  345. package/src/utils/AppBack.js +44 -44
  346. package/src/utils/Axios.js +160 -160
  347. package/src/utils/BarcodeResolve.js +281 -0
  348. package/src/utils/DateTime.js +219 -219
  349. package/src/utils/DeepCopy.js +61 -61
  350. package/src/utils/Dict.js +73 -73
  351. package/src/utils/GetImgSrc.js +53 -53
  352. package/src/utils/Init.js +12 -12
  353. package/src/utils/Language.js +59 -59
  354. package/src/utils/LocalStorage.js +30 -30
  355. package/src/utils/Permissions.js +51 -51
  356. package/src/utils/Print.js +179 -179
  357. package/src/utils/README.md +2 -2
  358. package/src/utils/RouteInit.js +14 -14
  359. package/src/utils/ScanRule.js +150 -150
  360. package/src/utils/SetColor.js +22 -22
  361. package/src/utils/TabBar.js +30 -30
  362. package/src/utils/Tip.js +26 -26
  363. package/src/utils/Toast.js +41 -41
  364. package/src/utils/UUID.js +33 -33
  365. package/src/utils/Warehouse.js +26 -26
  366. package/src/utils/index.js +63 -61
  367. package/src/utils/windowGlobalData.js +88 -88
  368. package/src/views/common/home/index.vue +67 -67
  369. package/src/views/common/init/index.vue +124 -122
  370. package/src/views/common/login/index.vue +23 -23
  371. package/src/views/common/menu/menuOne.vue +36 -36
  372. package/src/views/common/menu/menuTwo.vue +33 -33
  373. package/src/views/common/my/device.vue +23 -23
  374. package/src/views/common/my/index.vue +23 -23
  375. package/src/views/common/my/language.vue +23 -23
  376. package/src/views/common/my/msg.vue +23 -23
  377. package/src/views/common/my/print.vue +23 -23
  378. package/src/views/common/my/warehouse.vue +25 -25
  379. package/src/views/common/task/index.vue +23 -23
  380. package/src/views/count/index.vue +87 -87
  381. package/src/views/count/inv/action.vue +12 -12
  382. package/src/views/count/inv/index.vue +12 -12
  383. package/src/views/count/loc/action.vue +12 -12
  384. package/src/views/count/loc/index.vue +12 -12
  385. package/src/views/inbound/quality/InboundQualityExecuteView.vue +11 -11
  386. package/src/views/inbound/quality/InboundQualityTaskListView.vue +11 -11
  387. package/src/views/inbound/receive/home.vue +14 -14
  388. package/src/views/inbound/receive/index.vue +13 -13
  389. package/src/views/inbound/receive/sku/InboundReceiveSkuAdvanceView.vue +13 -13
  390. package/src/views/inbound/receive/sku/InboundReceiveSkuDirectView.vue +13 -13
  391. package/src/views/inbound/receive/sku/InboundReceiveSkuScanView.vue +13 -13
  392. package/src/views/inner/abnormalMove/index.vue +23 -23
  393. package/src/views/inner/disposeAbnormal/action.vue +23 -23
  394. package/src/views/inner/disposeAbnormal/index.vue +23 -23
  395. package/src/views/inner/lpnMove/action.vue +23 -23
  396. package/src/views/inner/lpnMove/index.vue +23 -23
  397. package/src/views/inner/materialApply/action.vue +22 -22
  398. package/src/views/inner/materialApply/generate.vue +22 -22
  399. package/src/views/inner/movePutAway/index.vue +22 -22
  400. package/src/views/inner/newProject/action.vue +23 -0
  401. package/src/views/inner/newProject/index.vue +23 -0
  402. package/src/views/inner/randomMove/index.vue +23 -23
  403. package/src/views/inner/reportAbnormal/action.vue +23 -23
  404. package/src/views/inner/reportAbnormal/index.vue +23 -23
  405. package/src/views/inner/taskMove/index.vue +23 -23
  406. package/src/views/outbound/aloneBale/action.vue +23 -23
  407. package/src/views/outbound/aloneBale/index.vue +23 -23
  408. package/src/views/outbound/aloneBale/newBale.vue +23 -23
  409. package/src/views/outbound/bale/action.vue +23 -23
  410. package/src/views/outbound/bale/allCheck.vue +23 -23
  411. package/src/views/outbound/bale/index.vue +23 -23
  412. package/src/views/outbound/bale/newBale.vue +23 -23
  413. package/src/views/outbound/delivery/action.vue +23 -23
  414. package/src/views/outbound/delivery/addOrder.vue +23 -23
  415. package/src/views/outbound/delivery/index.vue +23 -23
  416. package/src/views/outbound/pick/aloneAction.vue +23 -23
  417. package/src/views/outbound/pick/boxAction.vue +23 -23
  418. package/src/views/outbound/pick/index.vue +23 -23
  419. package/src/views/outbound/pick/lpnAction.vue +23 -23
  420. package/src/views/outbound/pick/notAloneAction.vue +23 -23
  421. package/src/views/outbound/pickMerge/action.vue +23 -23
  422. package/src/views/outbound/pickMerge/content.vue +23 -23
  423. package/src/views/outbound/pickMerge/index.vue +23 -23
  424. package/src/views/outbound/sow/action.vue +23 -23
  425. package/src/views/outbound/sow/index.vue +23 -23
  426. package/src/views/outbound/summary/box/index.vue +23 -23
  427. package/src/views/outbound/summary/lpn/action.vue +23 -23
  428. package/src/views/outbound/summary/lpn/index.vue +23 -23
  429. package/src/views/receive/abnormal/action.vue +23 -23
  430. package/src/views/receive/abnormal/index.vue +24 -24
  431. package/src/views/receive/putaway/index.vue +23 -23
  432. package/src/views/receive/putaway/lpnAction.vue +23 -23
  433. package/src/views/receive/putaway/skuAction.vue +23 -23
  434. package/src/views/receive/receipt/action.vue +25 -25
  435. package/src/views/receive/receipt/index.vue +25 -25
@@ -1,1363 +1,1374 @@
1
- <!--
2
- 标准移动 - 任务界面进入
3
- @author: 张文
4
- @date: 2022-05-16
5
- -->
6
- <template>
7
- <div>
8
-
9
- <lw-nav-bar :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.title','库存移动')"/>
10
- <div id="lw-task-move-top"></div>
11
-
12
- <div class="lw-global-page-box">
13
-
14
- <!-- 看板 -->
15
- <div>
16
- <div style="padding: 10px;border-radius: 10px 10px 0 0;background: #fff">
17
- <span class="lw-global-title">
18
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.taskNo','任务号') }}
19
- </span>
20
- <span class="lw-global-value-bold">{{ taskData.taskNo }}</span>
21
- </div>
22
- <lw-data-look-bg type="bottom">
23
-
24
- <!-- 品种数 -->
25
- <div>
26
- <div>{{ taskData.skuCount || 0 }}</div>
27
- <div class="lw-data-look-bg-title">{{ $lwLanguage.get('wms_project.pda.inbound.taskMove.skuCount','品种数') }}</div>
28
- </div>
29
-
30
- <!-- 计划量 -->
31
- <div>
32
- <div>{{ taskData.planQty || 0 }}</div>
33
- <div class="lw-data-look-bg-title">
34
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.planQty','计划量') }}
35
- </div>
36
- </div>
37
-
38
- <!-- 已上架 -->
39
- <div>
40
- <div>{{ taskData.putUpQty || 0 }}</div>
41
- <div class="lw-data-look-bg-title">
42
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.putUpQty','已上架') }}
43
- </div>
44
- </div>
45
-
46
- <!-- 待上架 -->
47
- <div>
48
- <div>{{ taskData.toPutUpQty || 0 }}</div>
49
- <div class="lw-data-look-bg-title">
50
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.toPutUpQty','待上架') }}
51
- </div>
52
- </div>
53
-
54
- <!-- 异常量 -->
55
- <div>
56
- <div>{{ taskData.abnQty || 0 }}</div>
57
- <div class="lw-data-look-bg-title">
58
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.abnQty','异常量') }}
59
- </div>
60
- </div>
61
-
62
- </lw-data-look-bg>
63
- </div>
64
-
65
- <!-- tab -->
66
- <div class="lw-global-tab-box" style="margin-top: 10px">
67
- <van-tabs
68
- type="card"
69
- animated
70
- v-model="tabActive"
71
- @change="tabChange"
72
- >
73
-
74
- <!-- 下架 -->
75
- <van-tab name="down" title="下架">
76
-
77
- <div
78
- v-if="taskData.putDownMoveTaskLines.length"
79
- class="lw-global-model-box"
80
- >
81
- <!-- 商品信息 -->
82
- <div class="lw-global-row-start">
83
- <div class="lw-global-value-bold">
84
- {{ taskData.putDownMoveTaskLines[downData.index].skuCode }}
85
- </div>
86
- <div class="lw-global-title">
87
- {{ taskData.putDownMoveTaskLines[downData.index].skuName }}
88
- </div>
89
- </div>
90
-
91
- <!-- 内装数 -->
92
- <div class="lw-global-row">
93
- <span class="lw-global-title">
94
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.innerQty','内装数') }}
95
- </span>
96
- <span class="lw-global-value-bold">
97
- {{ taskData.putDownMoveTaskLines[downData.index].innerQty }}
98
- </span>
99
- </div>
100
-
101
- <!-- 下架库位 -->
102
- <div class="lw-global-row">
103
- <span class="lw-global-title">
104
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.downLocal','下架库位') }}
105
- </span>
106
- <span class="lw-global-value-bold">
107
- {{ taskData.putDownMoveTaskLines[downData.index].fromLocationCode }}
108
- </span>
109
- </div>
110
-
111
- <!-- 下架托盘号 -->
112
- <div class="lw-global-row" v-if="hasDownLpn()">
113
- <span class="lw-global-title">
114
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.downLpn','下架托盘号') }}
115
- </span>
116
- <span class="lw-global-value-bold">
117
- {{ taskData.putDownMoveTaskLines[downData.index].fromLpn }}
118
- </span>
119
- </div>
120
-
121
- <!-- 数据看板 -->
122
- <div class="lw-global-row lw-global-flex-around">
123
- <!-- 待下架 -->
124
- <div class="lw-task-move-look-item">
125
- <div class="lw-global-value-bold">{{ taskData.putDownMoveTaskLines[downData.index].todoQty || 0 }}</div>
126
- <div class="lw-global-title">
127
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.todoQty','待下架') }}
128
- </div>
129
- </div>
130
-
131
- <!-- 已下架 -->
132
- <div class="lw-task-move-look-item">
133
- <div class="lw-global-value-bold">{{ taskData.putDownMoveTaskLines[downData.index].doneQty || 0 }}</div>
134
- <div class="lw-global-title">
135
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.doneQty','已下架') }}
136
- </div>
137
- </div>
138
-
139
- <!-- 异常量 -->
140
- <div class="lw-task-move-look-item">
141
- <div class="lw-global-value-bold" style="color: #D50000">
142
- {{ taskData.putDownMoveTaskLines[downData.index].abnQty || 0 }}
143
- </div>
144
- <div class="lw-global-title" style="color: #D50000">
145
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.abnQty','异常量') }}
146
- </div>
147
- </div>
148
- </div>
149
-
150
- <lw-lot-look-module :columns="taskData.putDownMoveTaskLines[downData.index].groupKeyItemList"
151
- title-key="label" value-key="value"/>
152
-
153
- <!-- 库位 -->
154
- <lw-input
155
- :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.downLocal','下架库位')"
156
- v-model="downData.input.local.value"
157
- :get-focus.sync="downData.input.local.focus"
158
- required
159
- @confirm="downDataLocalConfirm"
160
- />
161
-
162
- <!-- LPN -->
163
- <lw-input
164
- v-if="hasDownLpn()"
165
- :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.downLpn','下架托盘号')"
166
- v-model="downData.input.downLpn.value"
167
- :get-focus.sync="downData.input.downLpn.focus"
168
- required
169
- @confirm="downDataDownLpnConfirm"
170
- />
171
-
172
- <!-- 商品条码 -->
173
- <lw-input
174
- :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.skuCode','商品条码')"
175
- v-model="downData.input.sku.value"
176
- :get-focus.sync="downData.input.sku.focus"
177
- required
178
- @confirm="downDataSkuCodeConfirm"
179
- />
180
-
181
- <!-- 数量 -->
182
- <lw-input
183
- :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.qty','数量')"
184
- v-model="downData.input.num.value"
185
- :get-focus.sync="downData.input.num.focus"
186
- type="digit"
187
- required
188
- @confirm="downDataNumConfirm"
189
- />
190
-
191
- <!-- 托盘号 -->
192
- <lw-input
193
- :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.lpn','中转容器号')"
194
- v-model="downData.input.lpn.value"
195
- :get-focus.sync="downData.input.lpn.focus"
196
- required
197
- @confirm="actionDown"
198
- />
199
-
200
- <!-- 切换按钮 -->
201
- <lw-cut-card
202
- v-model="downData.index"
203
- :length="taskData.putDownMoveTaskLines.length"
204
- :cut-end="downClearInput"
205
- >
206
- <template #numLast>
207
- <!-- 异常按钮 -->
208
- <lw-button
209
- type="last"
210
- plain
211
- round
212
- mini
213
- @click="downDataAbnormal"
214
- >
215
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.abn','异常') }}
216
- </lw-button>
217
- </template>
218
- </lw-cut-card>
219
-
220
- </div>
221
-
222
- <lw-not-data v-else/>
223
-
224
- </van-tab>
225
-
226
-
227
- <!-- 上架 -->
228
- <van-tab name="up" title="上架">
229
-
230
- <div
231
- v-if="taskData.putUpMoveTaskLines.length"
232
- class="lw-global-model-box"
233
- >
234
-
235
- <!-- 商品信息 -->
236
- <div class="lw-global-row-start">
237
- <div class="lw-global-value-bold">{{ taskData.putUpMoveTaskLines[upData.index].skuCode }}</div>
238
- <div class="lw-global-title">{{ taskData.putUpMoveTaskLines[upData.index].skuName }}</div>
239
- </div>
240
-
241
- <!-- 中转容器号 -->
242
- <div class="lw-global-row">
243
- <span class="lw-global-title">
244
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.lpn','中转容器号') }}
245
- </span>
246
- <span class="lw-global-value-bold">{{ taskData.putUpMoveTaskLines[upData.index].curLpn }}</span>
247
- </div>
248
-
249
- <!-- 内装数 -->
250
- <div class="lw-global-row">
251
- <span class="lw-global-title">
252
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.innerQty','内装数') }}
253
- </span>
254
- <span class="lw-global-value-bold">{{ taskData.putUpMoveTaskLines[upData.index].innerQty }}</span>
255
- </div>
256
-
257
- <!-- 上架库位 -->
258
- <div class="lw-global-row">
259
- <span class="lw-global-title">
260
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.upLocal','上架库位') }}
261
- </span>
262
- <span class="lw-global-value-bold">{{ taskData.putUpMoveTaskLines[upData.index].toLocationCode || '-' }}</span>
263
- </div>
264
-
265
- <!-- 数据看板 -->
266
- <div class="lw-global-row lw-global-flex-around">
267
- <!-- 待上架 -->
268
- <div class="lw-task-move-look-item">
269
- <div class="lw-global-value-bold">{{ taskData.putUpMoveTaskLines[upData.index].todoQty || 0 }}</div>
270
- <div class="lw-global-title">
271
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.waitUp','待上架') }}
272
- </div>
273
- </div>
274
-
275
- <!-- 已上架 -->
276
- <div class="lw-task-move-look-item">
277
- <div class="lw-global-value-bold">{{ taskData.putUpMoveTaskLines[upData.index].doneQty || 0 }}</div>
278
- <div class="lw-global-title">
279
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.overUp','已上架') }}
280
- </div>
281
- </div>
282
-
283
- <!-- 异常量 -->
284
- <div class="lw-task-move-look-item">
285
- <div class="lw-global-value-bold" style="color: #D50000">
286
- {{ taskData.putUpMoveTaskLines[upData.index].abnQty || 0 }}
287
- </div>
288
- <div class="lw-global-title" style="color: #D50000">
289
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.abnNum','异常量') }}
290
- </div>
291
- </div>
292
- </div>
293
-
294
- <lw-lot-look-module :columns="taskData.putUpMoveTaskLines[upData.index].groupKeyItemList"
295
- title-key="label" value-key="value"/>
296
-
297
- <!-- 商品条码 -->
298
- <lw-input
299
- :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.skuCode','商品条码')"
300
- v-model="upData.input.sku.value"
301
- :get-focus.sync="upData.input.sku.focus"
302
- required
303
- @confirm="upDataSkuCodeConfirm"
304
- />
305
-
306
- <!-- 数量 -->
307
- <lw-input
308
- :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.qty','数量')"
309
- v-model="upData.input.num.value"
310
- :get-focus.sync="upData.input.num.focus"
311
- type="digit"
312
- required
313
- @confirm="upDataNumConfirm"
314
- />
315
-
316
- <!-- 接力上架 -->
317
- <lw-cell
318
- style="padding: 0"
319
- :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.relay','接力上架')"
320
- :is-link="false"
321
- required
322
- >
323
- <template #value>
324
- <van-switch
325
- v-model="upData.input.wait"
326
- size="22px"
327
- @change="upDataWaitChange"
328
- />
329
- </template>
330
- </lw-cell>
331
-
332
- <!-- 非接力上架 -->
333
- <div v-if="!upData.input.wait">
334
- <!-- 目标库位 -->
335
- <lw-input
336
- class="lw-global-animation-rotate"
337
- :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.toLocal','目标库位')"
338
- v-model="upData.input.local.value"
339
- :get-focus.sync="upData.input.local.focus"
340
- required
341
- @confirm="upDataLocalConfirm"
342
- />
343
-
344
- <!-- 目标托盘 -->
345
- <lw-input
346
- class="lw-global-animation-rotate"
347
- :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.toLpn','目标托盘')"
348
- v-model="upData.input.lpn.value"
349
- :get-focus.sync="upData.input.lpn.focus"
350
- @confirm="upDataLpnConfirm"
351
- />
352
- </div>
353
-
354
- <!-- 接力上架 -->
355
- <div
356
- class="lw-global-animation-rotate"
357
- v-else
358
- >
359
- <!-- 通道库位 -->
360
- <lw-input
361
- :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.wayLocal','通道库位')"
362
- v-model="upData.input.local.value"
363
- :get-focus.sync="upData.input.local.focus"
364
- required
365
- @confirm="upDataLocalConfirm"
366
- />
367
- <!-- 暂存容器号 -->
368
- <lw-input
369
- :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.waitLpn','暂存容器号')"
370
- v-model="upData.input.lpn.value"
371
- :get-focus.sync="upData.input.lpn.focus"
372
- required
373
- @confirm="upDataLpnConfirm"
374
- />
375
- </div>
376
-
377
- <!-- 切换按钮 -->
378
- <lw-cut-card
379
- v-model="upData.index"
380
- :length="taskData.putUpMoveTaskLines.length"
381
- :cut-end="upClearInput"
382
- >
383
- <template #numLast>
384
- <!-- 异常按钮 -->
385
- <lw-button
386
- type="last"
387
- plain
388
- round
389
- mini
390
- @click="upDataAbnormal"
391
- >
392
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.abn','异常') }}
393
- </lw-button>
394
- </template>
395
- </lw-cut-card>
396
-
397
- </div>
398
-
399
- <lw-not-data v-else/>
400
-
401
- </van-tab>
402
-
403
-
404
- </van-tabs>
405
- </div>
406
-
407
- </div>
408
-
409
- <!-- 下架状态时底部按钮 -->
410
- <lw-bottom-bar v-if="tabActive === 'down' && taskData.putDownMoveTaskLines.length">
411
- <lw-button
412
- type="last"
413
- plain
414
- @click="downLess"
415
- >{{ $lwLanguage.get('wms_project.pda.inbound.taskMove.littleDown','缺货下架') }}</lw-button>
416
-
417
-
418
- <lw-button @click="actionDown">
419
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.confirmDown','确认下架') }}
420
- </lw-button>
421
- </lw-bottom-bar>
422
- <!-- 上架状态时底部按钮 -->
423
- <lw-bottom-bar v-if="tabActive === 'up' && taskData.putUpMoveTaskLines.length">
424
- <lw-button
425
- type="last"
426
- plain
427
- @click="upLess"
428
- >{{ $lwLanguage.get('wms_project.pda.inbound.taskMove.littleUp','缺货上架') }}</lw-button>
429
-
430
- <lw-button
431
- type="normal"
432
- plain
433
- @click="upSkuSeo"
434
- >{{ $lwLanguage.get('wms_project.pda.inbound.taskMove.seoSku','扫描商品定位') }}</lw-button>
435
-
436
- <lw-button @click="actionUp">
437
- {{
438
- upData.input.wait ?
439
- $lwLanguage.get('wms_project.pda.inbound.taskMove.confirmRelay','确认接力') :
440
- $lwLanguage.get('wms_project.pda.inbound.taskMove.confirmUp','确认上架')
441
- }}
442
- </lw-button>
443
- </lw-bottom-bar>
444
-
445
-
446
- <!-- 上架 - 扫描商品定位任务行 -->
447
- <lw-popup
448
- :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.localSku','定位商品')"
449
- v-model="upSkuSeoPopup.show"
450
- @closed="upSkuSeoPopup.sku.value=''"
451
- >
452
- <lw-input
453
- :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.skuCode','商品条码')"
454
- v-model="upSkuSeoPopup.sku.value"
455
- :get-focus.sync="upSkuSeoPopup.sku.focus"
456
- required
457
- @confirm="upSkuSeoPopupSkuConfirm"
458
- />
459
-
460
- <template #button>
461
- <lw-button @click="upSkuSeoPopupSkuConfirm">
462
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.confirm','确认') }}
463
- </lw-button>
464
- </template>
465
- </lw-popup>
466
-
467
-
468
- <!-- 缺货 -->
469
- <lw-popup
470
- :title="
471
- lessPopup.type === 'up' ?
472
- $lwLanguage.get('wms_project.pda.inbound.taskMove.littleUp','缺货上架') :
473
- $lwLanguage.get('wms_project.pda.inbound.taskMove.littleDown','缺货下架')
474
- "
475
- v-model="lessPopup.show"
476
- @closed="lessPopupOff"
477
- >
478
-
479
- <div class="lw-global-row">
480
- <div class="lw-global-value-bold">{{ lessPopup.item.skuCode }}</div>
481
- <div class="lw-global-title">{{ lessPopup.item.skuName }}</div>
482
- </div>
483
-
484
- <div class="lw-global-row lw-global-flex-between">
485
-
486
- <div>
487
- <span class="lw-global-title">
488
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.waitQty', '待处理量') }}
489
- </span>
490
- <span class="lw-global-value-bold" style="color:#D50000;">
491
- {{ lessPopup.item.todoQty }}
492
- </span>
493
- </div>
494
-
495
- <div>
496
- <span class="lw-global-title">
497
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.innerQty', '内装数') }}
498
- </span>
499
- <span class="lw-global-value-bold">
500
- {{ lessPopup.item.innerQty }}
501
- </span>
502
- </div>
503
-
504
- </div>
505
-
506
- <lw-input
507
- :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.confirmSku','确认商品')"
508
- v-model="lessPopup.input.sku.value"
509
- :get-focus.sync="lessPopup.input.sku.focus"
510
- required
511
- @confirm="lessSkuConfirm"
512
- />
513
-
514
- <lw-input
515
- :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.littleQty','缺货量')"
516
- v-model="lessPopup.input.num.value"
517
- :get-focus.sync="lessPopup.input.num.focus"
518
- type="digit"
519
- required
520
- @confirm="lessNumConfirm"
521
- />
522
-
523
- <template #button>
524
- <lw-button @click="lessPartConfirm">
525
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.confirmPartLess','确认部分缺货') }}
526
- </lw-button>
527
- <lw-button @click="lessConfirm">
528
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.confirmLess','确认全部缺货') }}
529
- </lw-button>
530
- </template>
531
-
532
- </lw-popup>
533
-
534
-
535
- <!-- 异常 -->
536
- <lw-popup
537
- :title="
538
- abnormalPopup.type === 'up' ?
539
- $lwLanguage.get('wms_project.pda.inbound.taskMove.upAbn','上架异常') :
540
- $lwLanguage.get('wms_project.pda.inbound.taskMove.downAbn','下架异常')
541
- "
542
- v-model="abnormalPopup.show"
543
- @closed="abnormalPopup.comShow = false"
544
- >
545
-
546
- <lw-inner-abnormal-module
547
- v-if="abnormalPopup.comShow"
548
- ref="abnormal"
549
- v-bind="abnormalPopup.item"
550
- />
551
-
552
- <template #button>
553
- <lw-button @click="abnormalConfirm">
554
- {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.confirm','确认') }}
555
- </lw-button>
556
- </template>
557
-
558
- </lw-popup>
559
-
560
- </div>
561
- </template>
562
-
563
- <script>
564
-
565
- import {
566
- wmsExecMobileMove,
567
- wmsGetMoveTaskInfo,
568
- wmsMoveTaskAbnormalSubmit,
569
- wmsMoveTaskLessQtyAbnormalSubmit
570
- } from "../../../../../api/inner/move/taskMove";
571
-
572
- export default {
573
- name: "lwTaskMovePage",
574
- data() {
575
- return {
576
- // 任务数据
577
- taskData:{
578
- putDownMoveTaskLines:[],
579
- putUpMoveTaskLines:[],
580
- },
581
-
582
- // tab集货项
583
- tabActive: 'down',
584
-
585
- // 缺货
586
- lessPopup:{
587
- type:'',
588
- show: false,
589
- // 当前缺货的商品
590
- item:{},
591
- // 输入框
592
- input:{
593
- sku:{
594
- value:'',
595
- focus: false
596
- },
597
- num:{
598
- value:'',
599
- focus: false
600
- }
601
- }
602
- },
603
-
604
- // 异常
605
- abnormalPopup:{
606
- show: false,
607
- // 是否加载异常组件
608
- comShow: false,
609
- type: 'up',
610
- item:{}
611
- },
612
-
613
- // 下架数据集合
614
- downData:{
615
- // 任务行索引
616
- index:0,
617
- // 输入框
618
- input:{
619
- // 库位
620
- local:{
621
- value:'',
622
- focus: false
623
- },
624
- // 下架托盘
625
- downLpn:{
626
- value:'',
627
- focus: false
628
- },
629
- // 商品
630
- sku:{
631
- value:'',
632
- focus: false
633
- },
634
- // 数量
635
- num:{
636
- value:'',
637
- focus: false
638
- },
639
- // 托盘
640
- lpn:{
641
- value:'',
642
- focus: false
643
- },
644
- }
645
- },
646
-
647
- // 上架数据集
648
- upData:{
649
- // 任务行索引
650
- index:0,
651
- // 输入框
652
- input:{
653
- // 商品
654
- sku:{
655
- value:'',
656
- focus: false
657
- },
658
- // 数量
659
- num:{
660
- value:'',
661
- focus: false
662
- },
663
- // 是否接力上架
664
- wait: false,
665
- // 目标库位 / 通道库位
666
- local:{
667
- value:'',
668
- focus: false
669
- },
670
- // 目标托盘 / 通道托盘
671
- lpn:{
672
- value:'',
673
- focus: false
674
- },
675
- }
676
- },
677
- // 上架 - 扫描商品定位
678
- upSkuSeoPopup:{
679
- show: false,
680
- sku:{
681
- value:'',
682
- focus: false
683
- }
684
- }
685
- }
686
- },
687
- mounted() {
688
- if (this.$route.query.tabActive) {
689
- this.tabActive = this.$route.query.tabActive
690
- }
691
-
692
- this.getData()
693
- },
694
- methods: {
695
- // 获取数据
696
- getData(){
697
- wmsGetMoveTaskInfo({
698
- taskId: this.$route.query.lwTaskId
699
- }).then(res=>{
700
- this.taskData = res
701
-
702
- if ((this.downData.index + 1) > this.taskData.putDownMoveTaskLines.length){
703
- this.downData.index > 0 ? this.downData.index-- : this.downData.index = 0
704
- }
705
-
706
- if ((this.upData.index + 1) > this.taskData.putUpMoveTaskLines.length){
707
- this.upData.index > 0 ? this.upData.index-- : this.upData.index = 0
708
- }
709
-
710
- // 滚动到页面顶部
711
- document.querySelector('#lw-task-move-top').scrollIntoView({
712
- behavior: "smooth",
713
- block:'start',
714
- })
715
-
716
- // 如果当前在上架任务且还有待作业的任务就切换到上架tab
717
- if (this.tabActive === 'up' && this.taskData.putUpMoveTaskLines.length) {
718
- this.tabActive = 'up'
719
- this.upData.input.sku.focus = true
720
- return
721
- }
722
-
723
- // 如果有下架任务就切换到下架tab
724
- if (this.taskData.putDownMoveTaskLines.length) {
725
- this.tabActive = 'down'
726
- this.downData.input.local.focus = true
727
- return
728
- }
729
-
730
- // 如果有上架任务就切换到上架tab
731
- if (this.taskData.putUpMoveTaskLines.length){
732
- this.tabActive = 'up'
733
- this.upData.input.sku.focus = true
734
- return
735
- }
736
-
737
- // 什么任务都没有就返回上级页面
738
- this.$lwToast.success(
739
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.taskOver','当前任务已完成')
740
- )
741
- history.go(-1)
742
- }).catch(()=>history.go(-1))
743
- },
744
-
745
- // tab切换
746
- tabChange(){
747
- if(this.tabActive === 'up'){
748
- this.upData.input.sku.focus = true
749
- }else {
750
- this.downData.input.local.focus = true
751
- }
752
- },
753
-
754
- // 打开缺货弹框
755
- openLess(item, type){
756
- this.lessPopup.type = type
757
- this.lessPopup.item = item
758
- this.lessPopup.show = true
759
- this.lessPopup.input.sku.focus = true
760
- },
761
-
762
- // 缺货 - 商品确认
763
- lessSkuConfirm(){
764
- if (this.lessSkuCheck()){
765
- this.lessPopup.input.num.focus = true
766
- }
767
- },
768
- // 缺货 - 商品校验
769
- lessSkuCheck(){
770
- const sku = this.lessPopup.input.sku
771
- if (!sku.value){
772
- sku.focus = true
773
- this.$lwShowErrorMsg(
774
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.skuNull','商品不能为空')
775
- )
776
- return false
777
- }
778
-
779
- if (sku.value !== this.lessPopup.item.skuCode){
780
- sku.focus = true
781
- this.$lwShowErrorMsg(
782
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.skuError','商品号与当前商品不一致')
783
- )
784
- sku.value = ''
785
- return false
786
- }
787
-
788
- return true
789
-
790
- },
791
-
792
- // 缺货 - 缺货量确认
793
- lessNumConfirm(){
794
- if (this.lessNumCheck()){
795
- this.lessConfirm()
796
- }
797
- },
798
- // 缺货 - 缺货量检查
799
- lessNumCheck(){
800
- const num = this.lessPopup.input.num
801
- const numVal = Number(num.value || 0)
802
- if (!numVal){
803
- num.focus = true
804
- this.$lwShowErrorMsg(
805
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.littleNumZero','缺货量不能为空,且应当是大于0的整数')
806
- )
807
- return false
808
- }
809
-
810
- if (numVal > this.lessPopup.item.todoQty){
811
- num.focus = true
812
- this.$lwShowErrorMsg(
813
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.littleNumMore','缺货量不能大于待处理量')
814
- )
815
- num.value = ''
816
- return false
817
- }
818
-
819
- return true
820
- },
821
-
822
- // 全部缺货
823
- lessConfirm(){
824
- const item = this.lessPopup.item
825
- wmsMoveTaskLessQtyAbnormalSubmit({
826
- taskId: this.$route.query.lwTaskId,
827
- taskLineKey: item.lineKey,
828
- abnQty: item.todoQty,
829
- moveMethod: this.lessPopup.type === 'up' ? '2' : '1', // 1-下架,2-上架
830
- abnLocationCode: item.fromLocationCode,
831
- abnLpn: item.fromLpn,
832
- }).then(()=>{
833
- this.$lwToast.success(
834
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.upSuccess','上报成功')
835
- )
836
- this.lessPopup.show = false
837
- this.getData()
838
- })
839
- },
840
-
841
- // 确认部分缺货
842
- lessPartConfirm(){
843
- if (
844
- !(this.lessSkuCheck() && this.lessNumCheck())
845
- ) return
846
-
847
- const item = this.lessPopup.item
848
- wmsMoveTaskLessQtyAbnormalSubmit({
849
- taskId: this.$route.query.lwTaskId,
850
- taskLineKey: item.lineKey,
851
- abnQty: this.lessPopup.input.num.value,
852
- moveMethod: this.lessPopup.type === 'up' ? '2' : '1', // 1-下架,2-上架
853
- abnLocationCode: item.fromLocationCode,
854
- abnLpn: item.fromLpn,
855
- }).then(()=>{
856
-
857
- this.$lwToast.success(
858
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.upSuccess','上报成功')
859
- )
860
- this.lessPopup.show = false
861
- this.getData()
862
- })
863
- },
864
-
865
- // 缺货弹框关闭
866
- lessPopupOff(){
867
- const input = this.lessPopup.input
868
- input.sku.value = ''
869
- input.num.value = ''
870
- },
871
-
872
- // 打开异常弹框
873
- openAbnormal(item, type){
874
- this.abnormalPopup.item= item
875
- this.abnormalPopup.type = type
876
- this.abnormalPopup.comShow = true
877
- this.abnormalPopup.show = true
878
- },
879
-
880
- // 异常上报确认
881
- abnormalConfirm(){
882
-
883
- const {success, data} = this.$refs.abnormal.getAbnormalData()
884
-
885
- if (!success) return
886
-
887
- const item = this.abnormalPopup.item
888
- wmsMoveTaskAbnormalSubmit({
889
- taskId: this.$route.query.taskId,
890
- taskLineKey: item.lineKey,
891
- fromLocationId: item.fromLocationId,
892
- fromLpn: item.fromLpn,
893
- abnBelongType:'STOCK',
894
- abnDiscoveryPoint: this.abnormalPopup.type === 'down' ? 'MV_PUTDOWN' : 'MV_PUTAWAY',
895
- ...data
896
- }).then(()=>{
897
- this.$lwToast.success(
898
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.abnSuccess','异常上报成功')
899
- )
900
-
901
- this.abnormalPopup.show = false
902
- this.abnormalPopup.comShow = false
903
-
904
- this.getData()
905
- })
906
- },
907
-
908
- // 确认移动
909
- moveConfirm(item, callback){
910
- wmsExecMobileMove({
911
- taskId: this.$route.query.lwTaskId,
912
- ...item
913
- }).then(()=>{
914
-
915
- this.$lwToast.success(
916
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.changSuccess','操作成功')
917
- )
918
-
919
- callback && callback()
920
-
921
- this.getData()
922
- })
923
- },
924
-
925
-
926
-
927
- /* ---------- 下架 ----------*/
928
-
929
- // 清空下架输入框
930
- downClearInput(){
931
- const input = this.downData.input
932
- input.local.value = ''
933
- input.local.focus = true
934
- input.sku.value = ''
935
- input.num.value = ''
936
- input.lpn.value = ''
937
- },
938
-
939
- // 是否有下架托盘
940
- hasDownLpn(){
941
- let item = this.taskData.putDownMoveTaskLines[this.downData.index]
942
- console.log(item.fromLpn && item.fromLpn !== '')
943
- return item.fromLpn && item.fromLpn !== ''
944
- },
945
-
946
- // 库位确认
947
- downDataLocalConfirm(){
948
- if (this.downDataLocalCheck()){
949
- if (this.hasDownLpn()) {
950
- this.downData.input.downLpn.focus = true
951
- } else {
952
- this.downData.input.sku.focus = true
953
- }
954
- }
955
- },
956
- // 库位校验
957
- downDataLocalCheck(){
958
- const local = this.downData.input.local
959
- if (!local.value) {
960
- local.focus = true
961
- this.$lwShowErrorMsg(
962
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.localNull','库位不能为空')
963
- )
964
- return false
965
- }
966
-
967
- if (local.value !== this.taskData.putDownMoveTaskLines[this.downData.index].fromLocationCode){
968
- local.focus = true
969
- this.$lwShowErrorMsg(
970
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.localError','下架库位与任务库位不一致')
971
- )
972
-
973
- local.value = ''
974
-
975
- return false
976
- }
977
-
978
- return true
979
- },
980
-
981
- // 下架托盘确认
982
- downDataDownLpnConfirm() {
983
- if (this.downDataDownLpnCheck()){
984
- this.downData.input.sku.focus = true
985
- }
986
- },
987
- // 下架托盘校验
988
- downDataDownLpnCheck(){
989
- const downLpn = this.downData.input.downLpn
990
- if (!downLpn.value) {
991
- downLpn.focus = true
992
- this.$lwShowErrorMsg(
993
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.downLpnNull','下架托盘不能为空')
994
- )
995
- return false
996
- }
997
-
998
- if (downLpn.value !== this.taskData.putDownMoveTaskLines[this.downData.index].fromLpn){
999
- downLpn.focus = true
1000
- this.$lwShowErrorMsg(
1001
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.downLpnNotMatch','下架托盘号与任务托盘号不一致')
1002
- )
1003
-
1004
- downLpn.value = ''
1005
-
1006
- return false
1007
- }
1008
-
1009
- return true
1010
- },
1011
-
1012
- // 商品号确认
1013
- downDataSkuCodeConfirm(){
1014
- if (this.downDataSkuCodeCheck()){
1015
- this.downData.input.num.focus = true
1016
- }
1017
- },
1018
- // 商品号输入校验
1019
- downDataSkuCodeCheck(){
1020
- const sku = this.downData.input.sku
1021
- // 非空校验
1022
- if (!sku.value){
1023
- sku.focus = true
1024
- this.$lwShowErrorMsg(
1025
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.skuNull','商品号不能为空')
1026
- )
1027
- return false
1028
- }
1029
-
1030
- // 是否输入正确
1031
- if (sku.value !== this.taskData.putDownMoveTaskLines[this.downData.index].skuCode){
1032
- sku.focus = true
1033
- this.$lwShowErrorMsg(
1034
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.nowSkuNull','当前商品与下架商品不一致')
1035
- )
1036
- sku.value = ''
1037
- return false
1038
- }
1039
-
1040
- return true
1041
- },
1042
-
1043
- // 数量确认
1044
- downDataNumConfirm(){
1045
- if (this.downDataNumCheck()){
1046
- this.downData.input.lpn.focus = true
1047
- }
1048
- },
1049
- // 数量校验
1050
- downDataNumCheck(){
1051
- const num = Number(this.downData.input.num.value || 0)
1052
- if (!num){
1053
- this.downData.input.num.focus = true
1054
- this.$lwShowErrorMsg(
1055
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.qtyNull','数量不能为空,且应当是大于0的整数')
1056
- )
1057
- this.downData.input.num.value = ''
1058
- return false
1059
- }
1060
-
1061
- if (num > this.taskData.putDownMoveTaskLines[this.downData.index].todoQty){
1062
- this.downData.input.num.focus = true
1063
- this.$lwShowErrorMsg(
1064
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.qtyMoer','数量不能大于待下架量')
1065
- )
1066
- this.downData.input.num.value = ''
1067
- return false
1068
- }
1069
-
1070
- return true
1071
- },
1072
-
1073
- // 托盘号校验
1074
- downDataLpnConfirm(){
1075
- if(this.downDataLpnCheck()){
1076
- this.actionDown()
1077
- }
1078
- },
1079
- // 托盘号校验
1080
- downDataLpnCheck(){
1081
- if (this.downData.input.lpn.value) return true
1082
-
1083
- this.downData.input.lpn.focus = true
1084
- this.$lwShowErrorMsg(
1085
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.lpnNull','托盘号不能为空')
1086
- )
1087
- return false
1088
- },
1089
-
1090
- // 下架异常
1091
- downDataAbnormal(){
1092
- const item = this.taskData.putDownMoveTaskLines[this.downData.index]
1093
- this.openAbnormal({
1094
- ...item,
1095
- qty: item.todoQty,
1096
- location: item.fromLocationCode,
1097
- type:this.$lwLanguage.get('wms_project.pda.inbound.taskMove.inbound','在库'),
1098
- abType: this.$lwLanguage.get('wms_project.pda.inbound.taskMove.moveDown','移动下架')
1099
- }, 'down')
1100
- },
1101
-
1102
- // 缺货下架
1103
- downLess(){
1104
- this.openLess(this.taskData.putDownMoveTaskLines[this.downData.index], 'down')
1105
- },
1106
-
1107
- // 确认下架
1108
- actionDown(){
1109
- if (
1110
- !(this.downDataLocalCheck() &&
1111
- this.downDataSkuCodeCheck() &&
1112
- this.downDataNumCheck() &&
1113
- this.downDataLpnCheck())
1114
- ) return
1115
-
1116
- const item = this.taskData.putDownMoveTaskLines[this.downData.index]
1117
- this.moveConfirm({
1118
- taskLineKey: item.lineKey,
1119
- fromLocationId: item.fromLocationId,
1120
- fromLpn: item.fromLpn,
1121
- fromCase: item.fromCase,
1122
- skuId: item.skuId,
1123
- toLocationCode: this.downData.input.local.value,
1124
- toLpn: this.downData.input.lpn.value,
1125
- moveQty: this.downData.input.num.value,
1126
- moveMethod: '1' // 1-下架,2-上架
1127
- }, this.downClearInput)
1128
- },
1129
-
1130
-
1131
-
1132
- /* ---------- 上架 ----------*/
1133
- // 清空输入框
1134
- upClearInput(){
1135
- this.upData.input.sku.value = ''
1136
- this.upData.input.sku.focus = true
1137
- this.upData.input.num.value = ''
1138
- this.upData.input.wait = false
1139
- this.upData.input.local.value = ''
1140
- this.upData.input.lpn.value = ''
1141
- },
1142
-
1143
- // 商品号确认
1144
- upDataSkuCodeConfirm(){
1145
- if (this.upDataSkuCodeCheck()){
1146
- this.upData.input.num.focus = true
1147
- }
1148
- },
1149
- // 商品号输入校验
1150
- upDataSkuCodeCheck(){
1151
- const sku = this.upData.input.sku
1152
- // 非空校验
1153
- if (!sku.value){
1154
- sku.focus = true
1155
- this.$lwShowErrorMsg(
1156
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.skuNull','商品号不能为空')
1157
- )
1158
- return false
1159
- }
1160
-
1161
- // 是否输入正确
1162
- if (sku.value !== this.taskData.putUpMoveTaskLines[this.upData.index].skuCode){
1163
- sku.focus = true
1164
- this.$lwShowErrorMsg(
1165
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.skuUpError','当前商品与上架商品不一致')
1166
- )
1167
- sku.value = ''
1168
- return false
1169
- }
1170
-
1171
- return true
1172
- },
1173
-
1174
- // 数量确认
1175
- upDataNumConfirm(){
1176
- if (this.upDataNumCheck()){
1177
- this.upData.input.local.focus = true
1178
- }
1179
- },
1180
- // 数量校验
1181
- upDataNumCheck(){
1182
- const num = Number(this.upData.input.num.value || 0)
1183
- if (!num){
1184
- this.upData.input.num.focus = true
1185
- this.$lwShowErrorMsg(
1186
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.numZero','数量不能为空,且应当是大于0的整数')
1187
- )
1188
- this.upData.input.num.value = ''
1189
- return false
1190
- }
1191
-
1192
- if (num > this.taskData.putUpMoveTaskLines[this.upData.index].todoQty){
1193
- this.upData.input.num.focus = true
1194
- this.$lwShowErrorMsg(
1195
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.upNumMoer','数量不能大于待上架量')
1196
- )
1197
- this.upData.input.num.value = ''
1198
- return false
1199
- }
1200
-
1201
- return true
1202
- },
1203
-
1204
- // 接力上架切换
1205
- upDataWaitChange(){
1206
- this.upData.input.local.value = ''
1207
- this.upData.input.local.focus = true
1208
- this.upData.input.lpn.value = ''
1209
- },
1210
-
1211
- // 库位确认
1212
- upDataLocalConfirm(){
1213
- if (this.upDataLocalCheck()){
1214
- this.upData.input.lpn.focus = true
1215
- }
1216
- },
1217
- // 库位校验
1218
- upDataLocalCheck(){
1219
- const local = this.upData.input.local
1220
- if (!local.value) {
1221
-
1222
- local.focus = true
1223
- this.$lwShowErrorMsg(
1224
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.localNull','库位不能为空')
1225
- )
1226
- return false
1227
- }
1228
-
1229
- return true
1230
- },
1231
-
1232
- // 托盘号校验
1233
- upDataLpnConfirm(){
1234
- if(this.upDataLpnCheck()){
1235
- this.actionUp()
1236
- }
1237
- },
1238
- // 托盘号校验
1239
- upDataLpnCheck(){
1240
- if (!this.upData.input.wait || this.upData.input.lpn.value) return true
1241
-
1242
- this.upData.input.lpn.focus = true
1243
- this.$lwShowErrorMsg(
1244
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.lpnNull','托盘号不能为空')
1245
- )
1246
- return false
1247
- },
1248
-
1249
- // 确认上架
1250
- actionUp(){
1251
-
1252
- if (
1253
- !(this.upDataSkuCodeCheck() &&
1254
- this.upDataNumCheck() &&
1255
- this.upDataLocalCheck() &&
1256
- this.upDataLpnCheck())
1257
- ) return
1258
-
1259
- const item = this.taskData.putUpMoveTaskLines[this.upData.index]
1260
-
1261
- // 检验库位是否正确
1262
- const upLocal = this.taskData.putUpMoveTaskLines[this.upData.index].toLocationCode
1263
- if(!this.upData.input.wait && upLocal && this.upData.input.local.value !== upLocal) {
1264
- this.$dialog.confirm({
1265
- title: this.$lwLanguage.get('wms_project.pda.inbound.taskMove.total', '提示'),
1266
- message: this.$lwLanguage.get('wms_project.pda.inbound.taskMove.toLocalError', '目标库位与上架库位不一致,确认继续?')
1267
- }).then(() => {
1268
- this.moveConfirm({
1269
- taskLineKey: item.lineKey,
1270
- fromLocationId: item.fromLocationId,
1271
- fromLpn: item.fromLpn,
1272
- fromCase: item.fromCase,
1273
- skuId: item.skuId,
1274
- toLocationCode: this.upData.input.local.value,
1275
- toLpn: this.upData.input.lpn.value,
1276
- moveQty: this.upData.input.num.value,
1277
- relay: this.upData.input.wait,
1278
- moveMethod: '2' // 1-下架,2-上架
1279
- }, this.upClearInput)
1280
- }).catch(() => {})
1281
-
1282
- return
1283
- }
1284
- this.moveConfirm({
1285
- taskLineKey: item.lineKey,
1286
- fromLocationId: item.fromLocationId,
1287
- fromLpn: item.fromLpn,
1288
- fromCase: item.fromCase,
1289
- skuId: item.skuId,
1290
- toLocationCode: this.upData.input.local.value,
1291
- toLpn: this.upData.input.lpn.value,
1292
- moveQty: this.upData.input.num.value,
1293
- relay: this.upData.input.wait,
1294
- moveMethod: '2' // 1-下架,2-上架
1295
- }, this.upClearInput)
1296
- },
1297
-
1298
- // 缺货上架
1299
- upLess(){
1300
-
1301
- this.openLess(this.taskData.putUpMoveTaskLines[this.upData.index], 'up')
1302
-
1303
- },
1304
-
1305
- // 扫描商品定位
1306
- upSkuSeo(){
1307
- this.upSkuSeoPopup.show = true
1308
- this.upSkuSeoPopup.sku.focus = true
1309
- },
1310
-
1311
- // 上架异常
1312
- upDataAbnormal(){
1313
- const item = this.taskData.putUpMoveTaskLines[this.upData.index]
1314
- this.openAbnormal({
1315
- ...item,
1316
- qty: item.todoQty,
1317
- location: item.toLocationCode,
1318
- type:this.$lwLanguage.get('wms_project.pda.inbound.taskMove.inbound','在库'),
1319
- abType: this.$lwLanguage.get('wms_project.pda.inbound.taskMove.moveUp','移动上架')
1320
- }, 'up')
1321
- },
1322
-
1323
- // 扫描商品定位
1324
- upSkuSeoPopupSkuConfirm(){
1325
- if(!this.upSkuSeoPopup.sku.value){
1326
- this.upSkuSeoPopup.sku.focus = true
1327
- this.$lwShowErrorMsg(
1328
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.scanSku','请扫描或输入需要定位的商品号')
1329
- )
1330
- return
1331
- }
1332
-
1333
- for (let i=0;i<this.taskData.putUpMoveTaskLines.length;i++){
1334
-
1335
- if (this.taskData.putUpMoveTaskLines[i].skuCode === this.upSkuSeoPopup.sku.value){
1336
- this.upData.index = i
1337
- this.$lwToast.success(
1338
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.cutCell','已切换至任务行')+ ':' + (i + 1)
1339
- )
1340
- this.upSkuSeoPopup.show = false
1341
- this.upClearInput()
1342
- return
1343
- }
1344
- }
1345
-
1346
- this.$lwShowErrorMsg(
1347
- this.$lwLanguage.get('wms_project.pda.inbound.taskMove.taskNullSku','在当前任务中没有查询到商品任务行,请确认商品号是否输入正确')
1348
- )
1349
- this.upSkuSeoPopup.sku.focus = true
1350
- this.upSkuSeoPopup.sku.value = ''
1351
- }
1352
- }
1353
- }
1354
- </script>
1355
-
1356
- <style scoped lang="less">
1357
-
1358
- .lw-task-move-look-item{
1359
- text-align: center;
1360
- }
1361
-
1362
-
1363
- </style>
1
+ <!--
2
+ 标准移动 - 任务界面进入
3
+ @author: 张文
4
+ @date: 2022-05-16
5
+ -->
6
+ <template>
7
+ <div>
8
+
9
+ <lw-nav-bar :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.title','库存移动')"/>
10
+ <div id="lw-task-move-top"></div>
11
+
12
+ <div class="lw-global-page-box">
13
+
14
+ <!-- 看板 -->
15
+ <div>
16
+ <div style="padding: 10px;border-radius: 10px 10px 0 0;background: #fff">
17
+ <span class="lw-global-title">
18
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.taskNo','任务号') }}
19
+ </span>
20
+ <span class="lw-global-value-bold">{{ taskData.taskNo }}</span>
21
+ </div>
22
+ <lw-data-look-bg type="bottom">
23
+
24
+ <!-- 品种数 -->
25
+ <div>
26
+ <div>{{ taskData.skuCount || 0 }}</div>
27
+ <div class="lw-data-look-bg-title">{{ $lwLanguage.get('wms_project.pda.inbound.taskMove.skuCount','品种数') }}</div>
28
+ </div>
29
+
30
+ <!-- 计划量 -->
31
+ <div>
32
+ <div>{{ taskData.planQty || 0 }}</div>
33
+ <div class="lw-data-look-bg-title">
34
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.planQty','计划量') }}
35
+ </div>
36
+ </div>
37
+
38
+ <!-- 已上架 -->
39
+ <div>
40
+ <div>{{ taskData.putUpQty || 0 }}</div>
41
+ <div class="lw-data-look-bg-title">
42
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.putUpQty','已上架') }}
43
+ </div>
44
+ </div>
45
+
46
+ <!-- 待上架 -->
47
+ <div>
48
+ <div>{{ taskData.toPutUpQty || 0 }}</div>
49
+ <div class="lw-data-look-bg-title">
50
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.toPutUpQty','待上架') }}
51
+ </div>
52
+ </div>
53
+
54
+ <!-- 异常量 -->
55
+ <div>
56
+ <div>{{ taskData.abnQty || 0 }}</div>
57
+ <div class="lw-data-look-bg-title">
58
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.abnQty','异常量') }}
59
+ </div>
60
+ </div>
61
+
62
+ </lw-data-look-bg>
63
+ </div>
64
+
65
+ <!-- tab -->
66
+ <div class="lw-global-tab-box" style="margin-top: 10px">
67
+ <van-tabs
68
+ type="card"
69
+ animated
70
+ v-model="tabActive"
71
+ @change="tabChange"
72
+ >
73
+
74
+ <!-- 下架 -->
75
+ <van-tab name="down" title="下架">
76
+
77
+ <div
78
+ v-if="taskData.putDownMoveTaskLines.length"
79
+ class="lw-global-model-box"
80
+ >
81
+ <!-- 商品信息 -->
82
+ <div class="lw-global-row-start">
83
+ <div class="lw-global-value-bold">
84
+ {{ taskData.putDownMoveTaskLines[downData.index].skuCode }}
85
+ </div>
86
+ <div class="lw-global-title">
87
+ {{ taskData.putDownMoveTaskLines[downData.index].skuName }}
88
+ </div>
89
+ </div>
90
+
91
+ <!-- 内装数 -->
92
+ <div class="lw-global-row">
93
+ <span class="lw-global-title">
94
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.innerQty','内装数') }}
95
+ </span>
96
+ <span class="lw-global-value-bold">
97
+ {{ taskData.putDownMoveTaskLines[downData.index].innerQty }}
98
+ </span>
99
+ </div>
100
+
101
+ <!-- 下架库位 -->
102
+ <div class="lw-global-row">
103
+ <span class="lw-global-title">
104
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.downLocal','下架库位') }}
105
+ </span>
106
+ <span class="lw-global-value-bold">
107
+ {{ taskData.putDownMoveTaskLines[downData.index].fromLocationCode }}
108
+ </span>
109
+ </div>
110
+
111
+ <!-- 下架托盘号 -->
112
+ <div class="lw-global-row" v-if="hasDownLpn()">
113
+ <span class="lw-global-title">
114
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.downLpn','下架托盘号') }}
115
+ </span>
116
+ <span class="lw-global-value-bold">
117
+ {{ taskData.putDownMoveTaskLines[downData.index].fromLpn }}
118
+ </span>
119
+ </div>
120
+
121
+ <!-- 数据看板 -->
122
+ <div class="lw-global-row lw-global-flex-around">
123
+ <!-- 待下架 -->
124
+ <div class="lw-task-move-look-item">
125
+ <div class="lw-global-value-bold">{{ taskData.putDownMoveTaskLines[downData.index].todoQty || 0 }}</div>
126
+ <div class="lw-global-title">
127
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.todoQty','待下架') }}
128
+ </div>
129
+ </div>
130
+
131
+ <!-- 已下架 -->
132
+ <div class="lw-task-move-look-item">
133
+ <div class="lw-global-value-bold">{{ taskData.putDownMoveTaskLines[downData.index].doneQty || 0 }}</div>
134
+ <div class="lw-global-title">
135
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.doneQty','已下架') }}
136
+ </div>
137
+ </div>
138
+
139
+ <!-- 异常量 -->
140
+ <div class="lw-task-move-look-item">
141
+ <div class="lw-global-value-bold" style="color: #D50000">
142
+ {{ taskData.putDownMoveTaskLines[downData.index].abnQty || 0 }}
143
+ </div>
144
+ <div class="lw-global-title" style="color: #D50000">
145
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.abnQty','异常量') }}
146
+ </div>
147
+ </div>
148
+ </div>
149
+
150
+ <lw-lot-look-module :columns="taskData.putDownMoveTaskLines[downData.index].groupKeyItemList"
151
+ title-key="label" value-key="value"/>
152
+
153
+ <!-- 库位 -->
154
+ <lw-input
155
+ :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.downLocal','下架库位')"
156
+ v-model="downData.input.local.value"
157
+ :get-focus.sync="downData.input.local.focus"
158
+ required
159
+ rule-key="downLocal"
160
+ @confirm="downDataLocalConfirm"
161
+ />
162
+
163
+ <!-- LPN -->
164
+ <lw-input
165
+ v-if="hasDownLpn()"
166
+ :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.downLpn','下架托盘号')"
167
+ v-model="downData.input.downLpn.value"
168
+ :get-focus.sync="downData.input.downLpn.focus"
169
+ required
170
+ rule-key="downLpn"
171
+ @confirm="downDataDownLpnConfirm"
172
+ />
173
+
174
+ <!-- 商品条码 -->
175
+ <lw-input
176
+ :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.skuCode','商品条码')"
177
+ v-model="downData.input.sku.value"
178
+ :get-focus.sync="downData.input.sku.focus"
179
+ required
180
+ rule-key="sku"
181
+ @confirm="downDataSkuCodeConfirm"
182
+ />
183
+
184
+ <!-- 数量 -->
185
+ <lw-input
186
+ :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.qty','数量')"
187
+ v-model="downData.input.num.value"
188
+ :get-focus.sync="downData.input.num.focus"
189
+ type="digit"
190
+ required
191
+ @confirm="downDataNumConfirm"
192
+ />
193
+
194
+ <!-- 托盘号 -->
195
+ <lw-input
196
+ :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.lpn','中转容器号')"
197
+ v-model="downData.input.lpn.value"
198
+ :get-focus.sync="downData.input.lpn.focus"
199
+ required
200
+ rule-key="container"
201
+ @confirm="actionDown"
202
+ />
203
+
204
+ <!-- 切换按钮 -->
205
+ <lw-cut-card
206
+ v-model="downData.index"
207
+ :length="taskData.putDownMoveTaskLines.length"
208
+ :cut-end="downClearInput"
209
+ >
210
+ <template #numLast>
211
+ <!-- 异常按钮 -->
212
+ <lw-button
213
+ type="last"
214
+ plain
215
+ round
216
+ mini
217
+ @click="downDataAbnormal"
218
+ >
219
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.abn','异常') }}
220
+ </lw-button>
221
+ </template>
222
+ </lw-cut-card>
223
+
224
+ </div>
225
+
226
+ <lw-not-data v-else/>
227
+
228
+ </van-tab>
229
+
230
+
231
+ <!-- 上架 -->
232
+ <van-tab name="up" title="上架">
233
+
234
+ <div
235
+ v-if="taskData.putUpMoveTaskLines.length"
236
+ class="lw-global-model-box"
237
+ >
238
+
239
+ <!-- 商品信息 -->
240
+ <div class="lw-global-row-start">
241
+ <div class="lw-global-value-bold">{{ taskData.putUpMoveTaskLines[upData.index].skuCode }}</div>
242
+ <div class="lw-global-title">{{ taskData.putUpMoveTaskLines[upData.index].skuName }}</div>
243
+ </div>
244
+
245
+ <!-- 中转容器号 -->
246
+ <div class="lw-global-row">
247
+ <span class="lw-global-title">
248
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.lpn','中转容器号') }}
249
+ </span>
250
+ <span class="lw-global-value-bold">{{ taskData.putUpMoveTaskLines[upData.index].curLpn }}</span>
251
+ </div>
252
+
253
+ <!-- 内装数 -->
254
+ <div class="lw-global-row">
255
+ <span class="lw-global-title">
256
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.innerQty','内装数') }}
257
+ </span>
258
+ <span class="lw-global-value-bold">{{ taskData.putUpMoveTaskLines[upData.index].innerQty }}</span>
259
+ </div>
260
+
261
+ <!-- 上架库位 -->
262
+ <div class="lw-global-row">
263
+ <span class="lw-global-title">
264
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.upLocal','上架库位') }}
265
+ </span>
266
+ <span class="lw-global-value-bold">{{ taskData.putUpMoveTaskLines[upData.index].toLocationCode || '-' }}</span>
267
+ </div>
268
+
269
+ <!-- 数据看板 -->
270
+ <div class="lw-global-row lw-global-flex-around">
271
+ <!-- 待上架 -->
272
+ <div class="lw-task-move-look-item">
273
+ <div class="lw-global-value-bold">{{ taskData.putUpMoveTaskLines[upData.index].todoQty || 0 }}</div>
274
+ <div class="lw-global-title">
275
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.waitUp','待上架') }}
276
+ </div>
277
+ </div>
278
+
279
+ <!-- 已上架 -->
280
+ <div class="lw-task-move-look-item">
281
+ <div class="lw-global-value-bold">{{ taskData.putUpMoveTaskLines[upData.index].doneQty || 0 }}</div>
282
+ <div class="lw-global-title">
283
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.overUp','已上架') }}
284
+ </div>
285
+ </div>
286
+
287
+ <!-- 异常量 -->
288
+ <div class="lw-task-move-look-item">
289
+ <div class="lw-global-value-bold" style="color: #D50000">
290
+ {{ taskData.putUpMoveTaskLines[upData.index].abnQty || 0 }}
291
+ </div>
292
+ <div class="lw-global-title" style="color: #D50000">
293
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.abnNum','异常量') }}
294
+ </div>
295
+ </div>
296
+ </div>
297
+
298
+ <lw-lot-look-module :columns="taskData.putUpMoveTaskLines[upData.index].groupKeyItemList"
299
+ title-key="label" value-key="value"/>
300
+
301
+ <!-- 商品条码 -->
302
+ <lw-input
303
+ :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.skuCode','商品条码')"
304
+ v-model="upData.input.sku.value"
305
+ :get-focus.sync="upData.input.sku.focus"
306
+ required
307
+ rule-key="sku"
308
+ @confirm="upDataSkuCodeConfirm"
309
+ />
310
+
311
+ <!-- 数量 -->
312
+ <lw-input
313
+ :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.qty','数量')"
314
+ v-model="upData.input.num.value"
315
+ :get-focus.sync="upData.input.num.focus"
316
+ type="digit"
317
+ required
318
+ @confirm="upDataNumConfirm"
319
+ />
320
+
321
+ <!-- 接力上架 -->
322
+ <lw-cell
323
+ style="padding: 0"
324
+ :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.relay','接力上架')"
325
+ :is-link="false"
326
+ required
327
+ >
328
+ <template #value>
329
+ <van-switch
330
+ v-model="upData.input.wait"
331
+ size="22px"
332
+ @change="upDataWaitChange"
333
+ />
334
+ </template>
335
+ </lw-cell>
336
+
337
+ <!-- 非接力上架 -->
338
+ <div v-if="!upData.input.wait">
339
+ <!-- 目标库位 -->
340
+ <lw-input
341
+ class="lw-global-animation-rotate"
342
+ :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.toLocal','目标库位')"
343
+ v-model="upData.input.local.value"
344
+ :get-focus.sync="upData.input.local.focus"
345
+ required
346
+ rule-key="upLocal"
347
+ @confirm="upDataLocalConfirm"
348
+ />
349
+
350
+ <!-- 目标托盘 -->
351
+ <lw-input
352
+ class="lw-global-animation-rotate"
353
+ :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.toLpn','目标托盘')"
354
+ v-model="upData.input.lpn.value"
355
+ :get-focus.sync="upData.input.lpn.focus"
356
+ rule-key="upLpn"
357
+ @confirm="upDataLpnConfirm"
358
+ />
359
+ </div>
360
+
361
+ <!-- 接力上架 -->
362
+ <div
363
+ class="lw-global-animation-rotate"
364
+ v-else
365
+ >
366
+ <!-- 通道库位 -->
367
+ <lw-input
368
+ :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.wayLocal','通道库位')"
369
+ v-model="upData.input.local.value"
370
+ :get-focus.sync="upData.input.local.focus"
371
+ required
372
+ rule-key="waitLocal"
373
+ @confirm="upDataLocalConfirm"
374
+ />
375
+ <!-- 暂存容器号 -->
376
+ <lw-input
377
+ :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.waitLpn','暂存容器号')"
378
+ v-model="upData.input.lpn.value"
379
+ :get-focus.sync="upData.input.lpn.focus"
380
+ required
381
+ rule-key="waitContainer"
382
+ @confirm="upDataLpnConfirm"
383
+ />
384
+ </div>
385
+
386
+ <!-- 切换按钮 -->
387
+ <lw-cut-card
388
+ v-model="upData.index"
389
+ :length="taskData.putUpMoveTaskLines.length"
390
+ :cut-end="upClearInput"
391
+ >
392
+ <template #numLast>
393
+ <!-- 异常按钮 -->
394
+ <lw-button
395
+ type="last"
396
+ plain
397
+ round
398
+ mini
399
+ @click="upDataAbnormal"
400
+ >
401
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.abn','异常') }}
402
+ </lw-button>
403
+ </template>
404
+ </lw-cut-card>
405
+
406
+ </div>
407
+
408
+ <lw-not-data v-else/>
409
+
410
+ </van-tab>
411
+
412
+
413
+ </van-tabs>
414
+ </div>
415
+
416
+ </div>
417
+
418
+ <!-- 下架状态时底部按钮 -->
419
+ <lw-bottom-bar v-if="tabActive === 'down' && taskData.putDownMoveTaskLines.length">
420
+ <lw-button
421
+ type="last"
422
+ plain
423
+ @click="downLess"
424
+ >{{ $lwLanguage.get('wms_project.pda.inbound.taskMove.littleDown','缺货下架') }}</lw-button>
425
+
426
+
427
+ <lw-button @click="actionDown">
428
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.confirmDown','确认下架') }}
429
+ </lw-button>
430
+ </lw-bottom-bar>
431
+ <!-- 上架状态时底部按钮 -->
432
+ <lw-bottom-bar v-if="tabActive === 'up' && taskData.putUpMoveTaskLines.length">
433
+ <lw-button
434
+ type="last"
435
+ plain
436
+ @click="upLess"
437
+ >{{ $lwLanguage.get('wms_project.pda.inbound.taskMove.littleUp','缺货上架') }}</lw-button>
438
+
439
+ <lw-button
440
+ type="normal"
441
+ plain
442
+ @click="upSkuSeo"
443
+ >{{ $lwLanguage.get('wms_project.pda.inbound.taskMove.seoSku','扫描商品定位') }}</lw-button>
444
+
445
+ <lw-button @click="actionUp">
446
+ {{
447
+ upData.input.wait ?
448
+ $lwLanguage.get('wms_project.pda.inbound.taskMove.confirmRelay','确认接力') :
449
+ $lwLanguage.get('wms_project.pda.inbound.taskMove.confirmUp','确认上架')
450
+ }}
451
+ </lw-button>
452
+ </lw-bottom-bar>
453
+
454
+
455
+ <!-- 上架 - 扫描商品定位任务行 -->
456
+ <lw-popup
457
+ :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.localSku','定位商品')"
458
+ v-model="upSkuSeoPopup.show"
459
+ @closed="upSkuSeoPopup.sku.value=''"
460
+ >
461
+ <lw-input
462
+ :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.skuCode','商品条码')"
463
+ v-model="upSkuSeoPopup.sku.value"
464
+ :get-focus.sync="upSkuSeoPopup.sku.focus"
465
+ required
466
+ rule-key="sku"
467
+ @confirm="upSkuSeoPopupSkuConfirm"
468
+ />
469
+
470
+ <template #button>
471
+ <lw-button @click="upSkuSeoPopupSkuConfirm">
472
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.confirm','确认') }}
473
+ </lw-button>
474
+ </template>
475
+ </lw-popup>
476
+
477
+
478
+ <!-- 缺货 -->
479
+ <lw-popup
480
+ :title="
481
+ lessPopup.type === 'up' ?
482
+ $lwLanguage.get('wms_project.pda.inbound.taskMove.littleUp','缺货上架') :
483
+ $lwLanguage.get('wms_project.pda.inbound.taskMove.littleDown','缺货下架')
484
+ "
485
+ v-model="lessPopup.show"
486
+ @closed="lessPopupOff"
487
+ >
488
+
489
+ <div class="lw-global-row">
490
+ <div class="lw-global-value-bold">{{ lessPopup.item.skuCode }}</div>
491
+ <div class="lw-global-title">{{ lessPopup.item.skuName }}</div>
492
+ </div>
493
+
494
+ <div class="lw-global-row lw-global-flex-between">
495
+
496
+ <div>
497
+ <span class="lw-global-title">
498
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.waitQty', '待处理量') }}
499
+ </span>
500
+ <span class="lw-global-value-bold" style="color:#D50000;">
501
+ {{ lessPopup.item.todoQty }}
502
+ </span>
503
+ </div>
504
+
505
+ <div>
506
+ <span class="lw-global-title">
507
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.innerQty', '内装数') }}
508
+ </span>
509
+ <span class="lw-global-value-bold">
510
+ {{ lessPopup.item.innerQty }}
511
+ </span>
512
+ </div>
513
+
514
+ </div>
515
+
516
+ <lw-input
517
+ :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.confirmSku','确认商品')"
518
+ v-model="lessPopup.input.sku.value"
519
+ :get-focus.sync="lessPopup.input.sku.focus"
520
+ required
521
+ rule-key="sku"
522
+ @confirm="lessSkuConfirm"
523
+ />
524
+
525
+ <lw-input
526
+ :title="$lwLanguage.get('wms_project.pda.inbound.taskMove.littleQty','缺货量')"
527
+ v-model="lessPopup.input.num.value"
528
+ :get-focus.sync="lessPopup.input.num.focus"
529
+ type="digit"
530
+ required
531
+ @confirm="lessNumConfirm"
532
+ />
533
+
534
+ <template #button>
535
+ <lw-button @click="lessPartConfirm">
536
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.confirmPartLess','确认部分缺货') }}
537
+ </lw-button>
538
+ <lw-button @click="lessConfirm">
539
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.confirmLess','确认全部缺货') }}
540
+ </lw-button>
541
+ </template>
542
+
543
+ </lw-popup>
544
+
545
+
546
+ <!-- 异常 -->
547
+ <lw-popup
548
+ :title="
549
+ abnormalPopup.type === 'up' ?
550
+ $lwLanguage.get('wms_project.pda.inbound.taskMove.upAbn','上架异常') :
551
+ $lwLanguage.get('wms_project.pda.inbound.taskMove.downAbn','下架异常')
552
+ "
553
+ v-model="abnormalPopup.show"
554
+ @closed="abnormalPopup.comShow = false"
555
+ >
556
+
557
+ <lw-inner-abnormal-module
558
+ v-if="abnormalPopup.comShow"
559
+ ref="abnormal"
560
+ v-bind="abnormalPopup.item"
561
+ />
562
+
563
+ <template #button>
564
+ <lw-button @click="abnormalConfirm">
565
+ {{ $lwLanguage.get('wms_project.pda.inbound.taskMove.confirm','确认') }}
566
+ </lw-button>
567
+ </template>
568
+
569
+ </lw-popup>
570
+
571
+ </div>
572
+ </template>
573
+
574
+ <script>
575
+
576
+ import {
577
+ wmsExecMobileMove,
578
+ wmsGetMoveTaskInfo,
579
+ wmsMoveTaskAbnormalSubmit,
580
+ wmsMoveTaskLessQtyAbnormalSubmit
581
+ } from "../../../../../api/inner/move/taskMove";
582
+
583
+ export default {
584
+ name: "lwTaskMovePage",
585
+ data() {
586
+ return {
587
+ // 任务数据
588
+ taskData:{
589
+ putDownMoveTaskLines:[],
590
+ putUpMoveTaskLines:[],
591
+ },
592
+
593
+ // tab集货项
594
+ tabActive: 'down',
595
+
596
+ // 缺货
597
+ lessPopup:{
598
+ type:'',
599
+ show: false,
600
+ // 当前缺货的商品
601
+ item:{},
602
+ // 输入框
603
+ input:{
604
+ sku:{
605
+ value:'',
606
+ focus: false
607
+ },
608
+ num:{
609
+ value:'',
610
+ focus: false
611
+ }
612
+ }
613
+ },
614
+
615
+ // 异常
616
+ abnormalPopup:{
617
+ show: false,
618
+ // 是否加载异常组件
619
+ comShow: false,
620
+ type: 'up',
621
+ item:{}
622
+ },
623
+
624
+ // 下架数据集合
625
+ downData:{
626
+ // 任务行索引
627
+ index:0,
628
+ // 输入框
629
+ input:{
630
+ // 库位
631
+ local:{
632
+ value:'',
633
+ focus: false
634
+ },
635
+ // 下架托盘
636
+ downLpn:{
637
+ value:'',
638
+ focus: false
639
+ },
640
+ // 商品
641
+ sku:{
642
+ value:'',
643
+ focus: false
644
+ },
645
+ // 数量
646
+ num:{
647
+ value:'',
648
+ focus: false
649
+ },
650
+ // 托盘
651
+ lpn:{
652
+ value:'',
653
+ focus: false
654
+ },
655
+ }
656
+ },
657
+
658
+ // 上架数据集
659
+ upData:{
660
+ // 任务行索引
661
+ index:0,
662
+ // 输入框
663
+ input:{
664
+ // 商品
665
+ sku:{
666
+ value:'',
667
+ focus: false
668
+ },
669
+ // 数量
670
+ num:{
671
+ value:'',
672
+ focus: false
673
+ },
674
+ // 是否接力上架
675
+ wait: false,
676
+ // 目标库位 / 通道库位
677
+ local:{
678
+ value:'',
679
+ focus: false
680
+ },
681
+ // 目标托盘 / 通道托盘
682
+ lpn:{
683
+ value:'',
684
+ focus: false
685
+ },
686
+ }
687
+ },
688
+ // 上架 - 扫描商品定位
689
+ upSkuSeoPopup:{
690
+ show: false,
691
+ sku:{
692
+ value:'',
693
+ focus: false
694
+ }
695
+ }
696
+ }
697
+ },
698
+ mounted() {
699
+ if (this.$route.query.tabActive) {
700
+ this.tabActive = this.$route.query.tabActive
701
+ }
702
+
703
+ this.getData()
704
+ },
705
+ methods: {
706
+ // 获取数据
707
+ getData(){
708
+ wmsGetMoveTaskInfo({
709
+ taskId: this.$route.query.lwTaskId
710
+ }).then(res=>{
711
+ this.taskData = res
712
+
713
+ if ((this.downData.index + 1) > this.taskData.putDownMoveTaskLines.length){
714
+ this.downData.index > 0 ? this.downData.index-- : this.downData.index = 0
715
+ }
716
+
717
+ if ((this.upData.index + 1) > this.taskData.putUpMoveTaskLines.length){
718
+ this.upData.index > 0 ? this.upData.index-- : this.upData.index = 0
719
+ }
720
+
721
+ // 滚动到页面顶部
722
+ document.querySelector('#lw-task-move-top').scrollIntoView({
723
+ behavior: "smooth",
724
+ block:'start',
725
+ })
726
+
727
+ // 如果当前在上架任务且还有待作业的任务就切换到上架tab
728
+ if (this.tabActive === 'up' && this.taskData.putUpMoveTaskLines.length) {
729
+ this.tabActive = 'up'
730
+ this.upData.input.sku.focus = true
731
+ return
732
+ }
733
+
734
+ // 如果有下架任务就切换到下架tab
735
+ if (this.taskData.putDownMoveTaskLines.length) {
736
+ this.tabActive = 'down'
737
+ this.downData.input.local.focus = true
738
+ return
739
+ }
740
+
741
+ // 如果有上架任务就切换到上架tab
742
+ if (this.taskData.putUpMoveTaskLines.length){
743
+ this.tabActive = 'up'
744
+ this.upData.input.sku.focus = true
745
+ return
746
+ }
747
+
748
+ // 什么任务都没有就返回上级页面
749
+ this.$lwToast.success(
750
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.taskOver','当前任务已完成')
751
+ )
752
+ history.go(-1)
753
+ }).catch(()=>history.go(-1))
754
+ },
755
+
756
+ // tab切换
757
+ tabChange(){
758
+ if(this.tabActive === 'up'){
759
+ this.upData.input.sku.focus = true
760
+ }else {
761
+ this.downData.input.local.focus = true
762
+ }
763
+ },
764
+
765
+ // 打开缺货弹框
766
+ openLess(item, type){
767
+ this.lessPopup.type = type
768
+ this.lessPopup.item = item
769
+ this.lessPopup.show = true
770
+ this.lessPopup.input.sku.focus = true
771
+ },
772
+
773
+ // 缺货 - 商品确认
774
+ lessSkuConfirm(){
775
+ if (this.lessSkuCheck()){
776
+ this.lessPopup.input.num.focus = true
777
+ }
778
+ },
779
+ // 缺货 - 商品校验
780
+ lessSkuCheck(){
781
+ const sku = this.lessPopup.input.sku
782
+ if (!sku.value){
783
+ sku.focus = true
784
+ this.$lwShowErrorMsg(
785
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.skuNull','商品不能为空')
786
+ )
787
+ return false
788
+ }
789
+
790
+ if (sku.value !== this.lessPopup.item.skuCode){
791
+ sku.focus = true
792
+ this.$lwShowErrorMsg(
793
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.skuError','商品号与当前商品不一致')
794
+ )
795
+ sku.value = ''
796
+ return false
797
+ }
798
+
799
+ return true
800
+
801
+ },
802
+
803
+ // 缺货 - 缺货量确认
804
+ lessNumConfirm(){
805
+ if (this.lessNumCheck()){
806
+ this.lessConfirm()
807
+ }
808
+ },
809
+ // 缺货 - 缺货量检查
810
+ lessNumCheck(){
811
+ const num = this.lessPopup.input.num
812
+ const numVal = Number(num.value || 0)
813
+ if (!numVal){
814
+ num.focus = true
815
+ this.$lwShowErrorMsg(
816
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.littleNumZero','缺货量不能为空,且应当是大于0的整数')
817
+ )
818
+ return false
819
+ }
820
+
821
+ if (numVal > this.lessPopup.item.todoQty){
822
+ num.focus = true
823
+ this.$lwShowErrorMsg(
824
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.littleNumMore','缺货量不能大于待处理量')
825
+ )
826
+ num.value = ''
827
+ return false
828
+ }
829
+
830
+ return true
831
+ },
832
+
833
+ // 全部缺货
834
+ lessConfirm(){
835
+ const item = this.lessPopup.item
836
+ wmsMoveTaskLessQtyAbnormalSubmit({
837
+ taskId: this.$route.query.lwTaskId,
838
+ taskLineKey: item.lineKey,
839
+ abnQty: item.todoQty,
840
+ moveMethod: this.lessPopup.type === 'up' ? '2' : '1', // 1-下架,2-上架
841
+ abnLocationCode: item.fromLocationCode,
842
+ abnLpn: item.fromLpn,
843
+ }).then(()=>{
844
+ this.$lwToast.success(
845
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.upSuccess','上报成功')
846
+ )
847
+ this.lessPopup.show = false
848
+ this.getData()
849
+ })
850
+ },
851
+
852
+ // 确认部分缺货
853
+ lessPartConfirm(){
854
+ if (
855
+ !(this.lessSkuCheck() && this.lessNumCheck())
856
+ ) return
857
+
858
+ const item = this.lessPopup.item
859
+ wmsMoveTaskLessQtyAbnormalSubmit({
860
+ taskId: this.$route.query.lwTaskId,
861
+ taskLineKey: item.lineKey,
862
+ abnQty: this.lessPopup.input.num.value,
863
+ moveMethod: this.lessPopup.type === 'up' ? '2' : '1', // 1-下架,2-上架
864
+ abnLocationCode: item.fromLocationCode,
865
+ abnLpn: item.fromLpn,
866
+ }).then(()=>{
867
+
868
+ this.$lwToast.success(
869
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.upSuccess','上报成功')
870
+ )
871
+ this.lessPopup.show = false
872
+ this.getData()
873
+ })
874
+ },
875
+
876
+ // 缺货弹框关闭
877
+ lessPopupOff(){
878
+ const input = this.lessPopup.input
879
+ input.sku.value = ''
880
+ input.num.value = ''
881
+ },
882
+
883
+ // 打开异常弹框
884
+ openAbnormal(item, type){
885
+ this.abnormalPopup.item= item
886
+ this.abnormalPopup.type = type
887
+ this.abnormalPopup.comShow = true
888
+ this.abnormalPopup.show = true
889
+ },
890
+
891
+ // 异常上报确认
892
+ abnormalConfirm(){
893
+
894
+ const {success, data} = this.$refs.abnormal.getAbnormalData()
895
+
896
+ if (!success) return
897
+
898
+ const item = this.abnormalPopup.item
899
+ wmsMoveTaskAbnormalSubmit({
900
+ taskId: this.$route.query.taskId,
901
+ taskLineKey: item.lineKey,
902
+ fromLocationId: item.fromLocationId,
903
+ fromLpn: item.fromLpn,
904
+ abnBelongType:'STOCK',
905
+ abnDiscoveryPoint: this.abnormalPopup.type === 'down' ? 'MV_PUTDOWN' : 'MV_PUTAWAY',
906
+ ...data
907
+ }).then(()=>{
908
+ this.$lwToast.success(
909
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.abnSuccess','异常上报成功')
910
+ )
911
+
912
+ this.abnormalPopup.show = false
913
+ this.abnormalPopup.comShow = false
914
+
915
+ this.getData()
916
+ })
917
+ },
918
+
919
+ // 确认移动
920
+ moveConfirm(item, callback){
921
+ wmsExecMobileMove({
922
+ taskId: this.$route.query.lwTaskId,
923
+ ...item
924
+ }).then(()=>{
925
+
926
+ this.$lwToast.success(
927
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.changSuccess','操作成功')
928
+ )
929
+
930
+ callback && callback()
931
+
932
+ this.getData()
933
+ })
934
+ },
935
+
936
+
937
+
938
+ /* ---------- 下架 ----------*/
939
+
940
+ // 清空下架输入框
941
+ downClearInput(){
942
+ const input = this.downData.input
943
+ input.local.value = ''
944
+ input.local.focus = true
945
+ input.sku.value = ''
946
+ input.num.value = ''
947
+ input.lpn.value = ''
948
+ },
949
+
950
+ // 是否有下架托盘
951
+ hasDownLpn(){
952
+ let item = this.taskData.putDownMoveTaskLines[this.downData.index]
953
+ console.log(item.fromLpn && item.fromLpn !== '')
954
+ return item.fromLpn && item.fromLpn !== ''
955
+ },
956
+
957
+ // 库位确认
958
+ downDataLocalConfirm(){
959
+ if (this.downDataLocalCheck()){
960
+ if (this.hasDownLpn()) {
961
+ this.downData.input.downLpn.focus = true
962
+ } else {
963
+ this.downData.input.sku.focus = true
964
+ }
965
+ }
966
+ },
967
+ // 库位校验
968
+ downDataLocalCheck(){
969
+ const local = this.downData.input.local
970
+ if (!local.value) {
971
+ local.focus = true
972
+ this.$lwShowErrorMsg(
973
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.localNull','库位不能为空')
974
+ )
975
+ return false
976
+ }
977
+
978
+ if (local.value !== this.taskData.putDownMoveTaskLines[this.downData.index].fromLocationCode){
979
+ local.focus = true
980
+ this.$lwShowErrorMsg(
981
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.localError','下架库位与任务库位不一致')
982
+ )
983
+
984
+ local.value = ''
985
+
986
+ return false
987
+ }
988
+
989
+ return true
990
+ },
991
+
992
+ // 下架托盘确认
993
+ downDataDownLpnConfirm() {
994
+ if (this.downDataDownLpnCheck()){
995
+ this.downData.input.sku.focus = true
996
+ }
997
+ },
998
+ // 下架托盘校验
999
+ downDataDownLpnCheck(){
1000
+ const downLpn = this.downData.input.downLpn
1001
+ if (!downLpn.value) {
1002
+ downLpn.focus = true
1003
+ this.$lwShowErrorMsg(
1004
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.downLpnNull','下架托盘不能为空')
1005
+ )
1006
+ return false
1007
+ }
1008
+
1009
+ if (downLpn.value !== this.taskData.putDownMoveTaskLines[this.downData.index].fromLpn){
1010
+ downLpn.focus = true
1011
+ this.$lwShowErrorMsg(
1012
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.downLpnNotMatch','下架托盘号与任务托盘号不一致')
1013
+ )
1014
+
1015
+ downLpn.value = ''
1016
+
1017
+ return false
1018
+ }
1019
+
1020
+ return true
1021
+ },
1022
+
1023
+ // 商品号确认
1024
+ downDataSkuCodeConfirm(){
1025
+ if (this.downDataSkuCodeCheck()){
1026
+ this.downData.input.num.focus = true
1027
+ }
1028
+ },
1029
+ // 商品号输入校验
1030
+ downDataSkuCodeCheck(){
1031
+ const sku = this.downData.input.sku
1032
+ // 非空校验
1033
+ if (!sku.value){
1034
+ sku.focus = true
1035
+ this.$lwShowErrorMsg(
1036
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.skuNull','商品号不能为空')
1037
+ )
1038
+ return false
1039
+ }
1040
+
1041
+ // 是否输入正确
1042
+ if (sku.value !== this.taskData.putDownMoveTaskLines[this.downData.index].skuCode){
1043
+ sku.focus = true
1044
+ this.$lwShowErrorMsg(
1045
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.nowSkuNull','当前商品与下架商品不一致')
1046
+ )
1047
+ sku.value = ''
1048
+ return false
1049
+ }
1050
+
1051
+ return true
1052
+ },
1053
+
1054
+ // 数量确认
1055
+ downDataNumConfirm(){
1056
+ if (this.downDataNumCheck()){
1057
+ this.downData.input.lpn.focus = true
1058
+ }
1059
+ },
1060
+ // 数量校验
1061
+ downDataNumCheck(){
1062
+ const num = Number(this.downData.input.num.value || 0)
1063
+ if (!num){
1064
+ this.downData.input.num.focus = true
1065
+ this.$lwShowErrorMsg(
1066
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.qtyNull','数量不能为空,且应当是大于0的整数')
1067
+ )
1068
+ this.downData.input.num.value = ''
1069
+ return false
1070
+ }
1071
+
1072
+ if (num > this.taskData.putDownMoveTaskLines[this.downData.index].todoQty){
1073
+ this.downData.input.num.focus = true
1074
+ this.$lwShowErrorMsg(
1075
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.qtyMoer','数量不能大于待下架量')
1076
+ )
1077
+ this.downData.input.num.value = ''
1078
+ return false
1079
+ }
1080
+
1081
+ return true
1082
+ },
1083
+
1084
+ // 托盘号校验
1085
+ downDataLpnConfirm(){
1086
+ if(this.downDataLpnCheck()){
1087
+ this.actionDown()
1088
+ }
1089
+ },
1090
+ // 托盘号校验
1091
+ downDataLpnCheck(){
1092
+ if (this.downData.input.lpn.value) return true
1093
+
1094
+ this.downData.input.lpn.focus = true
1095
+ this.$lwShowErrorMsg(
1096
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.lpnNull','托盘号不能为空')
1097
+ )
1098
+ return false
1099
+ },
1100
+
1101
+ // 下架异常
1102
+ downDataAbnormal(){
1103
+ const item = this.taskData.putDownMoveTaskLines[this.downData.index]
1104
+ this.openAbnormal({
1105
+ ...item,
1106
+ qty: item.todoQty,
1107
+ location: item.fromLocationCode,
1108
+ type:this.$lwLanguage.get('wms_project.pda.inbound.taskMove.inbound','在库'),
1109
+ abType: this.$lwLanguage.get('wms_project.pda.inbound.taskMove.moveDown','移动下架')
1110
+ }, 'down')
1111
+ },
1112
+
1113
+ // 缺货下架
1114
+ downLess(){
1115
+ this.openLess(this.taskData.putDownMoveTaskLines[this.downData.index], 'down')
1116
+ },
1117
+
1118
+ // 确认下架
1119
+ actionDown(){
1120
+ if (
1121
+ !(this.downDataLocalCheck() &&
1122
+ this.downDataSkuCodeCheck() &&
1123
+ this.downDataNumCheck() &&
1124
+ this.downDataLpnCheck())
1125
+ ) return
1126
+
1127
+ const item = this.taskData.putDownMoveTaskLines[this.downData.index]
1128
+ this.moveConfirm({
1129
+ taskLineKey: item.lineKey,
1130
+ fromLocationId: item.fromLocationId,
1131
+ fromLpn: item.fromLpn,
1132
+ fromCase: item.fromCase,
1133
+ skuId: item.skuId,
1134
+ toLocationCode: this.downData.input.local.value,
1135
+ toLpn: this.downData.input.lpn.value,
1136
+ moveQty: this.downData.input.num.value,
1137
+ moveMethod: '1' // 1-下架,2-上架
1138
+ }, this.downClearInput)
1139
+ },
1140
+
1141
+
1142
+
1143
+ /* ---------- 上架 ----------*/
1144
+ // 清空输入框
1145
+ upClearInput(){
1146
+ this.upData.input.sku.value = ''
1147
+ this.upData.input.sku.focus = true
1148
+ this.upData.input.num.value = ''
1149
+ this.upData.input.wait = false
1150
+ this.upData.input.local.value = ''
1151
+ this.upData.input.lpn.value = ''
1152
+ },
1153
+
1154
+ // 商品号确认
1155
+ upDataSkuCodeConfirm(){
1156
+ if (this.upDataSkuCodeCheck()){
1157
+ this.upData.input.num.focus = true
1158
+ }
1159
+ },
1160
+ // 商品号输入校验
1161
+ upDataSkuCodeCheck(){
1162
+ const sku = this.upData.input.sku
1163
+ // 非空校验
1164
+ if (!sku.value){
1165
+ sku.focus = true
1166
+ this.$lwShowErrorMsg(
1167
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.skuNull','商品号不能为空')
1168
+ )
1169
+ return false
1170
+ }
1171
+
1172
+ // 是否输入正确
1173
+ if (sku.value !== this.taskData.putUpMoveTaskLines[this.upData.index].skuCode){
1174
+ sku.focus = true
1175
+ this.$lwShowErrorMsg(
1176
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.skuUpError','当前商品与上架商品不一致')
1177
+ )
1178
+ sku.value = ''
1179
+ return false
1180
+ }
1181
+
1182
+ return true
1183
+ },
1184
+
1185
+ // 数量确认
1186
+ upDataNumConfirm(){
1187
+ if (this.upDataNumCheck()){
1188
+ this.upData.input.local.focus = true
1189
+ }
1190
+ },
1191
+ // 数量校验
1192
+ upDataNumCheck(){
1193
+ const num = Number(this.upData.input.num.value || 0)
1194
+ if (!num){
1195
+ this.upData.input.num.focus = true
1196
+ this.$lwShowErrorMsg(
1197
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.numZero','数量不能为空,且应当是大于0的整数')
1198
+ )
1199
+ this.upData.input.num.value = ''
1200
+ return false
1201
+ }
1202
+
1203
+ if (num > this.taskData.putUpMoveTaskLines[this.upData.index].todoQty){
1204
+ this.upData.input.num.focus = true
1205
+ this.$lwShowErrorMsg(
1206
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.upNumMoer','数量不能大于待上架量')
1207
+ )
1208
+ this.upData.input.num.value = ''
1209
+ return false
1210
+ }
1211
+
1212
+ return true
1213
+ },
1214
+
1215
+ // 接力上架切换
1216
+ upDataWaitChange(){
1217
+ this.upData.input.local.value = ''
1218
+ this.upData.input.local.focus = true
1219
+ this.upData.input.lpn.value = ''
1220
+ },
1221
+
1222
+ // 库位确认
1223
+ upDataLocalConfirm(){
1224
+ if (this.upDataLocalCheck()){
1225
+ this.upData.input.lpn.focus = true
1226
+ }
1227
+ },
1228
+ // 库位校验
1229
+ upDataLocalCheck(){
1230
+ const local = this.upData.input.local
1231
+ if (!local.value) {
1232
+
1233
+ local.focus = true
1234
+ this.$lwShowErrorMsg(
1235
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.localNull','库位不能为空')
1236
+ )
1237
+ return false
1238
+ }
1239
+
1240
+ return true
1241
+ },
1242
+
1243
+ // 托盘号校验
1244
+ upDataLpnConfirm(){
1245
+ if(this.upDataLpnCheck()){
1246
+ this.actionUp()
1247
+ }
1248
+ },
1249
+ // 托盘号校验
1250
+ upDataLpnCheck(){
1251
+ if (!this.upData.input.wait || this.upData.input.lpn.value) return true
1252
+
1253
+ this.upData.input.lpn.focus = true
1254
+ this.$lwShowErrorMsg(
1255
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.lpnNull','托盘号不能为空')
1256
+ )
1257
+ return false
1258
+ },
1259
+
1260
+ // 确认上架
1261
+ actionUp(){
1262
+
1263
+ if (
1264
+ !(this.upDataSkuCodeCheck() &&
1265
+ this.upDataNumCheck() &&
1266
+ this.upDataLocalCheck() &&
1267
+ this.upDataLpnCheck())
1268
+ ) return
1269
+
1270
+ const item = this.taskData.putUpMoveTaskLines[this.upData.index]
1271
+
1272
+ // 检验库位是否正确
1273
+ const upLocal = this.taskData.putUpMoveTaskLines[this.upData.index].toLocationCode
1274
+ if(!this.upData.input.wait && upLocal && this.upData.input.local.value !== upLocal) {
1275
+ this.$dialog.confirm({
1276
+ title: this.$lwLanguage.get('wms_project.pda.inbound.taskMove.total', '提示'),
1277
+ message: this.$lwLanguage.get('wms_project.pda.inbound.taskMove.toLocalError', '目标库位与上架库位不一致,确认继续?')
1278
+ }).then(() => {
1279
+ this.moveConfirm({
1280
+ taskLineKey: item.lineKey,
1281
+ fromLocationId: item.fromLocationId,
1282
+ fromLpn: item.fromLpn,
1283
+ fromCase: item.fromCase,
1284
+ skuId: item.skuId,
1285
+ toLocationCode: this.upData.input.local.value,
1286
+ toLpn: this.upData.input.lpn.value,
1287
+ moveQty: this.upData.input.num.value,
1288
+ relay: this.upData.input.wait,
1289
+ moveMethod: '2' // 1-下架,2-上架
1290
+ }, this.upClearInput)
1291
+ }).catch(() => {})
1292
+
1293
+ return
1294
+ }
1295
+ this.moveConfirm({
1296
+ taskLineKey: item.lineKey,
1297
+ fromLocationId: item.fromLocationId,
1298
+ fromLpn: item.fromLpn,
1299
+ fromCase: item.fromCase,
1300
+ skuId: item.skuId,
1301
+ toLocationCode: this.upData.input.local.value,
1302
+ toLpn: this.upData.input.lpn.value,
1303
+ moveQty: this.upData.input.num.value,
1304
+ relay: this.upData.input.wait,
1305
+ moveMethod: '2' // 1-下架,2-上架
1306
+ }, this.upClearInput)
1307
+ },
1308
+
1309
+ // 缺货上架
1310
+ upLess(){
1311
+
1312
+ this.openLess(this.taskData.putUpMoveTaskLines[this.upData.index], 'up')
1313
+
1314
+ },
1315
+
1316
+ // 扫描商品定位
1317
+ upSkuSeo(){
1318
+ this.upSkuSeoPopup.show = true
1319
+ this.upSkuSeoPopup.sku.focus = true
1320
+ },
1321
+
1322
+ // 上架异常
1323
+ upDataAbnormal(){
1324
+ const item = this.taskData.putUpMoveTaskLines[this.upData.index]
1325
+ this.openAbnormal({
1326
+ ...item,
1327
+ qty: item.todoQty,
1328
+ location: item.toLocationCode,
1329
+ type:this.$lwLanguage.get('wms_project.pda.inbound.taskMove.inbound','在库'),
1330
+ abType: this.$lwLanguage.get('wms_project.pda.inbound.taskMove.moveUp','移动上架')
1331
+ }, 'up')
1332
+ },
1333
+
1334
+ // 扫描商品定位
1335
+ upSkuSeoPopupSkuConfirm(){
1336
+ if(!this.upSkuSeoPopup.sku.value){
1337
+ this.upSkuSeoPopup.sku.focus = true
1338
+ this.$lwShowErrorMsg(
1339
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.scanSku','请扫描或输入需要定位的商品号')
1340
+ )
1341
+ return
1342
+ }
1343
+
1344
+ for (let i=0;i<this.taskData.putUpMoveTaskLines.length;i++){
1345
+
1346
+ if (this.taskData.putUpMoveTaskLines[i].skuCode === this.upSkuSeoPopup.sku.value){
1347
+ this.upData.index = i
1348
+ this.$lwToast.success(
1349
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.cutCell','已切换至任务行')+ ':' + (i + 1)
1350
+ )
1351
+ this.upSkuSeoPopup.show = false
1352
+ this.upClearInput()
1353
+ return
1354
+ }
1355
+ }
1356
+
1357
+ this.$lwShowErrorMsg(
1358
+ this.$lwLanguage.get('wms_project.pda.inbound.taskMove.taskNullSku','在当前任务中没有查询到商品任务行,请确认商品号是否输入正确')
1359
+ )
1360
+ this.upSkuSeoPopup.sku.focus = true
1361
+ this.upSkuSeoPopup.sku.value = ''
1362
+ }
1363
+ }
1364
+ }
1365
+ </script>
1366
+
1367
+ <style scoped lang="less">
1368
+
1369
+ .lw-task-move-look-item{
1370
+ text-align: center;
1371
+ }
1372
+
1373
+
1374
+ </style>