Browse Source

修复bug

master
前端-胡立永 9 months ago
parent
commit
9a2929d2a7
48 changed files with 934 additions and 581 deletions
  1. +1
    -1
      api/http.js
  2. +5
    -5
      api/model/index.js
  3. +8
    -1
      api/model/order.js
  4. +1
    -1
      components/base/tabbar.vue
  5. +6
    -4
      components/cart/CardList.vue
  6. +22
    -15
      components/cart/signInQrcodePopup.vue
  7. +0
    -114
      components/product/productItem.vue
  8. +0
    -112
      components/user/productList.vue
  9. +1
    -0
      components/zhaomu/zhaomu-item.vue
  10. +1
    -1
      components/zhaomu/zlx-item.vue
  11. +3
    -3
      config.js
  12. +0
    -0
      doc/bgIcon.png
  13. +0
    -0
      doc/hd-img.png
  14. +0
    -0
      doc/hdqd-img.png
  15. +0
    -0
      doc/lx-img.png
  16. +1
    -1
      mixins/configList.js
  17. +0
    -7
      pages.json
  18. +21
    -7
      pages/index/cart.vue
  19. +0
    -109
      pages/index/category.vue
  20. +9
    -5
      pages/index/center.vue
  21. +125
    -10
      pages/index/index.vue
  22. +15
    -4
      pages/index/member.vue
  23. +1
    -0
      pages_login/fuwutiaokuan.vue
  24. +2
    -2
      pages_login/wxUserInfo.vue
  25. +1
    -0
      pages_login/yinsixieyi.vue
  26. +28
    -22
      pages_my/activeList.vue
  27. +59
    -15
      pages_my/collection.vue
  28. +15
    -3
      pages_my/qiandao-list.vue
  29. BIN
      pages_my/static/choose-icon.png
  30. +6
    -6
      pages_my/travelList.vue
  31. +7
    -1
      pages_my/user-msg.vue
  32. +0
    -1
      pages_my/zlx-xieyi.vue
  33. +94
    -40
      pages_order/huodong-detail.vue
  34. +9
    -9
      pages_order/invoiceIssuance.vue
  35. +2
    -1
      pages_order/invoiceRecords.vue
  36. +86
    -16
      pages_order/lvyou-detail.vue
  37. +20
    -8
      pages_order/orderDetails.vue
  38. +17
    -12
      pages_order/orderEvaluation.vue
  39. +235
    -0
      pages_order/payOrder.vue
  40. +0
    -0
      pages_order/static/shoucang-icon.png
  41. +0
    -0
      pages_order/static/zhuanfa-icon.png
  42. BIN
      pages_zlx/static/choose-icon.png
  43. +110
    -23
      pages_zlx/zlx-form.vue
  44. BIN
      static/image/product/favorable.png
  45. BIN
      static/logo.png
  46. +19
    -19
      store/store.js
  47. +1
    -1
      uni.scss
  48. +3
    -2
      uni_modules/uv-upload/components/uv-upload/uv-upload.vue

+ 1
- 1
api/http.js View File

