home.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. <template>
  2. <view class="home">
  3. <view class="search-area">
  4. <u-search
  5. placeholder="搜索设备"
  6. v-model="keyword"
  7. shape="square"
  8. :clearabled="true"
  9. :show-action="true"
  10. action-text="搜索"
  11. :animation="true"
  12. search-icon-color="#000"
  13. color="#000"
  14. placeholder-color="#5c5b5b"
  15. @search="search"
  16. @custom="search"></u-search>
  17. </view>
  18. <view class="rule-area">
  19. 公告
  20. </view>
  21. <view class="borrow-area">
  22. 借用设备
  23. </view>
  24. <view class="scan-area">
  25. <view class="scan-code" @click="toScan">
  26. <i class="iconfont icon-saoyisao"></i>
  27. <text>扫码设备</text>
  28. </view>
  29. <view class="scan-mine" @click="toMine">
  30. <i class="iconfont icon-wode"></i>
  31. </view>
  32. </view>
  33. </view>
  34. </template>
  35. <script>
  36. import { getInfo } from '@/api/user.js'
  37. import cache from '@/utils/storage.js'
  38. export default {
  39. data() {
  40. return {
  41. keyword:""
  42. }
  43. },
  44. methods: {
  45. search(){
  46. if(this.keyword===""){
  47. uni.showToast({
  48. title:"请输入查询字段",
  49. icon:'none'
  50. })
  51. }else{
  52. uni.navigateTo({
  53. url:'/pages/search/search?keyword='+this.keyword,
  54. })
  55. }
  56. },
  57. toMine(){
  58. uni.navigateTo({
  59. url:'/pages/menus/menu/menu',
  60. })
  61. },
  62. toScan(){
  63. uni.scanCode({
  64. scanType:['barCode'],
  65. success (res) {
  66. // console.log(res.result)
  67. uni.navigateTo({
  68. url:'/pages/fault/fault-report/fault-report?id='+res.result
  69. })
  70. }
  71. })
  72. // uni.navigateTo({
  73. // url:'/pages/fault/fault-report/fault-report?id='+1
  74. // })
  75. }
  76. },
  77. onShow:function(){
  78. this.keyword = "",
  79. getInfo().then(res=>{
  80. if(res.data.code===200){
  81. // console.log(res.data)
  82. // cache.session.setJSON('userinfo',res.data.user)
  83. cache.session.setJSON('role',res.data.roles[0])
  84. cache.session.setJSON('phone',res.data.user.phonenumber)
  85. cache.session.setJSON('email',res.data.user.email)
  86. cache.session.setJSON('nickName',res.data.user.nickName)
  87. cache.session.setJSON('userName',res.data.user.userName)
  88. }
  89. })
  90. }
  91. }
  92. </script>
  93. <style lang="scss" scoped>
  94. .home{
  95. padding: 20rpx;
  96. display: flex;
  97. flex-direction: column;
  98. height: 100vh;
  99. box-sizing: border-box;
  100. }
  101. .search-area{
  102. margin-bottom: 20rpx ;
  103. flex-shrink: 0;
  104. position: relative;
  105. input{
  106. height: 76rpx;
  107. border: 2rpx solid #000;
  108. line-height: 76rpx;
  109. padding-left:80rpx ;
  110. }
  111. .iconfont{
  112. position: absolute;
  113. font-size: 40rpx;
  114. top: 20rpx;
  115. left: 16rpx;
  116. }
  117. }
  118. .rule-area{
  119. margin-bottom: 20rpx ;
  120. flex-shrink: 0;
  121. height: 270rpx;
  122. border: 2rpx solid #000;
  123. }
  124. .borrow-area{
  125. flex-shrink: 0;
  126. margin-bottom: 20rpx ;
  127. height: 120rpx;
  128. border: 2rpx solid #000;
  129. }
  130. .scan-area{
  131. flex-shrink: 1;
  132. height: 100%;
  133. position: relative;
  134. .scan-code{
  135. width: 280rpx;
  136. height: 280rpx;
  137. background-color: #000;
  138. color: $uni-text-color-inverse;
  139. border-radius: 50%;
  140. position: absolute;
  141. top: 50%;
  142. left: 50%;
  143. transform: translate(-50%,-50%);
  144. display: flex;
  145. align-items: center;
  146. justify-content: center;
  147. text-align: center;
  148. flex-direction: column;
  149. font-size: 36rpx;
  150. .iconfont{
  151. font-size: 80rpx;
  152. margin: 20rpx 0;
  153. }
  154. }
  155. .scan-mine{
  156. width: 80rpx;
  157. height: 80rpx;
  158. color: rgba(80, 80, 80, 1);
  159. border-radius: 21px;
  160. // font-size: 14px;
  161. line-height: 150%;
  162. box-shadow: 0px 1px 1px 0px rgba(0, 0, 0, 0.5);
  163. display: flex;
  164. align-items: center;
  165. justify-content: center;
  166. text-align: center;
  167. flex-direction: column;
  168. font-size: 36rpx;
  169. position: absolute;
  170. bottom: 20rpx;
  171. left: 20rpx;
  172. }
  173. }
  174. </style>