瑶都万能墙
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.

433 lines
9.0 KiB

8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
8 months ago
7 months ago
7 months ago
8 months ago
8 months ago
7 months ago
8 months ago
8 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
8 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
7 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
8 months ago
7 months ago
7 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
8 months ago
7 months ago
8 months ago
7 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
8 months ago
8 months ago
8 months ago
8 months ago
7 months ago
8 months ago
8 months ago
7 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
7 months ago
8 months ago
7 months ago
7 months ago
8 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
8 months ago
7 months ago
8 months ago
8 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
8 months ago
8 months ago
7 months ago
8 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
8 months ago
8 months ago
7 months ago
7 months ago
8 months ago
7 months ago
8 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
8 months ago
7 months ago
8 months ago
7 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
8 months ago
8 months ago
8 months ago
7 months ago
8 months ago
8 months ago
7 months ago
8 months ago
8 months ago
8 months ago
8 months ago
7 months ago
8 months ago
8 months ago
7 months ago
8 months ago
8 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
8 months ago
7 months ago
8 months ago
8 months ago
7 months ago
7 months ago
7 months ago
7 months ago
  1. <template>
  2. <view class="page">
  3. <view>
  4. <!-- <uv-swiper
  5. :list="bannerList"
  6. indicator
  7. height="490rpx"
  8. indicatorStyle="bottom: 100rpx;"
  9. keyName="image"></uv-swiper> -->
  10. <image :src="headInfo.bg" style="width: 100%;height: 490rpx;" mode="aspectFill"></image>
  11. </view>
  12. <!-- 瑶都万能墙 -->
  13. <view class="Headbackground">
  14. <view class="Toggle">
  15. <uv-icon size="30rpx" color="#fff" name="map"></uv-icon>
  16. 江华瑶族自治县
  17. </view>
  18. <view class="top">
  19. <view class="profilePicture">
  20. <image :src="headInfo.headImage" mode=""></image>
  21. </view>
  22. <view class="UniversalWall">
  23. <view class="dynamic">
  24. {{ headInfo.name }}
  25. </view>
  26. <!-- <view class="dynamics">
  27. {{headInfo.num}}动态
  28. <text>|</text>
  29. <view
  30. @click="$utils.navigateTo('/pages_order/mine/allUser')"
  31. >
  32. {{headInfo.userNum}}江华人
  33. </view>
  34. </view>
  35. <view class="dynamics">
  36. {{headInfo.homeNum}}租房
  37. <text>|</text>
  38. {{headInfo.jobNum}}工作
  39. <text>|</text>
  40. {{headInfo.jdNum}}景点
  41. <text>|</text>
  42. {{headInfo.shopNum}}美食
  43. <text>|</text>
  44. {{headInfo.activityNum}}活动
  45. </view> -->
  46. <view class="dynamics">
  47. 江华便民生活好帮手
  48. </view>
  49. </view>
  50. <view class="join" @click="join">
  51. <view v-if="userInfo.idCardOpen == 0">
  52. 审核中
  53. </view>
  54. <view v-else-if="!userInfo.idCardOpen">
  55. 成为会员
  56. </view>
  57. <view v-else>
  58. <uv-icon color="#fff" size="30rpx" name="list-dot"></uv-icon>
  59. </view>
  60. </view>
  61. </view>
  62. </view>
  63. <view class="box">
  64. <!-- 菜单栏 -->
  65. <scroll-view scroll-x="true">
  66. <view class="life">
  67. <view class="mouse" @click="menuClick(item.url)" :key="index" v-for="(item, index) in menu">
  68. <view class="RentingAhouseimg">
  69. <image :src="item.icon" mode=""></image>
  70. </view>
  71. <view class="RentingAhouse">
  72. {{ item.title }}
  73. </view>
  74. </view>
  75. <view class="more" @click="menuClick(item.url)" >
  76. 更多
  77. </view>
  78. </view>
  79. </scroll-view>
  80. <!-- 分类 -->
  81. <view class="LabelOptions">
  82. <uv-tabs :list="category" :activeStyle="{color : '#000', fontWeight : 900, fontSize : '36rpx'}"
  83. lineColor="#5baaff" lineHeight="8rpx" lineWidth="60rpx" keyName="title"
  84. @click="tabsClick"></uv-tabs>
  85. </view>
  86. <!-- 动态列表 -->
  87. <view class="dynamicList">
  88. <dynamicItem :key="index" v-for="(item, index) in list" :item="item"
  89. @click="$utils.navigateTo('/pages_order/post/postDetail?id=' + item.id)" />
  90. </view>
  91. </view>
  92. <!-- 页面浮窗 -->
  93. <createDetailPopup @customerServiceOpen="$refs.customerServicePopup.open()"
  94. @integralDetailsOpen="$refs.integralDetailsPopup.open('bottom')" />
  95. <!-- 加入我们 -->
  96. <certificationPopup ref="certificationPopup" />
  97. <!-- 分享 -->
  98. <sharePopup ref="sharePopup" />
  99. <!-- 签到获取积分 -->
  100. <signInOnePopup ref="signInOnePopup" />
  101. <!-- 联系客服 -->
  102. <customerServicePopup :title="headInfo.details" :image="headInfo.kefu" ref="customerServicePopup" />
  103. <!-- 隐私协议 -->
  104. <PrivacyAgreementPoup />
  105. <!-- 积分规则 -->
  106. <uv-popup ref="integralDetailsPopup" :round="30" :customStyle="{height: '60vh'}">
  107. <view style="overflow: scroll;padding: 30rpx 20rpx;">
  108. <uv-parse :content="headInfo.integralDetails"></uv-parse>
  109. </view>
  110. </uv-popup>
  111. <tabber select="0" />
  112. </view>
  113. </template>
  114. <script>
  115. import PrivacyAgreementPoup from '@/components/config/PrivacyAgreementPoup.vue'
  116. import tabber from '@/components/base/tabbar.vue'
  117. import certificationPopup from '@/components/user/certificationPopup.vue'
  118. import createDetailPopup from '@/components/user/createDetailPopup.vue'
  119. import customerServicePopup from '@/components/user/customerServicePopup.vue'
  120. import sharePopup from '@/components/user/sharePopup.vue'
  121. import signInOnePopup from '@/components/user/signInOnePopup.vue'
  122. import dynamicItem from '@/components/list/dynamic/dynamicItem.vue'
  123. import mixinsList from '@/mixins/list.js'
  124. import {
  125. mapState
  126. } from 'vuex'
  127. export default {
  128. mixins: [mixinsList],
  129. components: {
  130. tabber,
  131. PrivacyAgreementPoup,
  132. createDetailPopup,
  133. customerServicePopup,
  134. dynamicItem,
  135. certificationPopup,
  136. sharePopup,
  137. signInOnePopup,
  138. },
  139. data() {
  140. return {
  141. // headInfo: {},
  142. menu: [],
  143. mixinsListApi: 'getPostPage',
  144. bannerList: [],
  145. onShowData: false,
  146. }
  147. },
  148. onLoad(query) {
  149. if (query.shareId) {
  150. uni.setStorageSync('shareId', query.shareId)
  151. }
  152. this.getData()
  153. // this.getIndexHeaderInfo()
  154. this.$store.commit('getIndexHeaderInfo')
  155. this.getClassifyList()
  156. // this.getBannerList()
  157. this.$store.commit('getCategory')
  158. },
  159. onShareAppMessage(res) {
  160. return {
  161. title: this.headInfo.name,
  162. path: '/pages/index/index'
  163. }
  164. },
  165. onShow() {
  166. this.getUserInfo()
  167. },
  168. onPullDownRefresh() {
  169. // this.getIndexHeaderInfo()
  170. this.getClassifyList()
  171. // this.getBannerList()
  172. this.$store.commit('getCategory')
  173. this.getUserInfo()
  174. },
  175. computed: {
  176. ...mapState(['city', 'category', 'userInfo', 'headInfo']),
  177. },
  178. methods: {
  179. tabsClick(item) {
  180. if (item.index) {
  181. this.queryParams.classId = item.id
  182. } else {
  183. delete this.queryParams.classId
  184. }
  185. this.getData()
  186. },
  187. menuClick(url) {
  188. if (!url){
  189. uni.showToast({
  190. title:'暂未开放,请耐心等待',
  191. icon: 'none'
  192. })
  193. return
  194. }
  195. // 跳转页面
  196. if (url.includes('reLaunch:')) {
  197. uni.reLaunch({
  198. url: url.replace('reLaunch:', '')
  199. })
  200. } else {
  201. uni.navigateTo({
  202. url
  203. })
  204. }
  205. },
  206. //获取首页头部信息
  207. getIndexHeaderInfo() {
  208. this.$api('getIndexHeaderInfo', res => {
  209. if (res.code == 200) {
  210. this.headInfo = res.result
  211. }
  212. })
  213. },
  214. //获取菜单
  215. getClassifyList() {
  216. this.$api('getClassifyList', res => {
  217. if (res.code == 200) {
  218. this.menu = res.result
  219. }
  220. })
  221. },
  222. //获取菜单
  223. getClassifyList() {
  224. this.$api('getClassifyList', res => {
  225. if (res.code == 200) {
  226. this.menu = res.result
  227. }
  228. })
  229. },
  230. // 获取banner
  231. getBannerList() {
  232. this.$api('getBannerList', res => {
  233. if (res.code == 200) {
  234. this.bannerList = res.result
  235. }
  236. })
  237. },
  238. join() {
  239. if (!uni.getStorageSync('token')) {
  240. uni.navigateTo({
  241. url: '/pages_order/auth/wxLogin'
  242. })
  243. return
  244. }
  245. // if(this.userInfo.idCardOpen == 0){
  246. // uni.showToast({
  247. // title: '审核中...',
  248. // icon:'none'
  249. // })
  250. // }else if(!this.userInfo.idCardOpen){
  251. // this.$refs.certificationPopup.open()
  252. // }else{
  253. this.$refs.sharePopup.open()
  254. // }
  255. },
  256. getUserInfo() {
  257. if (uni.getStorageSync('token')) {
  258. this.$store.commit('getUserInfo')
  259. }
  260. },
  261. }
  262. }
  263. </script>
  264. <style scoped lang="scss">
  265. .page {
  266. position: relative;
  267. /deep/ .uv-tabs__wrapper__scroll-view::-webkit-scrollbar {
  268. width: 0 !important;
  269. height: 0 !important;
  270. }
  271. }
  272. image {
  273. width: 100%;
  274. height: 100%;
  275. }
  276. .Headbackground {
  277. position: absolute;
  278. width: 100%;
  279. top: 0;
  280. left: 0;
  281. padding-top: 80rpx;
  282. // background: linear-gradient(to bottom, rgb(85, 94, 123), rgb(45, 51, 73));
  283. .Toggle {
  284. margin: 10rpx 30rpx;
  285. padding: 20rpx;
  286. background-color: #00000022;
  287. color: #fff;
  288. border-radius: 40rpx;
  289. width: fit-content;
  290. display: flex;
  291. justify-content: center;
  292. align-items: center;
  293. font-size: 28rpx;
  294. }
  295. .top {
  296. display: flex;
  297. color: white;
  298. padding: 25rpx;
  299. align-items: center;
  300. position: relative;
  301. .profilePicture {
  302. width: 150rpx;
  303. height: 150rpx;
  304. image {
  305. border-radius: 20rpx;
  306. }
  307. }
  308. .UniversalWall {
  309. padding: 0rpx 20rpx;
  310. .dynamic {
  311. font-size: 40rpx;
  312. letter-spacing: 5rpx;
  313. }
  314. .dynamics {
  315. margin-top: 20rpx;
  316. font-size: 25rpx;
  317. display: flex;
  318. text {
  319. margin: 0 10rpx;
  320. }
  321. }
  322. }
  323. .join {
  324. position: absolute;
  325. right: 10rpx;
  326. top: 40rpx;
  327. padding: 10rpx 20rpx;
  328. background-color: $uni-color;
  329. margin-left: auto;
  330. display: flex;
  331. align-items: center;
  332. justify-content: center;
  333. border-radius: 50rpx;
  334. }
  335. }
  336. }
  337. .box {
  338. margin-top: -70rpx;
  339. background-color: #fff;
  340. border-top-left-radius: 40rpx;
  341. border-top-right-radius: 40rpx;
  342. position: relative;
  343. z-index: 9;
  344. overflow: hidden;
  345. .life {
  346. display: flex;
  347. text-align: center;
  348. padding: 10rpx 0;
  349. flex-wrap: wrap;
  350. .mouse {
  351. // margin-top: 20rpx;
  352. width: 20%;
  353. box-sizing: border-box;
  354. display: flex;
  355. justify-content: center;
  356. align-items: center;
  357. flex-direction: column;
  358. font-size: 26rpx;
  359. flex-shrink: 0;
  360. .RentingAhouseimg {
  361. margin-top: 20rpx;
  362. display: flex;
  363. justify-content: center;
  364. align-items: center;
  365. flex-direction: column;
  366. image {
  367. width: 70rpx;
  368. height: 70rpx;
  369. }
  370. }
  371. }
  372. .more {
  373. margin-top: 85rpx;
  374. margin-left: 47rpx;
  375. }
  376. }
  377. .dynamicList {
  378. padding-top: 10rpx;
  379. }
  380. }
  381. </style>