index.vue 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  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. console.log(type)
  51. switch(type) {
  52. /* 扫描贴标 */
  53. case 'scanPaste':
  54. this.scanPaste()
  55. break
  56. /* 手动贴标 */
  57. case '1' :
  58. this.$utils.open('/pages/store-in-manage/artificial-paste/artificial-paste')
  59. break
  60. /* 到货质检 */
  61. case '2' :
  62. this.$utils.open('/pages/store-in-manage/quality/quality')
  63. break
  64. /* 每日盘点 */
  65. case '3' :
  66. this.$utils.open('/pages/store-manage/day-check/day-check')
  67. break
  68. /* 库存盘点 */
  69. case '4' :
  70. this.$utils.open('/pages/store-manage/store-check/store-check')
  71. break
  72. /* 归还入库 */
  73. case '5' :
  74. this.$utils.open('/pages/apply-manage/back-in-store/back-in-store')
  75. break
  76. /* 退货申请 */
  77. case '6' :
  78. this.$utils.open('/pages/store-out-manage/return-apply/return-apply')
  79. break
  80. /* 报损申请 */
  81. case '7' :
  82. this.$utils.open('/pages/store-out-manage/breakage-apply/breakage-apply')
  83. break
  84. /* 新建标签 */
  85. case '8' :
  86. this.$utils.open('/pages/tag/tag')
  87. break
  88. /* 更换标签 */
  89. case '9' :
  90. this.$utils.open('/pages/tag/tag-change')
  91. break
  92. /* 初始化标签 */
  93. case '10' :
  94. this.$utils.open('/pages/tag/tag-init')
  95. break
  96. /* 手动出库 */
  97. case '11' :
  98. this.$utils.open('/pages/store-out-manage/store-out/store-out')
  99. break
  100. /* 手动入库 */
  101. case '12' :
  102. this.$utils.open('/pages/store-in-manage/store-in/store-in')
  103. break
  104. /* 物料库存 */
  105. case '13' :
  106. this.$utils.open('/pages/store-manage/store-material/store-material')
  107. break
  108. /* 绑定标签 */
  109. case '14' :
  110. this.$utils.open('/pages/tag/tag-new/tag-new-list')
  111. break
  112. /* 批量绑定 */
  113. case '15' :
  114. this.$utils.open('/pages/tag/tag-dispatch/tag-dispatch')
  115. break
  116. /* 批量盘点 */
  117. case '16' :
  118. this.$utils.open('/pages/store-manage/dispatch-check/dispatch-check')
  119. break
  120. /* 手动盘点 */
  121. case '17' :
  122. this.$utils.open('/pages/store-manage/user-check/user-check')
  123. break
  124. /* 库位编辑 */
  125. case '21' :
  126. this.$utils.open('/pages/store-manage/user-check/location-edit')
  127. break
  128. /* 标签纠正 */
  129. case '18' :
  130. this.$utils.open('/pages/tag/tag-right/tag-right')
  131. break
  132. /* 退仓申请 */
  133. case '19' :
  134. this.$utils.open('/pages/store-out-manage/return-stock-apply/return-stock-apply')
  135. break
  136. /* 退料清单 */
  137. case '20' :
  138. this.$utils.open('/pages/store-out-manage/return-material/return-material')
  139. break
  140. /* 物料接收 */
  141. case '22' :
  142. this.$utils.open('/pages/warehouse/warehouse-list')
  143. break
  144. /* 面料退仓 */
  145. case '23' :
  146. this.$utils.open('/pages/warehouse/return-warehouse')
  147. break
  148. case '24' :
  149. this.$utils.open('/pages/warehouse/review')
  150. break
  151. /* 面料修正 */
  152. case '25' :
  153. this.$utils.open('/pages/warehouse/fabric-correction')
  154. break
  155. }
  156. },
  157. /* 扫码贴标 */
  158. scanPaste() {
  159. this.$utils.open('/pages/store-in-manage/scan-paste/index')
  160. // this.$utils.uniScanCode().then(res => {
  161. // this.$utils.open(`/pages/store-in-manage/scan-paste/index?data=${res.result}`)
  162. // })
  163. }
  164. },
  165. onLoad() {
  166. uni.$on('scan', res => {
  167. this.scanPaste()
  168. })
  169. if(!!this.$storage.getStorageSync('token')) {
  170. } else {
  171. this.$utils.openReLaunch('/pages/login/login')
  172. }
  173. },
  174. onUnload() {
  175. this.$msg.hideLoading()
  176. clearTimeout(this.timer)
  177. uni.$off('scan')
  178. }
  179. }
  180. </script>
  181. <style lang="scss" scoped>
  182. .container-wrap {
  183. background-color: #FFFFFF;
  184. overflow: hidden;
  185. .container {
  186. padding: 0 10rpx;
  187. height: calc(100vh - var(--status-bar-height) - 44px);
  188. overflow: auto;
  189. .title {
  190. padding: 10rpx 0;
  191. }
  192. .list {
  193. padding-bottom: 0;
  194. display: flex;
  195. justify-content: flex-start;
  196. flex-wrap: wrap;
  197. width: 100%;
  198. .item {
  199. width: 238rpx;
  200. height: 238rpx;
  201. background-color: #F2F2F2;
  202. margin-bottom: 10rpx;
  203. border-radius: 8rpx;
  204. margin-right: 10rpx;
  205. &:nth-child(3n + 0) {
  206. margin-right: 0;
  207. }
  208. .title {
  209. font-size: 28rpx;
  210. }
  211. }
  212. }
  213. }
  214. }
  215. </style>