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

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