add.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472
  1. const app = getApp()
  2. const Constants = require('@/utils/Constants.js');
  3. const api = require('@/utils/api.js');
  4. import Dialog from '@/dist/dialog/dialog.js'
  5. const util = require('@/utils/util.js')
  6. const common = require('@/utils/common.js')
  7. const config = require('@/config/config.js')
  8. Page({
  9. /**
  10. * 页面的初始数据
  11. */
  12. data: {
  13. form: {
  14. whId: '', //仓库ID
  15. whName: '', //仓库名称
  16. },
  17. item:{},
  18. goodsList:[],
  19. barList:[],
  20. whNameFlag:false,
  21. annexPaths:[],
  22. fileList:[],
  23. flgAllScan:true,
  24. },
  25. /**
  26. * @desc : 扫码入库/入库回退
  27. * @author : 常皓宁
  28. * @date : 2023/9/5 8:44
  29. */
  30. deal(){
  31. let data = this.data.item
  32. Dialog.confirm({
  33. message: '确认要进行该操作吗?',
  34. }).then(() => {
  35. let param ={
  36. cpId: app.globalData.user.cpId,
  37. entryId: data.entryId,
  38. remarks:this.data.form.remarks,
  39. entryWhId:this.data.form.whId,
  40. annexPaths:this.data.annexPaths ? this.data.annexPaths : [],
  41. fileList:this.data.fileList ? this.data.fileList : [],
  42. orderId:data.orderId,
  43. }
  44. if(data.entryStatus == 3){
  45. //已入库入库回退
  46. api.request(Constants.ORDER_ENTRY_API + 'complete_revocation_entry', 'POST', param).then(res => {
  47. if(res.data.code == 200){
  48. wx.showToast({
  49. title: '提交成功',
  50. image: '/static/image/success.png',
  51. duration: 1000
  52. })
  53.   wx.navigateBack({
  54.       delta: 1
  55. })
  56. var pages = getCurrentPages();
  57.             var prevPage = pages[pages.length - 2];
  58.             prevPage.setData({
  59. entryFlag: true
  60.             })
  61. }
  62. })
  63. }else {
  64. //扫码入库TODO
  65. wx.navigateTo({
  66. url: '/package7/pages/scan-show-purchase-entry/scan-show-purchase-entry?item=' + encodeURIComponent(JSON.stringify(this.data.item)) + '&sourcePage=scan-Warehousing-processing',
  67. })
  68. }
  69. }).catch(() => {
  70. });
  71. },
  72. /**
  73. * @desc : 入库办理/小编辑保存
  74. * @author : 常皓宁
  75. * @date : 2023/9/5 8:44
  76. */
  77. submit(){
  78. let data = this.data.item
  79. Dialog.confirm({
  80. message: '确认要进行该操作吗?',
  81. }).then(() => {
  82. let param ={
  83. cpId: app.globalData.user.cpId,
  84. entryId: data.entryId,
  85. remarks:this.data.form.remarks,
  86. entryWhId:this.data.form.whId,
  87. annexPaths:this.data.annexPaths ? this.data.annexPaths : [],
  88. fileList:this.data.fileList ? this.data.fileList : [],
  89. orderId:data.orderId,
  90. }
  91. //已入库小编辑
  92. if(data.entryStatus == 3){
  93. param.smallEdit = true
  94. api.request(Constants.ORDER_ENTRY_API + 'purcase_entry_completed', 'POST', param).then(res => {
  95. if(res.data.code == 200){
  96. wx.showToast({
  97. title: '提交成功',
  98. image: '/static/image/success.png',
  99. duration: 1000
  100. })
  101.   wx.navigateBack({
  102.       delta: 1
  103. })
  104. var pages = getCurrentPages();
  105.             var prevPage = pages[pages.length - 2];
  106.             prevPage.setData({
  107. entryFlag: true
  108.             })
  109. }
  110. })
  111. }else {
  112. //待入库入库办理
  113. param.smallEdit = false
  114. api.request(Constants.ORDER_ENTRY_API + 'purcase_entry_completed', 'POST', param).then(res => {
  115. if(res.data.code == 200){
  116. wx.showToast({
  117. title: '提交成功',
  118. image: '/static/image/success.png',
  119. duration: 1000
  120. })
  121.   wx.navigateBack({
  122.       delta: 1
  123. })
  124. var pages = getCurrentPages();
  125.             var prevPage = pages[pages.length - 2];
  126.             prevPage.setData({
  127. entryFlag: true
  128.             })
  129. }
  130. })
  131. }
  132. }).catch(() => {
  133. });
  134. },
  135. /**
  136. * @desc : 组件单选下拉打开事件
  137. * @author : 于继渤
  138. * @date : 2022/5/26 17:16
  139. */
  140. openSingle(e) {
  141. if(this.data.item.entryStatus != 3){
  142. let type = e.currentTarget.dataset.type
  143. if (type === 'whName') {
  144. this.setData({
  145. whFlag: true
  146. })
  147. }
  148. }
  149. },
  150. /**
  151. * @desc : 下拉多选确定
  152. * @author : 于继渤
  153. * @date : 2022/5/26 12:16
  154. */
  155. mutiSearch(e) {
  156. let id = e.target.id
  157. let form = this.data.form
  158. if (id === 'warehouseTotal') {
  159. form.whId = e.detail.id
  160. form.whName = e.detail.name
  161. this.setData({
  162. whFlag: false,
  163. form: form
  164. })
  165. }
  166. },
  167. /**
  168. * @desc : 下拉多选关闭
  169. * @author : 于继渤
  170. * @date : 2022/5/26 12:16
  171. */
  172. muticlose(e) {
  173. let id = e.currentTarget.id
  174. if (id === 'entryWarehouse') {
  175. this.setData({
  176. whFlag: false
  177. })
  178. }
  179. },
  180. /**
  181. * 生命周期函数--监听页面加载
  182. */
  183. onLoad(options) {
  184. //敏感信息控制
  185. if (options.item) {
  186. let item = JSON.parse(decodeURIComponent(options.item))
  187. this.setData({
  188. form: {
  189. whId: item.entryWhId, //默认仓库ID
  190. whName: item.whName, //默认仓库名称
  191. }
  192. })
  193. let param = {
  194. entryId: item.entryId,
  195. }
  196. let fileList = []
  197. let annexPaths = []
  198. let goodsList = [
  199. {
  200. "bomSkuId": null,
  201. "brandName": "恒洁卫浴",
  202. "canRejectQuantity": null,
  203. "consignee": null,
  204. "consigneePhone": null,
  205. "contactName": null,
  206. "contactPhones": null,
  207. "cpId": 20826,
  208. "customerId": null,
  209. "entryAmount": 12000,
  210. "entryDate": '2023-12-28',
  211. "entryGoingAmount": 12000,
  212. "entryGoingQuantity": 6,
  213. "entryId": 1678,
  214. "entryItemId": null,
  215. "entryKindName": null,
  216. "entryNo": null,
  217. "entryQuantity": 6,
  218. "entryStatus": 3,
  219. "erpOutItemId": 1435402,
  220. "erpOutNo": "CWSAH2123122800001",
  221. "flgNonStandardType": null,
  222. "flgScanCode": 0,
  223. "flgValid": true,
  224. "iconPath": null,
  225. "iconThumPath": null,
  226. "inOutDate": null,
  227. "inOutStatus": null,
  228. "invoiceDate": null,
  229. "itemId": 3601,
  230. "itemRemarks": null,
  231. "ivtId": 209,
  232. "ivtQty": null,
  233. "makingTime": null,
  234. "makingUserName": null,
  235. "nonStandardArea": 1,
  236. "nonStandardCode": "-",
  237. "opCreateTime": "2023-12-28 09:36:22",
  238. "opCreateUserId": 254,
  239. "opUpdateTime": "2024-01-05 09:44:20",
  240. "opUpdateUserId": 998,
  241. "orderAmount": 12000,
  242. "orderId": 11502,
  243. "orderItemId": 34959,
  244. "orderNo": null,
  245. "orderPriceSale": 2000,
  246. "orderQuantity": 6,
  247. "originalDocumentNo": "PA-LWYD-665-202312280RBY",
  248. "originalDocumentType": "采购订单",
  249. "outGoingQty": null,
  250. "outId": null,
  251. "outItemId": null,
  252. "pathType": 2,
  253. "procureOrderNo": "PA-LWYD-665-202312280RBY",
  254. "refCostAmt": null,
  255. "refCostPrice": null,
  256. "rejectAmount": -10000,
  257. "rejectId": null,
  258. "rejectItemId": null,
  259. "rejectQuantity": -5,
  260. "remarks": null,
  261. "sale1ErpOutDoneNo": "CWIDH2123122800002",
  262. "sale1OutItemId": 5998,
  263. "sale2Name": null,
  264. "sentryId": null,
  265. "sentryItemId": null,
  266. "skuCode": "EE920A00200B01",
  267. "skuId": 9537580,
  268. "skuModel": "HE920",
  269. "skuName": "【已淘汰】智能盖板HE920",
  270. "skuType": 0,
  271. "skuTypeName": "智能马桶\\智能盖板",
  272. "skuVolume": null,
  273. "skuWeight": null,
  274. "specsList": null,
  275. "statusName": null,
  276. "sumAmount": null,
  277. "sumQuantity": null,
  278. "sumRejectGoodsAmount": null,
  279. "supplierName": null,
  280. "takeOverAddress": null,
  281. "totalRemarks": null,
  282. "usableQty": null,
  283. "whCode": null,
  284. "whId": 610,
  285. "whName": "武夷山1"
  286. }
  287. ]
  288. this.setData({
  289. item:item,
  290. activeNames: ['1'],
  291. fileList:fileList,
  292. annexPaths:item.annexPaths,
  293. goodsList:goodsList,
  294. })
  295. api.request(Constants.ORDER_ENTRY_API + 'get_order_entry_item', 'POST', param).then(res => {
  296. this.setData({
  297. loading: false
  298. })
  299. if (res.data.code === 200) {
  300. let tgoodsList = this.data.goodsList
  301. tgoodsList = res.data.data.list
  302. let numQuantity = 0
  303. let numAmount = 0
  304. tgoodsList.forEach(res =>{
  305. let entryStatus = res.entryStatus
  306. if(entryStatus == 3){
  307. numQuantity += res.entryQuantity
  308. numAmount += res.entryAmount
  309. } else {
  310. numQuantity += res.entryGoingQuantity
  311. numAmount += res.entryGoingAmount
  312. }
  313. })
  314. item.tSumQuantity = numQuantity
  315. item.tSumAmount = numAmount
  316. let fileList = []
  317. if (item.annexPaths && item.annexPaths.length > 0) {
  318. item.annexPaths.forEach(item => {
  319. fileList.push({
  320. url: item.url,
  321. FilePath: item.url,
  322. deletable: true
  323. })
  324. })
  325. }else{
  326. item.annexPaths = []
  327. }
  328. this.setData({
  329. item:item,
  330. activeNames: ['1'],
  331. fileList:fileList,
  332. annexPaths:item.annexPaths,
  333. goodsList:tgoodsList,
  334. })
  335. }
  336. })
  337. }
  338. },
  339. onChange(event) {
  340. this.setData({
  341. activeNames: event.detail,
  342. });
  343. },
  344. //展开
  345. collapseFlagChange(e) {
  346. console.log(e.currentTarget.dataset.index)
  347. this.setData({
  348. collapseFlag: !this.data.collapseFlag
  349. })
  350. },
  351. onClickScan(e){
  352. let barList = this.data.barList
  353. barList[e.currentTarget.dataset.index].checked = !barList[e.currentTarget.dataset.index].checked
  354. this.setData({
  355. barList: barList
  356. })
  357. },
  358. openSacn(){
  359. if(this.data.flgAllScan){
  360. let barList = this.data.barList
  361. this.setData({
  362. sacnFlag: true,
  363. barList:barList
  364. })
  365. }
  366. // 补码
  367. else {
  368. //入库补码
  369. let entryId = this.data.item.entryId
  370. wx.navigateTo({
  371. url: '/package7/pages/scan-show-purchase-complement/scan-show-purchase-complement?entryId=' + entryId,
  372. })
  373. }
  374. },
  375. closeChoosedItemInfo_scan(){
  376. this.setData({
  377. sacnFlag: false
  378. })
  379. },
  380. /**
  381. * 输入框 文字改变监听事件
  382. */
  383. fieldChange(e) {
  384. let form = this.data.form
  385. let type = e.currentTarget.dataset.type
  386. if (type === "remarks") {
  387. form.remarks = e.detail
  388. }
  389. this.setData({
  390. form: form
  391. })
  392. },
  393. /**
  394. * @desc : 订单上传附件方法
  395. * @author : 于继渤
  396. * @date : 2022/6/02 16:16
  397. */
  398. afterRead(event) {
  399. const _this = this;
  400. const {
  401. file
  402. } = event.detail;
  403. let annexPaths = _this.data.annexPaths
  404. let arr = _this.data.fileList;
  405. file.forEach(res => {
  406. // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
  407. wx.uploadFile({
  408. url: `${config.server_add}:${config.server_port}` + '/basic-server/file/upload',
  409. filePath: res.path,
  410. name: 'file',
  411. formData: {
  412. 'folder': 't_order_enrty/annex_paths'
  413. },
  414. header: {
  415. 'Authorization': 'Bearer ' + app.globalData.token
  416. },
  417. success(res) {
  418. let data = JSON.parse(res.data)
  419. if (data.code === 200) {
  420. arr.push({
  421. url: data.data.absolutelyPath,
  422. FilePath: data.data.relativePath,
  423. deletable: true
  424. })
  425. let file = data.data.relativePath.split('/')
  426. annexPaths.push({
  427. url: data.data.absolutelyPath,
  428. type: 'image',
  429. docType:'采购入库',
  430. name: file[file.length - 1],
  431. createTime: util.formatDataTime(new Date())
  432. })
  433. _this.setData({
  434. fileList: arr,
  435. annexPaths: annexPaths
  436. })
  437. }
  438. },
  439. })
  440. })
  441. },
  442. /**
  443. * @desc : 删除图片
  444. * @author : 于继渤
  445. * @date : 2022/5/31 18:16
  446. */
  447. deleteImg(e) {
  448. let index = e.detail.index;
  449. let arr = this.data.annexPaths;
  450. arr.splice(index, 1);
  451. this.setData({
  452. fileList: arr,
  453. annexPaths:arr
  454. })
  455. },
  456. })