index.vue 6.7 KB

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