Browse Source

更新

master
xiaobo 2 months ago
parent
commit
ece513a6f0
21 changed files with 636 additions and 304 deletions
  1. +2
    -0
      App.vue
  2. +6
    -2
      api/model/zhaomu.js
  3. +2
    -1
      components/active/active-item.vue
  4. +0
    -1
      components/base/tabbar.vue
  5. +109
    -96
      components/cart/CardList.vue
  6. +36
    -30
      components/zhaomu/zhaomu-item.vue
  7. +2
    -0
      config.js
  8. +6
    -1
      main.js
  9. +14
    -0
      pages.json
  10. +45
    -33
      pages/index/cart.vue
  11. +11
    -5
      pages/index/center.vue
  12. +21
    -6
      pages/index/index.vue
  13. +51
    -18
      pages/index/member.vue
  14. +51
    -0
      pages_login/fuwutiaokuan.vue
  15. +13
    -2
      pages_login/wxLogin.vue
  16. +1
    -1
      pages_login/wxUserInfo.vue
  17. +51
    -0
      pages_login/yinsixieyi.vue
  18. +25
    -11
      pages_my/user-msg.vue
  19. +144
    -81
      pages_order/orderDetails.vue
  20. +40
    -10
      pages_zlx/zlx-form.vue
  21. +6
    -6
      store/store.js

+ 2
- 0
App.vue View File

@ -5,6 +5,8 @@
onShow: function() {
},
onHide: function() {
},
onLoad() {
}
}
</script>


+ 6
- 2
api/model/zhaomu.js View File

@ -2,10 +2,14 @@
const api = {
// 招募订单
recruitPageList: {
url: '/popularize-admin/shop_common/getRecruitPageList',
url: '/shop_common/getRecruitPageList',
method: 'GET',
},
// 主理人认证
joinRecruit: {
url: '/shop_common/joinRecruit',
method: 'POST',
},
}
export default api

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

@ -3,7 +3,7 @@
<view class="container" v-for="(item, index) in cardListData" :key="index">
<view class="content" :class="['U','S'].includes(item.state) ? 'content_border' : ''">
<view class="left">
<img :src="item.image" alt="">
<img :src="item.image.split(',')[0]" alt="">
</view>
<view class="right">
<view class="detailed">
@ -132,6 +132,7 @@
width: 22rpx;
height: 26rpx;
margin-right: 10rpx;
flex-shrink: 0;
}
}
}


+ 0
- 1
components/base/tabbar.vue View File

