index.vue 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. <template>
  2. <home-frame @toPath="toPath">
  3. <view class="main">
  4. <view class="one">
  5. <view class="list" v-for="(item,index) in typeList" :key="index" @tap="typeChange(item,index)">
  6. <span :style="{background:tActive==index?'var(--rgbfa4)':''}" class="textOver">{{item.name}}</span>
  7. </view>
  8. </view>
  9. <view class="two">
  10. <view class="two_1">
  11. 推荐
  12. </view>
  13. <view class="two_2">
  14. <view class="list" v-for="(item,index) in recomList" :key="index">
  15. <image class="image"
  16. :src="item.img_url&&item.img_url.length>0?item.img_url[0].url:'../../static/error.jpg'"
  17. mode="">
  18. </image>
  19. <span class="name" v-if="item.name">{{item.name}}</span>
  20. </view>
  21. </view>
  22. <view class="two_1">
  23. 全部
  24. </view>
  25. <view class="two_2">
  26. <view class="list" v-for="(item,index) in list" :key="index">
  27. <image class="image"
  28. :src="item.img_url&&item.img_url.length>0?item.img_url[0].url:'../../static/error.jpg'"
  29. mode="">
  30. </image>
  31. <span class="name" v-if="item.name">{{item.name}}</span>
  32. </view>
  33. </view>
  34. </view>
  35. </view>
  36. </home-frame>
  37. </template>
  38. <script>
  39. import homeFrame from "../components/home-frame.vue";
  40. export default {
  41. components: {
  42. homeFrame
  43. },
  44. data() {
  45. return {
  46. typeList: [ // 类型信息
  47. {
  48. name: '平台'
  49. },
  50. {
  51. name: '演员'
  52. }
  53. ],
  54. tActive: 0,
  55. recomList: [ //
  56. {
  57. name: '推荐信息',
  58. img_url: [ //
  59. {
  60. id: "20230216100918",
  61. name: "头像.jpg",
  62. status: "success",
  63. uid: 1676513358695,
  64. uri: "/files/projectadmin/imgurl/20230216100918.jpg",
  65. url: "http://47.93.34.200/files/projectadmin/imgurl/20230216100918.jpg"
  66. }
  67. ]
  68. }, {
  69. name: '推荐信息',
  70. img_url: [ //
  71. {
  72. id: "20230216100918",
  73. name: "头像.jpg",
  74. status: "success",
  75. uid: 1676513358695,
  76. uri: "/files/projectadmin/imgurl/20230216100918.jpg",
  77. url: "http://47.93.34.200/files/projectadmin/imgurl/20230216100918.jpg"
  78. }
  79. ]
  80. }, {
  81. name: '推荐信息',
  82. img_url: [ //
  83. {
  84. id: "20230216100918",
  85. name: "头像.jpg",
  86. status: "success",
  87. uid: 1676513358695,
  88. uri: "/files/projectadmin/imgurl/20230216100918.jpg",
  89. url: "http://47.93.34.200/files/projectadmin/imgurl/20230216100918.jpg"
  90. }
  91. ]
  92. }, {
  93. name: '推荐信息',
  94. img_url: [ //
  95. {
  96. id: "20230216100918",
  97. name: "头像.jpg",
  98. status: "success",
  99. uid: 1676513358695,
  100. uri: "/files/projectadmin/imgurl/20230216100918.jpg",
  101. url: "http://47.93.34.200/files/projectadmin/imgurl/20230216100918.jpg"
  102. }
  103. ]
  104. }, {
  105. name: '推荐信息',
  106. img_url: [ //
  107. {
  108. id: "20230216100918",
  109. name: "头像.jpg",
  110. status: "success",
  111. uid: 1676513358695,
  112. uri: "/files/projectadmin/imgurl/20230216100918.jpg",
  113. url: "http://47.93.34.200/files/projectadmin/imgurl/20230216100918.jpg"
  114. }
  115. ]
  116. }, {
  117. name: '推荐信息',
  118. img_url: [ //
  119. {
  120. id: "20230216100918",
  121. name: "头像.jpg",
  122. status: "success",
  123. uid: 1676513358695,
  124. uri: "/files/projectadmin/imgurl/20230216100918.jpg",
  125. url: "http://47.93.34.200/files/projectadmin/imgurl/20230216100918.jpg"
  126. }
  127. ]
  128. }
  129. ],
  130. list: [ //
  131. {
  132. name: '推荐信息',
  133. img_url: [ //
  134. {
  135. id: "20230216100918",
  136. name: "头像.jpg",
  137. status: "success",
  138. uid: 1676513358695,
  139. uri: "/files/projectadmin/imgurl/20230216100918.jpg",
  140. url: "http://47.93.34.200/files/projectadmin/imgurl/20230216100918.jpg"
  141. }
  142. ]
  143. },
  144. ],
  145. };
  146. },
  147. onLoad() {
  148. },
  149. onShow() {
  150. },
  151. methods: {
  152. // 类型选择
  153. typeChange(e, index) {
  154. const that = this;
  155. that.$set(that, `tActive`, index)
  156. },
  157. // 跳转页面
  158. toPath(e) {
  159. let url = `/${e.route}`;
  160. if (e.type == '0') uni.navigateTo({
  161. url
  162. })
  163. else if (e.type == '1') uni.redirectTo({
  164. url
  165. })
  166. else if (e.type == '2') uni.reLaunch({
  167. url
  168. })
  169. else if (e.type == '3') uni.switchTab({
  170. url
  171. })
  172. }
  173. },
  174. };
  175. </script>
  176. <style lang="scss">
  177. .main {
  178. background-color: var(--rgb111);
  179. display: flex;
  180. flex-direction: row;
  181. width: 96vw;
  182. height: 92vh;
  183. padding: 0 2vw;
  184. .one {
  185. width: 24vw;
  186. color: var(--rgbfff);
  187. margin: 0 10px 0 0;
  188. background-color: var(--rgb000);
  189. overflow-y: auto;
  190. .list {
  191. span {
  192. display: inline-block;
  193. width: 100%;
  194. height: 40px;
  195. line-height: 40px;
  196. text-align: center;
  197. font-size: 14px;
  198. }
  199. }
  200. }
  201. .two {
  202. flex-grow: 1;
  203. color: var(--rgbfff);
  204. background-color: var(--rgb000);
  205. padding: 0 2vw;
  206. overflow-y: auto;
  207. .two_1 {
  208. padding: 1vw 0;
  209. }
  210. .two_2 {
  211. display: flex;
  212. justify-content: space-between;
  213. flex-wrap: wrap;
  214. position: relative;
  215. .list {
  216. width: 30%;
  217. position: relative;
  218. margin: 0 0 10px 0;
  219. .image {
  220. width: 100%;
  221. height: 70px;
  222. border-radius: 5px;
  223. }
  224. .name {
  225. position: absolute;
  226. bottom: 10px;
  227. width: 100%;
  228. text-align: center;
  229. left: 0;
  230. color: var(--rgb000);
  231. font-size: 12px;
  232. }
  233. }
  234. }
  235. }
  236. }
  237. </style>