index.vue 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005
  1. <template>
  2. <view class="content">
  3. <top-title
  4. :titleValue="title"
  5. :pageScroll="scrollVal"
  6. :btnTop="btnPos"
  7. :androidFlag="isAndroidFlag"
  8. style="width: 100%"
  9. ></top-title>
  10. <view class="page-section-spacing" style="width: 100%; position: relative">
  11. <swiper
  12. class="swiper"
  13. indicator-dots="false"
  14. autoplay="true"
  15. duration="500"
  16. style="height: 440rpx"
  17. @change="swiperChange"
  18. >
  19. <swiper-item
  20. v-for="(item, index) in swiperList"
  21. :key="index"
  22. class="swiper-content"
  23. >
  24. <image
  25. :src="item.pic_path"
  26. mode="aspectFill"
  27. style="width: 100%; height: 100%"
  28. ></image>
  29. </swiper-item>
  30. </swiper>
  31. <image src="../../static/Intersect.svg" class="groove-img"></image>
  32. <view class="rowDot">
  33. <view v-for="(item, index) in swiperList" :key="index" class="dots">
  34. <view
  35. :class="['dot', index === swiperCurrent ? 'active' : '']"
  36. ></view>
  37. </view>
  38. </view>
  39. </view>
  40. <view class="page-nav-box">
  41. <navigator
  42. v-for="(item, index) in navList"
  43. :key="index"
  44. :url="item.path"
  45. open-type="navigate"
  46. class="nav-content"
  47. >
  48. <image
  49. :src="item.url"
  50. mode="aspectFit"
  51. style="width: 38px; height: 38px"
  52. ></image>
  53. <view>{{ item.content }}</view>
  54. </navigator>
  55. </view>
  56. <view class="notice-box" style="width:90%;">
  57. <view class="notice-title-box" style="margin: 0 auto;margin-bottom: 30rpx;">
  58. <view class="notice-font">通知公告</view>
  59. <view class="notice-more-font">
  60. <view style="margin-right: 8rpx; font-size: 26rpx" @click="goNotice">更多</view>
  61. <image src="../../static/right-arrow-blue.png"mode="aspectFill" style="width: 12rpx; height: 16rpx"></image>
  62. </view>
  63. </view>
  64. <view
  65. class="notice-content-box"
  66. style="justify-content: flex-start;border-radius: 0;"
  67. v-for="(item, index) in noticeList"
  68. :key="index"
  69. @click="goNoticeDeatil(item.id)"
  70. >
  71. <image
  72. :src="item.icon"
  73. mode="aspectFit"
  74. style="width:80rpx; height:80rpx"
  75. ></image>
  76. <view class="notice-content display-around-column" style="width: 85%">
  77. <view class="notice-content-font" style="margin-left: 30rpx">{{
  78. item.title
  79. }}</view>
  80. <view class="notice-content-time" style="margin-left: 30rpx">{{
  81. item.publish_time | globalTime
  82. }}</view>
  83. </view>
  84. </view>
  85. </view>
  86. <view class="notice-box" style="margin-top: 40rpx;width: 90%;">
  87. <view class="notice-title-box">
  88. <view class="notice-font">推荐园区</view>
  89. <navigator
  90. class="notice-more-font"
  91. url="../park/index"
  92. open-type="navigate"
  93. >
  94. <view style="margin-right: 8rpx; font-size:26rpx">更多</view>
  95. <image
  96. src="/static/right-arrow-blue.png"
  97. mode="aspectFill"
  98. style="width: 12rpx; height: 16rpx"
  99. ></image>
  100. </navigator>
  101. </view>
  102. <view
  103. class="display-flex-start"
  104. style="overflow-x: scroll; overflow-y: hidden; position: relative"
  105. >
  106. <view
  107. class="park-box"
  108. v-for="item in parkList"
  109. :key="item.id"
  110. @click="goParkDetailFn(item.id)"
  111. >
  112. <image
  113. :src="item.park_pics[0].pic_path || '/static/park/1.png'"
  114. mode="aspectFill"
  115. style="
  116. width: 452rpx;
  117. height: 250rpx;
  118. border-radius: 32rpx 32rpx 0 0;
  119. "
  120. ></image>
  121. <view class="park-content-box">
  122. <view class="park-title">{{ item.name }}</view>
  123. <view class="park-address display-flex-start">
  124. <view class="display-flex-start" style="margin-right: 10rpx"
  125. ><image
  126. src="/static/park/park-time.png"
  127. mode="aspectFill"
  128. class="park-title-img"
  129. ></image
  130. >{{ item.addtime | globalTime }}建成</view
  131. >
  132. <view class="display-flex-start"
  133. ><image
  134. src="/static/park/park-name.png"
  135. mode="aspectFill"
  136. class="park-title-img"
  137. ></image
  138. >{{ item.manager }}</view
  139. >
  140. </view>
  141. <view class="park-footer-box display-between">
  142. <view class="display-between-column width-30">
  143. <view class="display-flex-start"
  144. ><image
  145. src="/static/park/park-num.png"
  146. mode="aspectFill"
  147. class="park-footer-img"
  148. ></image
  149. >{{ item.company_count }}</view
  150. >
  151. <view class="park-footer-font">企业数量</view>
  152. </view>
  153. <view class="display-between-column width-30">
  154. <view class="display-flex-start">
  155. <image
  156. src="/static/park/park-area.png"
  157. mode="aspectFill"
  158. class="park-footer-img"
  159. ></image>
  160. {{ item.cover_area
  161. }}<text style="font-size: 14rpx">亩</text></view
  162. >
  163. <view class="park-footer-font">占地面积</view>
  164. </view>
  165. <view class="display-between-column" style="width: 33%;">
  166. <view class="display-flex-start">
  167. <image
  168. src="/static/park/park-area2.png"
  169. mode="aspectFill"
  170. class="park-footer-img"
  171. ></image>
  172. {{ item.building_area
  173. }}<text style="font-size: 14rpx">万㎡</text></view
  174. >
  175. <view class="park-footer-font">建设面积</view>
  176. </view>
  177. </view>
  178. </view>
  179. </view>
  180. </view>
  181. </view>
  182. <view class="notice-box" style="margin-top: 20rpx;width: 90%;">
  183. <view class="notice-title-box" style="margin: 0 auto;margin-bottom: 30rpx;">
  184. <view class="notice-font">招商专区</view>
  185. <view class="notice-more-font">
  186. <view style="margin-right: 8rpx; font-size: 26rpx" @click="goAttract"
  187. >更多</view
  188. >
  189. <image
  190. src="/static/right-arrow-blue.png"
  191. mode="aspectFill"
  192. style="width: 12rpx; height: 16rpx"
  193. ></image>
  194. </view>
  195. </view>
  196. <view
  197. class="notice-content-box"
  198. v-for="(item, index) in attractList"
  199. :key="index"
  200. style="justify-content: start; position: relative;border-radius: 0;"
  201. @click="goAttractDeatil(item.id, item.time_type)"
  202. >
  203. <view class="maskModal" v-if="item.time_type == 0">
  204. <text>敬请期待</text>
  205. </view>
  206. <image
  207. :src="item.pic_url"
  208. mode="aspectFill"
  209. style="
  210. width: 112rpx;
  211. height: 112rpx;
  212. margin-right: 20rpx;
  213. border-radius: 10rpx;
  214. "
  215. ></image>
  216. <view class="notice-content" style="width: 75%">
  217. <view class="notice-content-font">{{ item.title }}</view>
  218. <view class="attract-content">{{ item.desc }}</view>
  219. <view
  220. class="notice-content-time"
  221. style="margin-top: 20rpx; font-size: 26rpx"
  222. v-if="item.time_type == 1"
  223. >{{ item.time | globalTime }}</view
  224. >
  225. <view
  226. class="notice-content-time"
  227. style="margin-top: 20rpx; font-size: 26rpx"
  228. v-else
  229. >时间:待定</view
  230. >
  231. </view>
  232. </view>
  233. </view>
  234. <view class="notice-box" style="margin-top: 40rpx;width:90%;">
  235. <view class="notice-title-box" style="margin: 0 auto;margin-bottom: 30rpx;">
  236. <view class="notice-font">区内活动</view>
  237. <view class="notice-more-font">
  238. <view style="margin-right: 8rpx; font-size: 26rpx" @click="goActive"
  239. >更多</view
  240. >
  241. <image
  242. src="/static/right-arrow-blue.png"
  243. mode="aspectFill"
  244. style="width: 12rpx; height: 16rpx"
  245. ></image>
  246. </view>
  247. </view>
  248. <view
  249. class="notice-content-box"
  250. v-for="(item, index) in activityList"
  251. :key="index"
  252. style="justify-content: start; padding: 30rpx 0 30rpx 30rpx;border-radius: 0;"
  253. @click="goActiveDeatil(item.id)"
  254. >
  255. <image
  256. :src="item.url"
  257. style="
  258. width: 112rpx;
  259. height: 112rpx;
  260. margin-right: 20rpx;
  261. border-radius: 10%;
  262. "
  263. ></image>
  264. <view class="notice-content" style="width: 75%">
  265. <view class="notice-content-font">{{
  266. item.title
  267. }}</view>
  268. <view class="display-flex-start" style="margin-top: 20rpx">
  269. <view
  270. class="notice-content-time display-flex-start color-a7adba"
  271. v-show="item.isOnline"
  272. ><view class="online-box"></view>线上</view
  273. >
  274. <view
  275. class="notice-content-time display-flex-start color-a7adba"
  276. v-show="!item.isOnline"
  277. ><view class="offline-box"></view>线下</view
  278. >
  279. <view class="notice-content-time color-a7adba">{{
  280. item.department
  281. }}</view>
  282. <view class="notice-content-time color-a7adba">{{
  283. item.time
  284. }}</view>
  285. </view>
  286. <view class="display-flex-end" style="margin-top: 20rpx">
  287. <view class="notice-content-time">浏览 {{ item.browe }}</view>
  288. <view class="notice-content-time">分享 {{ item.share }}</view>
  289. </view>
  290. </view>
  291. </view>
  292. </view>
  293. <foot-tabs :selectedIndex="0" :isShow="footFlag"></foot-tabs>
  294. </view>
  295. </template>
  296. <script>
  297. import md5 from "@/common/md5.js";
  298. import topTitle from "@/components/top-title/top-title.vue";
  299. import footTabs from "@/components/foot-tabs/footTabs.vue";
  300. export default {
  301. components: {
  302. "foot-tabs": footTabs,
  303. "top-title": topTitle,
  304. },
  305. data() {
  306. return {
  307. title: "Air企通",
  308. scrollVal: Number,
  309. footFlag: true,
  310. btnPos:uni.getMenuButtonBoundingClientRect().top + 6,
  311. isAndroidFlag:getApp().globalData.isAndroid,
  312. swiperList: [
  313. {
  314. img: "/static/swiper/swiper1.jpg",
  315. },
  316. {
  317. img: "/static/swiper/swiper2.jpg",
  318. },
  319. ],
  320. swiperCurrent: 0,
  321. navList: [
  322. {
  323. url: "/static/navList/appeal.png",
  324. path: "/pages/appeal/index",
  325. content: "提诉求",
  326. },
  327. {
  328. url: "/static/navList/policy.png",
  329. path: "/pages/policy/index",
  330. content: "搜政策",
  331. },
  332. {
  333. url: "/static/navList/park.png",
  334. path: "/pages/park/index",
  335. content: "找园区",
  336. },
  337. {
  338. url: "/static/navList/activity.png",
  339. path: "/pages/activity/index",
  340. content: "找活动",
  341. },
  342. {
  343. url: "/static/navList/supply.png",
  344. path: "/pages/supply/index",
  345. content: "发供需",
  346. },
  347. {
  348. url: "/static/navList/enterprise.png",
  349. path: "/pages/enterprise/index",
  350. content: "查企业",
  351. },
  352. {
  353. url: "/static/navList/service.png",
  354. path: "/pages/service/index",
  355. content: "找服务",
  356. },
  357. ],
  358. noticeList: [
  359. // {
  360. // url: "/static/navList/policy-icon.png",
  361. // title: "政策速览 | 小微企业、个体工商户税费...",
  362. // time: "2021-08-05",
  363. // },
  364. // {
  365. // url: "/static/navList/activity-icon.png",
  366. // title: "活动预告 | 想了解跨境电商?8月5日带...",
  367. // time: "2021-08-04",
  368. // },
  369. // {
  370. // url: "/static/navList/notice-icon.png",
  371. // title: "通知公告 | 2022年首批次重点新材料扶...",
  372. // time: "2021-08-03",
  373. // },
  374. ],
  375. parkList: [
  376. // {
  377. // url:'/static/park/1.png',
  378. // title:'华潮科技产业园',
  379. // time:'2015-10-25',
  380. // num:484,
  381. // area1:1.72,
  382. // area2:1.01
  383. // },
  384. // {
  385. // url:'/static/park/1.png',
  386. // title:'华潮科技产业园',
  387. // time:'2015-10-25',
  388. // num:484,
  389. // area1:1.72,
  390. // area2:1.01
  391. // },
  392. // {
  393. // url:'/static/park/1.png',
  394. // title:'华潮科技产业园',
  395. // time:'2015-10-25',
  396. // num:484,
  397. // area1:1.72,
  398. // area2:1.01
  399. // },
  400. ],
  401. attractList: [
  402. // {
  403. // url: "/static/attract/1.png",
  404. // title: "工业互联网",
  405. // subtitle: "工业互联网是全球工业系统与高级计算、分析、...",
  406. // time: "2021-09-05",
  407. // },
  408. // {
  409. // url: "/static/attract/2.png",
  410. // title: "生产性服务业",
  411. // subtitle: "生产性服务业是指为保持工业生产过程的连续性...",
  412. // time: "2021-09-05",
  413. // },
  414. ],
  415. activityList: [
  416. // {
  417. // url: "/static/activity/2.png",
  418. // title: "400场讲座,200门课程,免费送上门!就等你申请",
  419. // isOnline: 1,
  420. // department: "区人力资源局",
  421. // time: "2021-09-05",
  422. // browe: "322",
  423. // share: "2",
  424. // },
  425. // {
  426. // url: "/static/activity/1.png",
  427. // title: "智能制造商标品牌培育系列培训活动",
  428. // isOnline: 0,
  429. // department: "市场监督管理局",
  430. // time: "2021-09-05",
  431. // browe: "322",
  432. // share: "2",
  433. // },
  434. ],
  435. };
  436. },
  437. onShow() {
  438. uni.hideTabBar({});
  439. this.getActive();
  440. },
  441. onLoad() {
  442. uni.showLoading({
  443. title: "加载中",
  444. mask: true,
  445. });
  446. this.getSwiperList();
  447. this.getPark();
  448. this.getNotice();
  449. this.getAttract(); //招商接口
  450. },
  451. onShareAppMessage() {
  452. url: "/pages/index/index";
  453. },
  454. methods: {
  455. swiperChange(e) {
  456. this.swiperCurrent = e.detail.current;
  457. },
  458. getSwiperList() {
  459. let md5Sign = md5(
  460. "method=" +
  461. "common" +
  462. "&timestamp=" +
  463. getApp().globalData.globalTimestamp +
  464. "&secret=" +
  465. getApp().globalData.secret
  466. );
  467. let url =
  468. getApp().globalData.shareUrl +
  469. "api/api.php" +
  470. "?method=common&source=main_pics&action=list&timestamp=" +
  471. getApp().globalData.globalTimestamp +
  472. "&sign=" +
  473. md5Sign;
  474. uni.request({
  475. url: url,
  476. method: "POST",
  477. header: {
  478. "content-type": "application/x-www-form-urlencoded",
  479. },
  480. data: {
  481. order_by: "weight desc",
  482. s_status: 1,
  483. page: 1,
  484. page_size: 7,
  485. },
  486. success: (res) => {
  487. console.log(res);
  488. if (res.data.code === 200) {
  489. res.data.data.list.forEach((item) => {
  490. item.pic_path = getApp().globalData.shareUrl + item.pic_path;
  491. });
  492. this.swiperList = res.data.data.list;
  493. }
  494. },
  495. fail: () => {
  496. console.log("连接失败");
  497. },
  498. });
  499. },
  500. getPark() {
  501. let md5Sign = md5(
  502. "method=" +
  503. "park" +
  504. "&timestamp=" +
  505. getApp().globalData.globalTimestamp +
  506. "&secret=" +
  507. getApp().globalData.secret
  508. );
  509. let url =
  510. getApp().globalData.shareUrl +
  511. "api/api.php" +
  512. "?method=park&source=park&action=list&timestamp=" +
  513. getApp().globalData.globalTimestamp +
  514. "&sign=" +
  515. md5Sign;
  516. uni.request({
  517. url: url,
  518. method: "POST",
  519. header: {
  520. "content-type": "application/x-www-form-urlencoded",
  521. },
  522. data: {
  523. order_by: "weight desc",
  524. s_show: 1,
  525. page: 1,
  526. page_size: 5,
  527. },
  528. success: (res) => {
  529. if (res.data.code === 200) {
  530. res.data.data.list.forEach((item) => {
  531. if (item.park_pics.length) {
  532. item.park_pics[0].pic_path =
  533. getApp().globalData.shareUrl + item.park_pics[0].pic_path;
  534. }
  535. });
  536. this.parkList = res.data.data.list;
  537. }
  538. },
  539. fail: () => {
  540. console.log("连接失败");
  541. },
  542. });
  543. },
  544. getNotice() {
  545. let md5Sign = md5(
  546. "method=" +
  547. "common" +
  548. "&timestamp=" +
  549. getApp().globalData.globalTimestamp +
  550. "&secret=" +
  551. getApp().globalData.secret
  552. );
  553. let url =
  554. getApp().globalData.shareUrl +
  555. "api/api.php" +
  556. "?method=common&source=notice&action=list&timestamp=" +
  557. getApp().globalData.globalTimestamp +
  558. "&sign=" +
  559. md5Sign;
  560. uni.request({
  561. url: url,
  562. method: "POST",
  563. header: {
  564. "content-type": "application/x-www-form-urlencoded",
  565. },
  566. data: {
  567. // order_by: "weight desc",
  568. // s_show: 1,
  569. page: 1,
  570. page_size:3,
  571. },
  572. success: (res) => {
  573. if (res.data.code === 200) {
  574. // console.log(res.data.data.list);
  575. this.noticeList = res.data.data.list.map((item) => {
  576. switch (item.type) {
  577. case "1":
  578. item.icon = "/static/navList/activity-icon.png";
  579. // item.title = "活动预告 | " + item.title;
  580. break;
  581. case "2":
  582. item.icon = "/static/navList/policy-icon.png";
  583. // item.title = "政策速览 | " + item.title;
  584. break;
  585. case "3":
  586. item.icon = "/static/navList/notice-icon.png";
  587. // item.title = "通知公告 | " + item.title;
  588. break;
  589. }
  590. return item;
  591. });
  592. }
  593. console.log(this.noticeList)
  594. },
  595. fail: () => {
  596. console.log("连接失败");
  597. },
  598. });
  599. },
  600. getAttract() {
  601. let md5Sign = md5(
  602. "method=" +
  603. "common" +
  604. "&timestamp=" +
  605. getApp().globalData.globalTimestamp +
  606. "&secret=" +
  607. getApp().globalData.secret
  608. );
  609. let url =
  610. getApp().globalData.shareUrl +
  611. "api/api.php" +
  612. "?method=common&source=business&action=list&timestamp=" +
  613. getApp().globalData.globalTimestamp +
  614. "&sign=" +
  615. md5Sign;
  616. let postData = {
  617. // page: 1,
  618. // page_size: 4,
  619. };
  620. uni.request({
  621. url: url,
  622. method: "POST",
  623. header: {
  624. "content-type": "application/x-www-form-urlencoded",
  625. },
  626. data: postData,
  627. success: (res) => {
  628. if (res.data.code === 200) {
  629. res.data.data.list.forEach((item) => {
  630. item.pic_url = getApp().globalData.shareUrl + item.pic_url;
  631. });
  632. this.attractList = res.data.data.list.filter(
  633. (item) => item.show != 0
  634. );
  635. this.attractList = this.attractList.length > 2 ? this.attractList.slice(0,2) : this.attractList
  636. }
  637. },
  638. fail: () => {
  639. console.log("连接失败");
  640. },
  641. });
  642. },
  643. getActive() {
  644. let md5Sign = md5(
  645. "method=" +
  646. "common" +
  647. "&timestamp=" +
  648. getApp().globalData.globalTimestamp +
  649. "&secret=" +
  650. getApp().globalData.secret
  651. );
  652. let url =
  653. getApp().globalData.shareUrl +
  654. "api/api.php" +
  655. "?method=common&source=activity&action=list&timestamp=" +
  656. getApp().globalData.globalTimestamp +
  657. "&sign=" +
  658. md5Sign;
  659. let postData = {
  660. page: 1,
  661. page_size: 2,
  662. s_cancel : 0
  663. };
  664. uni.request({
  665. url: url,
  666. method: "POST",
  667. header: {
  668. "content-type": "application/x-www-form-urlencoded",
  669. },
  670. data: postData,
  671. success: (res) => {
  672. console.log(res);
  673. if (res.data.code === 200) {
  674. let list = res.data.data.list;
  675. this.activityList = list.map((item) => {
  676. /*
  677. url: "/static/activity/2.png",
  678. title: "智能制造商标品牌培育系列培训活动",
  679. way: "市场监督管理局",
  680. date: "2021-08-07",
  681. read: 322,
  682. share: 1,
  683. type: 0, //0线下
  684. */
  685. let ob = {
  686. url: "",
  687. title: "",
  688. department: "",
  689. time: "",
  690. browe: 0,
  691. share: 0,
  692. type: "",
  693. id: "",
  694. };
  695. ob.url = getApp().globalData.shareUrl + item.pic_url;
  696. ob.title = item.name;
  697. ob.department = item.sponsor;
  698. ob.time = this.$options.filters["globalTime"](item.start_time);
  699. ob.browe =
  700. parseInt(item.base_read_count) + parseInt(item.real_read_count);
  701. ob.share =
  702. parseInt(item.real_repost_count) +
  703. parseInt(item.base_repost_count);
  704. ob.isOnline = item.type == 1 ? 1 : 0;
  705. ob.id = item.id;
  706. return ob;
  707. });
  708. }
  709. },
  710. fail: () => {
  711. console.log("连接失败");
  712. },
  713. });
  714. },
  715. goParkDetailFn(id) {
  716. uni.navigateTo({
  717. url: "/pages/park/park_deatil?id=" + id,
  718. });
  719. },
  720. goNoticeDeatil(id) {
  721. uni.navigateTo({
  722. url: "/pages/notice/notice_deatil?id=" + id,
  723. });
  724. },
  725. goAttractDeatil(id, type) {
  726. if (type == "0") return;
  727. uni.navigateTo({
  728. url: "/pages/attract/attract_deatil?id=" + id,
  729. });
  730. },
  731. goActiveDeatil(id) {
  732. uni.navigateTo({
  733. url: "/pages/activity/activity_deatil?id=" + id,
  734. });
  735. },
  736. goAttract() {
  737. uni.navigateTo({
  738. url: "/pages/attract/index",
  739. });
  740. },
  741. goNotice() {
  742. uni.navigateTo({
  743. url: "/pages/notice/index",
  744. });
  745. },
  746. goActive() {
  747. uni.navigateTo({
  748. url: "/pages/activity/index",
  749. });
  750. },
  751. },
  752. onPageScroll(e) {
  753. this.scrollVal = e.scrollTop;
  754. if (e.scrollTop < uni.getSystemInfoSync().windowHeight) {
  755. this.footFlag = true;
  756. }
  757. },
  758. onReachBottom(e) {
  759. this.footFlag = false;
  760. },
  761. };
  762. </script>
  763. <style>
  764. .unclick {
  765. background-color: #bfbfbf !important;
  766. }
  767. .content {
  768. display: flex;
  769. flex-direction: column;
  770. align-items: center;
  771. justify-content: center;
  772. position: relative;
  773. }
  774. .logo {
  775. height: 200rpx;
  776. width: 200rpx;
  777. margin-top: 200rpx;
  778. margin-left: auto;
  779. margin-right: auto;
  780. margin-bottom: 50rpx;
  781. }
  782. .text-area {
  783. display: flex;
  784. justify-content: center;
  785. }
  786. .title {
  787. font-size: 36rpx;
  788. color: #8f8f94;
  789. }
  790. .groove-img {
  791. width: 100%;
  792. height: 100rpx;
  793. bottom: -22rpx;
  794. position: absolute;
  795. }
  796. .rowDot {
  797. display: flex;
  798. position: absolute;
  799. top: 310rpx;
  800. left: 80rpx;
  801. }
  802. .dots {
  803. flex-direction: row;
  804. justify-content: center;
  805. align-items: center;
  806. align-content: center;
  807. }
  808. .dot {
  809. margin-right: 8rpx;
  810. width: 40rpx;
  811. height: 8rpx;
  812. opacity: 1;
  813. border-radius: 6rpx;
  814. background: #fff5f9;
  815. }
  816. .dot.active {
  817. background: #ff4e54;
  818. }
  819. /* .swiper-content { */
  820. /* border-radius: 0 0 10% 10%; */
  821. /* } */
  822. .page-nav-box {
  823. width: 88%;
  824. /* height: 320rpx; */
  825. display: flex;
  826. flex-wrap: wrap;
  827. padding: 20rpx 10rpx 30rpx 10rpx;
  828. box-shadow: 0px 2px 16px rgba(0, 0, 0, 0.1);
  829. border-radius: 16rpx;
  830. position: absolute;
  831. top: 360rpx;
  832. background-color: #fff;
  833. }
  834. .nav-content {
  835. width: 25%;
  836. height: 130rpx;
  837. display: flex;
  838. flex-direction: column;
  839. align-items: center;
  840. margin-top: 20rpx;
  841. font-size: 28rpx;
  842. justify-content: space-around;
  843. letter-spacing: 0.02em;
  844. color: #0d1937;
  845. font-family: PingFang SC;
  846. font-style: normal;
  847. /* font-weight: 600; */
  848. }
  849. .notice-box {
  850. width: 83%;
  851. margin-top: 320rpx;
  852. margin-bottom: 20rpx;
  853. }
  854. .notice-title-box {
  855. width: 100%;
  856. display: flex;
  857. justify-content: space-between;
  858. align-items: center;
  859. margin-bottom: 40rpx;
  860. }
  861. .notice-font {
  862. font-family: PingFang SC;
  863. font-style: normal;
  864. font-weight: bold;
  865. font-size: 38rpx;
  866. letter-spacing: 0.02em;
  867. color: #0d1937;
  868. }
  869. .notice-more-font {
  870. font-size: 28rpx;
  871. color: #146afb;
  872. display: flex;
  873. align-items: center;
  874. }
  875. .notice-content-box {
  876. display: flex;
  877. padding: 30rpx 20rpx 30rpx 20rpx;
  878. background-color: #ffffff;
  879. box-shadow: 0px 4rpx 32rpx rgba(0, 0, 0, 0.1);
  880. border-radius: 32rpx;
  881. margin-top: 20rpx;
  882. justify-content: space-between;
  883. }
  884. .maskModal {
  885. width: 100%;
  886. position: absolute;
  887. background-color: rgba(0, 0, 0, 0.4);
  888. border-radius: 32rpx;
  889. height: 100%;
  890. top: 0;
  891. right: 0;
  892. display: flex;
  893. align-items: center;
  894. justify-content: center;
  895. color: #fff;
  896. font-size: 32rpx;
  897. font-weight: bold;
  898. }
  899. .notice-content-font {
  900. font-size: 32rpx;
  901. color: #0d1937;
  902. /* font-weight: 600; */
  903. overflow: hidden;
  904. text-overflow: ellipsis;
  905. white-space: nowrap;
  906. }
  907. .notice-content-time {
  908. font-size: 26rpx;
  909. letter-spacing: 0.02em;
  910. color: #cfcfcf;
  911. margin-right: 14rpx;
  912. }
  913. .park-box {
  914. border-radius: 32rpx;
  915. margin-right: 20rpx;
  916. position: relative;
  917. height: 480rpx;
  918. }
  919. .park-content-box {
  920. width: 394rpx;
  921. background-color: #ffffff;
  922. border-radius: 56rpx 0px 32rpx 32rpx;
  923. position: absolute;
  924. top: 210rpx;
  925. font-size: 30rpx;
  926. padding: 30rpx;
  927. box-shadow: 0px 2px 16px rgba(0, 0, 0, 0.1);
  928. }
  929. .park-title {
  930. /* font-weight: 600; */
  931. line-height: 36rpx;
  932. letter-spacing: 0.02em;
  933. color: #0d1937;
  934. }
  935. .park-address {
  936. /* font-weight: 600; */
  937. font-size: 26rpx;
  938. letter-spacing: 0.02em;
  939. color: #cfcfcf;
  940. margin-top: 10rpx;
  941. }
  942. .park-title-img {
  943. width: 16rpx;
  944. height: 16rpx;
  945. margin-right: 4rpx;
  946. }
  947. .park-footer-box {
  948. margin-top: 30rpx;
  949. }
  950. .park-footer-img {
  951. width: 24rpx;
  952. height: 24rpx;
  953. margin-right: 6rpx;
  954. }
  955. .park-footer-font {
  956. color: #cfcfcf;
  957. font-size: 24rpx;
  958. margin-top: 10rpx;
  959. }
  960. .width-30 {
  961. width: 30%;
  962. }
  963. .attract-content {
  964. color: #697594;
  965. /* font-weight: 600; */
  966. font-size: 24rpx;
  967. margin-top: 8rpx;
  968. overflow: hidden;
  969. text-overflow: ellipsis;
  970. white-space: nowrap;
  971. }
  972. .online-box {
  973. width: 12rpx;
  974. height: 12rpx;
  975. border-radius: 50%;
  976. background-color: #589cff;
  977. margin-right: 5rpx;
  978. }
  979. .offline-box {
  980. width: 12rpx;
  981. height: 12rpx;
  982. border-radius: 50%;
  983. background-color: #ffcf86;
  984. margin-right: 5rpx;
  985. }
  986. .color-a7adba {
  987. color: #a7adba;
  988. }
  989. </style>