@ -27,7 +27,6 @@
name:"tabbar",
props : ['select'],
computed : {
...mapGetters(['userShop']),
},
data() {
return {


+ 109
- 96
components/cart/CardList.vue View File

@ -1,109 +1,122 @@
<template>
<view class="cardList">
<view class="container" @click="toOrderDetails" v-for="(item, index) in cardListData" :key="index">
<view class="head">
<text class="orderTime">下单时间{{item.orderTime}}</text>
<text class="orderStatus" :class="item.state === 'U' ? 'active' : ''">{{item.stateText}}</text>
</view>
<view class="content cardStyle_" :class="['U','S'].includes(item.state) ? 'content_border' : ''">
<view class="left">
<image :src="item.imgUrl" alt="">
</view>
<view class="right">
<view class="detailed">
<view class="title">{{item.title}}</view>
<view class="date">{{item.startTime}}</view>
<view class="address">{{item.address}}</view>
</view>
<view class="price"><text>总计</text>¥{{item.price}}</view>
</view>
</view>
<view class="button-sp-area" v-if="Array.isArray(item.btnObj) && item.btnObj.length > 0">
<button @click.stop="skip(val)" :style="{background: val.bgColor, color: val.color}" v-for="(val, i) in item.btnObj" :key="i" class="mini-btn" size="mini">{{val.btnTitle}}</button>
<view class="cardList">
<view class="container" @click="toOrderDetails(item)" v-for="(item, index) in cardListData" :key="index">
<view class="head">
<text class="orderTime">下单时间{{item.createTime}}</text>
<text class="orderStatus" :class="item.state === 'U' ? 'active' : ''">{{item.stateText}}</text>
</view>
</view>
</view>
<view class="content cardStyle_" :class="['U','S'].includes(item.state) ? 'content_border' : ''">
<view class="left">
<image :src="item.image" alt="">
</view>
<view class="right">
<view class="detailed">
<view class="title">{{item.title}}</view>
<view class="date">{{item.startTime}}</view>
<view class="address">{{item.address}}</view>
</view>
<view class="price"><text>总计</text>¥{{item.price}}</view>
</view>
</view>
<view class="button-sp-area">
<button @click.stop="skip(item,0)" v-if="item.state == 1" :style="{background: '#34312E;', color: '#AFAFAF',margin:'0 30rpx 0 0'}"
class="mini-btn" size="mini">取消活动</button>
<button @click.stop="skip(item,1)" v-if="item.state == 1" :style="{background: '#492623;', color: '#FF3E3F',margin:'0 30rpx 0 0'}"
class="mini-btn" size="mini">活动签到</button>
<button @click.stop="skip(item,2)" v-if="item.state == 2" :style="{background: '#492623;', color: '#FF3E3F',margin:'0 30rpx 0 0'}"
class="mini-btn" size="mini">评价活动</button>
<button @click.stop="skip(item,3)" v-if="item.state == 2" :style="{background: '#49361D;', color: '#FFB245',margin:'0 30rpx 0 0'}"
class="mini-btn" size="mini">开具发票</button>
</view>
</view>
</view>
</template>
<script>
export default {
props: {
cardListData : {
type : Array,
default : []
},
},
data() {
return {
};
},
components: {
export default {
props: {
cardListData: {
type: Array,
default: []
},
},
data() {
return {
};
},
components: {
},
computed: {
},
watch: {
},
computed: {},
watch: {
},
created() {
},
created() {
},
mounted() {
},
methods: {
skip(val) {
this.$emit('btnClick', val)
},
toOrderDetails(val) {
this.$emit('toOrderDetails', val)
mounted() {},
methods: {
skip(val) {
this.$emit('btnClick', val)
},
toOrderDetails(val) {
this.$emit('toOrderDetails', val)
}
}
}
};
};
</script>
<style scoped lang="scss">
.cardList {
padding: 10rpx 32rpx 250rpx;
.container {
margin-top: 31rpx;
padding: 25rpx 0;
border-radius: 20rpx;
background: $uni-color-card-background;
.head {
display: flex;
justify-content: space-between;
padding: 0 35rpx 28rpx;
border-bottom: 1px solid #2A2A2A;
.orderTime {
font-size: 25rpx;
color: $uni-text-color-grey;
}
.orderStatus {
font-size: 26rpx;
color: #ccc;
}
}
.content_border {
border-bottom: 1px solid #2A2A2A;
}
.button-sp-area {
text-align: right;
padding-top: 20rpx;
.mini-btn {
width: 166rpx;
height: 53rpx;
line-height: 53rpx;
font-size: 24rpx;
border-radius: 50rpx;
margin-left: 20rpx;
background-color: #34312E;
color: #AFAFAF;
}
}
}
}
.active {
color: $uni-color-primary!important;
}
</style>
.cardList {
padding: 10rpx 32rpx 0;
.container {
margin-top: 31rpx;
padding: 25rpx 0;
border-radius: 20rpx;
background: $uni-color-card-background;
.head {
display: flex;
justify-content: space-between;
padding: 0 35rpx 28rpx;
border-bottom: 1px solid #2A2A2A;
.orderTime {
font-size: 25rpx;
color: $uni-text-color-grey;
}
.orderStatus {
font-size: 26rpx;
color: #ccc;
}
}
.content_border {
border-bottom: 1px solid #2A2A2A;
}
.button-sp-area {
text-align: right;
padding-top: 20rpx;
.mini-btn {
width: 166rpx;
height: 53rpx;
line-height: 53rpx;
font-size: 24rpx;
border-radius: 50rpx;
margin-left: 20rpx;
background-color: #34312E;
color: #AFAFAF;
}
}
}
}
.active {
color: $uni-color-primary !important;
}
</style>

+ 36
- 30
components/zhaomu/zhaomu-item.vue View File

@ -1,20 +1,23 @@
<template>
<view class="cardList">
<view class="container" v-for="item in 2" :key="item">
<view class="container">
<view class="content">
<view class="left">
<image src="https://up.zhuoku.org/22/a4/60/50/fc3bd0b4e656911fccdde4383637c1cd.jpg"></image>
<image :src="imgArr[0]"></image>
</view>
<view class="right">
<view class="detailed">
<view class="title">周五桌游野餐雅致...</view>
<view class="date">2024.10.28 10:00</view>
<view class="address">成都市东丽湖露营地32号</view>
<view class="title">{{item.enTitle}}</view>
<view class="date">{{item.startTime}}</view>
<view class="address">
<view class="img-box">
<image src="@/static/image/cart/addressIcon.png" mode=""></image>
</view>
<view>{{item.address}}</view>
</view>
</view>
<view class="tips-box">
<view class="tips-box-item">高质量</view>
<view class="tips-box-item">多平台招募</view>
<view class="tips-box-item">交友</view>
<view class="tips-box-item" v-for="(val,i) in iconTextArr" :key="i">{{val}}</view>
</view>
</view>
</view>
@ -35,13 +38,15 @@
<script>
export default {
props: {
cardListData: {
type: Array,
default: []
item: {
type: Object,
default: ()=>{}
},
},
data() {
return {
iconTextArr:[],
imgArr:[],
urls: [
'https://cdn.uviewui.com/uview/album/1.jpg',
'https://cdn.uviewui.com/uview/album/2.jpg',
@ -49,17 +54,17 @@
]
};
},
components: {
},
computed: {},
watch: {
watch:{
item:{
handler(val){
this.iconTextArr = val.iconText.split(",");
this.imgArr = val.image.split(",")
},
immediate:true
}
},
created() {
mounted() {
},
mounted() {},
methods: {
skip(val) {
uni.navigateTo({
@ -89,12 +94,10 @@
border-bottom: 1px solid #2A2A2A;
.left {
border-radius: 20rpx;
overflow: hidden;
image {
width: 228rpx;
height: 228rpx;
border-radius: 20rpx;
}
}
@ -132,23 +135,25 @@
.address {
display: flex;
align-items: center;
&::before {
content: '';
display: block;
background: url('@/static/image/cart/addressIcon.png') no-repeat;
background-size: 100% 100%;
margin-bottom: 10rpx;
.img-box {
width: 22rpx;
height: 26rpx;
margin-right: 10rpx;
flex-shrink: 0;
image {
width: 100%;
height: 100%;
}
}
}
}
.tips-box {
display: flex;
align-items: center;
flex-wrap: wrap;
.tips-box-item {
padding: 0 24rpx;
height: 38rpx;
@ -158,6 +163,7 @@
font-size: 20rpx;
color: #999999;
margin-right: 14rpx;
margin-bottom: 5px;
&:last-child {
margin-right: 0;
}


+ 2
- 0
config.js View File

@ -14,8 +14,10 @@ const type = 'prod'
const config = {
dev : {
baseUrl : 'https://popularize-admin.hhlm1688.com/popularize-admin',
// baseUrl : 'http://h5.xzaiyp.top/popularize-admin',
},
prod : {
// baseUrl : 'http://h5.xzaiyp.top/popularize-admin',
baseUrl : 'https://popularize-admin.hhlm1688.com/popularize-admin',
}
}


+ 6
- 1
main.js View File

@ -24,7 +24,12 @@ import navbar from '@/components/base/navbar.vue'
Vue.component('configPopup',configPopup)
Vue.component('navbar',navbar)
Vue.prototype.$Toast = function(title) {
return uni.showToast({
title:title,
icon:'none'
})
}
const app = new Vue({
...App,
store,


+ 14
- 0
pages.json View File

@ -178,6 +178,20 @@
"navigationStyle": "custom" ,
"navigationBarTextStyle": "white"
}
},
{
"path": "yinsixieyi",
"style": {
"navigationStyle": "custom" ,
"navigationBarTextStyle": "white"
}
},
{
"path": "fuwutiaokuan",
"style": {
"navigationStyle": "custom" ,
"navigationBarTextStyle": "white"
}
}
]
}],


+ 45
- 33
pages/index/cart.vue View File

@ -3,14 +3,15 @@
<view class="head-box"></view>
<Navbar title="我的订单" :bgColor="bgColor" leftIconSize="0px" height="100rpx" :titleStyle="{color:fontColor}" />
<view class="content contentPosition_">
<!-- <uv-sticky offsetTop="200rpx"> -->
<uv-sticky offsetTop="220rpx" :bgColor="bgColor">
<uv-tabs :scrollable="false" @click="tabs" :list="tabList" lineWidth="40"
:lineColor="`url(${lineBg}) 100% 100%`"
:activeStyle="{color: '#FD5C5C', fontWeight: 'bold',transform: 'scale(1.05)'}"
:inactiveStyle="{color: '#999', transform: 'scale(1)'}"
itemStyle="padding-left: 15px; padding-right: 15px; height: 44px;"></uv-tabs>
<!-- </uv-sticky> -->
</uv-sticky>
<cardList :cardListData="cardListData" @btnClick="btnClick" @toOrderDetails="toOrderDetails" />
<uv-load-more :status="status" fontSize="24rpx" dashed line />
</view>
<tabber select="cart" />
</view>
@ -33,15 +34,20 @@
},
data() {
return {
params:{
state:0,
pageNo:1,
pageSize:10
status:"loading",
params: {
state: 0,
pageNo: 1,
pageSize: 10
},
tabList: [{
id: 0,
id: '',
name: '全部'
},
{
id: 0,
name: '未付款'
},
{
id: 1,
name: '待参加'
@ -114,61 +120,67 @@
// btnObj: []
// }
// ]
totalPage:0,
cardListData: []
totalPage: 0,
cardListData: []
}
},
onReachBottom() {
if(this.params.pageNo >= this.totalPage) return
this.params.pageNo ++
onReachBottom() {
if (this.params.pageNo >= this.totalPage) return
this.params.pageNo++
this.getOrderPageList()
},
onLoad() {
this.getOrderPageList()
},
onLoad() {
this.getOrderPageList()
},
methods: {
activeList() {
uni.navigateTo({
url: '/pages_my/activeList'
})
},
getOrderPageList() {
this.$api('orderPageList',this.params,res=>{
if(res.code == 200) {
getOrderPageList() {
this.status = "loading"
this.$api('orderPageList', this.params, res => {
if (res.code == 200) {
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) {
this.status = "nomore"
}else {
this.status = "loadmore"
}
}
})
},
},
tabs(val) {
console.log(val);
this.params.state = val.id
this.getOrderPageList()
this.params.state = val.id
this.params.pageNo = 1
this.cardListData = []
this.getOrderPageList()
},
toOrderDetails(val) {
uni.navigateTo({
url: '/pages_order/orderDetails'
url: `/pages_order/orderDetails?id=${val.id}`
})
},
btnClick({
id
}) { // 0 1 2 3
console.log(id);
if (id === '2') {
btnClick(item,type) {//0 1 2 3
if (type == 2) {
uni.navigateTo({
url: '/pages_order/orderEvaluation'
})
return;
}
if (id === '3') {
if (type == 3) {
uni.navigateTo({
url: '/pages_order/invoiceIssuance'
})
return;
}
}
}
}
</script>
<style scoped lang="scss"></style>
<style scoped lang="scss">
.content {
padding-bottom: 200rpx;
}
</style>

+ 11
- 5
pages/index/center.vue View File

@ -10,10 +10,10 @@
</view>
<view class="info" @click="toInfo">
<view class="vip">
{{token ? userInfo.nickName : '请点击登录'}}
{{isLogin ? userInfo.nickName : '请点击登录'}}
</view>
<view class="tips">
{{token ? userInfo.phone : ''}}
{{isLogin ? userInfo.phone : ''}}
</view>
</view>
<view class="setting" @click="jump({url:'/pages_my/user-msg'})">
@ -79,7 +79,7 @@
customerServicePopup,
},
computed: {
...mapGetters(["token","userInfo"]),
...mapGetters(["userInfo","isLogin"]),
},
data() {
return {
@ -124,7 +124,9 @@
},
onLoad() {
console.log('this.userInfo: ',this.userInfo);
if(this.isLogin) {
this.$store.commit('getUserInfo')
}
},
onPageScroll(e) {
if(e.scrollTop > 50) {
@ -145,7 +147,7 @@
})
},
toInfo() {
if(!this.token) {
if(!this.isLogin) {
uni.navigateTo({
url:'/pages_login/wxLogin'
})
@ -195,6 +197,10 @@
overflow: hidden;
border-radius: 50%;
margin-right: 22rpx;
image {
width: 100%;
height: 100%;
}
}
.info {


+ 21
- 6
pages/index/index.vue View File

@ -10,7 +10,7 @@
<image class="sjx-img" src="@/static/image/home/sjx-icon.png" mode="widthFix"></image>
</view>
<view class="search-box-r">
<uv-search placeholder="搜索相关内容" v-model="keyword" shape="square" :showAction="false" color="#fff" placeholderColor="#BDABAC" :clearabled="false" searchIconColor="#fff" searchIconSize="50rpx" bgColor="#4A2A2B" height="63rpx"></uv-search>
<uv-search @search="search" placeholder="搜索相关内容" v-model="params.title" shape="square" :showAction="false" color="#fff" placeholderColor="#BDABAC" :clearabled="false" searchIconColor="#fff" searchIconSize="50rpx" bgColor="#4A2A2B" height="63rpx"></uv-search>
</view>
</view>
<view class="swipe-box">
@ -72,6 +72,7 @@
></uv-tabs>
<active-item :cardListData="cardListData"/>
<uv-load-more :status="status" fontSize="24rpx" dashed line />
</view>
</view>
@ -92,8 +93,10 @@
},
data() {
return {
status:"loading",
params:{
title:0,
title:'',
state:0,
pageNo:1,
pageSize:10
},
@ -127,13 +130,24 @@
onLoad() {
this.getBanner()
this.getActivityPageList()
this.$store.commit('initConfig')
},
methods:{
search() {
this.params.pageNo = 1
this.cardListData = []
this.getActivityPageList()
},
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"
}
}
})
},
@ -145,11 +159,12 @@
})
},
tabs(val) {
this.cardListData = []
this.params.title = val.id
this.getActivityPageList()
this.params.pageNo = 1
this.cardListData = []
this.params.state = val.id
this.getActivityPageList()
},
skip(val) {
skip(val) {
uni.navigateTo({
url: `/pages_my/${val}`
})


+ 51
- 18
pages/index/member.vue View File

@ -5,25 +5,25 @@
<view class="content">
<view class="search-box">
<view class="search-box-r">
<uv-search placeholder="搜索感兴趣的活动" v-model="params.title" shape="square" :showAction="false" color="#fff" placeholderColor="#BDABAC" :clearabled="false" searchIconColor="#fff" searchIconSize="50rpx" bgColor="#4A2A2B" height="63rpx"></uv-search>
<uv-search @search="search" placeholder="搜索感兴趣的活动" v-model="params.title" shape="square" :showAction="false" color="#fff" placeholderColor="#BDABAC" :clearabled="false" searchIconColor="#fff" searchIconSize="50rpx" bgColor="#4A2A2B" height="63rpx" ></uv-search>
</view>
</view>
<view class="user-box" @click="toInfo">
<uv-avatar :src="userInfo.headImage" size="98rpx" shape="circle"></uv-avatar>
<view class="user-msg">
<view class="user-msg-top">
<view> {{token ? userInfo.nickName : '请点击登录'}}</view>
<view> {{isLogin ? userInfo.nickName : '请点击登录'}}</view>
<!-- <view class="level-box">普通用户</view> -->
</view>
<view class="id-box">
<text>{{token ? userInfo.id : ''}}</text>
<text class="copy-text" @click="copy" v-if="token">复制</text>
<text>{{isLogin ? 'ID:' + userInfo.id : ''}}</text>
<text class="copy-text" @click="copy" v-if="isLogin">复制</text>
</view>
</view>
</view>
<view class="swipe-box">
<uv-swiper :list="list" height="280rpx" bgColor="transparent" radius="30rpx"></uv-swiper>
<uv-swiper :list="list" keyName="image" height="280rpx" radius="30rpx" bgColor="transparent" indicator indicatorMode="dot"></uv-swiper>
</view>
<view class="zlr-box" @click="toRenzheng">
@ -38,7 +38,8 @@
</view>
<view class="list-box">
<zhaomu-item></zhaomu-item>
<zhaomu-item v-for="(item,i) in ecruitList" :key="i" :item="item"></zhaomu-item>
<uv-load-more :status="status" fontSize="24rpx" dashed line />
</view>
</view>
@ -63,44 +64,76 @@
pageNo:1,
pageSize:10
},
totalPage:0,
status:'loading',
bgColor:'transparent',
list: [
'https://cdn.uviewui.com/uview/swiper/swiper3.png',
]
list: [],
ecruitList:[]
};
},
computed: {
...mapState(['token']),
...mapGetters(["userInfo"]),
...mapGetters(["userInfo","isLogin"]),
},
onLoad() {
this.getList()
this.getBanner()
},
onShow() {
},
onPageScroll(e) {
if(e.scrollTop > 50) {
this.bgColor ='#49070c'
}else{
this.bgColor ='transparent'
}
if(e.scrollTop > 50) {
this.bgColor ='#49070c'
}else{
this.bgColor ='transparent'
}
},
onReachBottom() {
if(this.params.pageNo < this.totalPage) {
this.params.pageNo ++
this.getList()
}
},
methods:{
search() {
this.params.pageNo = 1;
this.ecruitList = []
this.getList()
},
getList() {
this.status = "loading"
this.$api('recruitPageList',this.params,res=>{
if(res.code == 200) {
this.totalPage = res.result.pages;
this.ecruitList = [...this.ecruitList,...res.result.records];
if(this.params.pageNo >= this.totalPage) {
this.status = "nomore"
}else {
this.status = "loadmore"
}
}
})
},
getBanner() {
this.$api('banner',res=>{
if(res.code == 200) {
this.list = res.result
}
})
},
toRenzheng() {
if(!this.isLogin) {
return uni.showToast({
title:'请先登录!',
icon:'none'
})
}
uni.navigateTo({
url:'/pages_zlx/zlx-form'
})
},
toInfo() {
if(!this.token) {
if(!this.isLogin) {
uni.navigateTo({
url:'/pages_login/wxLogin'
})


+ 51
- 0
pages_login/fuwutiaokuan.vue View File

@ -0,0 +1,51 @@
<template>
<view>
<view class="head-box"></view>
<uv-navbar autoBack title="服务条款" leftIconColor="#fff" :bgColor="bgColor" height="100rpx" :titleStyle="{color:'#fff'}"></uv-navbar>
<view class="content" style="color: #fff!important;">
<uv-parse :content="content"></uv-parse>
</view>
</view>
</template>
<script>
export default{
data() {
return {
bgColor:'transparent',
content:''
}
},
onPageScroll(e) {
if(e.scrollTop > 50) {
this.bgColor = '#49070c'
}else{
this.bgColor = 'transparent'
}
},
onLoad() {
console.log(this.$store.state.configList)
this.content = this.$store.state.configList.user_ys
}
}
</script>
<style lang="scss">
page {
background-color: #060504;
}
</style>
<style lang="scss" scoped>
.head-box {
background: url('@/static/image/nav-bg.png') no-repeat;
background-size: 100% 100%;
width: 100%;
height: 534rpx;
position: absolute;
z-index: -1;
}
.content {
padding: 0 30rpx;
padding-top: calc(var(--status-bar-height) + 110rpx);
}
</style>

+ 13
- 2
pages_login/wxLogin.vue View File

@ -20,8 +20,8 @@
<uv-checkbox-group v-model="consent">
<uv-checkbox :size="30" shape="circle" active-color="#05C160" :name="privacy"></uv-checkbox>
</uv-checkbox-group>
已同意<text class="privacy-title">隐私政策</text>
<text class="privacy-title">服务条款</text>
已同意<text class="privacy-title" @click="jump(1)">隐私政策</text>
<text class="privacy-title" @click="jump(2)">服务条款</text>
</uv-radio-group>
</view>
@ -49,6 +49,17 @@
})
}
this.$store.commit('login')
},
jump(type) {//1 2
if(type == 1) {
uni.navigateTo({
url:'/pages_login/yinsixieyi'
})
}else {
uni.navigateTo({
url:'/pages_login/fuwutiaokuan'
})
}
}
}
}


+ 1
- 1
pages_login/wxUserInfo.vue View File

@ -127,7 +127,7 @@
}
self.$api('updateInfo', {
avatarUrl : self.userInfoForm.headImage,
headImage : self.userInfoForm.headImage,
nickName : self.userInfoForm.nickName,
phone : self.userInfoForm.phone,
}, res => {


+ 51
- 0
pages_login/yinsixieyi.vue View File

@ -0,0 +1,51 @@
<template>
<view>
<view class="head-box"></view>
<uv-navbar autoBack title="隐私协议" leftIconColor="#fff" :bgColor="bgColor" height="100rpx" :titleStyle="{color:'#fff'}"></uv-navbar>
<view class="content" style="color: #fff!important;">
<uv-parse :content="content"></uv-parse>
</view>
</view>
</template>
<script>
export default{
data() {
return {
bgColor:'transparent',
content:''
}
},
onPageScroll(e) {
if(e.scrollTop > 50) {
this.bgColor = '#49070c'
}else{
this.bgColor = 'transparent'
}
},
onLoad() {
console.log(this.$store.state.configList)
this.content = this.$store.state.configList.user_xy
}
}
</script>
<style lang="scss">
page {
background-color: #060504;
}
</style>
<style lang="scss" scoped>
.head-box {
background: url('@/static/image/nav-bg.png') no-repeat;
background-size: 100% 100%;
width: 100%;
height: 534rpx;
position: absolute;
z-index: -1;
}
.content {
padding: 0 30rpx;
padding-top: calc(var(--status-bar-height) + 110rpx);
}
</style>

+ 25
- 11
pages_my/user-msg.vue View File

@ -9,49 +9,49 @@
<view class="form-box-line">
<view class="label-box">用户名称</view>
<view class="value-box">
<uv-input placeholder="请输入用户名称" inputAlign="right" v-model="info.name" border="none" color="#CCCCCC"></uv-input>
<uv-input placeholder="请输入用户名称" inputAlign="right" v-model="info.nickName" border="none" color="#CCCCCC"></uv-input>
</view>
</view>
<view class="form-box-line">
<view class="label-box">邮箱</view>
<view class="value-box">
<uv-input placeholder="请输入邮箱" inputAlign="right" v-model="nfo.phone" border="none" color="#CCCCCC"></uv-input>
<uv-input placeholder="请输入邮箱" inputAlign="right" v-model="info.email" border="none" color="#CCCCCC"></uv-input>
</view>
</view>
<view class="form-box-line">
<view class="label-box">手机号</view>
<view class="value-box">
<uv-input placeholder="请输入手机号" inputAlign="right" v-model="nfo.idCard" border="none" color="#CCCCCC"></uv-input>
<uv-input placeholder="请输入手机号" inputAlign="right" v-model="info.phone" border="none" color="#CCCCCC"></uv-input>
</view>
</view>
<view class="form-box-line">
<view class="label-box">性别</view>
<view class="value-box">
<uv-input placeholder="请输入性别" inputAlign="right" v-model="nfo.idCard" border="none" color="#CCCCCC"></uv-input>
<uv-input placeholder="请输入性别" inputAlign="right" v-model="info.sex" border="none" color="#CCCCCC"></uv-input>
</view>
</view>
<view class="form-box-line">
<view class="label-box">国籍</view>
<view class="value-box">
<uv-input placeholder="请输入国籍" inputAlign="right" v-model="nfo.idCard" border="none" color="#CCCCCC"></uv-input>
<uv-input placeholder="请输入国籍" inputAlign="right" v-model="info.idCard" border="none" color="#CCCCCC"></uv-input>
</view>
</view>
<view class="form-box-line">
<view class="label-box">生日</view>
<view class="value-box">
<uv-input placeholder="请输入生日" inputAlign="right" v-model="nfo.idCard" border="none" color="#CCCCCC"></uv-input>
<uv-input placeholder="请输入生日" inputAlign="right" v-model="info.yearDate" border="none" color="#CCCCCC"></uv-input>
</view>
</view>
<view class="form-box-line">
<view class="label-box">现居住址</view>
<view class="value-box">
<uv-input placeholder="请输入现居住址" inputAlign="right" v-model="nfo.idCard" border="none" color="#CCCCCC"></uv-input>
<uv-input placeholder="请输入现居住址" inputAlign="right" v-model="info.address" border="none" color="#CCCCCC"></uv-input>
</view>
</view>
<view class="form-box-line">
<view class="label-box">个人状态</view>
<view class="value-box">
<uv-input placeholder="请输入个人状态" inputAlign="right" v-model="nfo.idCard" border="none" color="#CCCCCC"></uv-input>
<uv-input placeholder="请输入个人状态" inputAlign="right" v-model="info.idCard" border="none" color="#CCCCCC"></uv-input>
</view>
</view>
</view>
@ -116,11 +116,25 @@
this.bgColor = 'transparent'
}
},
onLoad() {
this.getUserInfo()
},
methods:{
saveClick() {
uni.showToast({
title:'保存成功',
icon:'none'
this.$api('updateInfo',this.info, res => {
if (res.code == 200) {
uni.showToast({
title:'保存成功',
icon:'none'
})
}
})
},
getUserInfo() {
this.$api('getInfo', res => {
if (res.code == 200) {
this.info = res.result
}
})
}
}


+ 144
- 81
pages_order/orderDetails.vue View File

@ -1,35 +1,36 @@
<template>
<view class="orderDetails">
<Navbar title="订单详情" :autoBack="true" :bgColor="bgColor" leftIconSize="18px" height="100rpx" :leftIconColor="leftIconColor" :titleStyle="{color:fontColor}" />
<Navbar title="订单详情" :autoBack="true" :bgColor="bgColor" leftIconSize="18px" height="100rpx"
:leftIconColor="leftIconColor" :titleStyle="{color:fontColor}" />
<view class="content">
<view class="baseInfo cardBackground_">
<view class="statusBox">
<i></i>
<view class="status">待参加</view>
<view class="status">{{orderStatus}}</view>
</view>
<view class="info grayBg cardStyle_">
<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" alt="">
<image :src="dataInfo.image" >
</view>
<view class="right">
<view class="detailed">
<view class="title">夏日去撒野旅游计划</view>
<view class="date">2024.10.28 10:00</view>
<view class="address">成都市东丽湖露营地32号</view>
</view>
<view class="price"><text>总计</text>¥800.00</view>
<view class="detailed">
<view class="title">{{dataInfo.title}}</view>
<view class="date">{{dataInfo.startTime}}</view>
<view class="address">{{dataInfo.address}}</view>
</view>
<view class="price"><text>总计</text>¥{{dataInfo.payPrice}}</view>
</view>
</view>
</view>
<view class="orderInfo">
<view class="title">订单信息</view>
<view class="details">
<uv-cell :border="false" titleStyle="{color: 'red'}" title="版本更新" value="已是新版本"></uv-cell>
<uv-cell :border="false" titleStyle="{color: 'red'}" title="版本更新" value="已是新版本"></uv-cell>
<uv-cell :border="false" titleStyle="{color: 'red'}" title="版本更新" value="已是新版本"></uv-cell>
<uv-cell :border="false" titleStyle="{color: 'red'}" title="版本更新" value="已是新版本"></uv-cell>
<uv-cell :border="false" titleStyle="{color: 'red'}" title="订单编号" :value="showOrderId"></uv-cell>
<uv-cell :border="false" titleStyle="{color: 'red'}" title="下单时间" :value="dataInfo.createTime"></uv-cell>
<uv-cell :border="false" titleStyle="{color: 'red'}" title="订单金额" :value="'¥' + dataInfo.payPrice"></uv-cell>
<uv-cell :border="false" titleStyle="{color: 'red'}" title="订单状态" :value="orderStatus"></uv-cell>
</view>
</view>
<view class="tips">
<view class="title">旅行须知</view>
@ -41,7 +42,7 @@
</view>
</view>
</view>
<view style="padding: 65rpx 35rpx;">
<view style="padding: 65rpx 35rpx;" v-if="dataInfo.state == 1 && dataInfo.type == 0">
<uv-button :custom-style="customStyle" type="primary" shape="circle" color="#381615" text="活动签到"></uv-button>
</view>
</view>
@ -49,89 +50,151 @@
<script>
import Navbar from '@/pages/components/Navbar.vue'
import { globalMixin } from '../pages/mixins/globalMixin';
import {
globalMixin
} from '../pages/mixins/globalMixin';
export default{
mixins: [globalMixin],
components:{
Navbar
export default {
mixins: [globalMixin],
components: {
Navbar
},
data() {
return {
orderId:'',
dataInfo:null,
customStyle:{
color:'#FF5858'
}
}
},
onLoad(e) {
this.orderId = e.id
this.getorderInfo()
},
computed:{
orderStatus() {
let text = ""
let state = this.dataInfo.state
if( state == 0) {
text = '未付款'
}else if(state == 1) {
text = '待参加'
}else if(state == 2) {
text = '已完成'
}else{
text = '已取消'
}
return text
},
showOrderId() {//0 1
let id = ""
if(this.dataInfo.type == 0) {
id = this.dataInfo.activityOrderId
}else{
id = this.dataInfo.travelOrderId
}
return id
}
},
methods:{
getorderInfo() {
this.$api('orderInfo',{orderId:this.orderId},res=>{
if(res.code == 200) {
this.dataInfo = res.result
}
})
}
}
}
</script>
<style scoped lang="scss">
.details {
padding: 50rpx 40rpx;
/deep/.uv-cell {
.uv-cell__body {
padding: 0rpx;
padding-bottom: 30rpx;
}
&:last-child {
.details {
padding: 50rpx 40rpx;
/deep/.uv-cell {
.uv-cell__body {
padding-bottom: 0rpx;
padding: 0rpx;
padding-bottom: 30rpx;
}
}
.uv-cell__body__content {
.uv-cell__title-text {
color: $uni-text-color-grey!important;
&:last-child {
.uv-cell__body {
padding-bottom: 0rpx;
}
}
.uv-cell__body__content {
.uv-cell__title-text {
color: $uni-text-color-grey !important;
font-size: 28rpx
}
}
.uv-cell__value {
color: #DCDCDC !important;
font-size: 28rpx
}
}
.uv-cell__value {
color: #DCDCDC!important;
font-size: 28rpx
}
}
}
.orderDetails {
margin-top: 40rpx;
/deep/.uv-navbar__content__title {
color: #fff;
}
.content {
padding: 0 35rpx;
color: #fff;
padding-top: calc(var(--status-bar-height) + 110rpx);
.baseInfo {
.statusBox {
display: flex;
align-items: center;
padding: 33rpx 47rpx 24rpx;
i {
background: url('@/static/image/cart/U-status.png') no-repeat;
background-size: 100% 100%;
display: block;
width: 39rpx;
height: 34rpx;
margin-right: 15rpx;
}
.status {
font-size: 32rpx;
}
}
.orderDetails {
margin-top: 40rpx;
/deep/.uv-navbar__content__title {
color: #fff;
}
.orderInfo,.tips {
.title {
font-size: 29rpx;
padding-bottom: 26rpx;
margin-top: 36rpx;
.content {
padding: 0 35rpx;
color: #fff;
padding-top: calc(var(--status-bar-height) + 110rpx);
.baseInfo {
.statusBox {
display: flex;
align-items: center;
padding: 33rpx 47rpx 24rpx;
i {
background: url('@/static/image/cart/U-status.png') no-repeat;
background-size: 100% 100%;
display: block;
width: 39rpx;
height: 34rpx;
margin-right: 15rpx;
}
.status {
font-size: 32rpx;
}
}
}
.details {
background-color: $uni-color-card-background;
border-radius: 26rpx;
.orderInfo,
.tips {
.title {
font-size: 29rpx;
padding-bottom: 26rpx;
margin-top: 36rpx;
}
.details {
background-color: $uni-color-card-background;
border-radius: 26rpx;
}
}
}
.tips {
.details {
p {
color: #CCC;
font-size: 25rpx;
line-height: 50rpx;
.tips {
.details {
p {
color: #CCC;
font-size: 25rpx;
line-height: 50rpx;
}
}
}
}
}
}
</style>

+ 40
- 10
pages_zlx/zlx-form.vue View File

@ -5,15 +5,15 @@
<view class="content">
<view class="user-box">
<uv-avatar src="https://via.placeholder.com/200x200.png/2878ff" size="98rpx" shape="circle"></uv-avatar>
<uv-avatar :src="userInfo.headImage" size="98rpx" shape="circle"></uv-avatar>
<view class="user-msg">
<view class="user-msg-top">
<view>点击授权登录</view>
<view>{{userInfo.nickName}}</view>
<view class="level-box">普通用户</view>
</view>
<view class="id-box">
<text>ID:000001</text>
<text class="copy-text">复制</text>
<text>ID:{{userInfo.id}}</text>
<text class="copy-text" @click="copy">复制</text>
</view>
</view>
</view>
@ -30,19 +30,19 @@
<view class="form-box-line">
<view class="label-box">联系方式</view>
<view class="value-box">
<uv-input placeholder="请输入联系方式" v-model="nfo.phone" border="none" color="#fff"></uv-input>
<uv-input placeholder="请输入联系方式" v-model="info.phone" type="number" border="none" color="#fff"></uv-input>
</view>
</view>
<view class="form-box-line">
<view class="label-box">身份证号</view>
<view class="value-box">
<uv-input placeholder="请输入身份证号" v-model="nfo.idCard" border="none" color="#fff"></uv-input>
<uv-input placeholder="请输入身份证号" type="idcard" v-model="info.cardNo" border="none" color="#fff"></uv-input>
</view>
</view>
<view class="form-box-line">
<view class="label-box">简历附件</view>
<view class="value-box">
<uv-input placeholder="请输入真实姓名" v-model="nfo.jianli" 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>
</view>
@ -65,12 +65,13 @@
</view>
<view class="btn-box">
<uv-button text="保存" color="#381615" shape="circle" :customStyle="btnCustomStyle"></uv-button>
<uv-button text="保存" color="#381615" shape="circle" :customStyle="btnCustomStyle" @click="confrim"></uv-button>
</view>
</view>
</template>
<script>
import { mapGetters } from 'vuex'
export default{
data() {
return {
@ -81,10 +82,38 @@
info:{
name:'',
phone:'',
idCard:'',
jianli:''
cardNo:'',
image:''
}
}
},
computed: {
...mapGetters(["userInfo"]),
},
methods:{
copy() {
uni.setClipboardData({
data:this.userInfo.id,
success: () => {
uni.showToast({
title:'复制成功',
icon:'none'
})
}
})
},
confrim() {
if(!this.isAgree) return this.$Toast('请先阅读并同意《主理人协议》')
if(!this.info.name) return this.$Toast('请输入姓名')
if(!this.info.phone) return this.$Toast('请输入联系方式')
if(!this.info.cardNo) return this.$Toast('请输入身份证号')
// if(!this.info.image) return this.$Toast('')
this.$api('joinRecruit',this.info,res=>{
if(res.code == 200) {
this.$Toast('认证成功')
}
})
}
}
}
</script>
@ -101,6 +130,7 @@
width: 100%;
height: 534rpx;
position: absolute;
z-index: -1;
}
.content {
padding: 0 30rpx;


+ 6
- 6
store/store.js View File

@ -16,8 +16,8 @@ const store = new Vuex.Store({
payOrderProduct : [],//支付订单中的商品
},
getters: {
token:state => state.token,
userInfo:state => state.userInfo
userInfo:state => state.userInfo,
isLogin:state=>state.token?true:false
},
mutations: {
// 初始化配置
@ -39,7 +39,7 @@ const store = new Vuex.Store({
// })
// })
},
login(state){
login(state,commit){
uni.showLoading({
title: '登录中...'
})
@ -64,17 +64,17 @@ const store = new Vuex.Store({
if(res.code != 200){
return
}
state.userInfo = res.result.userInfo
state.token = res.result.token
uni.setStorageSync('token', res.result.token)
if(!state.userInfo.nickName || !state.userInfo.headImage){
uni.navigateTo({
url: '/pages_login/wxUserInfo'
})
}else{
uni.navigateBack(-1)
uni.switchTab({
url:'/pages/index/index'
})
}
})
}


Loading…
Cancel
Save