index.vue 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. <template>
  2. <view class="container-wrap">
  3. <uni-nav-bar :title="config.baseUrl === 'http://120.79.80.64:8002' ? '首页' : '测试'" :status-bar="true" background-color="#3F92F9" color="#FFF">
  4. <view slot="left">
  5. <u-icon name="account-fill" color="#FFF" size="35"></u-icon>
  6. <span style="padding: 0 5rpx;color: #FFFFFF;">{{ userInfo.name }}</span>
  7. </view>
  8. <view slot="right" @tap="show = true">
  9. <span style="color: #FFFFFF;">退出</span>
  10. </view>
  11. </uni-nav-bar>
  12. <view class="container">
  13. <view v-for="(menu, menuIndex) in menus" :key="menuIndex">
  14. <view class="title">
  15. <span>{{ menu.name }}</span>
  16. </view>
  17. <view class="list">
  18. <view class="item flex-column-center" @tap="go(item.key)" v-for="(item, index) in menu.children" :key="index">
  19. <u-image width="60%" mode="widthFix" :src="item.icon"></u-image>
  20. <span class="title">{{ item.name }}</span>
  21. </view>
  22. </view>
  23. </view>
  24. </view>
  25. <u-modal v-model="show" content="是否退出账号" :show-cancel-button="true" @confirm="logOut"></u-modal>
  26. </view>
  27. </template>
  28. <script>
  29. import config from '@/libs/config/config.js'
  30. export default {
  31. data() {
  32. return {
  33. config,
  34. menus: this.$storage.getStorageSync('userInfo').menus,
  35. show: false,
  36. timer: null,
  37. };
  38. },
  39. methods: {
  40. logOut() {
  41. this.$http.LoginQuit().then(res => {
  42. if(res.code === 0) {
  43. this.$storage.removeStorageSync('token')
  44. this.$utils.openNew('/pages/login/login')
  45. }
  46. })
  47. },
  48. /* 首页页面跳转 */
  49. go (type) {
  50. switch(type) {
  51. /* 扫描贴标 */
  52. case 'scanPaste':
  53. this.scanPaste()
  54. break
  55. /* 手动贴标 */
  56. case '1' :
  57. this.$utils.open('/pages/store-in-manage/artificial-paste/artificial-paste')
  58. break
  59. /* 到货质检 */
  60. case '2' :
  61. this.$utils.open('/pages/store-in-manage/quality/quality')
  62. break
  63. /* 每日盘点 */
  64. case '3' :
  65. this.$utils.open('/pages/store-manage/day-check/day-check')
  66. break
  67. /* 库存盘点 */
  68. case '4' :
  69. this.$utils.open('/pages/store-manage/store-check/store-check')
  70. break
  71. /* 归还入库 */
  72. case '5' :
  73. this.$utils.open('/pages/apply-manage/back-in-store/back-in-store')
  74. break
  75. /* 退货申请 */
  76. case '6' :
  77. this.$utils.open('/pages/store-out-manage/return-apply/return-apply')
  78. break
  79. /* 报损申请 */
  80. case '7' :
  81. this.$utils.open('/pages/store-out-manage/breakage-apply/breakage-apply')
  82. break
  83. /* 新建标签 */
  84. case '8' :
  85. this.$utils.open('/pages/tag/tag')
  86. break
  87. /* 更换标签 */
  88. case '9' :
  89. this.$utils.open('/pages/tag/tag-change')
  90. break
  91. /* 初始化标签 */
  92. case '10' :
  93. this.$utils.open('/pages/tag/tag-init')
  94. break
  95. /* 手动出库 */
  96. case '11' :
  97. this.$utils.open('/pages/store-out-manage/store-out/store-out')
  98. break
  99. /* 手动入库 */
  100. case '12' :
  101. this.$utils.open('/pages/store-in-manage/store-in/store-in')
  102. break
  103. /* 物料库存 */
  104. case '13' :
  105. this.$utils.open('/pages/store-manage/store-material/store-material')
  106. break
  107. /* 绑定标签 */
  108. case '14' :
  109. this.$utils.open('/pages/tag/tag-new/tag-new-list')
  110. break
  111. /* 批量绑定 */
  112. case '15' :
  113. this.$utils.open('/pages/tag/tag-dispatch/tag-dispatch')
  114. break
  115. /* 批量盘点 */
  116. case '16' :
  117. this.$utils.open('/pages/store-manage/dispatch-check/dispatch-check')
  118. break
  119. /* 手动盘点 */
  120. case '17' :
  121. this.$utils.open('/pages/store-manage/user-check/user-check')
  122. break
  123. /* 库位编辑 */
  124. case '21' :
  125. this.$utils.open('/pages/store-manage/user-check/location-edit')
  126. break
  127. /* 标签纠正 */
  128. case '18' :
  129. this.$utils.open('/pages/tag/tag-right/tag-right')
  130. break
  131. /* 退仓申请 */
  132. case '19' :
  133. this.$utils.open('/pages/store-out-manage/return-stock-apply/return-stock-apply')
  134. break
  135. /* 退料清单 */
  136. case '20' :
  137. this.$utils.open('/pages/store-out-manage/return-material/return-material')
  138. break
  139. }
  140. },
  141. /* 扫码贴标 */
  142. scanPaste() {
  143. this.$utils.open('/pages/store-in-manage/scan-paste/index')
  144. // this.$utils.uniScanCode().then(res => {
  145. // this.$utils.open(`/pages/store-in-manage/scan-paste/index?data=${res.result}`)
  146. // })
  147. }
  148. },
  149. onLoad() {
  150. uni.$on('scan', res => {
  151. this.scanPaste()
  152. })
  153. if(!!this.$storage.getStorageSync('token')) {
  154. } else {
  155. this.$utils.openReLaunch('/pages/login/login')
  156. }
  157. },
  158. onUnload() {
  159. this.$msg.hideLoading()
  160. clearTimeout(this.timer)
  161. uni.$off('scan')
  162. }
  163. }
  164. </script>
  165. <style lang="scss" scoped>
  166. .container-wrap {
  167. background-color: #FFFFFF;
  168. overflow: hidden;
  169. .container {
  170. padding: 0 10rpx;
  171. height: calc(100vh - var(--status-bar-height) - 44px);
  172. overflow: auto;
  173. .title {
  174. padding: 10rpx 0;
  175. }
  176. .list {
  177. padding-bottom: 0;
  178. display: flex;
  179. justify-content: flex-start;
  180. flex-wrap: wrap;
  181. width: 100%;
  182. .item {
  183. width: 238rpx;
  184. height: 238rpx;
  185. background-color: #F2F2F2;
  186. margin-bottom: 10rpx;
  187. border-radius: 8rpx;
  188. margin-right: 10rpx;
  189. &:nth-child(3n + 0) {
  190. margin-right: 0;
  191. }
  192. .title {
  193. font-size: 28rpx;
  194. }
  195. }
  196. }
  197. }
  198. }
  199. </style>