瑶都万能墙
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

229 lines
4.3 KiB

9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
  1. <template>
  2. <view class="page">
  3. <!-- 瑶都万能墙 -->
  4. <view class="Headbackground">
  5. <view class="Toggle">
  6. <uv-icon
  7. size="30rpx"
  8. color="#fff"
  9. name="map"></uv-icon>
  10. 长沙
  11. </view>
  12. <view class="top">
  13. <view class=" profilePicture">
  14. <image :src="headinfo.headImage" mode=""></image>
  15. </view>
  16. <view class="UniversalWall">
  17. <view class="dynamic">
  18. {{headinfo.name}}
  19. </view>
  20. <view class="dynamics">
  21. {{headinfo.num}}动态<text>|</text>{{headinfo.userNum}}江华人
  22. </view>
  23. </view>
  24. <view class="join">
  25. 加入
  26. </view>
  27. </view>
  28. </view>
  29. <view class="life">
  30. <view class="mouse" @click="menuClick(item.url)"
  31. :key="index"
  32. v-for="(item, index) in menu">
  33. <view class="RentingAhouseimg">
  34. <image
  35. :src="item.icon"
  36. style="width: 90rpx;height: 90rpx;" mode=""></image>
  37. </view>
  38. <view class="RentingAhouse">
  39. {{ item.title }}
  40. </view>
  41. </view>
  42. </view>
  43. <view class="LabelOptions">
  44. <uv-tabs :list="category"
  45. :activeStyle="{color : '#000', fontWeight : 900}"
  46. lineColor="#00f"
  47. lineHeight="8rpx"
  48. lineWidth="50rpx"
  49. keyName="title"
  50. @click="tabsClick"></uv-tabs>
  51. </view>
  52. <dynamicItem
  53. :key="index"
  54. v-for="(item, index) in list"
  55. :item="item"
  56. />
  57. <createDetailPopup/>
  58. <PrivacyAgreementPoup />
  59. <tabber select="0" />
  60. </view>
  61. </template>
  62. <script>
  63. import PrivacyAgreementPoup from '@/components/config/PrivacyAgreementPoup.vue'
  64. import tabber from '@/components/base/tabbar.vue'
  65. import createDetailPopup from '@/components/user/createDetailPopup.vue'
  66. import dynamicItem from '@/components/list/dynamic/dynamicItem.vue'
  67. import mixinsList from '@/mixins/list.js'
  68. import { mapState } from 'vuex'
  69. export default {
  70. mixins: [mixinsList],
  71. components: {
  72. tabber,
  73. PrivacyAgreementPoup,
  74. createDetailPopup,
  75. dynamicItem,
  76. },
  77. data() {
  78. return {
  79. headinfo: {},
  80. menu : [],
  81. mixinsListApi : 'getPostPage',
  82. }
  83. },
  84. onShow() {
  85. this.getIndexHeaderInfo()
  86. this.getClassifyList()
  87. this.$store.commit('getCategory')
  88. },
  89. computed: {
  90. ...mapState(['city', 'category']),
  91. },
  92. methods: {
  93. tabsClick(item) {
  94. console.log('item', item);
  95. },
  96. menuClick(url) {
  97. // 跳转页面
  98. if (url.includes('reLaunch:')) {
  99. uni.reLaunch({
  100. url : url.replace('reLaunch:', '')
  101. })
  102. }else{
  103. uni.navigateTo({
  104. url
  105. })
  106. }
  107. },
  108. //获取首页头部信息
  109. getIndexHeaderInfo(){
  110. this.$api('getIndexHeaderInfo',res =>{
  111. if(res.code == 200){
  112. this.headinfo = res.result
  113. }
  114. })
  115. },
  116. //获取菜单
  117. getClassifyList(){
  118. this.$api('getClassifyList',res =>{
  119. if(res.code == 200){
  120. this.menu = res.result
  121. }
  122. })
  123. },
  124. }
  125. }
  126. </script>
  127. <style scoped lang="scss">
  128. image{
  129. width: 100%;
  130. height: 100%;
  131. }
  132. .Headbackground {
  133. padding-top: 150rpx;
  134. background: linear-gradient(to bottom, rgb(85, 94, 123), rgb(45, 51, 73));
  135. .Toggle{
  136. margin: 10rpx 30rpx;
  137. padding: 20rpx;
  138. background-color: #00000022;
  139. color: #fff;
  140. border-radius: 40rpx;
  141. width: fit-content;
  142. display: flex;
  143. justify-content: center;
  144. align-items: center;
  145. font-size: 28rpx;
  146. }
  147. .top {
  148. display: flex;
  149. color: white;
  150. padding: 35rpx;
  151. align-items: center;
  152. .profilePicture {
  153. width: 100rpx;
  154. height: 100rpx;
  155. image{
  156. border-radius: 20rpx;
  157. }
  158. }
  159. .UniversalWall {
  160. padding: 0rpx 45rpx;
  161. .dynamic {
  162. font-size: 40rpx;
  163. letter-spacing: 5rpx;
  164. }
  165. .dynamics {
  166. margin-top: 20rpx;
  167. font-size: 25rpx;
  168. text {
  169. margin: 0 20rpx;
  170. }
  171. }
  172. }
  173. .join {
  174. width: 125rpx;
  175. height: 50rpx;
  176. background-color: $uni-color-primary;
  177. margin-left: auto;
  178. display: flex;
  179. align-items: center;
  180. justify-content: center;
  181. border-radius: 50rpx;
  182. }
  183. }
  184. }
  185. .life {
  186. margin-top: 20rpx;
  187. display: flex;
  188. justify-content: space-around;
  189. text-align: center;
  190. flex-wrap: wrap;
  191. .mouse {
  192. .RentingAhouseimg {
  193. display: flex;
  194. justify-content: center;
  195. align-items: center;
  196. margin: 15rpx;
  197. width: 130rpx;
  198. height: 100rpx;
  199. background-color: #ffffff;
  200. border-top-left-radius: 40rpx;
  201. border-bottom-right-radius: 40rpx;
  202. border-bottom-left-radius: 20rpx;
  203. border-top-right-radius: 20rpx;
  204. }
  205. }
  206. }
  207. </style>