index.vue 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  1. <template>
  2. <view class="mainBox">
  3. <uni-nav-bar fixed="true" statusBar="true" left-icon="back" title="盘点工单" @clickLeft="back"></uni-nav-bar>
  4. <view class="top-wrapper">
  5. <view class="tab_box rx-sc">
  6. <view class="tab_item" :class="index === pickTabIndex ? 'active' : ''" v-for="(item,index) in tabList"
  7. :key="index">
  8. <view @click="changeChartsTab(index)">
  9. {{item.label}}
  10. </view>
  11. </view>
  12. </view>
  13. </view>
  14. <!-- <u-list v-if="listData.length > 0" @scrolltolower="scrolltolower" class="z_list">
  15. <view class="list-wrap" v-for="(item, index) in listData" :key="index" v-show="listData.length !== 0">
  16. <CardTime :time="item.createTime" />
  17. <KdCard :title="item.code" :status="true" :item="item" type="check" />
  18. </view>
  19. </u-list>
  20. <view v-else class="no_data">
  21. <u-empty mode="data"></u-empty>
  22. </view> -->
  23. <view class="work-list">
  24. <u-list @scrolltolower="scrolltolower" :preLoadScreen="page * 10">
  25. <u-list-item v-for="(item, index) in listData" :key="index">
  26. <CardTime :time="item.createTime" />
  27. <KdCard :title="item.code" :status="true" :item="item" type="check" />
  28. </u-list-item>
  29. <u-list-item v-if="listData.length === 0">
  30. <view class="nodata">暂无数据</view>
  31. </u-list-item>
  32. </u-list>
  33. </view>
  34. </view>
  35. </template>
  36. <script>
  37. import {
  38. post
  39. } from '@/utils/api.js'
  40. import {
  41. getPlanOrderList
  42. } from '@/api/warehouseManagement'
  43. import KdCard from './components/KdCard/index.vue'
  44. import CardTime from './components/CardTime.vue'
  45. // import dictMixins from '@/mixins/dictMixins'
  46. // let [page, size, isEnd] = [1, 10, true]
  47. export default {
  48. // mixins: [dictMixins],
  49. components: {
  50. KdCard,
  51. CardTime
  52. },
  53. data() {
  54. return {
  55. page: 1,
  56. size: 10,
  57. isEnd: true,
  58. tabList: [{
  59. value: '',
  60. label: '全部'
  61. },
  62. {
  63. value: 0,
  64. label: '待处理'
  65. },
  66. {
  67. value: 1,
  68. label: '执行中'
  69. },
  70. {
  71. value: 2,
  72. label: '已完成'
  73. }
  74. ],
  75. pickTabIndex: 0, //Tab选择
  76. listData: []
  77. }
  78. },
  79. onLoad() {
  80. // this.requestDict('物品类型')
  81. this.getFirstList()
  82. },
  83. onShow() {
  84. uni.$off('refreshInventoryList')
  85. uni.$on('refreshInventoryList', () => {
  86. this.getFirstList()
  87. })
  88. },
  89. //加载更多
  90. // onReachBottom() {
  91. // if (this.isEnd) {
  92. // return
  93. // }
  94. // // 显示加载图标
  95. // this.getMoreLists()
  96. // },
  97. methods: {
  98. scrolltolower() {
  99. console.log('scrolltolower-----------')
  100. if (this.isEnd) {
  101. return
  102. }
  103. // 显示加载图标
  104. this.getMoreLists()
  105. },
  106. //首次加载
  107. getFirstList() {
  108. this.page = 1
  109. this.isEnd = true
  110. this.getList()
  111. },
  112. //获取更多列表
  113. getMoreLists() {
  114. //获取更多数据
  115. this.page++
  116. this.getList()
  117. },
  118. //获取数据列表
  119. getList() {
  120. uni.showLoading({
  121. title: '加载中'
  122. })
  123. let data = {
  124. pageNum: this.page,
  125. size: this.size,
  126. status: this.tabList[this.pickTabIndex].value
  127. }
  128. getPlanOrderList(data)
  129. .then(res => {
  130. let data = res.list
  131. let pageTotal = res.count
  132. if (this.page === 1) {
  133. this.listData = data
  134. } else {
  135. this.listData = this.listData.concat(data)
  136. }
  137. this.listData.length < pageTotal ? (this.isEnd = false) : (this.isEnd = true)
  138. })
  139. .finally(() => {
  140. uni.hideLoading()
  141. })
  142. //2 - 99 [已完成]
  143. // let par = this.URLSearchParams(Pagination)
  144. // post(this.apiUrl + '/workOrder/getWorkOrderList?' + par, data)
  145. // .then(res => {
  146. // let data = res.data.records
  147. // let pageTotal = res.data.pages
  148. // if (page === 1) {
  149. // this.listData = data
  150. // } else {
  151. // data.forEach(element => {
  152. // this.listData.push(element)
  153. // })
  154. // }
  155. // page < pageTotal ? (isEnd = false) : (isEnd = true)
  156. // })
  157. // .then(() => {
  158. // uni.hideLoading()
  159. // })
  160. },
  161. //切换菜单Tab
  162. changeChartsTab(index) {
  163. this.pickTabIndex = index
  164. this.getFirstList()
  165. },
  166. // 跳转盘点清单
  167. goInventory(item) {
  168. let par = this.URLSearchParams({
  169. id: item.id,
  170. status: item.status
  171. })
  172. uni.navigateTo({
  173. url: '/pages/warehouse/workOrder/inventory/inventory?' + par
  174. })
  175. }
  176. }
  177. }
  178. </script>
  179. <style lang="scss" scoped>
  180. .mainBox {
  181. height: 100vh;
  182. overflow: hidden;
  183. display: flex;
  184. flex-direction: column;
  185. .top-wrapper {
  186. display: flex;
  187. align-items: center;
  188. background-color: #fff;
  189. position: relative;
  190. .tab_box {
  191. width: 100%;
  192. height: 68rpx;
  193. .tab_item {
  194. height: 68rpx;
  195. line-height: 68rpx;
  196. padding: 0 20rpx;
  197. font-size: 32rpx;
  198. // color: #979C9E;
  199. }
  200. .active {
  201. box-sizing: border-box;
  202. border-bottom: 6rpx solid $theme-color;
  203. color: $theme-color;
  204. }
  205. }
  206. }
  207. .work-list {
  208. flex: 1;
  209. overflow: hidden;
  210. padding: 0 24rpx 16rpx 24rpx;
  211. background-color: $page-bg;
  212. .u-list {
  213. height: 100% !important;
  214. }
  215. }
  216. .nodata {
  217. font-size: 40rpx;
  218. text-align: center;
  219. padding-top: 30rpx;
  220. }
  221. }
  222. .z_list {
  223. flex: 1;
  224. overflow: hidden;
  225. }
  226. /*列表信息*/
  227. .list-wrap {
  228. padding: 10rpx;
  229. background-color: $page-bg;
  230. // .item {
  231. // display: flex;
  232. // justify-content: space-between;
  233. // padding: 10rpx;
  234. // color: rgb(170, 170, 170);
  235. // font-size: 28rpx;
  236. // word-break: break-all;
  237. // .title {
  238. // color: #333333;
  239. // font-size: 28rpx;
  240. // }
  241. // .state {
  242. // font-size: 12px;
  243. // display: inline;
  244. // padding: 2px 5px;
  245. // border-radius: 10px;
  246. // }
  247. // .asset {
  248. // font-size: 12px;
  249. // color: #7f7f7f;
  250. // background: #f1f1f1;
  251. // padding: 2px 5px;
  252. // border-radius: 2px;
  253. // }
  254. // }
  255. &+.list-wrap {
  256. border-top: 1px solid rgba(242, 242, 242, 1);
  257. }
  258. }
  259. </style>