index.vue 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  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. //加载更多
  84. // onReachBottom() {
  85. // if (this.isEnd) {
  86. // return
  87. // }
  88. // // 显示加载图标
  89. // this.getMoreLists()
  90. // },
  91. methods: {
  92. scrolltolower() {
  93. console.log('scrolltolower-----------')
  94. if (this.isEnd) {
  95. return
  96. }
  97. // 显示加载图标
  98. this.getMoreLists()
  99. },
  100. //首次加载
  101. getFirstList() {
  102. this.page = 1
  103. this.isEnd = true
  104. this.getList()
  105. },
  106. //获取更多列表
  107. getMoreLists() {
  108. //获取更多数据
  109. this.page++
  110. this.getList()
  111. },
  112. //获取数据列表
  113. getList() {
  114. uni.showLoading({
  115. title: '加载中'
  116. })
  117. let data = {
  118. pageNum: this.page,
  119. size: this.size,
  120. status: this.tabList[this.pickTabIndex].value
  121. }
  122. getPlanOrderList(data)
  123. .then(res => {
  124. let data = res.list
  125. let pageTotal = res.count
  126. if (this.page === 1) {
  127. this.listData = data
  128. } else {
  129. this.listData = this.listData.concat(data)
  130. }
  131. this.listData.length < pageTotal ? (this.isEnd = false) : (this.isEnd = true)
  132. })
  133. .finally(() => {
  134. uni.hideLoading()
  135. })
  136. //2 - 99 [已完成]
  137. // let par = this.URLSearchParams(Pagination)
  138. // post(this.apiUrl + '/workOrder/getWorkOrderList?' + par, data)
  139. // .then(res => {
  140. // let data = res.data.records
  141. // let pageTotal = res.data.pages
  142. // if (page === 1) {
  143. // this.listData = data
  144. // } else {
  145. // data.forEach(element => {
  146. // this.listData.push(element)
  147. // })
  148. // }
  149. // page < pageTotal ? (isEnd = false) : (isEnd = true)
  150. // })
  151. // .then(() => {
  152. // uni.hideLoading()
  153. // })
  154. },
  155. //切换菜单Tab
  156. changeChartsTab(index) {
  157. this.pickTabIndex = index
  158. this.getFirstList()
  159. },
  160. // 跳转盘点清单
  161. goInventory(item) {
  162. let par = this.URLSearchParams({
  163. id: item.id,
  164. status: item.status
  165. })
  166. uni.navigateTo({
  167. url: '/pages/warehouse/workOrder/inventory/inventory?' + par
  168. })
  169. }
  170. }
  171. }
  172. </script>
  173. <style lang="scss" scoped>
  174. .mainBox {
  175. height: 100vh;
  176. overflow: hidden;
  177. display: flex;
  178. flex-direction: column;
  179. .top-wrapper {
  180. display: flex;
  181. align-items: center;
  182. background-color: #fff;
  183. position: relative;
  184. .tab_box {
  185. width: 100%;
  186. height: 68rpx;
  187. .tab_item {
  188. height: 68rpx;
  189. line-height: 68rpx;
  190. padding: 0 20rpx;
  191. font-size: 32rpx;
  192. // color: #979C9E;
  193. }
  194. .active {
  195. box-sizing: border-box;
  196. border-bottom: 6rpx solid $theme-color;
  197. color: $theme-color;
  198. }
  199. }
  200. }
  201. .work-list {
  202. flex: 1;
  203. overflow: hidden;
  204. padding: 0 24rpx 16rpx 24rpx;
  205. background-color: $page-bg;
  206. .u-list {
  207. height: 100% !important;
  208. }
  209. }
  210. .nodata {
  211. font-size: 40rpx;
  212. text-align: center;
  213. padding-top: 30rpx;
  214. }
  215. }
  216. .z_list {
  217. flex: 1;
  218. overflow: hidden;
  219. }
  220. /*列表信息*/
  221. .list-wrap {
  222. padding: 10rpx;
  223. background-color: $page-bg;
  224. // .item {
  225. // display: flex;
  226. // justify-content: space-between;
  227. // padding: 10rpx;
  228. // color: rgb(170, 170, 170);
  229. // font-size: 28rpx;
  230. // word-break: break-all;
  231. // .title {
  232. // color: #333333;
  233. // font-size: 28rpx;
  234. // }
  235. // .state {
  236. // font-size: 12px;
  237. // display: inline;
  238. // padding: 2px 5px;
  239. // border-radius: 10px;
  240. // }
  241. // .asset {
  242. // font-size: 12px;
  243. // color: #7f7f7f;
  244. // background: #f1f1f1;
  245. // padding: 2px 5px;
  246. // border-radius: 2px;
  247. // }
  248. // }
  249. &+.list-wrap {
  250. border-top: 1px solid rgba(242, 242, 242, 1);
  251. }
  252. }
  253. </style>