<!--pages/location/event/event.wxml--> <view class="container"> <view class="event-poster {{categoryColor}}"> <image class="poster poster-spacing" src="{{event.image}}" bindtap="handlePosterTap"></image> </view> <view class="event-header event-session-spacing"> <text class="event-title">{{event.title}}</text> <text class="some-count">{{event.some_count}}</text> </view> <view class="user-action event-session-spacing"> <text class="wish" bindtap="handleWish">感兴趣</text> <text class="join" bindtap="handleJoin">要参加</text> </view> <view class="event-action event-session-spacing"> <view class="event-schedule" bindtap="handleSchedule"> <image class="action-icon" src="/images/icon/schedule.png"></image> <label class="action-label" for="schedule">活动时间 <text id="schedule" class="action-text">{{event.time_str}}</text> </label> </view> <view class="event-map" bindtap="handleMap"> <image class="action-icon" src="/images/icon/map.png"></image> <label class="action-label" for="map">查看地图 <text id="map" class="action-text">{{event.address}}</text> </label> </view> <view class="event-ticket" bindtap="handleTicket"> <image class="action-icon" src="/images/icon/ticket.png"></image> <label class="action-label" for="ticket">在线购票 <text id="ticket" class="action-text">{{event.price_range}}</text> </label> </view> <view wx:if="{{true}}" class="event-phone" bindtap="handlePhone" data-phone="0755-22665577"> <image class="action-icon" src="/images/icon/phone.png"></image> <label class="action-label" for="phone">购票热线 <text id="phone" class="action-text">0755-22665577</text> </label> </view> </view> <view class="content-session content-session-spacing"> <text class="content-title">活动详情</text> <block wx:if="{{event.content}}"> <view class="content {{extended ? 'content-auto' : 'content-min'}}">{{event.content}}</view> <block wx:if="{{!extended}}"> <view class="content-cover"> <view class="cover"></view> <view class="extend" bindtap="bindExtend">展开活动详情</view> </view> </block> </block> </view> </view> |
/* pages/location/event/event.wxss */ .container { background: #fff; } .event-poster { display: flex; flex-direction: column; align-items: center; background: #f8f8f8; white-space: nowrap; } .poster-spacing { margin: 30rpx 0rpx 30rpx 0rpx; padding: 0rpx 30rpx 0rpx 30rpx; } .event-session-spacing { margin: 20rpx 0rpx 20rpx 0rpx; padding: 0rpx 30rpx 0rpx 30rpx; } .event-poster .poster { width: 350rpx; height: 520rpx; } .event-header { display: flex; flex-direction: column; margin: 30rpx 0rpx 30rpx 0rpx; padding: 0rpx 30rpx 0rpx 30rpx; background: #fff; } .event-header .event-title { font-size: 36rpx; color: #4a4a4a; } .event-header .some-count { font-size: 24rpx; color: #9e9e9e; } .user-action { display: flex; flex-direction: row; justify-content: space-between; } .user-action .join, .user-action .wish { color: #de9703; border: 1px solid #de9703; border-radius: 8rpx; text-align: center; padding: 10rpx 100rpx 10rpx 100rpx; } .event-action { display: flex; flex-direction: column; } .event-schedule, .event-map, .event-ticket, .event-phone { display: flex; flex-direction: row; align-items: center; position: relative; padding: 12rpx 20rpx 12rpx 0rpx; border-bottom: 1px solid #e6e6e6; box-sizing: border-box; } .event-schedule::after, .event-map::after, .event-ticket::after, .event-phone::after { content: " "; width: 12rpx; height: 12rpx; position: absolute; top: 50%; right: -0rpx; margin-top: -10rpx; transform: matrix(0.71, 0.71, -0.71, 0.71, 0, 0); border-width: 1px 1px 0px 0px; border-color: #9e9e9e; border-style: solid; } .event-action .action-icon { width: 32rpx; height: 32rpx; margin: 10rpx; } .event-action .action-label { display: flex; flex: 1; font-size: 28rpx; color: #4a4a4a; } .event-action .action-text { flex: 1; font-size: 24rpx; max-width: 560rpx; color: #9e9e9e; text-align: right; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; word-break: keep-all; } .content-session { display: flex; flex-direction: column; } .content-session .content-title { color: #9e9e9e; font-size: 24rpx; height: 56rpx; line-height: 56rpx; } .content-session .content { color: #4a4a4a; font-size: 24rpx; width: 100%; overflow: hidden; } .content-session-spacing { margin-top: 30rpx; margin-bottom: 60rpx; padding: 0rpx 30rpx 0rpx 30rpx; box-sizing: border-box; } .content-session .content-min { width: 100%; height: 300rpx; } .content-session .content-auto { height: auto; } .content-session .content-cover { display: flex; flex-direction: column; } .content-session .cover { width: 100%; height: 100rpx; margin-top: -100rpx; background: -webkit-linear-gradient(rgba(255, 255, 255, 0.75), rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 1)); /* Safari 5.1 - 6.0 */ background: linear-gradient(rgba(255, 255, 255, 0.75), rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 1)); /* 标准的语法 */ } .content-session .extend { padding: 40rpx 30rpx 40rpx 30rpx; align-self: center; font-size: 28rpx; font-weight: 500; color: #32cb32; position: relative; padding-right: 20rpx; } .content-session .extend::after { content: " "; width: 12rpx; height: 12rpx; position: absolute; top: 50%; margin-top: -8rpx; right: -2rpx; transform: matrix(0.71, 0.71, 0.71, -0.71, 0, 0); border-width: 1px 1px 0px 0px; border-color: #32cb32; border-style: solid; } .music { background: #666; } .film { background: #f66; } .party { background: #66c; } .drama { background: #969; } .commonweal { background: #66c; } .salon { background: #369; } .exhibition { background: #c93; } .sports { background: #933; } .course { background: #cc9; } .music { background: #666; } |
// pages/location/event/event.js var app = getApp(); Page({ data: { extended: false, categoryColor: "", event: {} }, onLoad: function (options) { // 页面初始化 options为页面跳转所带来的参数 var id = options.id; var url = app.globalData.doubanBase + app.globalData.event_url + id; this.getEventDatById(url); }, onReady: function () { // 页面渲染完成 }, onShow: function () { // 页面显示 }, onHide: function () { // 页面隐藏 }, onUnload: function () { // 页面关闭 }, /** 根据id获取活动详情 */ getEventDatById: function (url) { console.log("getEventDataById"); var that = this; // 显示加载中 wx.showToast({ title: '加载中', icon: 'loading', duration: 10000 }); wx.request({ url: url, data: {}, method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT header: { 'content-type': 'json' }, // 设置请求的 header success: function (res) { var data = res.data; that.processEventData(data); }, fail: function () { // fail }, complete: function () { wx.hideToast(); } }) }, /** 组装活动详情数据 */ processEventData: function (event) { // 判断是否有该类别的集合 var category = event.category; var some_count = ""; event.wisher_count && (some_count += event.wisher_count + "感兴趣"); event.participant_count && (some_count += " / " + event.participant_count + "要参与"); var contentStr = event.content; if (typeof contentStr == 'string') { contentStr = contentStr.replace(new RegExp("<br>", "gm"), "n").replace(new RegExp("<img ", "gm"), "<image ").replace(new RegExp('alt="">', "gm"), "></image>").replace(new RegExp("<div ", "gm"), "<view ").replace(new RegExp("</div>", "gm"), "</view>"); } console.log("contentStr: " + contentStr + ", content: " + event.content); var temp = { id: event.id, image: event.image, loc_name: event.loc_name, owner: event.owner, category: event.category, title: event.title, wisher_count: event.wisher_count, some_count: some_count, has_ticket: event.has_ticket, content: contentStr, can_invite: event.can_invite, time_str: event.time_str, album: event.album, participant_count: event.participant_count, tags: event.tags, image_hlarge: event.image_hlarge, begin_time: event.begin_time, price_range: event.price_range, geo: event.geo, image_lmobile: event.image_lmobile, loc_id: event.loc_id, end_time: event.end_time, address: event.address, }; var categoryColor = category; this.setData({ "event": temp, "categoryColor": categoryColor }); }, /** 查看图片 */ handlePosterTap: function (event) { var posterUrl = this.data.event.image; wx.navigateTo({ url: '/pages/location/event/poster/poster?posterUrl=' + posterUrl }); }, /** 查看活动时间 */ handleSchedule: function (event) { console.log("handleSchedule"); var param = ""; this.data.event.title && (param += "title=" + this.data.event.title); this.data.event.begin_time && (param += "&&beginTime=" + this.data.event.begin_time); this.data.event.begin_time && (param += "&&endTime=" + this.data.event.end_time); wx.navigateTo({ url: '/pages/location/event/schedule/schedule?' + param }); }, /** 查看地图 */ handleMap: function (event) { console.log("handleMap"); var geo = this.data.event.geo; if (typeof geo == 'string') { var loc = geo.split(" "); var latitude = parseFloat(loc[0]); var longitude = parseFloat(loc[1]); wx.openLocation({ latitude: latitude, longitude: longitude, scale: 28 }); } }, /** 在线购票 */ handleTicket: function (event) { console.log("handleTicket"); wx.showModal({ title: '在线购票', content: '请拨打客服热线', success: function (res) { if (res.confirm) { console.log('用户点击确定') } } }); }, /** 拨打电话 */ handlePhone: function (event) { var phone = event.currentTarget.dataset.phone; console.log("handlePhone"); wx.makePhoneCall({ phoneNumber: phone, success: function (res) { // success } }); }, /** 用户感兴趣 */ handleWish: function (event) { console.log("handleWish"); var params = "action=wish"; this.data.event.title && (params += "&&title=" + this.data.event.title); this.data.event.some_count && (params += "&&somecount=" + this.data.event.some_count); wx.navigateTo({ url: '/pages/location/event/action/action?' + params, }); }, /** 用户要参加 */ handleJoin: function (event) { console.log("handleJoin"); var params = "action=join"; this.data.event.title && (params += "&&title=" + this.data.event.title); this.data.event.some_count && (params += "&&somecount=" + this.data.event.some_count); wx.navigateTo({ url: '/pages/location/event/action/action?' + params, }); }, bindExtend: function (event) { this.setData({ "extended": true }); } }) |
模板简介:该模板名称为【微信小程序豆瓣同城活动详情页面设计制作开发教程】,大小是,文档格式为.,推荐使用打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【小程序教程】栏目查找您需要的精美模板。