list.vue 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. <template>
  2. <div class='replenishment-picking-list'>
  3. <van-sticky :offset-top="offsetTop">
  4. <van-tabs v-model="active" @change="onChange">
  5. <!-- <van-tab title="全部"></van-tab> -->
  6. <van-tab title="备货中"></van-tab>
  7. <van-tab title="">
  8. <div slot="title">
  9. <van-badge v-if="waitCount" :content="waitCount">待领料</van-badge>
  10. <span v-else>待领料</span>
  11. </div>
  12. </van-tab>
  13. <van-tab title="已领料"></van-tab>
  14. <!-- <van-tab title="已驳回"></van-tab> -->
  15. </van-tabs>
  16. </van-sticky>
  17. <CustomList
  18. ref="customList"
  19. :searchfun="false"
  20. @onLoad="onLoad">
  21. <div class="list plr15 pt10">
  22. <div @click="gotoDetail(item)" v-for="(item, i) in list" :key="i" class="item bgc-fff plr15 c-333 fs-14">
  23. <div class=" ptb10 kitbox bb-e1e1e1">
  24. <div class="box-flex-1 fs-14">备货单号:{{item.docNum}}</div>
  25. <div class="">
  26. <span v-if="active===0" class="c-ff9526">备货中</span>
  27. <span v-else-if="active===1" class="c-17b3ec">待领料</span>
  28. <span v-else-if="active===2" class="c-999">已领料</span>
  29. <!-- <span class="c-ff5e6c">已驳回</span> -->
  30. </div>
  31. </div>
  32. <div class="lh20 ptb10 kitbox">
  33. <div class="box-flex-1">
  34. <div class="row">
  35. <div>补货员</div>
  36. <div>{{item.replenishEr}}</div>
  37. </div>
  38. <div class="row">
  39. <div>待补设备</div>
  40. <div>{{item.replenishEqu}}</div>
  41. </div>
  42. <div class="row">
  43. <div>待补品类</div>
  44. <div>{{item.replenishCateName}}</div>
  45. </div>
  46. <div class="row">
  47. <div>待补库存</div>
  48. <div>{{item.replenishInventory}}</div>
  49. </div>
  50. <div class="row">
  51. <div>单据日期</div>
  52. <div>{{formatDatetime(item.docTime)}}</div>
  53. </div>
  54. </div>
  55. <div class="fs-20 c-pr">
  56. <van-icon name="arrow" />
  57. </div>
  58. </div>
  59. </div>
  60. </div>
  61. </CustomList>
  62. </div>
  63. </template>
  64. <script>
  65. import medicineAbinetApi from '@/api/api-medicineAbinet'
  66. export default{
  67. name: 'replenishmentDeviceList',
  68. data(){
  69. return {
  70. list: [],
  71. active: 0,
  72. waitCount: 0
  73. }
  74. },
  75. created() {
  76. },
  77. methods:{
  78. onLoad({page, pageSize, searchText}){
  79. var p = {
  80. // startTime: startDate? this.$moment(startDate).format('YYYY-MM-DD 00:00:00') : '',
  81. // endTime: endDate? this.$moment(endDate).format('YYYY-MM-DD 23:59:59') : '',
  82. // content: searchForm.content,
  83. // community: len? this.community[len-1] : '',
  84. // sellState: searchForm.sellStatus,
  85. userId: this.user.id,
  86. page: page,
  87. size: pageSize
  88. }
  89. var func;
  90. if(this.active === 0){
  91. func = medicineAbinetApi.replenishList
  92. } else if(this.active === 1){
  93. p.receiveState = 0
  94. func = medicineAbinetApi.outboundOrderList
  95. } else if(this.active === 2){
  96. p.receiveState = 1
  97. func = medicineAbinetApi.outboundOrderList
  98. }
  99. console.log('params', p)
  100. func(p)
  101. .then(res=>{
  102. console.log('replenishList', res)
  103. if(res.status == 200){
  104. var list = res.detailModelList
  105. this.list = page==1? list : this.list.concat(list)
  106. this.$refs.customList.endLoad(!res.detailModelList || res.detailModelList.length==0, this.list.length)
  107. } else {
  108. this.list = []
  109. this.$refs.customList.endLoad(false, true)
  110. }
  111. }).catch(err=>{
  112. console.error(err)
  113. this.list = []
  114. this.$refs.customList.endLoad(false, true)
  115. })
  116. },
  117. onChange(){
  118. this.list = []
  119. this.$refs.customList.refresh(true)
  120. },
  121. gotoDetail(item){
  122. var query = {
  123. }
  124. if(this.active===0){
  125. query.idUp = item.id
  126. } else {
  127. query.idOut = item.id
  128. }
  129. this.gotoUrl('./detail', query)
  130. }
  131. },
  132. }
  133. </script>
  134. <style lang='scss' scoped>
  135. .replenishment-picking-list{
  136. ::v-deep .van-tab{
  137. &:nth-child(3){
  138. .van-tab__text{
  139. overflow: visible;
  140. }
  141. }
  142. }
  143. .list{
  144. .item{
  145. margin-bottom: 10px;
  146. border-radius: 5px;
  147. &:last-child{
  148. margin-bottom: 0;
  149. }
  150. .van-icon{
  151. position: absolute;
  152. top: 50%;
  153. transform: translateY(calc(-50% - 15px));
  154. right: 0;
  155. color: #ccc;
  156. }
  157. .row{
  158. display: -webkit-box;
  159. div{
  160. &:first-child{
  161. width: 60px;
  162. position: relative;
  163. text-align: justify;
  164. text-align-last: justify;
  165. margin-right: 12px;
  166. &::after{
  167. content: ":";
  168. display: inline-block;
  169. position: absolute;
  170. right: -14px;
  171. top: 0;
  172. }
  173. }
  174. }
  175. }
  176. }
  177. }
  178. .custom-list{
  179. height: calc(100vh - 50px);
  180. }
  181. }
  182. </style>