inventory-warehousing-edit.vue 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. <template>
  2. <view class="page">
  3. <uni-section title='单据信息' type='line' :strong="true" class="bg-white"/>
  4. <list-input title="入库单编号" :highlight="false" :subTitle="SWH" class="bg-white my-2"/>
  5. <table-list :list='list' btrClassName="bg-white-muted" ref='table'>
  6. <template v-slot:difamount="{name,index,record}">
  7. <view>{{record.difAmount}}</view>
  8. </template>
  9. </table-list>
  10. <btn-save @save='onSave' :disabledOk="disabledSubmit" cancelText="返回" :back="true"></btn-save>
  11. </view>
  12. </template>
  13. <script>
  14. import uniSection from "@/components/uni-ui/uni-section/uni-section.vue"
  15. import listInput from "@/components/common/list-input.vue"
  16. import tableList from "@/components/common/table-list.vue"
  17. import btnSave from "@/components/common/btn-save.vue"
  18. import {mergeArray} from "@/common/utils/common.js"
  19. import {DELAY_CLOSE_SUBMIT} from "@/common/utils/tipMessage.js"
  20. import {mapGetters} from "vuex"
  21. import {queryDirectDetailInventoryorder,queryExamineDetailInventoryorder,saveDirectInventoryorder,saveExamineInventoryorder} from "@/api/api.js"
  22. const headData=[
  23. {key:'WPH',dataIndex:"WPH",title:"物品号",},
  24. {key:"CHSL",dataIndex:"CHSL",title:"应入数量",},
  25. {key:"itemnum",dataIndex:"itemnum",title:"实际数量",},
  26. {key:"difAmount",dataIndex:"difAmount",title:"差异数量",scope:"difamount"},
  27. ]
  28. export default {
  29. // mixins:[inventoryEditMixin],
  30. components:{
  31. uniSection,
  32. listInput,
  33. tableList,
  34. btnSave
  35. },
  36. data () {
  37. return {
  38. list:{
  39. head:headData,
  40. body:[]
  41. }, // 计算之后的数据
  42. scanList:[], // 扫描录入的数据
  43. realList:[], // 后台获取的数据
  44. typekey:null , // 类型关键字
  45. SWH:null,
  46. }
  47. },
  48. computed:{
  49. ...mapGetters(['disabledSubmit']),
  50. },
  51. async onLoad (e) {
  52. /*
  53. typekey:直接入库,检验入库
  54. SWH:事务号
  55. list:扫码得到的物品列表
  56. */
  57. // console.log(e)
  58. this.SWH=e.SWH
  59. this.typekey=e.typekey
  60. this.scanList=JSON.parse(e.list)
  61. switch (this.typekey) {
  62. case "直接入库" :
  63. await this._queryDirectDetailInventoryorder()
  64. break;
  65. case "检验入库" :
  66. await this._queryExamineDetailInventoryorder()
  67. break;
  68. }
  69. },
  70. onUnload () {
  71. },
  72. onPageScroll(res) {
  73. uni.$emit('onPageScroll',res);
  74. },
  75. methods:{
  76. // 检验入库存储
  77. async _saveExamineInventoryorder () {
  78. let items=[]
  79. this.list.body.forEach(item=>{
  80. items.push({
  81. "WPH":item.WPH,
  82. "SL":isNaN(item.itemnum) ? 0 : item.itemnum
  83. })
  84. })
  85. const reqdata={
  86. "SWH":this.SWH, //事务号
  87. items:items,
  88. }
  89. await saveExamineInventoryorder(reqdata).then(resdata=>{
  90. })
  91. return true
  92. },
  93. // 直接入库存储
  94. async _saveDirectInventoryorder () {
  95. let items=[]
  96. this.list.body.forEach(item=>{
  97. items.push({
  98. "WPH":item.WPH,
  99. "SL":isNaN(item.itemnum) ? 0 : item.itemnum
  100. })
  101. })
  102. const reqdata={
  103. "SWH":this.SWH, //事务号
  104. items:items
  105. }
  106. console.log(reqdata)
  107. await saveDirectInventoryorder(reqdata).then(resdata=>{
  108. })
  109. return true
  110. },
  111. // 获取格式化后的数组
  112. _formatList () {
  113. let arr=mergeArray(this.realList,'CHSL',this.scanList,'itemnum','WPH')
  114. this.list.body=arr
  115. },
  116. // 直接入库明细获取
  117. _queryDirectDetailInventoryorder () {
  118. const reqdata={
  119. SWH:this.SWH
  120. }
  121. queryDirectDetailInventoryorder(reqdata).then(resdata=>{
  122. this.realList=resdata
  123. this._formatList()
  124. })
  125. },
  126. // 检验入库明细获取
  127. _queryExamineDetailInventoryorder () {
  128. const reqdata={
  129. SWH:this.SWH
  130. }
  131. queryExamineDetailInventoryorder(reqdata).then(resdata=>{
  132. this.realList=resdata
  133. this._formatList()
  134. })
  135. },
  136. // 保存
  137. onSave () {
  138. uni.showModal({
  139. title:"确认保存吗",
  140. success:async (res)=>{
  141. if (res.confirm) {
  142. switch (this.typekey) {
  143. case "直接入库" :
  144. await this._saveDirectInventoryorder()
  145. break;
  146. case "检验入库" :
  147. await this._saveExamineInventoryorder()
  148. break;
  149. }
  150. uni.showToast({
  151. title:'保存成功'
  152. })
  153. // 通知扫描页面,清空数据
  154. uni.$emit('onSubmitIventory',{status:200})
  155. uni.reLaunch({
  156. url:"/pages/index/index"
  157. })
  158. }
  159. }
  160. })
  161. }
  162. }
  163. }
  164. </script>
  165. <style>
  166. </style>