xiaobo 5 months ago
parent
commit
98c60dbcea
15 changed files with 445 additions and 131 deletions
  1. +10
    -0
      api/model/zhaomu.js
  2. +7
    -1
      components/active/active-item.vue
  3. +3
    -3
      components/zhaomu/zhaomu-item.vue
  4. +46
    -36
      pages/index/cart.vue
  5. +17
    -7
      pages/index/center.vue
  6. +10
    -3
      pages/index/index.vue
  7. +1
    -1
      pages_login/fuwutiaokuan.vue
  8. +13
    -2
      pages_login/loginAndRegisterAndForgetPassword.vue
  9. +1
    -1
      pages_login/wxLogin.vue
  10. +68
    -34
      pages_my/activeList.vue
  11. +3
    -0
      pages_my/user-msg.vue
  12. +8
    -0
      pages_my/zlx-qiandao.vue
  13. +83
    -12
      pages_order/huodong-detail.vue
  14. +108
    -26
      pages_order/lvyou-detail.vue
  15. +67
    -5
      pages_zlx/zlx-form.vue

+ 10
- 0
api/model/zhaomu.js View File

@ -10,6 +10,16 @@ const api = {
url: '/shop_common/joinRecruit', url: '/shop_common/joinRecruit',
method: 'POST', method: 'POST',
}, },
// 主理人认证信息
joinRecruitInfo: {
url: '/shop_common/getJoinRecruitInfo',
method: 'get',
},
// 主理人主理的活动列表带分页
activityMemberPageList: {
url: '/shop_common/getActivityMemberPageList',
method: 'get',
},
} }
export default api export default api

+ 7
- 1
components/active/active-item.vue View File

@ -13,7 +13,8 @@
</view> </view>
<view class="price"> <view class="price">
<view class="num-box">{{item.num}}/{{item.sum}}</view> <view class="num-box">{{item.num}}/{{item.sum}}</view>
<view class="btn-box" @click="toDetail(item)">立即报名</view>
<view class="btn-box" @click="toDetail(item)" v-if="item.state == 0">立即报名</view>
<view class="btn-box btn-box2" v-if="item.state == 1">已结束</view>
</view> </view>
</view> </view>
</view> </view>
@ -157,6 +158,11 @@
text-align: center; text-align: center;
line-height: 54rpx; line-height: 54rpx;
} }
.btn-box2 {
background: #34312E;
color: #AFAFAF;
border-radius: 60rpx;
}
} }
} }
} }


+ 3
- 3
components/zhaomu/zhaomu-item.vue View File

@ -26,7 +26,7 @@
<uv-avatar-group :urls="urls" size="45rpx" gap="0.1"></uv-avatar-group> <uv-avatar-group :urls="urls" size="45rpx" gap="0.1"></uv-avatar-group>
<view class="num">4人参加</view> <view class="num">4人参加</view>
</view> </view>
<view class="bottom-box-r" @click="toZhaomu">
<view class="bottom-box-r" @click="toZhaomu(item)">
参与招募 参与招募
</view> </view>
</view> </view>
@ -71,9 +71,9 @@
url: '/pages_order/orderDetails' url: '/pages_order/orderDetails'
}) })
}, },
toZhaomu() {
toZhaomu(item) {
uni.navigateTo({ uni.navigateTo({
url: '/pages_order/lvyou-detail'
url: `/pages_order/lvyou-detail?travelId=${item.id}`
}) })
} }
} }


+ 46
- 36
pages/index/cart.vue View File

