Home.vue 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. <template>
  2. <div class="home">
  3. <div class="mobile-modal" v-if="showStoreInfo">
  4. <div class="mobile-modal-box">
  5. <div class="mobile-modal-header">联系方式<i @click="showStoreInfo = false" class="icon-guanbi iconfont"></i></div>
  6. <div class="mobile-modal-content">
  7. <div>商家地址:深圳市南山区英唐大厦6楼</div>
  8. <div class="content-line link-url">在线咨询</div>
  9. <div>致电:<a href="tel:0755-96586323" class="content-line link-url">0755-96586323</a></div>
  10. <div>邮件:<a href="mailto:yrsc@usoftchina.com" class="content-line link-url">yrsc@usoftchina.com</a></div>
  11. </div>
  12. </div>
  13. </div>
  14. <div v-if="!showMainSearch">
  15. <div class="home-header" :style="'background:url(' + bgUrl + ')no-repeat center center/100% 6.14rem'">
  16. <div class="home-search">
  17. <!--<ul>-->
  18. <!--<li :class="activeType=='model'?'active':''" @click="activeType='model'"><span>型号</span></li>-->
  19. <!--<li :class="activeType=='brand'?'active':''" @click="activeType='brand'"><span>品牌</span></li>-->
  20. <!--<li :class="activeType=='shops'?'active':''" @click="activeType='shops'"><span>商家</span></li>-->
  21. <!--</ul>-->
  22. <div class="home-input">
  23. <input type="text" placeholder="请输入您要查找的型号、品牌或商家"
  24. @click="onHomeSearchClick()"/>
  25. <i class="iconfont icon-sousuo"></i>
  26. </div>
  27. <!--<p style="color:#e45803;line-height:.4rem;margin-top:.1rem;width:4.2rem;margin-left:1rem;">搜品牌、搜现货 、搜好店 、搜规格书 就上优软商城</p>-->
  28. </div>
  29. </div>
  30. <div class="home-main">
  31. <nuxt-link to="/mobile/shop" class="home-main-content">
  32. <div>
  33. <img src="/images/mobile/@2x/home/shopbrand@2x.png">
  34. </div>
  35. <p>店铺列表</p>
  36. </nuxt-link>
  37. <nuxt-link to="/mobile/user" class="home-main-content">
  38. <div>
  39. <img src="/images/mobile/@2x/home/storebrand@2x.png">
  40. </div>
  41. <p>我的收藏</p>
  42. </nuxt-link>
  43. <a @click="showStoreInfo = true" class="home-main-content">
  44. <div>
  45. <img src="/images/mobile/@2x/home/phonebrand@2x.png">
  46. </div>
  47. <p>联系我们</p>
  48. </a>
  49. <nuxt-link to="/mobile/brand/brandCenter/ABCD" class="home-main-content">
  50. <div>
  51. <i class="icon-pinpai iconfont"></i>
  52. </div>
  53. <h2>
  54. {{numbrand[0]}}
  55. </h2>
  56. <p>品牌</p>
  57. </nuxt-link>
  58. <a class="home-main-content">
  59. <div>
  60. <i class="icon-xinghao iconfont"></i>
  61. </div>
  62. <h2>
  63. {{numbrand[1]}}
  64. </h2>
  65. <p>型号</p>
  66. </a>
  67. <a class="home-main-content">
  68. <div>
  69. <i class="icon-biaoguigeshuomingshu iconfont"></i>
  70. </div>
  71. <h2>
  72. {{numbrand[2]}}
  73. </h2>
  74. <p>规格书</p>
  75. </a>
  76. </div>
  77. </div>
  78. <main-search v-else @cancelSearchAction="onCancelSearch"></main-search>
  79. </div>
  80. </template>
  81. <script>
  82. import MainSearch from '~/components/mobile/search/MainSearch.vue'
  83. export default {
  84. name: 'home',
  85. data () {
  86. return {
  87. activeType: 'model',
  88. showMainSearch: false,
  89. showStoreInfo: false,
  90. isMore: false,
  91. isShow: false,
  92. len: 0,
  93. bgUrl: '/images/mobile/@2x/home/background@2x.png'
  94. }
  95. },
  96. components: {
  97. MainSearch
  98. },
  99. methods: {
  100. onHomeSearchClick () {
  101. this.showMainSearch = true
  102. this.$store.dispatch('searchData/getSearchHistory')
  103. },
  104. matNumber (num) {
  105. if (num > 99999999) {
  106. this.isShow = true
  107. let str2 = num.toString()
  108. num = Math.floor(num / 100000000)
  109. if (parseInt(str2.charAt(str2.length - 8)) > 8) {
  110. num = num + 1
  111. }
  112. num += '亿'
  113. }
  114. if (num > 9999) {
  115. this.isMore = true
  116. let str = num.toString()
  117. num = Math.floor(num / 10000)
  118. if (parseInt(str.charAt(str.length - 4)) > 4) {
  119. num = num + 1
  120. }
  121. num += '万'
  122. } else {
  123. num += '个'
  124. }
  125. return num
  126. },
  127. forNum (numbers) {
  128. let num = []
  129. for (let i = 0; i < numbers.length; i++) {
  130. num.push(this.matNumber(numbers[i].count))
  131. }
  132. return num
  133. },
  134. onCancelSearch: function () {
  135. this.showMainSearch = false
  136. }
  137. },
  138. computed: {
  139. numbrand () {
  140. return this.forNum(this.counts)
  141. },
  142. counts () {
  143. return this.$store.state.product.common.counts.data
  144. }
  145. }
  146. }
  147. </script>
  148. <style lang="scss" scoped>
  149. .home{
  150. font-size:.28rem;
  151. background: #f7fbff;
  152. margin-bottom:1rem;
  153. .home-header{
  154. width:100%;
  155. height:6.12rem;
  156. padding-bottom:1rem;
  157. .home-search{
  158. width:6rem;
  159. line-height: .3rem;
  160. margin:0 auto;
  161. text-align: center;
  162. padding-top: 1.74rem;
  163. ul{
  164. display:inline-flex;
  165. li{
  166. flex:1;
  167. text-align:center;
  168. >span{
  169. display:inline-block;
  170. width:.72rem;
  171. line-height:.33rem;
  172. height:.33rem;
  173. background: #fff;
  174. color:#000;
  175. border-radius: .05rem .05rem 0 0 ;
  176. }
  177. }
  178. li.active span{
  179. background: #3c7cf5;
  180. color:#fff;
  181. cursor:pointer;
  182. }
  183. }
  184. .home-input{
  185. width: 6rem;
  186. height: .61rem;
  187. line-height: .61rem;
  188. input{
  189. width:5.17rem;
  190. display: inline-block;
  191. padding: 0 1rem 0 .16rem;
  192. margin-right:-.83rem;
  193. font-size:.24rem;
  194. border:.04rem solid #3c7cf5;
  195. border-radius:.05rem;
  196. }
  197. i{
  198. display:inline-block;
  199. text-align: center;
  200. width:.83rem;
  201. font-size:.33rem;
  202. border-left:none;
  203. color: #999;
  204. vertical-align: middle;
  205. }
  206. }
  207. }
  208. }
  209. }
  210. .home-main{
  211. width:100%;
  212. text-align: center;
  213. padding-top: .46rem;
  214. height: 6.25rem;
  215. }
  216. .home-main a.home-main-content {
  217. width:33%;
  218. margin-bottom:.52rem;
  219. display: inline-block;
  220. }
  221. .home-main .home-main-content div{
  222. border-radius: .2rem;
  223. width:1.14rem;
  224. height:1.14rem;
  225. margin:0 auto;
  226. }
  227. .home-main .home-main-content div>img{
  228. width: 100%;
  229. height:100%;
  230. }
  231. .home-main .home-main-content div>i {
  232. font-size: .8rem;
  233. }
  234. .home-main .home-main-content:nth-child(4) div>i {
  235. color: #ff3064;
  236. }
  237. .home-main .home-main-content:nth-child(5) div>i {
  238. color: #fa6743;
  239. }
  240. .home-main .home-main-content:nth-child(6) div>i {
  241. color: #fcb836;
  242. }
  243. .home-main .home-main-content p{
  244. font-size:.28rem;
  245. color:rgb(51,51,51);
  246. line-height: .52rem;
  247. }
  248. .home-main .home-main-content h2{
  249. font-size:.3rem;
  250. color:#ff7800;
  251. line-height: .32rem;
  252. margin:0;
  253. margin-top:.1rem;
  254. }
  255. </style>