BrandList.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. <template>
  2. <div>
  3. <div id="brandsList" class="container">
  4. <div id="brands">
  5. <div v-for="(brands, initial) in brandList" class="row container brands-page">
  6. <div class="brands-title">{{initial}}</div>
  7. <div class="hr-blue"></div>
  8. <div class="row brands-body">
  9. <div class="simplebrand" v-for="brand in brands">
  10. <div class="brand-name">
  11. <nuxt-link :to="`/product/brand/${brand.uuid}/`">
  12. <span>{{brand.nameEn}}</span>
  13. </nuxt-link>
  14. </div>
  15. <div>
  16. <nuxt-link :to="`/product/brand/${brand.uuid}/`" v-if="brand.nameEn!=brand.nameCn">
  17. <span class="brand-name-cn">{{brand.nameCn}}</span>
  18. </nuxt-link>
  19. </div>
  20. </div>
  21. </div>
  22. </div>
  23. </div>
  24. </div>
  25. </div>
  26. </template>
  27. <script>
  28. // function sortList(letter) {
  29. // return function(a, b) {
  30. // var value1 = a[letter]
  31. // var value2 = b[letter]
  32. // if (value1 > value2) {
  33. // return 1
  34. // } else if (value1 < value2) {
  35. // return -1
  36. // } else {
  37. // return 0
  38. // }
  39. // }
  40. // }
  41. function deepCopy(obj) {
  42. if (typeof obj !== 'object') {
  43. return obj
  44. }
  45. var newobj = {}
  46. for (var attr in obj) {
  47. newobj[attr] = deepCopy(obj[attr])
  48. }
  49. return newobj
  50. }
  51. export default {
  52. name: 'brandList',
  53. computed: {
  54. brandList() {
  55. var brandsList = deepCopy(this.$store.state.product.brand.brandList.data)
  56. // console.log(this.$store.state.product.brand.brandList.data)
  57. // if (brandsList) {
  58. // for (let i in brandsList) {
  59. // brandsList[i] = brandsList[i].sort(sortList('nameEn'))
  60. // }
  61. // }
  62. let temp = {}
  63. let keys = []
  64. for (let key in brandsList) {
  65. keys.push(key)
  66. }
  67. keys = keys.sort()
  68. for (let i = 0; i < keys.length; i++) {
  69. temp[keys[i]] = brandsList[keys[i]]
  70. }
  71. return temp
  72. }
  73. }
  74. }
  75. </script>
  76. <style>
  77. /** brandList*/
  78. #brandsList {
  79. clear: both;
  80. width: 1190px;
  81. padding: 0;
  82. }
  83. #brandsList .hr-blue {
  84. border-bottom: 2px solid #6493ff;
  85. border-right: 0;
  86. border-top: 0;
  87. border-left: 0;
  88. width: 100%;
  89. }
  90. #brandsList .initials {
  91. margin-top: 3px;
  92. }
  93. #brandsList .row {
  94. margin: 20px 0;
  95. }
  96. #brandsList .row .initial {
  97. display: inline-block;
  98. margin: 0 5px;
  99. font-size: 16px;
  100. color: #787878;
  101. }
  102. #brandsList .row .initial:hover a,
  103. #brandsList .row li.initial.active a {
  104. color: #5078cb;
  105. font-weight: bold;
  106. cursor: pointer;
  107. }
  108. #brandsList .row .initial-active {
  109. color: #5078cb;
  110. font-weight: bold;
  111. }
  112. #brandsList .row .initial a {
  113. font-size: 16px;
  114. color: #787878;
  115. }
  116. #brandsList .row .initial:hover a {
  117. color: #5078cb;
  118. font-weight: bold;
  119. cursor: pointer;
  120. }
  121. #brands .container {
  122. width: 1190px;
  123. padding: 0px;
  124. }
  125. #brands .row .brands-title {
  126. width: 70px;
  127. height: 30px;
  128. padding-top: 5px;
  129. text-align: center;
  130. font-size: 16px;
  131. color: #fff;
  132. background-color: #6493ff;
  133. }
  134. #brands .row .brands-body {
  135. margin-bottom: 30px;
  136. font-size: 14px;
  137. color: #323232;
  138. }
  139. #brands .simplebrand {
  140. height: 30px;
  141. margin: 13px 0px;
  142. width: 25%;
  143. float: left;
  144. }
  145. #brands .simplebrand a {
  146. color: #323232;
  147. text-decoration: none;
  148. }
  149. #brands .simplebrand:hover a {
  150. color: #6493ff;
  151. font-weight: bold;
  152. }
  153. #brands .simplebrand .brand-name {
  154. margin-bottom: 2px;
  155. }
  156. #brands .simplebrand .brand-name-cn {
  157. font-size: 12px;
  158. }
  159. #brandsList ul {
  160. padding-left: 0px;
  161. }
  162. #brandsList ul li {
  163. list-style: none;
  164. }
  165. #carousel li {
  166. width: 12px;
  167. height: 12px;
  168. margin: 3px;
  169. }
  170. </style>