@ -4,7 +4,7 @@
<Navbar title="我的订单" :bgColor="bgColor" leftIconSize="0px" height="100rpx" :titleStyle="{color:fontColor}" /> <Navbar title="我的订单" :bgColor="bgColor" leftIconSize="0px" height="100rpx" :titleStyle="{color:fontColor}" />
<view class="content contentPosition_"> <view class="content contentPosition_">
<uv-sticky offsetTop="220rpx" :bgColor="bgColor"> <uv-sticky offsetTop="220rpx" :bgColor="bgColor">
<uv-tabs :scrollable="false" @click="tabs" :list="tabList" lineWidth="40"
<uv-tabs :scrollable="false" @click="tabs" :list="tabList" lineWidth="40" :current="tabCurrent"
:lineColor="`url(${lineBg}) 100% 100%`" :lineColor="`url(${lineBg}) 100% 100%`"
:activeStyle="{color: '#FD5C5C', fontWeight: 'bold',transform: 'scale(1.05)'}" :activeStyle="{color: '#FD5C5C', fontWeight: 'bold',transform: 'scale(1.05)'}"
:inactiveStyle="{color: '#999', transform: 'scale(1)'}" :inactiveStyle="{color: '#999', transform: 'scale(1)'}"
@ -13,7 +13,7 @@
<cardList :cardListData="cardListData" @btnClick="btnClick" @toOrderDetails="toOrderDetails" /> <cardList :cardListData="cardListData" @btnClick="btnClick" @toOrderDetails="toOrderDetails" />
<uv-load-more :status="status" fontSize="24rpx" dashed line /> <uv-load-more :status="status" fontSize="24rpx" dashed line />
</view> </view>
<uv-modal ref="modal" align="center" content='是否取消订单?' @confirm="confirm"></uv-modal>
<uv-modal ref="modal" align="center" content='是否取消订单?' @confirm="confirm"></uv-modal>
<tabber select="cart" /> <tabber select="cart" />
</view> </view>
</template> </template>
@ -34,11 +34,12 @@
Navbar Navbar
}, },
data() { data() {
this.orderId = '';
this.orderId = '';
return { return {
status:"loading",
tabCurrent:0,
status: "loading",
params: { params: {
state: 0,
state: '',
pageNo: 1, pageNo: 1,
pageSize: 10 pageSize: 10
}, },
@ -47,9 +48,9 @@
name: '全部' name: '全部'
}, },
{ {
id: 0,
name: '未付款'
},
id: 0,
name: '未付款'
},
{ {
id: 1, id: 1,
name: '待参加' name: '待参加'
@ -73,7 +74,12 @@
this.params.pageNo++ this.params.pageNo++
this.getOrderPageList() this.getOrderPageList()
}, },
onLoad() {
onLoad(e) {
if(uni.getStorageSync('currentState')) {
this.tabCurrent = uni.getStorageSync('currentState')
uni.removeStorageSync('currentState')
}
this.params.state = this.tabList[this.tabCurrent].id
this.getOrderPageList() this.getOrderPageList()
}, },
methods: { methods: {
@ -88,9 +94,9 @@
if (res.code == 200) { if (res.code == 200) {
this.totalPage = res.result.pages this.totalPage = res.result.pages
this.cardListData = [...this.cardListData, ...res.result.records] this.cardListData = [...this.cardListData, ...res.result.records]
if(this.params.pageNo >= this.totalPage) {
if (this.params.pageNo >= this.totalPage) {
this.status = "nomore" this.status = "nomore"
}else {
} else {
this.status = "loadmore" this.status = "loadmore"
} }
} }
@ -107,23 +113,25 @@
url: `/pages_order/orderDetails?id=${val.id}` url: `/pages_order/orderDetails?id=${val.id}`
}) })
}, },
btnClick(item,type) {//0 1 2 3
this.orderId = item.id;
if (type == 0) {
this.$refs.modal.open();
}
if (type == 1) {
this.$api('signIn', {orderId: item.id}, res=> {
if (res.code == 200) {
this.cardListData = []
this.getOrderPageList()
this.$refs.toast.show({
type: 'success',
message: res.result
})
}
})
}
btnClick(item, type) { //0 1 2 3
this.orderId = item.id;
if (type == 0) {
this.$refs.modal.open();
}
if (type == 1) {
this.$api('signIn', {
orderId: item.id
}, res => {
if (res.code == 200) {
this.cardListData = []
this.getOrderPageList()
this.$refs.toast.show({
type: 'success',
message: res.result
})
}
})
}
if (type == 2) { if (type == 2) {
uni.navigateTo({ uni.navigateTo({
url: `/pages_order/orderEvaluation?activityId=${this.orderId}` url: `/pages_order/orderEvaluation?activityId=${this.orderId}`
@ -135,14 +143,16 @@
}) })
} }
}, },
confirm() {
this.$api('cancelOrder', {orderId: this.orderId}, res => {
if (res.code == 200) {
this.cardListData = [];
this.getOrderPageList();
}
})
}
confirm() {
this.$api('cancelOrder', {
orderId: this.orderId
}, res => {
if (res.code == 200) {
this.cardListData = [];
this.getOrderPageList();
}
})
}
} }
} }
</script> </script>


+ 17
- 7
pages/index/center.vue View File

