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

443 lines
9.2 KiB

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