刘翔宇-旅管家 3 years ago
commit 3d0f7865ab

@ -133,7 +133,7 @@
"path" : "pages/order/activityorder",
"style" :
{
"navigationBarTitleText": "活动预约",
"navigationBarTitleText": "活动预约订单",
"enablePullDownRefresh": false
}
@ -142,7 +142,7 @@
"path" : "pages/order/activityorderinfo",
"style" :
{
"navigationBarTitleText": "活动预约",
"navigationBarTitleText": "活动预约订单详情",
"enablePullDownRefresh": false
}

@ -5,39 +5,39 @@
<view class="box-card-title">
预约的活动
</view>
<view class="box-card-content activityBox-content">
<view class="activityBox-row flex-row justify-between">
<text class="activityBox-title">{{list.name}}</text>
<view class="tag tag_green">
<text>{{list.target_name}}</text>
</view>
</view>
<view class="activityBox-row">
<text class="icon-shijian iconfont"></text>
<text>活动时间{{list.start_time}}-{{list.end_time.substring(11,list.end_time.length)}}</text>
</view>
<view class="activityBox-row">
<text class="icon-huodongfangshi iconfont"></text>
<text>活动方式{{list.area_name}}</text>
</view>
<view class="activityBox-row">
<text class="icon-huodong iconfont"></text>
<text>活动地址{{list.address}}</text>
</view>
<view class="activityBox-row">
<text class="icon-renshu iconfont"></text>
<text>人数限制{{list.total==0?'不限':list.total}}</text>
</view>
<view class="activityBox-row flex-row align-center">
<text class="icon-ditu-dibiao iconfont"></text>
<text>距离{{list.distance}}km</text>
<view class="tomap">
<text class="icon-daohang1 iconfont" style="margin-right: 0;"></text>
</view>
<view class="box-card-content activityBox-content">
<view class="activityBox-row flex-row justify-between">
<text class="activityBox-title">{{list.name}}</text>
<view class="tag tag_green">
<text>{{list.target_name}}</text>
</view>
</view>
<view class="activityBox-row">
<text class="icon-shijian iconfont"></text>
<text>活动时间{{list.start_time}}-{{list.end_time}}</text>
</view>
<view class="activityBox-row">
<text class="icon-huodongfangshi iconfont"></text>
<text>活动方式{{list.area_name}}</text>
</view>
<view class="activityBox-row">
<text class="icon-huodong iconfont"></text>
<text>活动地址{{list.address}}</text>
</view>
<view class="activityBox-row">
<text class="icon-renshu iconfont"></text>
<text>人数限制{{list.total==0?'不限':list.total}}</text>
</view>
<view class="activityBox-row flex-row align-center">
<text class="icon-ditu-dibiao iconfont"></text>
<text>距离{{list.distance}}km</text>
<view class="tomap">
<text class="icon-daohang1 iconfont" style="margin-right: 0;"></text>
</view>
</view>
</view>
@ -50,12 +50,12 @@
<view class="box-card-content">
<u-form-item label="参观人数" labelWidth="120" prop="total" ref="total">
<u-number-box slot="right" v-model="form.total" inputWidth="44" color="#EF9525"
bgColor="#FCF6E3" :min="(type=='user'?1:8)" :max="(type=='user'?5:50)" class="plus">
bgColor="#FCF6E3" :min="(type=='user'?1:list.team_min_count)" :max="(type=='user'?list.person_max_count:list.team_max_count)" class="plus">
</u-number-box>
</u-form-item>
<view class="box-tips">
<text class="box-tips-txt" v-if="type=='user'">51</text>
<text class="box-tips-txt" v-if="type=='team'">850</text>
<text class="box-tips-txt" v-if="type=='user'">{{list.person_max_count}}1</text>
<text class="box-tips-txt" v-if="type=='team'">{{list.team_min_count}}{{list.team_max_count}}</text>
</view>
<view class="box-visitor">
<block v-for="(item,index) in form.details_list" :key="index">
@ -76,26 +76,26 @@
</block>
</view>
<view class="box-footer">
<view class="box-footer-left">
<view class="box-button" @click="openAdd">
<u-icon name="plus" color="#EF9525"></u-icon>
<text class="box-button-txt">添加观众</text>
</view>
</view>
<view class="box-footer-right" v-if="type=='team'">
<view class="box-button" @click="selectFile">
<u-icon name="plus" color="#EF9525"></u-icon>
<text class="box-button-txt">批量导入观众</text>
</view>
</view>
</view>
<view class="book-box-selectInfo" v-if="type=='team'" style="width: 100%; margin-top: 20rpx;">
<view class="book-box-selectInfo-right" @click="openNoticeInfo(1)">
<u-icon name="question-circle-fill" color="#EF9525" size="40rpx"></u-icon>
<text class="book-box-selectInfo-righttxt" style="margin-left: 20rpx;">批量导入说明</text>
</view>
<view class="box-footer">
<view class="box-footer-left">
<view class="box-button" @click="openAdd">
<u-icon name="plus" color="#EF9525"></u-icon>
<text class="box-button-txt">添加观众</text>
</view>
</view>
<view class="box-footer-right" v-if="type=='team'">
<view class="box-button" @click="selectFile">
<u-icon name="plus" color="#EF9525"></u-icon>
<text class="box-button-txt">批量导入观众</text>
</view>
</view>
</view>
<view class="book-box-selectInfo" v-if="type=='team'" style="width: 100%; margin-top: 20rpx;">
<view class="book-box-selectInfo-right" @click="openNoticeInfo(1)">
<u-icon name="question-circle-fill" color="#EF9525" size="40rpx"></u-icon>
<text class="book-box-selectInfo-righttxt" style="margin-left: 20rpx;">批量导入说明</text>
</view>
</view>
</view>
</view>
@ -161,19 +161,19 @@
<u-button type="primary" @click="handleAddUser"></u-button>
</view>
</view>
</u-popup>
<u-popup :show="showInfo" mode="bottom" @close="closeInfo" :round="10" closeable>
<view class="mpopup">
<view class="mpopup-title">
{{currentNotice.title}}
</view>
<view class="mpopup-content" style="margin-top: 60rpx;">
<rich-text :nodes="currentNotice.content"></rich-text>
<view style="margin-top: 80px;"></view>
<u-button type="primary" @click="closeInfo"></u-button>
</view>
</view>
</u-popup>
<u-popup :show="showInfo" mode="bottom" @close="closeInfo" :round="10" closeable>
<view class="mpopup">
<view class="mpopup-title">
{{currentNotice.title}}
</view>
<view class="mpopup-content" style="margin-top: 60rpx;">
<rich-text :nodes="currentNotice.content"></rich-text>
<view style="margin-top: 80px;"></view>
<u-button type="primary" @click="closeInfo"></u-button>
</view>
</view>
</u-popup>
</view>
</template>
@ -181,20 +181,20 @@
<script>
export default {
data() {
return {
showAdd: false,
isEdit: false,
isEditIndex: 0,
showInfo: false,
list: {},
return {
showAdd: false,
isEdit: false,
isEditIndex: 0,
showInfo: false,
list:{},
form: {
unit: "",
leader: "",
card_type: 1,
idcard: "",
total: 1,
type: "",
mobile: "",
type: "",
mobile:"",
details_list: []
},
formUser: {
@ -230,32 +230,32 @@
id: 2,
name: '护照',
}
],
currentNotice: {},
notice: [{
title: "预约须知",
content: "预约须知的内容"
}, {
title: "批量上传帮助",
content: "<p>1.批量上传EXCEL的以xlsx结尾</p><p>2.第一列为标题列 姓名 手机号 证件号</p><p>3.文件是从微信聊天记录中选取或者微信文件传输助手</p>"
],
currentNotice: {},
notice: [{
title: "预约须知",
content: "预约须知的内容"
}, {
title: "批量上传帮助",
content: "<p>1.批量上传EXCEL的以xlsx结尾</p><p>2.第一列为标题列 姓名 手机号 证件号</p><p>3.文件是从微信聊天记录中选取或者微信文件传输助手</p>"
}]
}
},
onLoad(options) {
this.type = options.type;
this.form.type = (options.type == 'user' ? 2 : 1);
this.form.activity_id = parseInt(options.activity_id);
var that = this;
wx.getStorage({
key: 'activityinfo',
success(res) {
that.list = res.data
}
})
console.log(this.list)
that.util.getUserInfo(function(r) {
that.form.mobile = r.mobile;
this.type = options.type;
this.form.type = (options.type == 'user' ? 2 : 1);
this.form.activity_id = parseInt(options.activity_id);
var that = this;
wx.getStorage({
key: 'activityinfo',
success (res) {
that.list = res.data
}
})
console.log(this.list)
that.util.getUserInfo(function(r) {
that.form.mobile = r.mobile;
}, true);
},
methods: {
@ -275,29 +275,38 @@
},
delUser(index) {
this.form.details_list.splice(index, 1);
},
closeInfo() {
this.showInfo = false;
},
openNoticeInfo(type) {
this.showInfo = true;
this.currentNotice = this.notice[type];
},
closeInfo() {
this.showInfo = false;
},
openNoticeInfo(type) {
this.showInfo = true;
this.currentNotice = this.notice[type];
},
handleAddUser() {
var that = this;
//
try {
if (this.util.isNull(this.formUser.name)) {
this.util.toast("请填写观众姓名");
uni.showToast({
icon: "none",
title: "请填写观众姓名"
})
return false;
}
if (that.formUser.card_type == 1) {
if (this.util.isNull(this.formUser.idcard)) {
this.util.toast("请填写身份证号");
uni.showToast({
icon: "none",
title: "请填写身份证号"
})
return false;
}
if (!uni.$u.test.idCard(that.formUser.idcard)) {
this.util.toast("请正确输入身份证号");
uni.showToast({
icon: "none",
title: "请正确输入身份证号"
})
return false;
}
}
@ -316,56 +325,56 @@
//TODO handle the exception
}
},
selectFile() {
let _that = this
wx.chooseMessageFile({
count: 1, // 0100
type: 'file', //
success(res) {
// tempFilePathimgsrc
const tempFilePaths = res.tempFiles[0].path
let filename = res.tempFiles[0].name; //
//
if (filename.indexOf(".xlsx") == -1) {
uni.showToast({
icon: "none",
title: "暂时仅支持xlsx格式的文件"
})
return
} else {
console.log("开始上传");
uni.showLoading({
title: "正在上传"
})
wx.uploadFile({
url: _that.util.HOST + '/api/mobile/visit/excel-analyse', //
filePath: tempFilePaths, //data
name: 'file', //
formData: { //formData
"token": uni.getStorageSync("userInfo_token").token
},
success(res) {
var jsonlist = JSON.parse(res.data)
for (var m of jsonlist) {
_that.form.details_list.push({
name: m.name,
idcard: m.idcard,
mobile: m.mobile,
card_type: 1
})
}
uni.hideLoading();
}
})
console.log('上传到服务器')
}
}
})
},
selectFile() {
let _that = this
wx.chooseMessageFile({
count: 1, // 0100
type: 'file', //
success(res) {
// tempFilePathimgsrc
const tempFilePaths = res.tempFiles[0].path
let filename = res.tempFiles[0].name; //
//
if (filename.indexOf(".xlsx") == -1) {
uni.showToast({
icon: "none",
title: "暂时仅支持xlsx格式的文件"
})
return
} else {
console.log("开始上传");
uni.showLoading({
title: "正在上传"
})
wx.uploadFile({
url: _that.util.HOST + '/api/mobile/visit/excel-analyse', //
filePath: tempFilePaths, //data
name: 'file', //
formData: { //formData
"token": uni.getStorageSync("userInfo_token").token
},
success(res) {
var jsonlist = JSON.parse(res.data)
for (var m of jsonlist) {
_that.form.details_list.push({
name: m.name,
idcard: m.idcard,
mobile: m.mobile,
card_type: 1
})
}
uni.hideLoading();
}
})
console.log('上传到服务器')
}
}
})
},
submitOrder() {
if (this.util.isNull(this.form.leader)) {
if (this.type == "user") {
uni.showToast({
@ -424,8 +433,7 @@
if (this.form.details_list.length != this.form.total) {
uni.showToast({
icon: "none",
title: "请正确添加观众数量",
duration: 2000
title: "请正确添加观众数量"
})
return false;
}
@ -462,7 +470,6 @@
<style>
@import url("@/static/css/bookbox.css");
@import url("@/static/css/activitybox.css");
.box-visitor-item {
display: flex;
justify-content: space-between;

@ -7,46 +7,46 @@
<view class="book-status">
{{item.status==0?"已结束":"活动进行中"}}
</view>
<view class="book-num">
<text class="book-num-y"> {{item.orders_count}} </text>
<view class="book-num" v-if="item.orders_count>0">
<text class="book-num-y"> {{isUnde(item.orders_count)}} </text>
<text>人已报名</text>
</view>
</view>
<view class="activityBox-content flex-col">
<view class="activityBox-row">
<text class="activityBox-title">{{item.name}}</text>
<text class="activityBox-title">{{isUnde(item.name)}}</text>
</view>
<view class="activityBox-row flex-row justify-between">
<view class="tag tag_green">
<text>{{item.target_name}}</text>
<text>{{isUnde(item.target_name)}}</text>
</view>
<view class="activityBox-btn tag">
<view v-if="isUnde(item.status)==1" class="activityBox-btn tag">
<text>立即报名</text>
</view>
</view>
<view class="activityBox-row">
<text class="icon-shijian iconfont"></text>
<text>活动时间{{item.start_time}}-{{item.end_time.substring(11,item.end_time.length)}}</text>
<text>活动时间{{isUnde(item.start_time)}}-{{getHm(item.end_time)}}</text>
</view>
<view class="activityBox-row">
<text class="icon-huodongfangshi iconfont"></text>
<text>活动方式{{item.area_name}}</text>
<text>活动方式{{isUnde(item.area_name)}}</text>
</view>
<view class="activityBox-row">
<text class="icon-huodong iconfont"></text>
<text>活动地址{{item.address}}</text>
<text>活动地址{{isUnde(item.address)}}</text>
</view>
<view class="activityBox-row">
<text class="icon-renshu iconfont"></text>
<text>人数限制{{item.total==0?'不限':item.total}}</text>
<text>人数限制{{isUnde(item.total)==0?'不限':isUnde(item.total)}}</text>
</view>
<view class="activityBox-row flex-row align-center" style="margin-bottom: 0rpx;">
<text class="icon-ditu-dibiao iconfont"></text>
<text>距离11.3km</text>
<text>距离{{isUnde(item.distance)}}km</text>
<view class="tomap">
<text class="icon-daohang1 iconfont" style="margin-right: 0;"></text>
</view>
@ -63,22 +63,36 @@
data() {
return {
showInfo: true,
list: [],
list: [],
latitude:"",
longitude:"",
}
},
onLoad() {
this.loadActivity()
var that = this;
wx.getLocation({
success(res) {
console.log(res)
that.latitude=res.latitude;
that.longitude=res.longitude;
that.loadActivity()
}
})
},
methods: {
openInfo(obj) {
uni.navigateTo({
url: "info?id="+obj.id+"&latitude="+obj.latitude+"&longitude="+obj.longitude
url: "info?id="+obj.id
})
},
loadActivity(){
var that = this;
this.util.request({
api: '/api/mobile/activity/index',
data:{
latitude:that.latitude,
longitude:that.longitude,
},
utilSuccess: function(res) {
that.list = res.data;
},
@ -86,6 +100,18 @@
}
})
},
isUnde(val){
if(val){
return val
}else{
return ""
}
},
getHm(val){
if(val){
return val.substring(11,val.length)
}
}
}
}

@ -15,44 +15,38 @@
</view>
<view class="activityBox-content flex-col">
<view class="activityBox-row flex-row justify-between">
<text class="activityBox-title">{{list.name}}</text>
<text class="activityBox-title">{{isUnde(list.name)}}</text>
<view class="tag tag_green">
<text>{{list.target_name}}</text>
<text>{{isUnde(list.target_name)}}</text>
</view>
</view>
<view class="activityBox-row">
<text class="icon-shijian iconfont"></text>
<text>活动时间{{list.start_time}}-{{list.end_time.substring(11,list.end_time.length)}}</text>
<text>活动时间{{isUnde(list.start_time)}}-{{isUnde(list.end_time)}}</text>
</view>
<view class="activityBox-row">
<text class="icon-huodongfangshi iconfont"></text>
<text>活动方式{{list.area_name}}</text>
<text>活动方式{{isUnde(list.area_name)}}</text>
</view>
<view class="activityBox-row">
<text class="icon-huodong iconfont"></text>
<text>活动地址{{list.address}}</text>
<text>活动地址{{isUnde(list.address)}}</text>
</view>
<view class="activityBox-row">
<text class="icon-renshu iconfont"></text>
<text>人数限制{{list.total==0?'不限':list.total}}</text>
<text>人数限制{{isUnde(list.total)==0?'不限':isUnde(list.total)}}</text>
</view>
<view class="activityBox-row flex-row align-center">
<text class="icon-ditu-dibiao iconfont"></text>
<text>距离{{list.distance}}km</text>
<text>距离{{isUnde(list.distance)}}km</text>
<view class="tomap">
<text class="icon-daohang1 iconfont" style="margin-right: 0;"></text>
</view>
</view>
<!-- <view class="activityBox-row flex-row align-center" style="margin-bottom: 0rpx;">
<text v-if="list.status==0"></text>
<text v-if="list.status==1">{{list.orders_count}}</text>
</view> -->
</view>
</view>
</view>
<view class="infoBox">
@ -63,7 +57,7 @@
<rich-text :nodes="list.content"></rich-text>
</view>
</view>
<view class="infofooter flex-row">
<view class="infofooter flex-row" v-if="list.status!=0">
<view style="margin-right: 14rpx;flex: 1;">
<u-button type="primary" @click="tobook('team')"></u-button>
</view>
@ -87,10 +81,17 @@
}
},
onLoad(options){
this.id=options.id;
this.latitude=options.latitude;
this.longitude=options.longitude;
this.loadActiveInfo()
var that = this;
that.id=options.id;
wx.getLocation({
success(res) {
console.log(res)
that.latitude=res.latitude;
that.longitude=res.longitude;
that.loadActiveInfo()
}
})
},
methods: {
tobook(type) {
@ -110,6 +111,7 @@
},
utilSuccess: function(res) {
that.list = res;
that.list.end_time = res.end_time.substring(11,res.end_time.length)
wx.setStorage({
key: 'activityinfo',
data: res,
@ -124,9 +126,16 @@
})
},
topSwiperTab(e) {
var that = this;
this.topSwiperIndex = Number(e.target.current);
}
var that = this;
this.topSwiperIndex = Number(e.target.current);
},
isUnde(val){
if(val){
return val
}else{
return ""
}
}
}
}
</script>

@ -4,36 +4,40 @@
<u-tabs lineWidth="50" lineHeight="2" :scrollable="false" :list="list" lineColor="#EF9525"
:is-scroll="false" :current="current" @change="handleChange"></u-tabs>
</view>
<view class="orderBoxList">
<u-empty mode="list" :marginTop="100" v-if="isloading&&listOrder.length==0" />
<view class="orderBoxList" v-else>
<block v-for="(item,index) in listOrder" :key="index">
<view class="orderBox">
<view class="orderBox" :class="{'cancelBox':item.status==0}" @click="toinfo(item.id)">
<view class="orderBoxTitle flex-row">
<text class="orderBoxTitleTxt">{{item.isteam?"团队预约":"个人预约"}}</text>
<view class="orderBoxStatus">待参观</view>
<text class="orderBoxTitleTxt">{{item.type==1?"团队预约":"个人预约"}}</text>
<view v-for="sta in list" v-if="sta.idx==item.status" class="orderBoxStatus" :class="{'cancelStatus':item.status==0}">{{sta.name}}
</view>
</view>
<view class="orderBoxInfo flex-col">
<view class="orderBoxInfoRow flex-row" style="margin-bottom: 20rpx;">
<text class="iconfont icon-youkexuzhi"></text>
<text class="orderBoxInfoRowTxt">订单信息5月06日 09:00-10:00  3位观众</text>
<text class="orderBoxInfoRowTxt">
订单信息{{$u.timeFormat(new Date(item.activity.start_time), 'mm月dd日')}} {{getHm(item.activity.start_time)}}-{{getHm(item.activity.end_time)}}{{item.total}} 位观众</text>
</view>
<view class="orderBoxInfoRow flex-row">
<text class="iconfont icon-iconfontgerenzhongxin"></text>
<text class="orderBoxInfoRowTxt">联系人王小华 13355634563</text>
<text class="orderBoxInfoRowTxt">联系人{{item.leader}} {{item.mobile}}</text>
</view>
<view class="orderBoxInfoRow flex-row" v-if="item.isteam" style="margin-top: 20rpx;">
<view class="orderBoxInfoRow flex-row" v-if="item.type==1" style="margin-top: 20rpx;">
<text class="iconfont icon-danwei"></text>
<text class="orderBoxInfoRowTxt">单位名称王小华 13355634563</text>
<text class="orderBoxInfoRowTxt">单位名称{{item.unit}}</text>
</view>
</view>
<view class="orderBoxTime">
<text>下单时间5月03日 09:30</text>
<text>下单时间{{item.created_at}}</text>
</view>
<view class="orderBoxFooter flex-row flex_end">
<view class="fbtn" @click="tobook()" style="margin-right: 23rpx;">查看详情</view>
<view class="fbtn cancel">取消</view>
<view class="fbtn cancel" v-if="item.status==1" style="margin-right: 23rpx;"
@click.stop="tocancel(item.id)">取消</view>
<view class="fbtn" @click.stop="toinfo(item.id)">查看详情</view>
</view>
</view>
</block>
@ -44,37 +48,94 @@
<script>
export default {
data() {
return {
return {
activity_list:[],
itemStyle: {
height: '44px',
flex: 1
},
list: [{
name: '全部'
name: '全部',
idx: ""
},{
name: '待参加',
idx: "1"
}, {
name: '待参与'
name: '已参加',
idx: "2"
}, {
name: '已参与'
name: '取消预约',
idx: "0"
}],
current: 0,
listOrder: [{
isteam: true
},
{
isteam: false
}
]
isloading: true,
listOrder: []
}
},
onShow() {
this.loadOrder();
},
methods: {
handleChange() {
handleChange(e) {
this.current = e.index;
this.loadOrder();
},
toinfo(id) {
uni.navigateTo({
url: "/pages/order/activityorderinfo?id=" + id
})
},
tocancel(id) {
var that = this;
uni.showModal({
title: '确认要取消预约?',
success: function(res) {
if (res.confirm) {
that.util.request({
api: '/api/mobile/activity/cancel-order',
data: {
id: id
},
utilSuccess: function(res) {
that.loadOrder()
},
utilFail: function(res) {
uni.showToast({
icon: "none",
title: res
})
}
})
console.log('用户点击确定');
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
},
loadOrder() {
var that = this;
this.util.request({
api: '/api/mobile/user/my-activity-order',
data: {
status: this.list[this.current].idx
},
utilSuccess: function(res) {
that.listOrder = res;
this.isloading = false;
},
utilFail: function(res) {
uni.showToast({
icon: "none",
title: res
})
}
})
},
tobook(){
uni.navigateTo({
url: "/pages/order/visitorderinfo"
})
getHm(val){
if(val){
return val.substring(11,val.length)
}
}
}
}
@ -98,6 +159,15 @@
color: #828282;
}
.cancelBox .iconfont {
color: #828282;
}
.cancelBox .fbtn {
background: #CFCFCF;
color: #828282;
}
.iconfont {
color: #6EAC97;
margin-right: 20rpx;
@ -142,6 +212,10 @@
color: #351C1B;
}
.cancelStatus {
background: #CFCFCF !important;
}
.orderBoxStatus {
background: #EF9525;
border-top-right-radius: 16rpx;

@ -1,22 +1,305 @@
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
<template>
<view>
<view class="orderBoxList">
<view class="orderBox">
<view class="orderBoxTitle flex-row">
<text class="orderBoxTitleTxt">{{info.type==1?"团队预约信息":"个人预约信息"}}</text>
</view>
<view class="orderBoxInfo flex-col">
<view class="orderBoxInfoRow flex-row" style="margin-bottom: 20rpx;">
<text class="iconfont icon-youkexuzhi"></text>
<text class="orderBoxInfoRowTxt">订单信息{{$u.timeFormat(new Date(info.activity.start_time), 'mm月dd日')}} {{getHm(info.activity.start_time)}}-{{getHm(info.activity.end_time)}}{{info.total}} 位观众</text>
</view>
<view class="orderBoxInfoRow flex-row">
<text class="iconfont icon-iconfontgerenzhongxin"></text>
<text class="orderBoxInfoRowTxt">联系人{{info.leader||""}} {{info.mobile||""}}</text>
</view>
<view class="orderBoxInfoRow flex-row" v-if="info.type==1" style="margin-top: 20rpx;">
<text class="iconfont icon-danwei"></text>
<text class="orderBoxInfoRowTxt">单位名称{{info.unit||""}}</text>
</view>
</view>
<view class="orderBoxTime">
<text>下单时间{{info.created_at||""}}</text>
</view>
</view>
</view>
<view class="orderBoxList p0">
<view class="orderBox">
<view class="orderBoxTitle flex-row">
<text class="orderBoxTitleTxt">二维码</text>
</view>
<view class="orderBoxInfo flex-col ewmcode">
<text>{{info.code}}</text>
<view>
<view :class="isuse?'imgs isuse':'imgs'">
<image :src="imgsrc" mode="aspectFill"></image>
</view>
</view>
<text class="ewminfo">{{isuse?'已使用':'请前往现场核销订单二维码'}}</text>
</view>
</view>
</view>
<view class="orderBoxList p0">
<view class="orderBox">
<view class="orderBoxTitle flex-row" style="justify-content: space-between;">
<text class="orderBoxTitleTxt">观众信息</text>
<text :class="isuse?'share shareuse orderBoxInfoRowTxt':'share orderBoxInfoRowTxt'">
分享二维码
</text>
</view>
<view class="orderBoxInfo flex-col">
<view class="orderBoxInfoRow flex-row" style="margin-bottom: 20rpx;"
v-for="(item,index) in info.details">
<view>
<text class="iconfont icon-iconfontgerenzhongxin iconinfo"></text>
</view>
<view class="usercard">
<text class="orderBoxInfoRowTxt">{{item.name}}</text>
<text class="orderBoxInfoRowTxt">{{item.idcard}}</text>
</view>
</view>
</view>
</view>
</view>
<view class="orderBoxList p0">
<view class="orderBoxTitle flex-row">
<text class="stars orderBoxTitleTxt">*</text>
<text class="orderBoxTitleTxt">参观须知</text>
</view>
<view class="orderBoxTitle flex-row">
<text
class="orderBoxInfoRowTxt">预约时需要个人姓名联系方式和参观时间等信息预约成功后生成预约二维码可于个人中心查看当天凭有效身份证件或预约二维码核销入场</text>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
info: {
isteam: true
},
imgsrc: 'https://cdn.uviewui.com/uview/album/1.jpg'
}
},
onLoad(options) {
if (!this.util.isNull(options.id)) {
this.loadInfo(options.id);
this.loadQR(options.id);
}
},
methods: {
loadQR(id) {
var that = this;
this.util.request({
api: '/api/mobile/activity/person-qrcode',
data: {
id: id
},
utilSuccess: function(res) {
//that.info = res;
console.log(res)
},
utilFail: function(res) {
uni.showToast({
icon: "none",
title: res
})
}
})
},
loadInfo(id) {
var that = this;
this.util.request({
api: '/api/mobile/user/my-activity-order-show',
data: {
id: id
},
utilSuccess: function(res) {
that.info = res;
},
utilFail: function(res) {
uni.showToast({
icon: "none",
title: res
})
}
})
},
getHm(val){
if(val){
return val.substring(11,val.length)
}
}
}
}
</script>
<style>
.orderBoxFooter {
padding: 20rpx 0 0 0;
}
.fbtn {
background: #EF9525;
border-radius: 8rpx;
font-size: 24rpx;
color: #FFFFFF;
padding: 7rpx 17rpx;
}
.cancel {
background: #F7F6F4;
color: #828282;
}
.iconfont {
color: #6EAC97;
margin-right: 20rpx;
font-size: 24rpx;
}
.infotop {
background: #FFFFFF;
box-shadow: 2rpx 3rpx 10rpx 0px rgba(107, 94, 77, 0.3);
}
page {
background-color: #f7f6f4;
}
.orderBoxList {
padding: 26rpx;
box-sizing: border-box;
}
.orderBox {
min-height: 393rpx;
background: #FFFFFF;
border-radius: 16rpx;
box-sizing: border-box;
padding: 29rpx 18rpx;
position: relative;
margin-bottom: 17rpx;
}
.orderBoxTitle {
padding: 0rpx 0rpx 25rpx 0rpx;
border-bottom: 2rpx solid #F7F6F4;
}
.orderBoxInfoRow {
align-items: center;
}
.orderBoxTitleTxt {
font-size: 32rpx;
color: #351C1B;
}
.orderBoxStatus {
background: #EF9525;
border-top-right-radius: 16rpx;
border-bottom-left-radius: 16rpx;
font-size: 24rpx;
padding: 19rpx 23rpx 17rpx 23rpx;
color: #FFFFFF;
position: absolute;
right: 0;
top: 0;
}
.orderBoxInfo {
padding: 29rpx 0rpx;
border-bottom: 2rpx solid #F7F6F4;
}
.orderBoxInfoRowTxt {
font-size: 24rpx;
font-family: PingFang SC;
color: #828282;
}
.orderBoxTime {
color: #CFCFCF;
padding: 23rpx 0;
border-bottom: 2rpx solid #F7F6F4;
font-size: 24rpx;
}
.p0 {
padding-top: 0
}
.ewmcode {
text-align: center;
font-size: 28rpx
}
.imgs {
width: 273rpx;
height: 273rpx;
margin: 30rpx 0 50rpx 0;
font-size: 0;
display: inline-block;
}
.imgs image {
width: 273rpx;
height: 273rpx;
}
.imgs.isuse {
background: url(../../static/img/used.png);
background-position: bottom right;
background-size: 161rpx;
background-repeat: no-repeat;
}
.imgs.isuse image {
opacity: .4;
}
.ewminfo {
color: #828282;
font-size: 24rpx;
}
.iconinfo {
font-size: 35rpx;
}
.usercard text {
display: block;
}
.share {
background: url(../../static/img/share.png) no-repeat left center;
background-size: 21rpx;
background-color: #EF9525;
background-position: 18rpx;
padding: 7rpx 20rpx;
padding-left: 46rpx;
border-radius: 10px;
color: #fff;
}
.shareuse {
background: url(../../static/img/share_used.png) no-repeat left center;
background-color: #F7F6F4;
color: #828282;
background-position: 18rpx;
background-size: 21rpx;
}
.stars {
color: #EF9525;
margin-right: 12rpx
}
</style>

Loading…
Cancel
Save