@ -28,18 +28,19 @@
<view class="order"> <view class="order">
<view class="box"> <view class="box">
<!-- @click="$utils.navigateTo('/pages_my/activeList') -->
<view class="boxs" <view class="boxs"
@click="$utils.navigateTo('/pages_my/activeList')">
@click="orderJump(2)">
<image src="@/static/image/center/order-1.png" mode="aspectFill" /> <image src="@/static/image/center/order-1.png" mode="aspectFill" />
<view>待参加</view> <view>待参加</view>
</view> </view>
<view class="boxs" <view class="boxs"
@click="$utils.navigateTo('/pages_my/activeList')">
@click="orderJump(3)">
<image src="@/static/image/center/order-2.png" mode="aspectFill" /> <image src="@/static/image/center/order-2.png" mode="aspectFill" />
<view>已完成</view> <view>已完成</view>
</view> </view>
<view class="boxs" <view class="boxs"
@click="$utils.navigateTo('/pages_my/activeList')">
@click="orderJump(4)">
<image src="@/static/image/center/order-3.png" mode="aspectFill" /> <image src="@/static/image/center/order-3.png" mode="aspectFill" />
<view>已取消</view> <view>已取消</view>
</view> </view>
@ -87,12 +88,13 @@
cellList:[ cellList:[
{ {
src:require('@/static/image/center/line-1.png'), src:require('@/static/image/center/line-1.png'),
name:'开票记录'
name:'开票记录',
url:'/pages_order/invoiceRecords'
}, },
{ {
src:require('@/static/image/center/line-2.png'), src:require('@/static/image/center/line-2.png'),
name:'我的收藏', name:'我的收藏',
url:'/pages_my/collection'
url:'/pages_my/collection'
}, },
{ {
src:require('@/static/image/center/line-3.png'), src:require('@/static/image/center/line-3.png'),
@ -100,11 +102,13 @@
}, },
{ {
src:require('@/static/image/center/line-4.png'), src:require('@/static/image/center/line-4.png'),
name:'用户协议'
name:'用户协议',
url:'/pages_login/fuwutiaokuan'
}, },
{ {
src:require('@/static/image/center/line-5.png'), src:require('@/static/image/center/line-5.png'),
name:'隐私协议'
name:'隐私协议',
url:'/pages_login/yinsixieyi'
}, },
{ {
src:require('@/static/image/center/line-6.png'), src:require('@/static/image/center/line-6.png'),
@ -136,6 +140,12 @@
} }
}, },
methods: { methods: {
orderJump(type) {
uni.switchTab({
url:'/pages/index/cart'
})
uni.setStorageSync('currentState',type)
},
clickNo(){ clickNo(){
uni.showModal({ uni.showModal({
title: '暂未开放', title: '暂未开放',


+ 10
- 3
pages/index/index.vue View File

@ -165,9 +165,16 @@
this.getActivityPageList() this.getActivityPageList()
}, },
skip(val) { skip(val) {
uni.navigateTo({
url: `/pages_my/${val}`
})
if(!val) {
uni.switchTab({
url:'/pages/index/cart'
})
uni.setStorageSync('currentState',2)
}else{
uni.navigateTo({
url: `/pages_my/${val}`
})
}
}, },
} }
} }


+ 1
- 1
pages_login/fuwutiaokuan.vue View File

@ -1,7 +1,7 @@
<template> <template>
<view> <view>
<view class="head-box"></view> <view class="head-box"></view>
<uv-navbar autoBack title="服务条款" leftIconColor="#fff" :bgColor="bgColor" height="100rpx" :titleStyle="{color:'#fff'}"></uv-navbar>
<uv-navbar autoBack title="用户协议" leftIconColor="#fff" :bgColor="bgColor" height="100rpx" :titleStyle="{color:'#fff'}"></uv-navbar>
<view class="content" style="color: #fff!important;"> <view class="content" style="color: #fff!important;">
<uv-parse :content="content"></uv-parse> <uv-parse :content="content"></uv-parse>
</view> </view>


+ 13
- 2
pages_login/loginAndRegisterAndForgetPassword.vue View File

@ -31,9 +31,9 @@
<view style="display: flex;flex-wrap: wrap;"> <view style="display: flex;flex-wrap: wrap;">
<uv-checkbox size="30rpx" :name="1"></uv-checkbox> <uv-checkbox size="30rpx" :name="1"></uv-checkbox>
请你阅读并同意我们的<span style="color: #fd5100" 请你阅读并同意我们的<span style="color: #fd5100"
@click="$refs.popup.open('getPrivacyPolicy')">隐私条款</span><span
@click="jump(1)">隐私条款</span><span
style="color: #fd5100" style="color: #fd5100"
@click="$refs.popup.open('getUserAgreement')">服务协议</span>
@click="jump(2)">用户协议</span>
</view> </view>
</view> </view>
</uv-checkbox-group> </uv-checkbox-group>
@ -137,6 +137,17 @@
} }
}, },
methods: { methods: {
jump(type) {//1 2
if(type == 1) {
uni.navigateTo({
url:'/pages_login/yinsixieyi'
})
}else {
uni.navigateTo({
url:'/pages_login/fuwutiaokuan'
})
}
},
submit(){ submit(){
if(!this.checkboxValue.length){ if(!this.checkboxValue.length){
return uni.showToast({ return uni.showToast({


+ 1
- 1
pages_login/wxLogin.vue View File

@ -21,7 +21,7 @@
<uv-checkbox :size="30" shape="circle" active-color="#05C160" :name="privacy"></uv-checkbox> <uv-checkbox :size="30" shape="circle" active-color="#05C160" :name="privacy"></uv-checkbox>
</uv-checkbox-group> </uv-checkbox-group>
已同意<text class="privacy-title" @click="jump(1)">隐私政策</text> 已同意<text class="privacy-title" @click="jump(1)">隐私政策</text>
<text class="privacy-title" @click="jump(2)">服务条款</text>
<text class="privacy-title" @click="jump(2)">用户协议</text>
</uv-radio-group> </uv-radio-group>
</view> </view>


+ 68
- 34
pages_my/activeList.vue View File

@ -10,16 +10,18 @@
:custom-style="{padding: '0 30rpx'}" @click="selectMenu"> :custom-style="{padding: '0 30rpx'}" @click="selectMenu">
<uv-drop-down-item name="order" type="2" :label="dropItem('order').label" :value="dropItem('order').value"> <uv-drop-down-item name="order" type="2" :label="dropItem('order').label" :value="dropItem('order').value">
</uv-drop-down-item> </uv-drop-down-item>
<uv-drop-down-item name="place" type="2" :label="dropItem('type').label" :value="dropItem('type').value">
</uv-drop-down-item>
<uv-drop-down-item name="type" type="2" :label="dropItem('type').label" :value="dropItem('type').value"> <uv-drop-down-item name="type" type="2" :label="dropItem('type').label" :value="dropItem('type').value">
</uv-drop-down-item> </uv-drop-down-item>
<!-- <uv-drop-down-item name="type" type="2" :label="dropItem('type').label" :value="dropItem('type').value">
</uv-drop-down-item> -->
</uv-drop-down> </uv-drop-down>
<uv-drop-down-popup sign="dropDown_1" :click-overlay-on-close="true" :currentDropItem="currentDropItem" <uv-drop-down-popup sign="dropDown_1" :click-overlay-on-close="true" :currentDropItem="currentDropItem"
@clickItem="clickItem" @popupChange="change"></uv-drop-down-popup> @clickItem="clickItem" @popupChange="change"></uv-drop-down-popup>
</view> </view>
<view class="info cardStyle_">
<active-item :cardListData="cardListData"/>
<uv-load-more :status="status" fontSize="24rpx" dashed line />
<!-- <view class="info cardStyle_">
<view class="left"> <view class="left">
<image src="https://img0.baidu.com/it/u=4274003247,920124130&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1031" <image src="https://img0.baidu.com/it/u=4274003247,920124130&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1031"
alt=""> alt="">
@ -36,18 +38,31 @@
<text class="btn">已开票</text> <text class="btn">已开票</text>
</view> </view>
</view> </view>
</view>
</view> -->
</view> </view>
</view> </view>
</template> </template>
<script> <script>
import Navbar from '@/pages/components/Navbar.vue' import Navbar from '@/pages/components/Navbar.vue'
import activeItem from '@/components/active/active-item.vue'
// import { globalMixin } from '../pages/mixins/globalMixin'; // import { globalMixin } from '../pages/mixins/globalMixin';
export default { export default {
onPageScroll() {
//
this.$refs.dropDown.init();
components:{
activeItem
},
onPageScroll(e) {
if(e.scrollTop > 50) {
this.bgColor = '#49070c'
}else{
this.bgColor = 'transparent'
}
// this.$refs.dropDown.init();
},
onReachBottom() {
if(this.params.pageNo >= this.totalPage) return
this.params.pageNo ++
this.getActivityPageList()
}, },
// mixins: [globalMixin], // mixins: [globalMixin],
// components:{ // components:{
@ -75,32 +90,33 @@
}, },
data() { data() {
return { return {
status:"loading",
bgColor:'transparent', bgColor:'transparent',
// value // value
defaultValue: [0, 'all', '0'],
defaultValue: ['', 'all', '0'],
// //
result: [{ result: [{
name: 'order', name: 'order',
label: '全部', label: '全部',
value: 'new'
value: ''
}], }],
// { name: 'order', label: '', value: 'new' } // { name: 'order', label: '', value: 'new' }
activeName: 'order', activeName: 'order',
order: { order: {
label: '全部', label: '全部',
value: 'all',
value: '',
activeIndex: 0, activeIndex: 0,
color: '#333', color: '#333',
activeColor: '#FF4546', activeColor: '#FF4546',
child: [{ child: [{
label: '综合排序',
value: 'all'
}, {
label: '最新发布',
value: 'new'
label: '全部',
value: ''
},{
label: '报名中',
value: '0'
}, { }, {
label: '低价优先',
value: 'money'
label: '已结束',
value: '1'
}] }]
}, },
type: { type: {
@ -122,17 +138,36 @@
label: 'PPT', label: 'PPT',
value: 'ppt' value: 'ppt'
}] }]
}
},
totalPage:0,
cardListData:[],
params:{
state:'',
pageNo:1,
pageSize:10
},
} }
}, },
onLoad() {
this.getActivityPageList()
},
methods: { methods: {
getActivityPageList() {
this.$api('activityPageList',this.params,res=>{
if(res.code == 200) {
this.totalPage = res.result.pages
this.cardListData = [...this.cardListData,...res.result.records]
if(this.params.pageNo >= this.totalPage) {
this.status = "nomore"
}else {
this.status = "loadmore"
}
}
})
},
change(e) { change(e) {
console.log('弹窗打开状态:', e); console.log('弹窗打开状态:', e);
}, },
/**
* 点击每个筛选项回调
* @param {Object} e { name, active, type } = e
*/
selectMenu(e) { selectMenu(e) {
const { const {
name, name,
@ -158,10 +193,6 @@
} }
} }
}, },
/**
* 点击菜单回调处理
* @param {Object} item 选中项 { label,value } = e
*/
clickItem(e) { clickItem(e) {
// let // let
let { let {
@ -169,10 +200,10 @@
value value
} = e; } = e;
const findIndex = this.result.findIndex(item => item.name == this.activeName); const findIndex = this.result.findIndex(item => item.name == this.activeName);
if (this.defaultValue.indexOf(value) > -1 && this[this.activeName].label) {
label = this[this.activeName].label;
}
//
// if (this.defaultValue.indexOf(value) > -1 && this[this.activeName].label) {
// label = this[this.activeName].label;
// }
// //
if (findIndex > -1) { if (findIndex > -1) {
this.$set(this.result, findIndex, { this.$set(this.result, findIndex, {
name: this.activeName, name: this.activeName,
@ -186,10 +217,11 @@
value value
}); });
} }
this.result = this.result.filter(item => this.defaultValue.indexOf(item.value) == -1);
uni.showModal({
content: `筛选的值:${JSON.stringify(this.result)}`
})
let stateInfo = this.result.find(item=>item.name == 'order')
this.params.state = stateInfo.value
this.params.pageNo = 1
this.cardListData = []
this.getActivityPageList()
} }
} }
} }
@ -217,6 +249,8 @@
// margin-bottom: 500rpx; // margin-bottom: 500rpx;
.content { .content {
padding-left: 20rpx;
padding-right: 20rpx;
.info { .info {
position: relative; position: relative;
margin: 10rpx 32rpx 36rpx; margin: 10rpx 32rpx 36rpx;


+ 3
- 0
pages_my/user-msg.vue View File

@ -169,6 +169,9 @@
title:'保存成功', title:'保存成功',
icon:'none' icon:'none'
}) })
setTimeout(()=>{
uni.navigateBack()
},1500)
} }
}) })
}, },


