factoryindex.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <template>
  2. <view class="page">
  3. <!-- 1. 顶部标题 -->
  4. <view class="header">
  5. <text class="title">{{title}}</text>
  6. </view>
  7. <!-- 2. 轮播图 -->
  8. <swiper
  9. class="swiper"
  10. circular
  11. :indicator-dots="true"
  12. :autoplay="true"
  13. :interval="3000"
  14. :duration="800"
  15. >
  16. <swiper-item v-for="(item, index) in picture" :key="index">
  17. <image :src="item" class="swiper-item" mode="aspectFill" />
  18. </swiper-item>
  19. </swiper>
  20. <!-- 3. 九宫格导航 -->
  21. <view class="grid-box">
  22. <view
  23. v-for="(item,index) in parkList2"
  24. :key="index"
  25. class="grid-card"
  26. @tap="goListByValue(item.value)"
  27. >
  28. <text class="grid-label">{{item.label}}</text>
  29. </view>
  30. </view>
  31. <!-- 地图已注释,如需恢复直接放开即可 -->
  32. <!--
  33. <view class="map-box">
  34. <view @touchend="onTouchEnd" class="map-wrap">
  35. <canvas canvas-id="ydChart" id="ydChart" class="map-canvas" />
  36. </view>
  37. </view>
  38. -->
  39. </view>
  40. </template>
  41. <script>
  42. // import * as echarts from 'echarts' // 如不用地图可注释
  43. export default {
  44. data() {
  45. return {
  46. title: '盐都区闲置厂房分布图',
  47. picture: [
  48. 'https://ydwqfw.com.cn/yd_qycpfbH5/bg1.jpg',
  49. 'https://ydwqfw.com.cn/yd_qycpfbH5/bg2.jpg',
  50. 'https://ydwqfw.com.cn/yd_qycpfbH5/bg3.jpg',
  51. 'https://ydwqfw.com.cn/yd_qycpfbH5/bg4.jpg'
  52. ],
  53. parkList2: [
  54. { label: '全部', value: '' },
  55. { label: '台创园', value: '台创园' },
  56. { label: '大冈', value: '大冈镇' },
  57. { label: '大纵湖', value: '大纵湖镇' },
  58. { label: '学富', value: '学富镇' },
  59. { label: '尚庄', value: '尚庄镇' },
  60. { label: '张庄', value: '张庄街道' },
  61. { label: '楼王', value: '楼王镇' },
  62. { label: '潘黄', value: '潘黄街道' },
  63. { label: '盐渎', value: '盐渎街道' },
  64. { label: '秦南', value: '秦南镇' },
  65. { label: '郭猛', value: '郭猛镇' },
  66. { label: '高新区', value: '盐龙街道' },
  67. { label: '龙冈', value: '龙冈镇' }
  68. ]
  69. }
  70. },
  71. /* 地图相关生命周期,如不用可全部注释
  72. async onReady() {
  73. const json = await this.loadGeoJSON()
  74. echarts.registerMap('yanduqu', json)
  75. ...
  76. },
  77. methods: {
  78. loadGeoJSON() { ... },
  79. onTouchEnd(e) { ... },
  80. renderMap() { ... }
  81. }
  82. */
  83. methods: {
  84. // 九宫格跳转
  85. goListByValue(val) {
  86. uni.navigateTo({
  87. url: `/pages/factoryBuildings/factoryBuildingsList?parkid=${val}`
  88. })
  89. }
  90. }
  91. }
  92. </script>
  93. <style scoped>
  94. .page {
  95. display: flex;
  96. flex-direction: column;
  97. min-height: 100vh;
  98. background: #f5f5f5;
  99. }
  100. /* 顶部标题 */
  101. .header {
  102. padding: 20rpx 0;
  103. text-align: center;
  104. background: #fff;
  105. }
  106. .title {
  107. font-size: 36rpx;
  108. font-weight: bold;
  109. color: #333;
  110. }
  111. /* 轮播图 */
  112. .swiper {
  113. width: 100%;
  114. height: 300rpx;
  115. }
  116. .swiper-item {
  117. width: 100%;
  118. height: 100%;
  119. }
  120. /* 九宫格区域 */
  121. .grid-box {
  122. width: 100%;
  123. padding: 30rpx;
  124. box-sizing: border-box;
  125. display: grid;
  126. grid-template-columns: repeat(3, 1fr);
  127. gap: 24rpx;
  128. background: #fff;
  129. }
  130. .grid-card {
  131. display: flex;
  132. align-items: center;
  133. justify-content: center;
  134. height: 160rpx;
  135. background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
  136. border-radius: 16rpx;
  137. box-shadow: 0 6rpx 16rpx rgba(0, 0, 0, 0.08);
  138. transition: transform 0.15s;
  139. }
  140. .grid-card:active {
  141. transform: scale(0.96);
  142. }
  143. .grid-label {
  144. font-size: 30rpx;
  145. font-weight: 600;
  146. color: #fff;
  147. }
  148. </style>