@ -20,7 +20,7 @@ function http(uri, data, callback, method = 'GET', showLoading, title) {
'Content-Type' : 'application/x-www-form-urlencoded'
},
success: (res) => {
console.log(res,'res')
// console.log(res,'res')
if(showLoading){
uni.hideLoading();
}


+ 5
- 5
api/model/index.js View File

@ -13,6 +13,11 @@ const api = {
url: '/index_common/getActivityPageList',
method: 'GET',
},
// 获取首页地区
getArea: {
url: '/index_common/getArea',
method: 'GET',
},
// 活动详情
activityInfo: {
url: '/index_common/getActivityInfo',
@ -38,11 +43,6 @@ const api = {
url: '/index_common/getYueDong',
method: 'GET',
},
// 悦动时刻信息
getArea: {
url: '/index_common/getArea',
method: 'GET',
},
//我主理的信息
getTwoPageList: {
url: '/index_common/getTwoPageList',


+ 8
- 1
api/model/order.js View File

@ -50,13 +50,20 @@ const api = {
showLoading : true,
},
// 创建订单
createOrder: {
createOrder : {
url: '/order_common/createOrder',
method: 'POST',
auth : true,
showLoading : true,
limit : 1000,
},
createOrderPay : {
url: '/order_common/createOrderPay',
method: 'POST',
auth : true,
showLoading : true,
limit : 1000,
},
// 收藏
collect: {
url: '/order_common/collect',


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

@ -90,7 +90,7 @@
flex-direction: row;
height: 120rpx;
padding-bottom: env(safe-area-inset-bottom);
z-index: 999999;
z-index: 9999;
bottom: 0;
left: 0;
color: #4C4C4C;


+ 6
- 4
components/cart/CardList.vue View File

@ -20,13 +20,15 @@
</view>
<view class="button-sp-area">
<button @click.stop="skip(item,4)" v-if="item.state == 0" :style="{background: '#492623;', color: '#FF3E3F',margin:'0 30rpx 0 0'}"
class="mini-btn" size="mini">立即支付</button>
<!-- <button @click.stop="skip(item,4)" v-if="item.state == 0" :style="{background: '#492623;', color: '#FF3E3F',margin:'0 30rpx 0 0'}"
class="mini-btn" size="mini">立即支付</button> -->
<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'}"
<button @click.stop="skip(item,1)"
v-if="item.state == 1 && item.type == 0"
: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 && item.isPj == 'N'" :style="{background: '#492623;', color: '#FF3E3F',margin:'0 30rpx 0 0'}"
@ -70,7 +72,7 @@
toOrderDetails(val) {
this.$emit('toOrderDetails', val)
},
getImage(){
getImage(item){
return item.image && item.image.split(',')[0]
},
}


+ 22
- 15
components/cart/signInQrcodePopup.vue View File

@ -9,7 +9,7 @@
ref="qrcode"
size="400rpx"
:hide="show"
:value="userInfo.id"></uv-qrcode>
:value="order.id"></uv-qrcode>
</view>
<!-- <view class="info">
@ -24,7 +24,8 @@
</view>
</view> -->
<view class="lingdui-box">
<view class="lingdui-box"
v-if="adminUserInfo.id">
<image class="use-img" :src="adminUserInfo.headImage" mode="aspectFill"></image>
<view class="lingdui-msg">
<view class="lingdui-msg-name">
@ -32,7 +33,10 @@
<view class="name-tip">主理人</view>
</view>
<view>
<uv-rate :count="count" v-model="adminUserInfo.num" size="23" activeColor="#FFA200"></uv-rate>
<uv-rate
:count="5"
disabled
v-model="adminUserInfo.num" size="23" activeColor="#FFA200"></uv-rate>
</view>
</view>
</view>
@ -42,23 +46,26 @@
<script>
export default {
props : {
adminUserInfo : {
default : {}
}
},
data() {
return {
show : true,
adminUserInfo : {},
order : {},
}
},
methods: {
open(){
this.show = true
setTimeout(() => {
this.show = false
}, 500)
this.$refs.popup.open()
open(orderId){
this.$api('orderInfo',{orderId},res=>{
if(res.code == 200) {
this.show = true
setTimeout(() => {
this.show = false
}, 500)
this.adminUserInfo = res.result.adminUserInfo || {}
this.order = res.result.orderDetails
this.$refs.popup.open()
}
})
},
}
}
@ -93,7 +100,7 @@
.lingdui-box {
width: calc(500rpx - 80rpx);
// margin-top: 43rpx;
height: 130rpx;
height: 160rpx;
background: #26201A;
border-radius: 60rpx;
display: flex;


+ 0
- 114
components/product/productItem.vue View File

@ -1,114 +0,0 @@
<template>
<view class="item" @click="$emit('click')">
<view class="item-image">
<image :src="item.image &&
item.image.split(',')[0]" mode="aspectFill">
</image>
</view>
<view class="info">
<view class="title">
{{ item.title }}
</view>
<view class="desc">
{{ item.sku }}
</view>
<view class="price"
v-if="[2].includes(item.type)">
<view class="">
会员价<text>{{ item.vipPrice }}</text>
</view>
<view class="">
零售价<text>{{ item.price }}</text>
</view>
</view>
<view class="price"
v-else>
<view class="">
价格<text>{{ item.price }}</text>
</view>
<view class="">
原价<text>{{ item.oldPrice }}</text>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
props: {
item: {
default: {}
}
},
data() {
return {
}
},
methods: {
}
}
</script>
<style scoped lang="scss">
.item {
padding: 10rpx 20rpx;
align-items: center;
margin-bottom: 20rpx;
display: flex;
width: 100%;
box-sizing: border-box;
border-bottom: 1rpx solid #00000012;
.item-image {
width: 140rpx;
height: 140rpx;
flex-shrink: 0;
image {
height: 100%;
width: 100%;
border-radius: 20rpx;
}
}
.info {
padding: 20rpx;
color: #555;
flex: 1;
.title {
font-size: 28rpx;
font-weight: 900;
}
.desc {
font-size: 22rpx;
color: #777;
margin-top: 10rpx;
}
.price {
text-align: right;
color: #f40;
font-size: 26rpx;
text{
font-size: 30rpx;
font-weight: 900;
}
&>view:nth-child(2){
font-size: 22rpx;
color: #777;
text{
font-size: 26rpx;
font-weight: 900;
}
}
}
}
}
</style>

+ 0
- 112
components/user/productList.vue View File

@ -1,112 +0,0 @@
<template>
<view class="list">
<view class="item"
v-for="(item, index) in 10"
@click="$utils.navigateTo('/pages_order/product/productDetail?id=123')"
:key="index">
<image
class="image"
src="https://img95.699pic.com/photo/50058/1378.jpg_wh860.jpg" mode=""></image>
<view class="info">
<view class="title">
桌布租赁
</view>
<view class="price">
<text>58</text>/
</view>
<view class="favorable">
<view class="t">
限时优惠
</view>
<view class="p">
48
</view>
</view>
<view class="num">
已售卖5000+
</view>
</view>
<view class="btn">
<uv-icon name="shopping-cart"
color="#fff"></uv-icon>
</view>
</view>
</view>
</template>
<script>
export default {
name:"productList",
data() {
return {
};
},
methods : {
},
}
</script>
<style scoped lang="scss">
.list{
display: flex;
flex-wrap: wrap;
.item{
position: relative;
width: 300rpx;
padding: 20rpx;
background-color: #fff;
border-radius: 20rpx;
margin-top: 20rpx;
&:nth-child(odd){
margin-right: 20rpx;
}
.image{
width: 300rpx;
height: 250rpx;
border-radius: 20rpx;
}
.info{
font-size: 26rpx;
.title{
font-size: 30rpx;
}
.price{
color: #D03F25;
margin-top: 6rpx;
text{
font-size: 34rpx;
font-weight: 900;
}
}
.favorable{
display: flex;
background-image: url(/static/image/product/favorable.png);
background-size: 100% 100%;
width: fit-content;
padding: 5rpx 10rpx;
font-size: 18rpx;
margin-top: 6rpx;
.p{
color: #fff;
margin-left: 10rpx;
}
}
.num{
margin-top: 6rpx;
font-size: 22rpx;
color: #888;
}
}
.btn{
position: absolute;
right: 20rpx;
bottom: 20rpx;
padding: 10rpx;
border-radius: 50%;
background-color: $uni-color;
}
}
}
</style>

+ 1
- 0
components/zhaomu/zhaomu-item.vue View File

@ -77,6 +77,7 @@
recruitId:item.id,
}
this.$api('shopUserAuth',params,res=>{
this.$emit('getData')
if(res.code == 200) {
this.$Toast('参与成功')
}


+ 1
- 1
components/zhaomu/zlx-item.vue View File

@ -11,7 +11,7 @@
<view class="address">{{item.address}}</view>
</view>
<view class="price" v-if="showBottom">
<view class="num-box">{{ item.num }}/{{ item.sum }}</view>
<view class="num-box">{{ item.doNum }}/{{ item.num }}</view>
<view class="btn-box" @click="qiandaoClick">开始签到</view>
<!-- <view class="btn-box jieshu-btn" v-else>已结束</view> -->
</view>


+ 3
- 3
config.js View File

@ -7,14 +7,14 @@ import uvUI from '@/uni_modules/uv-ui-tools'
Vue.use(uvUI);
// 当前环境
const type = 'prod'
const type = 'dev'
// 环境配置
const config = {
dev : {
// baseUrl : 'http://test-lzx.natapp1.cc/popularize-admin',
baseUrl : 'https://popularize-admin.hhlm1688.com/popularize-admin',
baseUrl : 'http://test-lzx.natapp1.cc/popularize-admin',
// baseUrl : 'https://popularize-admin.hhlm1688.com/popularize-admin',
// baseUrl : 'http://h5.xzaiyp.top/popularize-admin',
},
prod : {


static/image/cart/bgIcon.png → doc/bgIcon.png View File


static/image/home/hd-img.png → doc/hd-img.png View File


static/image/home/hdqd-img.png → doc/hdqd-img.png View File


static/image/home/lx-img.png → doc/lx-img.png View File


+ 1
- 1
mixins/configList.js View File

@ -13,7 +13,7 @@ export default {
}
},
computed: {
...mapState(['configList', 'userInfo']),
...mapState(['configList', 'userInfo', 'selectArea']),
},
// 定义全局分享
// 1.发送给朋友


+ 0
- 7
pages.json View File

@ -14,13 +14,6 @@
"enablePullDownRefresh": true
}
},
{
"path": "pages/index/category",
"style": {
"navigationBarTitleText": "",
"enablePullDownRefresh": true
}
},
{
"path": "pages/index/center",
"style": {


+ 21
- 7
pages/index/cart.vue View File

@ -13,7 +13,11 @@
<cardList :cardListData="cardListData" @btnClick="btnClick" @toOrderDetails="toOrderDetails" />
<uv-load-more :status="status" fontSize="24rpx" dashed line />
</view>
<uv-modal ref="modal" align="center" content='是否取消订单?' @confirm="confirm"></uv-modal>
<uv-modal
ref="modal"
align="center"
content='是否取消订单?'
@confirm="confirm"></uv-modal>
<signInQrcodePopup ref="signInQrcodePopup"/>
@ -52,10 +56,10 @@
id: '',
name: '全部'
},
{
id: 0,
name: '未付款'
},
// {
// id: 0,
// name: ''
// },
{
id: 1,
name: '待参加'
@ -128,10 +132,19 @@
this.orderId = item.id;
if (type == 0) {
this.$refs.modal.open();
// this.$refs.modal.open();
uni.showModal({
title: '是否取消订单?',
success : res => {
if(res.confirm){
this.confirm()
}
}
})
}
if (type == 1) {
this.$refs.signInQrcodePopup.open(item.id)
this.$refs.signInQrcodePopup.open(this.orderId)
// this.$api('signIn', {
// orderId: item.id
// }, res => {
@ -166,6 +179,7 @@
orderId: this.orderId
}, res => {
if (res.code == 200) {
this.params.pageNo = 1
this.cardListData = [];
this.getOrderPageList();
}


+ 0
- 109
pages/index/category.vue View File

@ -1,109 +0,0 @@
<template>
<view class="page">
<navbar title="商品列表" leftClick @leftClick="$utils.navigateBack" />
<view class="search">
<uv-search
placeholder="搜你喜欢的产品"
bgColor="#fff"
@search="getData"
@custom="getData"
v-model="queryParams.title"></uv-search>
</view>
<view class="category">
<uv-vtabs
:list="category"
keyName="title"
:barItemBadgeStyle="{right:'20px',top:'12px'}"
@change="change">
<uv-vtabs-item>
<view class="list">
<productItem
v-for="(item, index) in list"
:key="index"
:item="item"
@click="$utils.navigateTo('/pages_order/product/productDetail?id=' + item.id)"
/>
</view>
</uv-vtabs-item>
</uv-vtabs>
</view>
</view>
</template>
<script>
import productItem from '@/components/product/productItem.vue';
import mixinsList from '@/mixins/list.js'
import { mapState } from 'vuex'
export default {
mixins : [mixinsList],
components: {
productItem,
},
data() {
return {
mixinsListApi : 'getClassShopPageList',
}
},
computed: {
...mapState(['category'])
},
onLoad({search}) {
if(search){
this.queryParams.title = search
}
this.$store.commit('getCategoryList')
if(this.category.length > 0){
this.queryParams.classId = this.category[0].id
}
},
methods: {
change(e) {
this.queryParams.classId = this.category[e].id
this.getData()
},
}
}
</script>
<style scoped lang="scss">
.page{
/deep/ .uv-vtabs{
height: calc(100vh - 220rpx) !important;
}
/deep/ .uv-vtabs__bar{
height: calc(100vh - 220rpx) !important;
}
/deep/ .uv-vtabs__content{
height: calc(100vh - 220rpx) !important;
}
.search {
position: relative;
background: #FFFFFF;
margin: 20rpx;
border-radius: 41rpx;
padding: 10rpx 20rpx;
display: flex;
align-items: center;
/deep/ .uv-search__action {
background-color: $uni-color;
color: #FFFFFF;
padding: 10rpx 20rpx;
border-radius: 30rpx;
}
}
}
.category {
font-size: 30rpx;
color: #333;
.list{
margin: 0 auto;
width: 100%;
}
}
</style>

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

@ -30,17 +30,17 @@
<view class="box">
<!-- @click="$utils.navigateTo('/pages_my/activeList') -->
<view class="boxs"
@click="orderJump(2)">
@click="orderJump(1)">
<image src="@/static/image/center/order-1.png" mode="aspectFill" />
<view>待参加</view>
</view>
<view class="boxs"
@click="orderJump(3)">
@click="orderJump(2)">
<image src="@/static/image/center/order-2.png" mode="aspectFill" />
<view>已完成</view>
</view>
<view class="boxs"
@click="orderJump(4)">
@click="orderJump(3)">
<image src="@/static/image/center/order-3.png" mode="aspectFill" />
<view>已取消</view>
</view>
@ -52,7 +52,10 @@
</view>
<view class="user">
<view class="cell-bottom">
<view class="cell-line" v-for="(item,i) in cellList" :key="i" @click="jump(item)">
<view class="cell-line"
v-if="!item.role || userInfo.isUser == 'Y'"
v-for="(item,i) in cellList"
:key="i" @click="jump(item)">
<view class="line-l">
<image :src="item.src" mode="widthFix"></image>
<view>{{item.name}}</view>
@ -119,7 +122,8 @@
{
src:require('@/static/image/center/line-7.png'),
name:'主理人签到',
url:'/pages_my/zlx-qiandao'
url:'/pages_my/zlx-qiandao',
// role : true,
}
],
vipType : ['普通会员', '黄金会员', '渠道商'],


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

@ -4,9 +4,10 @@
<uv-navbar :title="navTitle" leftIcon=" " :titleStyle="{color:'#fff'}" :bgColor="bgColor" height="100rpx"></uv-navbar>
<view class="content">
<view class="search-box">
<view class="search-box-l">
<view class="search-box-l"
@click="$refs.popup.open()">
<image class="address-img" src="@/static/image/home/address-icon.png" mode="widthFix"></image>
<view>{{ city }}</view>
<view>{{ selectArea.city }}</view>
<image class="sjx-img" src="@/static/image/home/sjx-icon.png" mode="widthFix"></image>
</view>
<view class="search-box-r">
@ -28,7 +29,8 @@
</view>
<view class="btn-box">立即查看</view>
</view>
<image class="hdqd-img" src="@/static/image/home/hdqd-img.png" mode="widthFix"></image>
<image class="hdqd-img" :src="configList.index_sign" mode="widthFix"></image>
<!-- <image class="hdqd-img" src="@/static/image/home/hdqd-img.png" mode="widthFix"></image> -->
</view>
<view class="gird-r">
<view class="hd-box" @click="skip('activeList')">
@ -38,7 +40,8 @@
</view>
<view class="btn-box">立即查看</view>
</view>
<image class="hdqd-img" src="@/static/image/home/hd-img.png" mode="widthFix"></image>
<image class="hdqd-img" :src="configList.index_huodong" mode="widthFix"></image>
<!-- <image class="hdqd-img" src="@/static/image/home/hd-img.png" mode="widthFix"></image> -->
</view>
<view class="hd-box lx-box" @click="skip('travelList')">
<view class="left-box">
@ -47,7 +50,7 @@
</view>
<view class="btn-box">立即查看</view>
</view>
<image class="hdqd-img" src="@/static/image/home/lx-img.png" mode="widthFix"></image>
<image class="hdqd-img" :src="configList.index_lvxing" mode="widthFix"></image>
</view>
</view>
</view>
@ -77,15 +80,49 @@
</view>
<uv-popup ref="popup" mode="bottom" bgColor="">
<view class="popup-cont">
<view class="popup-title">
<view></view>
<view>选择地区</view>
<uv-icon name="close" color="#fff" @click="$refs.popup.close();"></uv-icon>
</view>
<view class="popup-list">
<scroll-view
style="height: 100%;"
scroll-y="true">
<view class="list-item"
v-for="(item,i) in areaList"
:key="i"
@click="$store.commit('setArea', i)">
<view class="item-l" :class="selectArea.id == item.id ? 'chooose-class' : ''">
<view>{{item.city}}</view>
<!-- <view class="item-l-val">{{item.price}}</view> -->
</view>
<uv-icon name="checkmark" color="#FF5858" v-if="selectArea.id == item.id"></uv-icon>
</view>
</scroll-view>
</view>
<view class="confirm-box">
<uv-button @click="clickArea"
text="确定" color="#381615"
shape="circle"
:customStyle="{
color:'#FF5858'
}"></uv-button>
</view>
</view>
</uv-popup>
<tabber select="home" />
</view>
</template>
<script>
import Position from '@/utils/position.js'
// import Position from '@/utils/position.js'
import tabber from '@/components/base/tabbar.vue'
import activeItem from '@/components/active/active-item.vue'
import { mapState } from 'vuex'
export default {
components:{
tabber,
@ -128,10 +165,24 @@
this.params.pageNo ++
this.getActivityPageList()
},
computed : {
...mapState(['areaList']),
},
onLoad() {
this.getBanner()
this.getActivityPageList()
this.getLocationDetail()
// this.getLocationDetail()
this.$store.commit('getArea', list => {
if(!this.selectArea.id){
this.$store.commit('setArea', 0)
this.$nextTick(() => {
this.getActivityPageList()
})
}
})
if(this.selectArea.id){
this.getActivityPageList()
}
},
onPullDownRefresh() {
this.params.pageNo = 1
@ -151,7 +202,10 @@
this.getActivityPageList()
},
getActivityPageList() {
this.$api('activityPageList',this.params,res=>{
this.$api('activityPageList', {
...this.params,
cityId : this.selectArea.id
}, res=>{
uni.stopPullDownRefresh()
if(res.code == 200) {
this.totalPage = res.result.pages
@ -179,16 +233,23 @@
},
skip(val) {
if(!val) {
if(!uni.getStorageSync('token')){
return this.$utils.toLogin()
}
uni.setStorageSync('currentState',1)
uni.switchTab({
url:'/pages/index/cart'
})
uni.setStorageSync('currentState',2)
}else{
uni.navigateTo({
url: `/pages_my/${val}`
})
}
},
clickArea(){
this.tabs({id : 0})
this.$refs.popup.close()
},
}
}
</script>
@ -206,8 +267,11 @@
width: 100%;
height: 534rpx;
position: absolute;
top: 0;
z-index: -1;
}
.content {
margin-top: 40rpx;
color: #fff;
padding: 0 30rpx;
padding-top: calc(var(--status-bar-height) + 110rpx);
@ -220,6 +284,7 @@
display: flex;
align-items: center;
margin-right: 30rpx;
position: relative;
view {
font-weight: 400;
font-size: 27rpx;
@ -341,6 +406,7 @@
right: 22rpx;
top: 25rpx;
width: 123rpx;
height: 100rpx;
}
}
.lx-box {
@ -379,11 +445,60 @@
right: 22rpx;
top: 25rpx;
width: 123rpx;
height: 100rpx;
}
}
}
}
}
}
.popup-cont {
width: 95%;
margin: 0 auto;
background-image: linear-gradient(to top, #000000, #331212);
height:662rpx;
border-radius: 33rpx 33rpx 0 0;
.popup-title {
display: flex;
align-items: center;
justify-content: space-between;
padding: 54rpx 52rpx;
font-weight: 500;
font-size: 29rpx;
color: #999999;
}
.popup-list {
padding: 0 50rpx;
height: 400rpx;
.list-item {
display: flex;
justify-content: space-between;
align-items: center;
height: 110rpx;
border-bottom: 1px solid #3F3535;
.item-l {
font-weight: 500;
font-size: 29rpx;
color: #CCCCCC;
display: flex;
align-items: center;
.item-l-val {
margin-left: 40rpx;
}
}
.chooose-class {
color: #FF5858;
}
}
}
.confirm-box {
padding: 0 50rpx;
margin-top: 30rpx;
.confirm-btn-box {
}
}
}
}
</style>

+ 15
- 4
pages/index/member.vue View File

@ -13,7 +13,12 @@
<view class="user-msg">
<view class="user-msg-top">
<view> {{isLogin ? userInfo.nickName : '请点击登录'}}</view>
<!-- <view class="level-box">普通用户</view> -->
<view class="level-box"
v-if="userInfo.isUser == 'Y'">主理人</view>
<view class="level-box"
v-else>普通用户</view>
</view>
<view class="id-box">
<text>{{isLogin ? 'ID:' + userInfo.id : ''}}</text>
@ -38,7 +43,10 @@
</view>
<view class="list-box">
<zhaomu-item v-for="(item,i) in ecruitList" :key="i" :item="item"></zhaomu-item>
<zhaomu-item v-for="(item,i) in ecruitList"
:key="i"
@getData="search"
:item="item"></zhaomu-item>
<uv-load-more :status="status" fontSize="24rpx" dashed line />
</view>
</view>
@ -77,15 +85,18 @@
onLoad() {
this.getList()
this.getBanner()
if(this.isLogin) {
this.$store.commit('getUserInfo')
}
},
onShow() {
},
onPageScroll(e) {
if(e.scrollTop > 50) {
this.bgColor ='#49070c'
this.bgColor ='#49070c'
}else{
this.bgColor ='transparent'
this.bgColor ='transparent'
}
},
onReachBottom() {


+ 1
- 0
pages_login/fuwutiaokuan.vue View File

@ -43,6 +43,7 @@
height: 534rpx;
position: absolute;
z-index: -1;
top: 0;
}
.content {
padding: 0 30rpx;


+ 2
- 2
pages_login/wxUserInfo.vue View File

@ -1,10 +1,10 @@
<template>
<view class="login">
<view class="logo">
<image src="@/static/image/logo-img.jpg" mode=""></image>
<image :src="configList.logo_image" mode=""></image>
</view>
<view class="title">
vtrip
{{ configList.logo_name }}
</view>
<view class="title">
申请获取你的头像昵称


+ 1
- 0
pages_login/yinsixieyi.vue View File

@ -53,6 +53,7 @@
width: 100%;
height: 534rpx;
position: absolute;
top: 0;
z-index: -1;
}
.content {


+ 28
- 22
pages_my/activeList.vue View File

@ -11,10 +11,10 @@
<uv-drop-down-item name="state" type="2" :label="dropItem('state').label" :value="dropItem('state').value">
</uv-drop-down-item>
<uv-drop-down-item name="address" type="2" :label="dropItem('address').label" :value="dropItem('address').value">
<uv-drop-down-item name="cityId" type="2" :label="dropItem('cityId').label" :value="dropItem('cityId').value">
</uv-drop-down-item>
<uv-drop-down-item name="date" type="1" :label="dropItem('date').label" :value="dropItem('date').value">
<uv-drop-down-item name="timeStr" type="1" :label="dropItem('timeStr').label" :value="dropItem('timeStr').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> -->
@ -101,29 +101,35 @@
status:"loading",
bgColor:'transparent',
// value
defaultValue: ['-1', 'all', 'allAddress'],
defaultValue: ['all', 'allAddress'],
//
result: [],
result: [
{
label: '报名中',
value: '0',
name : 'state',
}
],
// { name: 'order', label: '', value: 'new' }
activeName: 'state',
state: {
label: '全部',
value: '-1',
label: '报名中',
value: '0',
activeIndex: 0,
color: '#999',
activeColor: '#FF4546',
child: [{
label: '全部',
value: '-1'
},{
label: '报名中',
value: '0'
}, {
label: '已结束',
value: '1'
}]
child: [
{
label: '报名中',
value: '0'
},
{
label: '已结束',
value: '1'
},
]
},
date: {
timeStr: {
label: '时间',
value: 'all',
activeIndex: 0,
@ -133,10 +139,10 @@
{
label: '时间',
value: 'all'
},
}
]
},
address: {
cityId: {
label: '全部地区',
value: 'allAddress',
activeIndex: 0,
@ -196,7 +202,7 @@
this.$api('getArea', res => {
if(res.code == 200){
res.result.forEach(n => {
this.address.child.push({
this.cityId.child.push({
label: n.city,
value: n.id
})
@ -262,7 +268,7 @@
confirmCalendars(e){
this.isC = true
this.clickItem({
name: 'date',
name: 'timeStr',
label: e.fulldate,
value: e.fulldate
});
@ -270,7 +276,7 @@
closeCalendars(){
if(this.isC) return this.isC = false
this.clickItem({
name: 'date',
name: 'timeStr',
label: 'all',
value: 'all'
});


+ 59
- 15
pages_my/collection.vue View File

@ -11,22 +11,27 @@
:inactiveStyle="{color: '#999', transform: 'scale(1)'}"
itemStyle="padding-left: 15px; padding-right: 15px; height: 44px;"></uv-tabs>
</uv-sticky>
<view class="info cardStyle_" v-for="(item, index) in cardListData" :key="index">
<view class="info cardStyle_"
@click="toDetail(item)"
v-for="(item, index) in cardListData" :key="index">
<view class="left">
<image :src="item.image.split(',')[0]" alt="">
<image :src="
item[typeKey[item.type]].image &&
item[typeKey[item.type]].image.split(',')[0]" 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 class="title">{{item[typeKey[item.type]].title}}</view>
<view class="date">{{item[typeKey[item.type]].startTime}}</view>
<view class="address">{{item[typeKey[item.type]].address}}</view>
</view>
<view class="data">
<view>12/30</view>
<button class="mini-btn" size="mini" @click="toDetail(item)">立即报名</button>
<view>{{item[typeKey[item.type]].num}}/{{item[typeKey[item.type]].sum}}</view>
<view class="btn-box" v-if="item[typeKey[item.type]].state == 0">立即报名</view>
<view class="btn-box btn-box2" v-if="item[typeKey[item.type]].state == 1">已结束</view>
</view>
</view>
<i class="icon"></i>
<i class="icon" @click.stop="collect(item)"></i>
</view>
<uv-load-more :status="status" fontSize="24rpx" dashed line />
<!-- <view class="info cardStyle_">
@ -76,20 +81,21 @@
params: {
pageNo: 1,
pageSize: 10,
type:0
type:0,
},
totalPage: '',
cardListData: [],
tabList: [
{
id: 0,
name: '旅行'
name: '活动'
},
{
id: 1,
name: '活动'
name: '旅行'
},
],
typeKey : ['activityObject', 'travelObject'],
}
},
onReachBottom() {
@ -130,15 +136,36 @@
toDetail(item) {
if(item.type == 0) {//
uni.navigateTo({
url: `/pages_order/huodong-detail?activityId=${item.activityOrderId}`
url: `/pages_order/huodong-detail?activityId=${item.activityObject.id}`
})
}else{//
uni.navigateTo({
url: `/pages_order/lvyou-detail?travelId=${item.activityOrderId}`
url: `/pages_order/lvyou-detail?travelId=${item.travelObject.id}`
})
}
}
},
collect(item){
uni.showModal({
title: '确认取消收藏吗?',
success : res => {
if(!res.confirm) return
this.$api('collect', {
id : item[this.typeKey[item.type]].id,
type : item.type,
}, res => {
if(res.code == 200){
this.cardListData = []
this.params.pageNo = 1
this.collectPageList()
uni.showToast({
title: res.message,
icon: 'none'
})
}
})
}
})
},
}
}
</script>
@ -179,6 +206,23 @@
border-radius: 60rpx;
padding-bottom: 10rpx;
}
.btn-box {
width: 180rpx;
height: 54rpx;
background: url('@/static/image/member/btn-2.png') no-repeat;
background-size: 100% 100%;
font-weight: 500;
font-size: 23rpx;
color: #FFFFFF;
text-align: center;
line-height: 54rpx;
}
.btn-box2 {
background: #34312E;
color: #AFAFAF;
border-radius: 60rpx;
}
}
}
}


+ 15
- 3
pages_my/qiandao-list.vue View File

@ -15,7 +15,7 @@
</view>
<view class="choose-box">
<view class="normol-box" v-if="i == 1"></view>
<image src="@/static/image/member/choose-icon.png" mode="widthFix" v-else></image>
<image src="./static/choose-icon.png" mode="widthFix" v-else></image>
</view>
</view>
</view>
@ -59,9 +59,21 @@
},
methods:{
saoma() {
let self = this
uni.scanCode({
success(res) {
success(code) {
self.$api('signIn', {
orderId: code.result
}, res => {
if (res.code == 200) {
self.$refs.toast.show({
type: 'success',
message: res.result
})
}
self.getData()
self.getActivityInfo()
})
}
})
},


BIN
pages_my/static/choose-icon.png View File

Before After
Width: 50  |  Height: 49  |  Size: 1.3 KiB

+ 6
- 6
pages_my/travelList.vue View File

@ -23,10 +23,10 @@
:value="dropItem('state').value">
</uv-drop-down-item>
<uv-drop-down-item
name="date"
name="timeStr"
type="1"
:label="dropItem('date').label"
:value="dropItem('date').value">
:label="dropItem('timeStr').label"
:value="dropItem('timeStr').value">
</uv-drop-down-item>
</uv-drop-down>
@ -127,7 +127,7 @@
value: '1'
}]
},
date: {
timeStr: {
label: '时间',
value: 'all',
activeIndex: 0,
@ -231,7 +231,7 @@
confirmCalendars(e){
this.isC = true
this.clickItem({
name: 'date',
name: 'timeStr',
label: e.fulldate,
value: e.fulldate
});
@ -239,7 +239,7 @@
closeCalendars(){
if(this.isC) return this.isC = false
this.clickItem({
name: 'date',
name: 'timeStr',
label: 'all',
value: 'all'
});


+ 7
- 1
pages_my/user-msg.vue View File

@ -163,6 +163,12 @@
return value
},
saveClick() {
for (let k in this.info) {
if((!this.info[k] && this.info[k] != 0)
|| this.info[k] == 'null'){
this.info[k] = ''
}
}
this.$api('updateInfo',this.info, res => {
if (res.code == 200) {
uni.showToast({
@ -177,7 +183,7 @@
},
getUserInfo() {
this.$api('getInfo', res => {
if (res.code == 200) {
if (res.code == 200 && res.result) {
this.info = res.result
}
})


+ 0
- 1
pages_my/zlx-xieyi.vue View File

@ -24,7 +24,6 @@
}
},
onLoad() {
console.log(this.$store.state.configList)
this.content = this.$store.state.configList.vip_text
}
}


+ 94
- 40
pages_order/huodong-detail.vue View File

@ -24,7 +24,9 @@
<view class="name-tip">主理人</view>
</view>
<view>
<uv-rate :count="count" v-model="numValue" size="23" activeColor="#FFA200"></uv-rate>
<uv-rate :count="count"
disabled
v-model="numValue" size="23" activeColor="#FFA200"></uv-rate>
</view>
</view>
<view class="add-wx" @click="$refs.ewmpopup.open();">添加微信</view>
@ -58,20 +60,39 @@
<view>报名费用</view>
</view>
<view class="caozuo-box">
<view class="caozuo-item border-r"
@click="collect">
<image src="@/static/image/home/shoucang-icon.png" mode=""></image>
@click="collect"
v-if="!isCollect">
<image src="./static/shoucang-icon.png"
mode=""></image>
<text>收藏</text>
</view>
<view class="caozuo-item border-r isCollect"
@click="collect"
style=""
v-else>
<text>已收藏</text>
</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>
<image src="./static/zhuanfa-icon.png" mode=""></image>
<text style="line-height: initial;">转发</text>
</view>
</button>
</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"
v-if="activityDetails.state == 0"
@click="toBaoming">立即报名</view>
<view class="btn-box-2"
v-if="activityDetails.state == 1"
>已结束</view>
</view>
<uv-popup ref="popup" mode="bottom" bgColor="">
@ -105,13 +126,12 @@
</template>
<script>
import { error } from '../uni_modules/uv-ui-tools/libs/function'
export default{
data() {
return {
activityDetails:null,
adminUserInfo:null,
activityDetails:{},
adminUserInfo:{},
btnCustomStyle:{
color:'#FF5858'
},
@ -134,7 +154,8 @@ import { error } from '../uni_modules/uv-ui-tools/libs/function'
price:268
}
],
activityId:''
activityId:'',
isCollect : false,
}
},
computed:{
@ -162,20 +183,20 @@ import { error } from '../uni_modules/uv-ui-tools/libs/function'
}
//
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)
}
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) {
@ -203,12 +224,17 @@ import { error } from '../uni_modules/uv-ui-tools/libs/function'
});
},
activityInfo(activityId) {
this.$api('activityInfo',{activityId},res=> {
let data = {activityId}
if(uni.getStorageSync('token')){
data.token = uni.getStorageSync('token')
}
this.$api('activityInfo', data,res=> {
if(res.code==200) {
this.activityDetails = res.result.activityInfo
this.numValue = res.result.adminUser.num
this.ewmImg = res.result.adminUser.img
this.adminUserInfo = res.result.adminUserInfo
this.isCollect = res.result.collect
this.typeList[0].price = res.result.activityInfo.birdPrice;
this.typeList[1].price = res.result.activityInfo.personPrice;
this.typeList[2].price = res.result.activityInfo.expensivePrice;
@ -223,7 +249,8 @@ import { error } from '../uni_modules/uv-ui-tools/libs/function'
},
collect(){
this.$api('collect', {
id : this.activityId
id : this.activityId,
type : 0,
}, res => {
this.activityInfo(this.activityId)
if(res.code == 200){
@ -235,24 +262,31 @@ import { error } from '../uni_modules/uv-ui-tools/libs/function'
})
},
confirmClick(typePrice) {
this.$api('createOrder',{id:this.activityId,typePrice:typePrice,type:0},res=>{
this.$api('createOrder',{
id:this.activityId,
typePrice:typePrice,
type:0
},res=>{
if(res.code === 200) {
uni.requestPaymentWxPay(res)
.then(res => {
uni.showToast({
title: '下单成功',
icon: 'none'
})
uni.navigateTo({
url: '/pages_order/payOrder?id=' + res.result.id
})
// uni.requestPaymentWxPay(res)
// .then(res => {
// uni.showToast({
// title: '',
// icon: 'none'
// })
setTimeout(uni.switchTab, 800, {
url: '/pages/index/cart'
})
// setTimeout(uni.switchTab, 800, {
// url: '/pages/index/cart'
// })
}).catch(n => {
setTimeout(uni.switchTab, 800, {
url: '/pages/index/cart'
})
})
// }).catch(n => {
// // setTimeout(uni.switchTab, 800, {
// // url: '/pages/index/cart'
// // })
// })
}
})
}
@ -480,6 +514,13 @@ import { error } from '../uni_modules/uv-ui-tools/libs/function'
background-color: #4A3E32;
}
}
.isCollect{
color: #f40;
font-size: 28rpx;
height: 100%;
display: flex;
align-items: center;
}
}
.btn-box {
width: 252rpx;
@ -492,6 +533,19 @@ import { error } from '../uni_modules/uv-ui-tools/libs/function'
background: url(@/static/image/home/hdqd-btn.png) no-repeat;
background-size: 100% 100%;
}
.btn-box-2 {
width: 252rpx;
height: 74rpx;
font-weight: 500;
font-size: 32rpx;
text-align: center;
line-height: 74rpx;
background-size: 100% 100%;
background: #333;
color: #999;
border-radius: 45rpx;
margin-bottom: 13rpx;
}
.end-btn {
background: #666666;
border-radius: 37rpx 37rpx 37rpx 37rpx;


+ 9
- 9
pages_order/invoiceIssuance.vue View File

@ -80,7 +80,7 @@
toOrderDetails(orderId) {
this.$api('orderInfo',{orderId:this.orderId},res=>{
if(res.code == 200) {
this.activityItem = res.result
this.activityItem = res.result.orderDetails
}
})
},
@ -91,14 +91,14 @@
console.log(params);
this.$api('invoice', params, res=> {
if (res.code == 200) {
this.$refs.toast.show({
type: 'success',
message: res.result
})
uni.navigateTo({
url: '/pages_order/invoiceRecords'
})
}
this.$refs.toast.show({
type: 'success',
message: res.result
})
setTimeout(uni.redirectTo, 800, {
url: '/pages_order/invoiceRecords'
})
}
})
}


+ 2
- 1
pages_order/invoiceRecords.vue View File

@ -30,7 +30,7 @@
<view class="data">
<text>标准票</text>
<text>×1</text>
<text class="btn">已开票</text>
<text class="btn">{{ state[item.state] }}</text>
</view>
</view>
</view>
@ -51,6 +51,7 @@ export default {
data() {
return {
mixinsListApi : 'getInvoicePageList',
state : ['开票中', '已开票', '开票失败'],
};
},
components: {


+ 86
- 16
pages_order/lvyou-detail.vue View File

@ -17,7 +17,9 @@
<view class="name-tip">领队</view>
</view>
<view>
<uv-rate :count="count" v-model="travelDetails.adminUser.num" size="23" activeColor="#FFA200"></uv-rate>
<uv-rate :count="count"
disabled
v-model="travelDetails.adminUser.num" size="23" activeColor="#FFA200"></uv-rate>
</view>
</view>
<view class="add-wx" @click="$refs.ewmpopup.open()">添加微信</view>
@ -42,18 +44,35 @@
<view>报名费用</view>
</view>
<view class="caozuo-box">
<view class="caozuo-item border-r">
<image src="@/static/image/home/shoucang-icon.png" mode=""></image>
<view>收藏</view>
<view class="caozuo-item border-r"
@click="collect"
v-if="!isCollect">
<image src="./static/shoucang-icon.png"
mode=""></image>
<text>收藏</text>
</view>
<view class="caozuo-item border-r isCollect"
@click="collect"
style=""
v-else>
<text>已收藏</text>
</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>
<image src="./static/zhuanfa-icon.png" mode=""></image>
<text style="line-height: initial;">转发</text>
</view>
</button>
</view>
<view class="btn-box" @click="toBaoming">立即报名</view>
<view class="btn-box"
v-if="travelDetails.travel.state == 0"
@click="toBaoming">立即报名</view>
<view class="btn-box-2"
v-if="travelDetails.travel.state == 1"
>已结束</view>
</view>
<uv-popup ref="ewmpopup" mode="center" round="30rpx">
<view class="pop-cont">
@ -67,7 +86,7 @@
export default{
data() {
return {
travelDetails: null,
travelDetails: {},
bgColor:'transparent',
count:5,
value:3,
@ -96,6 +115,7 @@
},
],
travelId:'',
isCollect : false,
}
},
onShareAppMessage(res) {
@ -146,17 +166,41 @@
},
methods:{
toBaoming() {
this.$api('createOrder',{id:this.travelId,typePrice:1,type:1},res=>{
this.$api('createOrder',{
id : this.travelId,
typePrice : 1,
type : 1
}, res=>{
if(res.code === 200) {
uni.requestPaymentWxPay(res)
.then(res => {
uni.showToast({
title: '下单成功',
icon: 'none'
})
uni.navigateTo({
url: '/pages_order/payOrder?id=' + res.result.id
})
// uni.requestPaymentWxPay(res)
// .then(res => {
// uni.showToast({
// title: '',
// icon: 'none'
// })
}).catch(n => {
// setTimeout(uni.switchTab, 800, {
// url: '/pages/index/cart'
// })
// }).catch(n => {
// })
}
})
},
collect(){
this.$api('collect', {
id : this.travelId,
type : 1,
}, res => {
this.travelInfo(this.travelId)
if(res.code == 200){
uni.showToast({
title: res.message,
icon: 'none'
})
}
})
@ -166,9 +210,14 @@
this.content = this.travelDetails.travel[this.list[this.current].key]
},
travelInfo(travelId) {
this.$api('travelInfo',{travelId},res=> {
let data = {travelId}
if(uni.getStorageSync('token')){
data.token = uni.getStorageSync('token')
}
this.$api('travelInfo', data, res=> {
if(res.code==200) {
this.travelDetails = res.result
this.isCollect = res.result.collect
this.content = res.result.travel[this.list[this.current].key]
}
})
@ -192,6 +241,7 @@
background-size: 100% 100%;
width: 100%;
height: 534rpx;
top: 0;
position: absolute;
z-index: -1;
}
@ -372,6 +422,13 @@
background-color: #4A3E32;
}
}
.isCollect{
color: #f40;
font-size: 28rpx;
height: 100%;
display: flex;
align-items: center;
}
}
.btn-box {
width: 252rpx;
@ -384,5 +441,18 @@
background: url(@/static/image/home/hdqd-btn.png) no-repeat;
background-size: 100% 100%;
}
.btn-box-2 {
width: 252rpx;
height: 74rpx;
font-weight: 500;
font-size: 32rpx;
text-align: center;
line-height: 74rpx;
background-size: 100% 100%;
background: #333;
color: #999;
border-radius: 45rpx;
margin-bottom: 13rpx;
}
}
</style>

+ 20
- 8
pages_order/orderDetails.vue View File

@ -10,7 +10,7 @@
</view>
<view class="info grayBg cardStyle_">
<view class="left">
<image :src="dataInfo.image" >
<image :src="images" >
</view>
<view class="right">
<view class="detailed">
@ -41,7 +41,7 @@
<view class="tips" v-if="dataInfo.type == 0">
<view class="title">活动须知</view>
<view class="details">
<uv-parse :content="configList.withdrawal_instructions"></uv-parse>
<uv-parse :content="configList.huodong_text"></uv-parse>
</view>
</view>
<view class="tips" v-else-if="dataInfo.type == 1">
@ -51,14 +51,19 @@
</view>
</view>
</view>
<view style="padding: 65rpx 35rpx;" v-if="dataInfo.state == 1 && dataInfo.type == 0">
<view style="padding: 65rpx 35rpx;"
@click="open"
v-if="dataInfo.state == 1 && dataInfo.type == 0">
<uv-button :custom-style="customStyle" type="primary" shape="circle" color="#381615" text="活动签到"></uv-button>
</view>
<signInQrcodePopup ref="signInQrcodePopup"/>
</view>
</template>
<script>
import Navbar from '@/pages/components/Navbar.vue'
import signInQrcodePopup from '@/components/cart/signInQrcodePopup.vue'
import {
globalMixin
} from '../pages/mixins/globalMixin';
@ -66,12 +71,13 @@
export default {
mixins: [globalMixin],
components: {
Navbar
Navbar,
signInQrcodePopup,
},
data() {
return {
orderId:'',
dataInfo:null,
dataInfo: {},
customStyle:{
color:'#FF5858'
}
@ -104,16 +110,22 @@
id = this.dataInfo.travelOrderId
}
return id
}
},
images(){
return this.dataInfo.image && this.dataInfo.image.split(',')[0]
},
},
methods:{
getorderInfo() {
this.$api('orderInfo',{orderId:this.orderId},res=>{
if(res.code == 200) {
this.dataInfo = res.result
this.dataInfo = res.result.orderDetails
}
})
}
},
open(){
this.$refs.signInQrcodePopup.open(this.orderId)
},
}
}
</script>


+ 17
- 12
pages_order/orderEvaluation.vue View File

@ -108,18 +108,23 @@ export default {
}
this.$api('evaluate', params, res => {
if (res.code == 200) {
const params = {
type: 'success',
message: res.result
}
this.$refs.toast.show({
...params,
complete() {
uni.switchTab({
url:'/pages/index/cart'
})
}
})
// const params = {
// type: 'success',
// message: res.result
// }
// this.$refs.toast.show({
// ...params,
// complete() {
// uni.switchTab({
// url:'/pages/index/cart'
// })
// }
// })
uni.showToast({
icon: 'none',
title: res.result
})
setTimeout(uni.navigateBack, 800, -1)
}
})
}


+ 235
- 0
pages_order/payOrder.vue View File

@ -0,0 +1,235 @@
<template>
<view class="orderDetails">
<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>
<view class="info grayBg cardStyle_">
<view class="left">
<image :src="images" mode="aspectFill">
</view>
<view class="right">
<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="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>
<view class="details">
<uv-parse :content="configList.recharge_instructions"></uv-parse>
</view>
</view>
</view>
<view style="padding: 65rpx 35rpx;">
<uv-button
:custom-style="customStyle"
type="primary"
shape="circle"
color="#381615"
@click="confirmClick"
text="支付订单"></uv-button>
</view>
</view>
</template>
<script>
import Navbar from '@/pages/components/Navbar.vue'
import {
globalMixin
} from '../pages/mixins/globalMixin';
export default {
mixins: [globalMixin],
components: {
Navbar
},
data() {
return {
orderId:'',
dataInfo: {},
customStyle:{
color:'#FF5858'
},
num : 0,
}
},
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
},
images(){
return this.dataInfo.image && this.dataInfo.image.split(',')[0]
},
},
methods:{
getorderInfo() {
this.$api('orderInfo',{orderId:this.orderId},res=>{
if(res.code == 200) {
this.dataInfo = res.result.orderDetails
}
})
},
confirmClick(typePrice) {
this.$api('createOrderPay',{
id:this.orderId,
num : this.num,
},res=>{
if(res.code === 200) {
uni.requestPaymentWxPay(res)
.then(res => {
uni.showToast({
title: '支付成功',
icon: 'none'
})
setTimeout(uni.switchTab, 800, {
url: '/pages/index/cart'
})
}).catch(n => {
setTimeout(uni.switchTab, 800, {
url: '/pages/index/cart'
})
})
}
})
}
}
}
</script>
<style scoped lang="scss">
.orderDetails {
padding-bottom: 80rpx;
}
.details {
padding: 50rpx 40rpx;
/deep/.uv-cell {
.uv-cell__body {
padding: 0rpx;
padding-bottom: 30rpx;
}
&: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
}
}
}
.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;
}
}
}
.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;
}
}
}
}
}
</style>