+ 8
- 0
pages_my/zlx-qiandao.vue View File

@ -47,7 +47,15 @@
this.bgColor = 'transparent' this.bgColor = 'transparent'
} }
}, },
onLoad() {
this.getactivityMemberPageList()
},
methods:{ methods:{
getactivityMemberPageList(){
this.$api('activityMemberPageList',this.params,res=>{
})
},
qiandaoClick() { qiandaoClick() {
uni.navigateTo({ uni.navigateTo({
url:'/pages_my/qiandao-list' url:'/pages_my/qiandao-list'


+ 83
- 12
pages_order/huodong-detail.vue View File

@ -11,7 +11,7 @@
<view class="msg-box-time">开始时间{{activityDetails.startTime}}</view> <view class="msg-box-time">开始时间{{activityDetails.startTime}}</view>
<view class="msg-box-address"> <view class="msg-box-address">
<view class="msg-box-address-text">活动地址{{activityDetails.address}}</view> <view class="msg-box-address-text">活动地址{{activityDetails.address}}</view>
<view class="address-icon">
<view class="address-icon" @click="daohang">
<image src="@/static/image/home/address-icon-2.png" mode=""></image> <image src="@/static/image/home/address-icon-2.png" mode=""></image>
<view>导航</view> <view>导航</view>
</view> </view>
@ -24,10 +24,10 @@
<view class="name-tip">主理人</view> <view class="name-tip">主理人</view>
</view> </view>
<view> <view>
<uv-rate :count="count" v-model="value" size="23" activeColor="#FFA200"></uv-rate>
<uv-rate :count="count" v-model="numValue" size="23" activeColor="#FFA200"></uv-rate>
</view> </view>
</view> </view>
<view class="add-wx">添加微信</view>
<view class="add-wx" @click="$refs.ewmpopup.open();">添加微信</view>
</view> </view>
</view> </view>
</view> </view>
@ -60,12 +60,14 @@
<view class="caozuo-box"> <view class="caozuo-box">
<view class="caozuo-item border-r"> <view class="caozuo-item border-r">
<image src="@/static/image/home/shoucang-icon.png" mode=""></image> <image src="@/static/image/home/shoucang-icon.png" mode=""></image>
<view>收藏</view>
</view>
<view class="caozuo-item">
<image src="@/static/image/home/zhuanfa-icon.png" mode=""></image>
<view>转发</view>
<text>收藏</text>
</view> </view>
<button type="primary" style="background-color: transparent;height: 100rpx;font-size: 20rpx;padding: 0;" open-type="share" >
<view class="caozuo-item">
<image src="@/static/image/home/zhuanfa-icon.png" mode=""></image>
<text style="line-height: initial;">转发</text>
</view>
</button>
</view> </view>
<view class="btn-box" @click="toBaoming">立即报名</view> <view class="btn-box" @click="toBaoming">立即报名</view>
<!-- <view class="btn-box end-btn">已结束</view> --> <!-- <view class="btn-box end-btn">已结束</view> -->
@ -92,10 +94,18 @@
</view> </view>
</view> </view>
</uv-popup> </uv-popup>
<uv-popup ref="ewmpopup" mode="center" round="30rpx">
<view class="pop-cont">
<uv-image :src="ewmImg" width="380rpx" height="380rpx"></uv-image>
</view>
</uv-popup>
</view> </view>
</template> </template>
<script> <script>
import { error } from '../uni_modules/uv-ui-tools/libs/function'
export default{ export default{
data() { data() {
return { return {
@ -107,7 +117,8 @@
chooseIndex:0, chooseIndex:0,
bgColor:'transparent', bgColor:'transparent',
count:5, count:5,
value:3,
numValue:0,
ewmImg:'',
typeList:[ typeList:[
{ {
name:'早鸟票', name:'早鸟票',
@ -121,7 +132,8 @@
name:'尊享票', name:'尊享票',
price:268 price:268
} }
]
],
activityId:''
} }
}, },
computed:{ computed:{
@ -129,6 +141,41 @@
return this.activityDetails.image.split(',') return this.activityDetails.image.split(',')
} }
}, },
onShareAppMessage(res) {
console.log(res)
if (res.from === 'button') {
//
return {
title:this.activityDetails.title,
path: `/pages_order/huodong-detail?activityId=${this.activityId}`,
imageUrl: this.imageArr[0],
success: function(res) {
//
console.log('转发成功')
},
fail: function(res) {
//
}
};
}
//
return {
title:this.activityDetails.title,
path: `/pages_order/huodong-detail?activityId=${this.activityId}`,
imageUrl: this.imageArr[0],
success: function(res) {
console.log(res, '发生过是');
if (res.errMsg == 'shareAppMessage:ok') {
console.log("成功", res)
}
},
fail: function(res) {
console.log("失败", res)
}
}
},
onPageScroll(e) { onPageScroll(e) {
if(e.scrollTop > 50) { if(e.scrollTop > 50) {
this.bgColor = '#49070c' this.bgColor = '#49070c'
@ -137,13 +184,28 @@
} }
}, },
onLoad({activityId}) { onLoad({activityId}) {
this.activityId = activityId
this.activityInfo(activityId) this.activityInfo(activityId)
}, },
methods:{ methods:{
daohang() {
uni.openLocation({
latitude: Number(this.activityDetails.latitude),
longitude: Number(this.activityDetails.longitude),
success: function () {
console.log('success');
},
fail:(error)=> {
console.log('error',error);
}
});
},
activityInfo(activityId) { activityInfo(activityId) {
this.$api('activityInfo',{activityId},res=> { this.$api('activityInfo',{activityId},res=> {
if(res.code==200) { if(res.code==200) {
this.activityDetails = res.result.activityInfo this.activityDetails = res.result.activityInfo
this.numValue = res.result.adminUser.num
this.ewmImg = res.result.adminUser.img
this.adminUserInfo = res.result.adminUserInfo this.adminUserInfo = res.result.adminUserInfo
this.typeList[0].price = res.result.activityInfo.birdPrice; this.typeList[0].price = res.result.activityInfo.birdPrice;
this.typeList[1].price = res.result.activityInfo.personPrice; this.typeList[1].price = res.result.activityInfo.personPrice;
@ -158,7 +220,7 @@
this.chooseIndex = i this.chooseIndex = i
}, },
confirmClick(typePrice) { confirmClick(typePrice) {
this.$api('createOrder',{id:this.activityDetails.id,typePrice:typePrice},res=>{
this.$api('createOrder',{id:this.activityId,typePrice:typePrice},res=>{
if(res.code === 200) { if(res.code === 200) {
uni.requestPaymentWxPay(res) uni.requestPaymentWxPay(res)
.then(res => { .then(res => {
@ -183,6 +245,10 @@
} }
</style> </style>
<style lang="scss" scoped> <style lang="scss" scoped>
.pop-cont {
border-radius: 30rpx;
padding: 10rpx;
}
.head-box { .head-box {
background: url('@/static/image/nav-bg.png') no-repeat; background: url('@/static/image/nav-bg.png') no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
@ -193,7 +259,7 @@
} }
.content { .content {
padding: 0 30rpx 170rpx; padding: 0 30rpx 170rpx;
padding-top: calc(var(--status-bar-height) + 110rpx);
padding-top: calc(var(--status-bar-height) + 130rpx);
.content-head { .content-head {
position: relative; position: relative;
.image-box { .image-box {
@ -257,6 +323,7 @@
.use-img { .use-img {
width: 86rpx; width: 86rpx;
height: 86rpx; height: 86rpx;
border-radius: 50%;
} }
.lingdui-msg { .lingdui-msg {
flex: 1; flex: 1;
@ -367,6 +434,10 @@
color: #999999; color: #999999;
padding: 0 35rpx; padding: 0 35rpx;
text-align: center; text-align: center;
height: 100rpx;
display: flex;
flex-direction: column;
align-items: center;
image { image {
width: 48rpx; width: 48rpx;
height: 48rpx; height: 48rpx;


+ 108
- 26
pages_order/lvyou-detail.vue View File

@ -5,22 +5,22 @@
<view class="content"> <view class="content">
<view class="content-head"> <view class="content-head">
<image class="image-box" :src="travelDetails.image" mode=""></image>
<image class="image-box" :src="travelDetails.travel.image" mode=""></image>
<view class="msg-box"> <view class="msg-box">
<view class="msg-box-title">{{travelDetails.title}}</view>
<view class="msg-box-time">开始时间{{travelDetails.startTime}}</view>
<view class="msg-box-title">{{travelDetails.travel.title}}</view>
<view class="msg-box-time">开始时间{{travelDetails.travel.startTime}}</view>
<view class="lingdui-box"> <view class="lingdui-box">
<image class="use-img" src="@/static/image/center/3.png" mode=""></image>
<image class="use-img" :src="travelDetails.adminUserInfo.headImage" mode=""></image>
<view class="lingdui-msg"> <view class="lingdui-msg">
<view class="lingdui-msg-name"> <view class="lingdui-msg-name">
<view>VTrip微程</view>
<view>{{travelDetails.adminUserInfo.nickName}}</view>
<view class="name-tip">领队</view> <view class="name-tip">领队</view>
</view> </view>
<view> <view>
<uv-rate :count="count" v-model="value" size="23" activeColor="#FFA200"></uv-rate>
<uv-rate :count="count" v-model="travelDetails.adminUser.num" size="23" activeColor="#FFA200"></uv-rate>
</view> </view>
</view> </view>
<view class="add-wx">添加微信</view>
<view class="add-wx" @click="$refs.ewmpopup.open()">添加微信</view>
</view> </view>
</view> </view>
</view> </view>
@ -28,17 +28,17 @@
<view class="title-box">旅行描述</view> <view class="title-box">旅行描述</view>
<view class="value-box"> <view class="value-box">
<view class="tabs-box"> <view class="tabs-box">
<uv-tabs :list="list" @click="click" lineColor="#FE5E5E" :activeStyle="{color:'#FE5E5E',fontSize:'29rpx',fontWeight: 'bold'}" :inactiveStyle="{color:'#D6D6D6',fontSize:'29rpx',fontWeight: 'bold'}"></uv-tabs>
<uv-tabs :list="list" @click="tabsClick" lineColor="#FE5E5E" :activeStyle="{color:'#FE5E5E',fontSize:'29rpx',fontWeight: 'bold'}" :inactiveStyle="{color:'#D6D6D6',fontSize:'29rpx',fontWeight: 'bold'}"></uv-tabs>
</view> </view>
<view class="lv-msg-box"> <view class="lv-msg-box">
当金黄的落叶轻柔地铺满了小城的每个角落我们知道最温柔的季节已悄然而至在这个收获的季节里我们诚挚邀请您加入我们的秋日私旅
<uv-parse :content="content"></uv-parse>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view class="bottom-box"> <view class="bottom-box">
<view class="price-box"> <view class="price-box">
<view class="peice-val"><text></text>{{travelDetails.price}}</view>
<view class="peice-val"><text></text>{{travelDetails.travel.price}}</view>
<view>报名费用</view> <view>报名费用</view>
</view> </view>
<view class="caozuo-box"> <view class="caozuo-box">
@ -46,13 +46,20 @@
<image src="@/static/image/home/shoucang-icon.png" mode=""></image> <image src="@/static/image/home/shoucang-icon.png" mode=""></image>
<view>收藏</view> <view>收藏</view>
</view> </view>
<view class="caozuo-item">
<image src="@/static/image/home/zhuanfa-icon.png" mode=""></image>
<view>转发</view>
</view>
<button type="primary" style="background-color: transparent;height: 100rpx;font-size: 20rpx;padding: 0;" open-type="share" >
<view class="caozuo-item">
<image src="@/static/image/home/zhuanfa-icon.png" mode=""></image>
<text style="line-height: initial;">转发</text>
</view>
</button>
</view> </view>
<view class="btn-box">立即报名</view>
<view class="btn-box" @click="toBaoming">立即报名</view>
</view> </view>
<uv-popup ref="ewmpopup" mode="center" round="30rpx">
<view class="pop-cont">
<uv-image :src="travelDetails.adminUser.img" width="380rpx" height="380rpx"></uv-image>
</view>
</uv-popup>
</view> </view>
</template> </template>
@ -60,27 +67,70 @@
export default{ export default{
data() { data() {
return { return {
travelDetails: null,
travelDetails: null,
bgColor:'transparent', bgColor:'transparent',
count:5, count:5,
value:3, value:3,
content:'',
current:0,
list:[ list:[
{ {
name:'介绍'
name:'介绍',
key:'js'
}, },
{ {
name:'路线'
name:'路线',
key:'lx'
}, },
{ {
name:'费用'
name:'费用',
key:'fy'
}, },
{ {
name:'须知'
name:'须知',
key:'xz'
}, },
{ {
name:'代理'
name:'代理',
key:'dl'
}, },
]
],
travelId:'',
}
},
onShareAppMessage(res) {
console.log(res)
if (res.from === 'button') {
//
return {
title:this.travelDetails.travel.title,
path: `/pages_order/lvyou-detail?travelId=${this.travelId}`,
imageUrl: this.travelDetails.travel.image,
success: function(res) {
//
console.log('转发成功')
},
fail: function(res) {
//
}
};
}
//
return {
title:this.travelDetails.title,
path: `/pages_order/lvyou-detail?travelId=${this.travelId}`,
imageUrl: this.travelDetails.travel.image,
success: function(res) {
console.log(res, '发生过是');
if (res.errMsg == 'shareAppMessage:ok') {
console.log("成功", res)
}
},
fail: function(res) {
console.log("失败", res)
}
} }
}, },
onPageScroll(e) { onPageScroll(e) {
@ -90,14 +140,36 @@
this.bgColor = 'transparent' this.bgColor = 'transparent'
} }
}, },
onLoad({travelId}) {
this.travelInfo(travelId)
},
methods:{
onLoad({travelId}) {
this.travelId = travelId
this.travelInfo(travelId)
},
methods:{
toBaoming() {
this.$api('createOrder',{id:this.travelId,typePrice:1},res=>{
if(res.code === 200) {
uni.requestPaymentWxPay(res)
.then(res => {
uni.showToast({
title: '下单成功',
icon: 'none'
})
}).catch(n => {
})
}
})
},
tabsClick(val) {
this.current = val.index
this.content = this.travelDetails.travel[this.list[this.current].key]
},
travelInfo(travelId) { travelInfo(travelId) {
this.$api('travelInfo',{travelId},res=> { this.$api('travelInfo',{travelId},res=> {
if(res.code==200) { if(res.code==200) {
this.travelDetails = res.result this.travelDetails = res.result
this.content = res.result.travel[this.list[this.current].key]
} }
}) })
} }
@ -111,6 +183,10 @@
} }
</style> </style>
<style lang="scss" scoped> <style lang="scss" scoped>
.pop-cont {
border-radius: 30rpx;
padding: 10rpx;
}
.head-box { .head-box {
background: url('@/static/image/nav-bg.png') no-repeat; background: url('@/static/image/nav-bg.png') no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
@ -126,6 +202,7 @@
position: relative; position: relative;
.image-box { .image-box {
width: 100%; width: 100%;
border-radius: 20rpx 20rpx 0 0;
height: 546rpx; height: 546rpx;
} }
.msg-box { .msg-box {
@ -160,6 +237,7 @@
.use-img { .use-img {
width: 86rpx; width: 86rpx;
height: 86rpx; height: 86rpx;
border-radius: 50%;
} }
.lingdui-msg { .lingdui-msg {
flex: 1; flex: 1;
@ -269,6 +347,10 @@
color: #999999; color: #999999;
padding: 0 35rpx; padding: 0 35rpx;
text-align: center; text-align: center;
height: 100rpx;
display: flex;
flex-direction: column;
align-items: center;
image { image {
width: 48rpx; width: 48rpx;
height: 48rpx; height: 48rpx;


+ 67
- 5
pages_zlx/zlx-form.vue View File

@ -42,10 +42,19 @@
<view class="form-box-line"> <view class="form-box-line">
<view class="label-box">简历附件</view> <view class="label-box">简历附件</view>
<view class="value-box"> <view class="value-box">
<uv-input placeholder="请输入真实姓名" v-model="info.image" border="none" color="#fff"></uv-input>
<uv-input placeholder=" " v-model="info.image" border="none" color="#fff"></uv-input>
<view class="upload-btn">上传简历</view> <view class="upload-btn">上传简历</view>
</view> </view>
</view> </view>
<view class="form-box-line">
<view class="label-box">微信二维码</view>
<view class="value-box">
<view style="width: 80rpx;height: 80rpx;">
<uv-image v-if="info.img" :src="info.img" width="80rpx" height="80rpx" @click="bigImg"></uv-image>
</view>
<view class="upload-btn" @click="upImg">上传图片</view>
</view>
</view>
</view> </view>
</view> </view>
@ -64,7 +73,7 @@
</view> </view>
</view> </view>
<view class="btn-box">
<view class="btn-box" v-if="info.state != 1">
<uv-button text="保存" color="#381615" shape="circle" :customStyle="btnCustomStyle" @click="confrim"></uv-button> <uv-button text="保存" color="#381615" shape="circle" :customStyle="btnCustomStyle" @click="confrim"></uv-button>
</view> </view>
</view> </view>
@ -83,14 +92,58 @@
name:'', name:'',
phone:'', phone:'',
cardNo:'', cardNo:'',
image:''
img:''
} }
} }
}, },
computed: { computed: {
...mapGetters(["userInfo"]), ...mapGetters(["userInfo"]),
}, },
onLoad() {
this.getjoinRecruitInfo()
},
methods:{ methods:{
bigImg() {
uni.previewImage({
urls:[this.info.img],
current:0
})
},
upImg() {
uni.chooseImage({
count: 1, // 9,
sizeType: ['original', 'compressed'], //
sourceType: ['album', 'camera'], //
success: (res) => {
// tempFilePaths
this.$Oss.ossUpload(res.tempFilePaths[0])
.then(url => {
this.info.img = url
this.$api('updateInfo',this.info, res => {
if (res.code == 200) {
uni.showToast({
title:'保存成功',
icon:'none'
})
}
})
})
//
},
fail: (err) => {
//
console.log('选择图片失败', err);
}
});
},
getjoinRecruitInfo() {
this.$api('joinRecruitInfo',res=>{
if(res.code == 200) {
this.info = res.result
}
})
},
copy() { copy() {
uni.setClipboardData({ uni.setClipboardData({
data:this.userInfo.id, data:this.userInfo.id,
@ -107,8 +160,16 @@
if(!this.info.name) return this.$Toast('请输入姓名') if(!this.info.name) return this.$Toast('请输入姓名')
if(!this.info.phone) return this.$Toast('请输入联系方式') if(!this.info.phone) return this.$Toast('请输入联系方式')
if(!this.info.cardNo) return this.$Toast('请输入身份证号') if(!this.info.cardNo) return this.$Toast('请输入身份证号')
let params = {
name:this.info.name,
phone:this.info.phone,
cardNo:this.info.cardNo,
img:this.info.img,
image:this.info.image,
id:this.info.id || ''
}
// if(!this.info.image) return this.$Toast('') // if(!this.info.image) return this.$Toast('')
this.$api('joinRecruit',this.info,res=>{
this.$api('joinRecruit',params,res=>{
if(res.code == 200) { if(res.code == 200) {
this.$Toast('认证成功') this.$Toast('认证成功')
} }
@ -203,7 +264,7 @@
padding:0 40rpx; padding:0 40rpx;
margin-top: 20rpx; margin-top: 20rpx;
.form-box-line { .form-box-line {
height: 112rpx;
min-height: 112rpx;
border-bottom: 1px solid #403D3A; border-bottom: 1px solid #403D3A;
display: flex; display: flex;
align-items: center; align-items: center;
@ -220,6 +281,7 @@
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
flex:1;
.upload-btn { .upload-btn {
font-weight: 400; font-weight: 400;
font-size: 28rpx; font-size: 28rpx;


Loading…
Cancel
Save