static/image/home/shoucang-icon.png → pages_order/static/shoucang-icon.png View File


static/image/home/zhuanfa-icon.png → pages_order/static/zhuanfa-icon.png View File


BIN
pages_zlx/static/choose-icon.png View File

Before After
Width: 50  |  Height: 49  |  Size: 1.3 KiB

+ 110
- 23
pages_zlx/zlx-form.vue View File

@ -1,7 +1,12 @@
<template>
<view class="">
<view class="page">
<view class="head-box"></view>
<uv-navbar autoBack title="主理人认证" leftIconColor="#fff" bgColor="transparent" 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">
<view class="user-box">
@ -42,7 +47,17 @@
<view class="form-box-line">
<view class="label-box">简历附件</view>
<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="docx-title"
@click="openDocument(info.image)">
{{ info.image || '' }}
</view>
<view class="upload-btn"
@click="uploadFile">上传简历</view>
</view>
@ -59,16 +74,33 @@
</view>
</view>
<view class="xie-box">
<view class="title-box">个人生活照片</view>
<view class="xie-box-val">
<uv-upload
:fileList="fileList"
multiple
:maxCount="9"
width="180rpx"
height="180rpx"
multiple
@afterRead="afterRead"
@delete="deleteImage">
</uv-upload>
</view>
</view>
<view class="xie-box">
<view class="title-box">阅读并同意协议</view>
<view class="xie-box-val">
<view class="val-text">
<view>我已经阅读并同意</view>
<view class="xieyi-val">主理人协议</view>
<view class="xieyi-val"
@click="$utils.navigateTo('/pages_login/yinsixieyi?key=vip_text')">主理人协议</view>
</view>
<view class="choose-box" @click="isAgree = !isAgree">
<view class="normol-box" v-if="!isAgree"></view>
<image src="@/static/image/member/choose-icon.png" mode="widthFix" v-else></image>
<image src="./static/choose-icon.png" mode="widthFix" v-else></image>
</view>
</view>
</view>
@ -81,7 +113,6 @@
</template>
<script>
import { mapGetters } from 'vuex'
export default{
data() {
return {
@ -93,15 +124,25 @@
name:'',
phone:'',
cardNo:'',
img:''
}
img:'',
image : '',
},
bgColor : 'transparent',
fileList : [],
}
},
onPageScroll(e) {
if(e.scrollTop > 50) {
this.bgColor = '#49070c'
}else{
this.bgColor = 'transparent'
}
},
computed: {
...mapGetters(["userInfo"]),
},
onLoad() {
this.getjoinRecruitInfo()
this.$store.commit('getUserInfo')
},
methods:{
bigImg() {
@ -110,6 +151,19 @@
current:0
})
},
openDocument(Path){
if(!Path){
return
}
wx.openDocument({
filePath: Path,
showMenu: true,
success: function (res) {
// console.log('');
// util.hideLoading()
}
})
},
uploadFile() {
let that = this
uni.chooseMessageFile({
@ -120,10 +174,7 @@
console.log(res);
that.$Oss.ossUpload(res.tempFiles[0].path)
.then(url => {
console.log(url);
uni.showModal({
title: url
})
that.info.image = url
})
},
fail: (err) => {
@ -161,8 +212,15 @@
},
getjoinRecruitInfo() {
this.$api('joinRecruitInfo',res=>{
if(res.code == 200) {
if(res.code == 200 && res.result) {
this.info = res.result
this.fileList = this.info.images ?
this.info.images.split(',').map(url => {
return {
url
}
}) : []
}
})
},
@ -181,22 +239,39 @@
if(!this.isAgree) return this.$Toast('请先阅读并同意《主理人协议》')
if(!this.info.name) return this.$Toast('请输入姓名')
if(!this.info.phone) return this.$Toast('请输入联系方式')
if(!this.$utils.verificationPhone(this.info.phone)) return this.$Toast('请输入正确的联系方式')
if(!this.info.cardNo) return this.$Toast('请输入身份证号')
if(this.info.cardNo.length != 18) 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 || ''
id:this.info.id || '',
images : this.fileList.map((item) => item.url).join(",")
}
// if(!this.info.image) return this.$Toast('')
this.$api('joinRecruit',params,res=>{
if(res.code == 200) {
this.$Toast('认证成功')
this.$Toast('提交成功')
setTimeout(uni.navigateBack, 800, -1)
}
})
}
},
deleteImage(e){
this.fileList.splice(e.index, 1)
},
afterRead(e){
let self = this
e.file.forEach(file => {
self.$Oss.ossUpload(file.url).then(url => {
self.fileList.push({
url
})
})
})
},
}
}
</script>
@ -207,6 +282,8 @@
}
</style>
<style lang="scss" scoped>
.page{
}
.head-box {
background: url('@/static/image/nav-bg.png') no-repeat;
background-size: 100% 100%;
@ -311,6 +388,14 @@
color: #FF5858;
}
}
.docx-title{
font-size: 20rpx;
color: #999999;
width: 340rpx;
overflow:hidden; //
text-overflow:ellipsis; //
white-space:nowrap; //
}
}
}
}
@ -318,13 +403,13 @@
margin-top:37rpx;
.xie-box-val {
margin-top: 25rpx;
height: 116rpx;
// height: 116rpx;
background: #1B1713;
border-radius: 27rpx 27rpx 27rpx 27rpx;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 36rpx;
padding: 36rpx 36rpx;
.val-text {
font-weight: 400;
font-size: 25rpx;
@ -352,10 +437,12 @@
}
.btn-box {
position: fixed;
bottom: 70rpx;
left: 0;
right: 0;
// position: fixed;
// bottom: 70rpx;
// left: 0;
// right: 0;
padding: 0 40rpx;
margin-top: 20rpx;
height: 200rpx;
}
</style>

BIN
static/image/product/favorable.png View File

Before After
Width: 60  |  Height: 15  |  Size: 282 B

BIN
static/logo.png View File

Before After
Width: 72  |  Height: 72  |  Size: 3.9 KiB

+ 19
- 19
store/store.js View File

@ -11,9 +11,9 @@ const store = new Vuex.Store({
token:uni.getStorageSync('token') || '',
configList: {}, //配置列表
userInfo : uni.getStorageSync('userInfo') ? JSON.parse(uni.getStorageSync('userInfo')) : {}, //用户信息
riceInfo : {},//用户相关信息
category : [],//分类信息
payOrderProduct : [],//支付订单中的商品
// riceInfo : {},//用户相关信息
areaList : [],//地区列表信息
selectArea : {},//当前选择的地区
},
getters: {
userInfo:state => state.userInfo,
@ -89,15 +89,15 @@ const store = new Vuex.Store({
}
})
},
getRiceInfo(state){
api('getRiceInfo', {
token : uni.getStorageSync('token') || ''
},res => {
if(res.code == 200){
state.riceInfo = res.result
}
})
},
// getRiceInfo(state){
// api('getRiceInfo', {
// token : uni.getStorageSync('token') || ''
// },res => {
// if(res.code == 200){
// state.riceInfo = res.result
// }
// })
// },
// 退出登录
logout(state){
state.userInfo = {}
@ -105,17 +105,17 @@ const store = new Vuex.Store({
state.token = ""
uni.removeStorageSync('token')
},
// 查询分类接口
getCategoryList(state){
api('getCategoryList', res => {
// 查询地区
getArea(state, fn){
api('getArea', res => {
if(res.code == 200){
state.category = res.result
state.areaList = res.result
fn && fn(res.result)
}
})
},
// 设置支付订单中的商品
setPayOrderProduct(state, data){
state.payOrderProduct = data
setArea(state, index){
state.selectArea = state.areaList[index]
},
},
actions: {},


+ 1
- 1
uni.scss View File

@ -12,7 +12,7 @@
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量同时无需 import 这个文件
*/
/* 颜色变量 */
$uni-color: #A3D250;
$uni-color: #000;
$uni-color-background: #060504;
$uni-color-card-background: #1B1713;
$uni--bg-color-btn: #381615;


+ 3
- 2
uni_modules/uv-upload/components/uv-upload/uv-upload.vue View File

@ -466,7 +466,8 @@
justify-content: center;
width: $uv-upload-button-width;
height: $uv-upload-button-height;
background-color: $uv-upload-button-bgColor;
// background-color: $uv-upload-button-bgColor;
border: 1rpx solid #999;
border-radius: $uv-upload-button-border-radius;
margin: $uv-upload-botton-margin;
/* #ifndef APP-NVUE */
@ -478,7 +479,7 @@
margin-top: $uv-upload-text-margin-top;
}
&--hover {
background-color: $uv-upload-hover-bgColor;
// background-color: $uv-upload-hover-bgColor;
}
&--disabled {
opacity: $uv-upload-disabled-opacity;


Loading…
Cancel
Save