Browse Source

上传

master
前端-胡立永 4 months ago
parent
commit
c33ec89d44
22 changed files with 819 additions and 839 deletions
  1. +26
    -1
      api/api.js
  2. +3
    -0
      components/config/configPopup.vue
  3. +106
    -0
      components/list/activity/activityInfo.vue
  4. +12
    -191
      components/list/activity/activityItem.vue
  5. +81
    -0
      components/list/dynamic/daynamicInfo.vue
  6. +9
    -192
      components/list/dynamic/dynamicItem.vue
  7. +10
    -168
      components/list/dynamic/dynamicItemEdit.vue
  8. +134
    -0
      components/list/dynamic/userHeadItem.vue
  9. +4
    -1
      mixins/list.js
  10. +1
    -1
      pages.json
  11. +5
    -5
      pages/index/activity.vue
  12. +6
    -4
      pages/index/index.vue
  13. +116
    -77
      pages_order/activity/activityDetail.vue
  14. +10
    -7
      pages_order/auth/wxLogin.vue
  15. +33
    -3
      pages_order/car/carList.vue
  16. +145
    -5
      pages_order/car/carListDetail.vue
  17. +109
    -0
      pages_order/components/list/cart/cartItem.vue
  18. +9
    -178
      pages_order/post/postDetail.vue
  19. +0
    -6
      pages_order/scenicSpot/scenicSpotList.vue
  20. BIN
      static/image/activity/h.png
  21. BIN
      static/image/activity/price.png
  22. BIN
      static/image/activity/user.png

+ 26
- 1
api/api.js View File

@ -111,6 +111,11 @@ const config = {
url: '/city/getActivityDetail', url: '/city/getActivityDetail',
method: 'GET', method: 'GET',
}, },
//获取活动详情
getActivityDetail: {
url: '/city/getActivityDetail',
method: 'GET',
},
//获取门店信息列表(美食) //获取门店信息列表(美食)
getStorePage: { getStorePage: {
url: '/city/getStorePage', url: '/city/getStorePage',
@ -141,7 +146,7 @@ const config = {
url: '/city/getScenicDetail', url: '/city/getScenicDetail',
method: 'GET', method: 'GET',
}, },
//获取评论列表type-0帖子-1租房-2工作-3景点-4美食-5活动
//获取评论列表type-0帖子-1租房-2工作-3景点-4美食-5活动-6人找车-7车找人
getCommentPage: { getCommentPage: {
url: '/city/getCommentPage', url: '/city/getCommentPage',
method: 'GET', method: 'GET',
@ -151,6 +156,26 @@ const config = {
url: '/city/getJiangHuInfo', url: '/city/getJiangHuInfo',
method: 'GET', method: 'GET',
}, },
//获取人找车分页列表
getPeoplePage: {
url: '/city/getPeoplePage',
method: 'GET',
},
//获取人找车详情
getPeopleDetail: {
url: '/city/getPeopleDetail',
method: 'GET',
},
//获取车找人分页列表
getCatPage: {
url: '/city/getCatPage',
method: 'GET',
},
//获取车找人详情
getCatDetail: {
url: '/city/getCatDetail',
method: 'GET',
},


+ 3
- 0
components/config/configPopup.vue View File

@ -40,6 +40,9 @@
.configPopup { .configPopup {
.content{ .content{
padding: 30rpx 20rpx; padding: 30rpx 20rpx;
overflow: scroll;
height: 100%;
box-sizing: border-box;
} }
} }
</style> </style>

+ 106
- 0
components/list/activity/activityInfo.vue View File

@ -0,0 +1,106 @@
<template>
<view class="grid">
<view class="item" style="--color : #5baaff">
<!-- <image src="/static/image/activity/h.png" mode=""></image> -->
<uv-icon size="40rpx" color="#5baaff" name="tags"></uv-icon>
<view class="text">
{{ item.type }}
</view>
</view>
<view class="item"
style="--color : #f56c6c">
<!-- <image src="/static/image/activity/price.png" mode=""></image> -->
<uv-icon size="40rpx" color="#f56c6c" name="integral"></uv-icon>
<view class="text"
v-if="item.price">
{{ item.price }}/
</view>
<view class="text"
v-else>
免费
</view>
</view>
<view class="item" style="--color : #5ac725">
<uv-icon size="40rpx" color="#5ac725" name="account"></uv-icon>
<view class="text"
v-if="item.sum">
{{ item.num }}/{{ item.sum }}
</view>
<view class="text"
v-else>
{{ item.num }}/不限
</view>
</view>
<view class="addUser" @click.stop="addUser">
<uv-icon size="40rpx" color="#5baaff" name="plus-circle"></uv-icon>
加入
</view>
</view>
</template>
<script>
export default {
props: {
item: {},
},
data() {
return {
}
},
methods: {
addUser() {
uni.makePhoneCall({
phoneNumber: this.item.phone,
})
},
}
}
</script>
<style scoped lang="scss">
.grid {
display: flex;
align-items: center;
justify-content: space-between;
padding: 20rpx 0;
image {
width: 30rpx;
height: 30rpx;
}
.item {
display: flex;
align-items: center;
font-size: 26rpx;
color: var(--color);
.text {
margin-left: 4rpx;
}
}
.addUser {
display: flex;
align-items: center;
font-size: 26rpx;
color: $uni-color;
margin-left: 10rpx;
background: rgba($uni-color, 0.2);
padding: 10rpx 20rpx;
border-radius: 20rpx;
.text {
margin-left: 4rpx;
}
}
}
</style>

+ 12
- 191
components/list/activity/activityItem.vue View File

@ -1,70 +1,12 @@
<template> <template>
<view class="works" @click="$emit('click')"> <view class="works" @click="$emit('click')">
<view class="box"
:style="{'--sexcolor' : sex[item.sex].color}">
<view class="headPortraitimg">
<image :src="item.userImage"
@click.stop="previewImage([item.userImage])"
mode="aspectFill"></image>
</view>
<view class="YaoduUniversalWall">
<view class="heide">
<view class="username text-ellipsis">
{{ item.userName }}
</view>
<view class="inde"
v-if="item.sex">
<!-- 性别 -->
{{ item.sex }}
</view>
<view class="inde"
v-if="item.yearDate">
<!-- 年份 -->
{{ item.yearDate }}
</view>
<view class="inde"
v-if="item.addId">
<!-- 地址 -->
{{ item.addId }}
</view>
<view class="authentication"
v-if="item.isContent">
<!-- 个人认证 -->
{{ item.isContent }}
</view>
</view>
<view class="Times">
<view class="TimeMonth">
<!-- 10-08 -->
{{ item.createTime }}发布
</view>
<!-- <view class="Month">
12:34
</view> -->
</view>
</view>
</view>
<view class="dynamics" v-html="$utils.stringFormatHtml(item.title)">
</view>
<userHeadItem :item="item"/>
<view class="address"
v-if="item.address">
<uv-icon size="30rpx" name="map"></uv-icon>
<view class="text-ellipsis">
{{ item.address }}
</view>
</view>
<activityInfo :item="item"/>
<daynamicInfo :item="item"/>
<view class="Artworkimages">
<view class="wrokimg"
@click.stop="previewImage(images, i)"
:key="i" v-for="(img, i) in images">
<image :src="img" mode="aspectFill"></image>
</view>
</view>
<view class="bottom"> <view class="bottom">
<view class="browse"> <view class="browse">
{{ item.isBrowse }}浏览 {{ item.isBrowse }}浏览
@ -84,8 +26,16 @@
<script> <script>
import mixinsSex from '@/mixins/sex.js' import mixinsSex from '@/mixins/sex.js'
import userHeadItem from '@/components/list/dynamic/userHeadItem.vue'
import daynamicInfo from '@/components/list/dynamic/daynamicInfo.vue'
import activityInfo from '@/components/list/activity/activityInfo.vue'
export default { export default {
mixins: [mixinsSex], mixins: [mixinsSex],
components : {
userHeadItem,
daynamicInfo,
activityInfo,
},
props: { props: {
item: {}, item: {},
}, },
@ -93,24 +43,10 @@
return { return {
} }
}, },
computed : {
images(){
if(!this.item.image){
return []
}
return this.item.image.split(',')
}
},
methods: { methods: {
callPhone(){ callPhone(){
uni.makePhoneCall({ uni.makePhoneCall({
phoneNumber: this.item.phone, phoneNumber: this.item.phone,
success() {
console.log('安卓拨打成功');
},
fail() {
console.log('安卓拨打失败');
}
}) })
}, },
}, },
@ -125,121 +61,6 @@
border-radius: 20rpx; border-radius: 20rpx;
box-shadow: 0 0 6rpx 6rpx #00000011; box-shadow: 0 0 6rpx 6rpx #00000011;
.box {
display: flex;
align-items: center;
.headPortraitimg {
width: 100rpx;
height: 100rpx;
border-radius: 15rpx;
overflow: hidden;
image{
width: 100%;
height: 100%;
}
}
.YaoduUniversalWall {
padding: 0rpx 10rpx;
.username {
max-width: 200rpx;
}
.heide {
display: flex;
justify-content: center;
align-items: center;
}
.inde {
display: flex;
justify-content: center;
align-items: center;
padding: 0rpx 10rpx;
margin: 0rpx 5rpx;
font-size: 20rpx;
height: 30rpx;
color: white;
// background-color: rgb(124, 136, 242);
background-color: var(--sexcolor);
border-radius: 7rpx;
flex-shrink: 0;
}
.authentication {
display: flex;
justify-content: center;
align-items: center;
padding: 0rpx 10rpx;
margin: 0rpx 5rpx;
font-size: 20rpx;
height: 34rpx;
padding: 0rpx 10rpx;
color: white;
background-color: #ffd036;
border-radius: 7rpx;
flex-shrink: 0;
}
.Times {
display: flex;
padding: 5rpx 0rpx;
font-size: 20rpx;
margin-top: 10rpx;
.Month {
margin: 0rpx 15rpx;
}
}
}
}
.personalInformation {
display: flex;
.inde {
font-size: 25rpx;
padding: 0rpx 8rpx;
}
.authentication {
font-size: 25rpx;
}
}
.dynamics {
margin-top: 20rpx;
font-size: 28rpx;
// font-weight: bold;
// line-height: 35rpx;
letter-spacing: 3rpx;
}
.address{
font-size: 24rpx;
margin-top: 20rpx;
display: flex;
align-items: center;
}
.Artworkimages {
display: flex;
flex-wrap: wrap;
.wrokimg {
margin: 10rpx;
image {
height: 190rpx;
width: 190rpx;
border-radius: 20rpx;
}
}
}
.bottom { .bottom {
display: flex; display: flex;
margin-top: 20rpx; margin-top: 20rpx;


+ 81
- 0
components/list/dynamic/daynamicInfo.vue View File

@ -0,0 +1,81 @@
<template>
<view>
<view class="dynamics" v-html="$utils.stringFormatHtml(item.title)">
</view>
<view class="address"
@click.stop="openLocation(item.latitude, item.longitude)"
v-if="item.address">
<uv-icon size="30rpx" name="map"></uv-icon>
<view class="text-ellipsis">
{{ item.address }}
</view>
</view>
<view class="Artworkimages">
<view class="wrokimg" @click.stop="previewImage(images, i)" :key="i" v-for="(img, i) in images">
<image :src="img" mode="aspectFill"></image>
</view>
</view>
</view>
</template>
<script>
export default {
props: {
item: {},
},
computed : {
images(){
if(!this.item.image){
return []
}
return this.item.image.split(',')
}
},
data() {
return {
}
},
methods: {
}
}
</script>
<style scoped lang="scss">
.dynamics {
margin-top: 20rpx;
font-size: 28rpx;
letter-spacing: 3rpx;
}
.address {
font-size: 24rpx;
margin: 20rpx 0;
display: flex;
align-items: center;
background-color: #eee;
padding: 10rpx 20rpx;
width: fit-content;
border-radius: 40rpx;
max-width: calc(100% - 40rpx);
}
.Artworkimages {
display: flex;
flex-wrap: wrap;
.wrokimg {
margin: 10rpx;
image {
height: 190rpx;
width: 190rpx;
border-radius: 20rpx;
}
}
}
</style>

+ 9
- 192
components/list/dynamic/dynamicItem.vue View File

@ -1,70 +1,10 @@
<template> <template>
<view class="works" @click="$emit('click')"> <view class="works" @click="$emit('click')">
<view class="box"
:style="{'--sexcolor' : sex[item.sex].color}">
<view class="headPortraitimg">
<image :src="item.userImage"
@click.stop="previewImage([item.userImage])"
mode="aspectFill"></image>
</view>
<view class="YaoduUniversalWall">
<view class="heide">
<view class="username text-ellipsis">
{{ item.userName }}
</view>
<view class="inde"
v-if="item.sex">
<!-- 性别 -->
{{ item.sex }}
</view>
<view class="inde"
v-if="item.yearDate">
<!-- 年份 -->
{{ item.yearDate }}
</view>
<view class="inde"
v-if="item.addId">
<!-- 地址 -->
{{ item.addId }}
</view>
<view class="authentication"
v-if="item.isContent">
<!-- 个人认证 -->
{{ item.isContent }}
</view>
</view>
<view class="Times">
<view class="TimeMonth">
<!-- 10-08 -->
{{ item.createTime }}发布
</view>
<!-- <view class="Month">
12:34
</view> -->
</view>
</view>
</view>
<view class="dynamics" v-html="$utils.stringFormatHtml(item.title)">
</view>
<userHeadItem :item="item"/>
<view class="address"
v-if="item.address">
<uv-icon size="30rpx" name="map"></uv-icon>
<view class="text-ellipsis">
{{ item.address }}
</view>
</view>
<daynamicInfo :item="item"/>
<view class="Artworkimages">
<view class="wrokimg"
@click.stop="previewImage(images, i)"
:key="i" v-for="(img, i) in images">
<image :src="img" mode="aspectFill"></image>
</view>
</view>
<view class="bottom"> <view class="bottom">
<view class="browse"> <view class="browse">
{{ item.isBrowse }}浏览 {{ item.isBrowse }}浏览
@ -84,8 +24,14 @@
<script> <script>
import mixinsSex from '@/mixins/sex.js' import mixinsSex from '@/mixins/sex.js'
import userHeadItem from '@/components/list/dynamic/userHeadItem.vue'
import daynamicInfo from '@/components/list/dynamic/daynamicInfo.vue'
export default { export default {
mixins: [mixinsSex], mixins: [mixinsSex],
components : {
userHeadItem,
daynamicInfo,
},
props: { props: {
item: {}, item: {},
}, },
@ -93,24 +39,10 @@
return { return {
} }
}, },
computed : {
images(){
if(!this.item.image){
return []
}
return this.item.image.split(',')
}
},
methods: { methods: {
callPhone(){ callPhone(){
uni.makePhoneCall({ uni.makePhoneCall({
phoneNumber: this.item.phone,
success() {
console.log('安卓拨打成功');
},
fail() {
console.log('安卓拨打失败');
}
phoneNumber: this.item.phone
}) })
}, },
}, },
@ -125,121 +57,6 @@
border-radius: 20rpx; border-radius: 20rpx;
box-shadow: 0 0 6rpx 6rpx #00000011; box-shadow: 0 0 6rpx 6rpx #00000011;
.box {
display: flex;
align-items: center;
.headPortraitimg {
width: 100rpx;
height: 100rpx;
border-radius: 15rpx;
overflow: hidden;
image{
width: 100%;
height: 100%;
}
}
.YaoduUniversalWall {
padding: 0rpx 10rpx;
.username {
max-width: 200rpx;
}
.heide {
display: flex;
justify-content: center;
align-items: center;
}
.inde {
display: flex;
justify-content: center;
align-items: center;
padding: 0rpx 10rpx;
margin: 0rpx 5rpx;
font-size: 20rpx;
height: 30rpx;
color: white;
// background-color: rgb(124, 136, 242);
background-color: var(--sexcolor);
border-radius: 7rpx;
flex-shrink: 0;
}
.authentication {
display: flex;
justify-content: center;
align-items: center;
padding: 0rpx 10rpx;
margin: 0rpx 5rpx;
font-size: 20rpx;
height: 34rpx;
padding: 0rpx 10rpx;
color: white;
background-color: #ffd036;
border-radius: 7rpx;
flex-shrink: 0;
}
.Times {
display: flex;
padding: 5rpx 0rpx;
font-size: 20rpx;
margin-top: 10rpx;
.Month {
margin: 0rpx 15rpx;
}
}
}
}
.personalInformation {
display: flex;
.inde {
font-size: 25rpx;
padding: 0rpx 8rpx;
}
.authentication {
font-size: 25rpx;
}
}
.dynamics {
margin-top: 20rpx;
font-size: 28rpx;
// font-weight: bold;
// line-height: 35rpx;
letter-spacing: 3rpx;
}
.address{
font-size: 24rpx;
margin-top: 20rpx;
display: flex;
align-items: center;
}
.Artworkimages {
display: flex;
flex-wrap: wrap;
.wrokimg {
margin: 10rpx;
image {
height: 190rpx;
width: 190rpx;
border-radius: 20rpx;
}
}
}
.bottom { .bottom {
display: flex; display: flex;
margin-top: 20rpx; margin-top: 20rpx;


+ 10
- 168
components/list/dynamic/dynamicItemEdit.vue View File

@ -1,57 +1,9 @@
<template> <template>
<view class="works" @click="$emit('click')"> <view class="works" @click="$emit('click')">
<view class="box"
:style="{'--sexcolor' : sex[item.sex].color}">
<view class="headPortraitimg">
<image :src="item.userImage" mode="aspectFill"></image>
</view>
<view class="YaoduUniversalWall">
<view class="heide">
<view class="username text-ellipsis">
{{ item.userName }}
</view>
<view class="inde"
v-if="item.sex">
<!-- 性别 -->
{{ item.sex }}
</view>
<view class="inde"
v-if="item.yearDate">
<!-- 年份 -->
{{ item.yearDate }}
</view>
<view class="inde"
v-if="item.addId">
<!-- 地址 -->
{{ item.addId }}
</view>
<view class="authentication"
v-if="item.isContent">
<!-- 个人认证 -->
{{ item.isContent }}
</view>
</view>
<view class="Times">
<view class="TimeMonth">
<!-- 10-08 -->
{{ item.createTime }}发布
</view>
<!-- <view class="Month">
12:34
</view> -->
</view>
</view>
</view>
<view class="dynamics" v-html="$utils.stringFormatHtml(item.title)">
</view>
<view class="Artworkimages">
<view class="wrokimg"
@click.stop="previewImage(images, i)"
:key="i" v-for="(img, i) in images">
<image :src="img" mode="aspectFill"></image>
</view>
</view>
<userHeadItem :item="item"/>
<daynamicInfo :item="item"/>
<view class="bottom"> <view class="bottom">
<view class="Leavingamessage" <view class="Leavingamessage"
@click.stop="$emit('del')"> @click.stop="$emit('del')">
@ -63,8 +15,14 @@
<script> <script>
import mixinsSex from '@/mixins/sex.js' import mixinsSex from '@/mixins/sex.js'
import userHeadItem from '@/components/list/dynamic/userHeadItem.vue'
import daynamicInfo from '@/components/list/dynamic/daynamicInfo.vue'
export default { export default {
mixins: [mixinsSex], mixins: [mixinsSex],
components : {
userHeadItem,
daynamicInfo,
},
props: { props: {
item: {}, item: {},
}, },
@ -73,14 +31,6 @@
} }
}, },
computed : {
images(){
if(!this.item.image){
return []
}
return this.item.image.split(',')
}
},
methods: { methods: {
}, },
} }
@ -94,114 +44,6 @@
border-radius: 20rpx; border-radius: 20rpx;
box-shadow: 0 0 6rpx 6rpx #00000011; box-shadow: 0 0 6rpx 6rpx #00000011;
.box {
display: flex;
align-items: center;
.headPortraitimg {
width: 100rpx;
height: 100rpx;
border-radius: 15rpx;
overflow: hidden;
image{
width: 100%;
height: 100%;
}
}
.YaoduUniversalWall {
padding: 0rpx 10rpx;
.username {
max-width: 200rpx;
}
.heide {
display: flex;
justify-content: center;
align-items: center;
}
.inde {
display: flex;
justify-content: center;
align-items: center;
padding: 0rpx 10rpx;
margin: 0rpx 5rpx;
font-size: 20rpx;
height: 30rpx;
color: white;
// background-color: rgb(124, 136, 242);
background-color: var(--sexcolor);
border-radius: 7rpx;
flex-shrink: 0;
}
.authentication {
display: flex;
justify-content: center;
align-items: center;
padding: 0rpx 10rpx;
margin: 0rpx 5rpx;
font-size: 20rpx;
height: 34rpx;
padding: 0rpx 10rpx;
color: white;
background-color: #ffd036;
border-radius: 7rpx;
flex-shrink: 0;
}
.Times {
display: flex;
padding: 5rpx 0rpx;
font-size: 20rpx;
margin-top: 10rpx;
.Month {
margin: 0rpx 15rpx;
}
}
}
}
.personalInformation {
display: flex;
.inde {
font-size: 25rpx;
padding: 0rpx 8rpx;
}
.authentication {
font-size: 25rpx;
}
}
.dynamics {
margin-top: 20rpx;
font-size: 28rpx;
// font-weight: bold;
// line-height: 35rpx;
letter-spacing: 3rpx;
}
.Artworkimages {
display: flex;
flex-wrap: wrap;
.wrokimg {
margin: 10rpx;
image {
height: 190rpx;
width: 190rpx;
border-radius: 20rpx;
}
}
}
.bottom { .bottom {
display: flex; display: flex;
margin-top: 20rpx; margin-top: 20rpx;


+ 134
- 0
components/list/dynamic/userHeadItem.vue View File

@ -0,0 +1,134 @@
<template>
<view class="box" :style="{'--sexcolor' : sex[item.sex].color}">
<view class="headPortraitimg">
<image :src="item.userImage" @click.stop="previewImage([item.userImage])" mode="aspectFill"></image>
</view>
<view class="YaoduUniversalWall">
<view class="heide">
<view class="username text-ellipsis">
{{ item.userName }}
</view>
<view class="inde" v-if="item.sex">
<!-- 性别 -->
{{ item.sex }}
</view>
<view class="inde" v-if="item.yearDate">
<!-- 年份 -->
{{ item.yearDate }}
</view>
<view class="inde" v-if="item.addId">
<!-- 地址 -->
{{ item.addId }}
</view>
<view class="authentication" v-if="item.isContent">
<!-- 个人认证 -->
{{ item.isContent }}
</view>
</view>
<view class="Times">
<view class="TimeMonth">
<!-- 10-08 -->
{{ item.createTime }}发布
</view>
<!-- <view class="Month">
12:34
</view> -->
</view>
</view>
</view>
</template>
<script>
import mixinsSex from '@/mixins/sex.js'
export default {
mixins: [mixinsSex],
props: {
item: {},
},
data() {
return {
}
},
methods: {
}
}
</script>
<style scoped lang="scss">
.box {
display: flex;
align-items: center;
.headPortraitimg {
width: 100rpx;
height: 100rpx;
border-radius: 15rpx;
overflow: hidden;
image {
width: 100%;
height: 100%;
}
}
.YaoduUniversalWall {
padding: 0rpx 10rpx;
.username {
max-width: 200rpx;
}
.heide {
display: flex;
justify-content: center;
align-items: center;
}
.inde {
display: flex;
justify-content: center;
align-items: center;
padding: 0rpx 10rpx;
margin: 0rpx 5rpx;
font-size: 20rpx;
height: 30rpx;
color: white;
// background-color: rgb(124, 136, 242);
background-color: var(--sexcolor);
border-radius: 7rpx;
flex-shrink: 0;
}
.authentication {
display: flex;
justify-content: center;
align-items: center;
padding: 0rpx 10rpx;
margin: 0rpx 5rpx;
font-size: 20rpx;
height: 34rpx;
padding: 0rpx 10rpx;
color: white;
background-color: #ffd036;
border-radius: 7rpx;
flex-shrink: 0;
}
.Times {
display: flex;
padding: 5rpx 0rpx;
font-size: 20rpx;
margin-top: 10rpx;
.Month {
margin: 0rpx 15rpx;
}
}
}
}
</style>

+ 4
- 1
mixins/list.js View File

@ -26,6 +26,7 @@ export default {
}, },
total : 0, total : 0,
list : [], list : [],
onShowData : true,
} }
}, },
onPullDownRefresh() { onPullDownRefresh() {
@ -35,7 +36,9 @@ export default {
this.loadMoreData() this.loadMoreData()
}, },
onShow() { onShow() {
this.getData()
if(this.onShowData){
this.getData()
}
}, },
methods: { methods: {
getData(queryParams){ getData(queryParams){


+ 1
- 1
pages.json View File

@ -8,7 +8,7 @@
{ {
"path": "pages/index/activity", "path": "pages/index/activity",
"style": { "style": {
"navigationBarTitleText": ""
"enablePullDownRefresh" : true
} }
}, },
{ {


+ 5
- 5
pages/index/activity.vue View File

@ -4,13 +4,13 @@
<navbar title="活动"/> <navbar title="活动"/>
<view class="activityList"> <view class="activityList">
<activityList :list="list"/>
<!-- <dynamicItem
<!-- <activityList :list="list"/> -->
<activityItem
:key="index" :key="index"
v-for="(item, index) in list" v-for="(item, index) in list"
:item="item" :item="item"
@click="$utils.navigateTo('/pages_order/post/postDetail?id=' + item.id)"
/> -->
@click="$utils.navigateTo('/pages_order/activity/activityDetail?id=' + item.id)"
/>
</view> </view>
<tabber select="1" /> <tabber select="1" />
@ -43,7 +43,7 @@
<style scoped lang="scss"> <style scoped lang="scss">
.page{ .page{
.activityList{ .activityList{
padding: 0 20rpx;
// padding: 0 20rpx;
} }
} }
</style> </style>

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

@ -157,12 +157,18 @@
menu : [], menu : [],
mixinsListApi : 'getPostPage', mixinsListApi : 'getPostPage',
bannerList : [], bannerList : [],
onShowData : false,
} }
}, },
onLoad(query) { onLoad(query) {
if(query.shareId){ if(query.shareId){
uni.setStorageSync('shareId', query.shareId) uni.setStorageSync('shareId', query.shareId)
} }
this.getData()
this.getIndexHeaderInfo()
this.getClassifyList()
this.getBannerList()
this.$store.commit('getCategory')
}, },
onShareAppMessage(res) { onShareAppMessage(res) {
return { return {
@ -171,10 +177,6 @@
} }
}, },
onShow() { onShow() {
this.getIndexHeaderInfo()
this.getClassifyList()
this.getBannerList()
this.$store.commit('getCategory')
this.getUserInfo() this.getUserInfo()
}, },
onPullDownRefresh() { onPullDownRefresh() {


+ 116
- 77
pages_order/activity/activityDetail.vue View File

@ -2,59 +2,74 @@
<view class="postDetail"> <view class="postDetail">
<navbar leftClick @leftClick="$utils.navigateBack" title="详情" /> <navbar leftClick @leftClick="$utils.navigateBack" title="详情" />
<view class="swipe">
<uv-swiper :list="item.image &&
item.image.split(',')" indicator height="420rpx"></uv-swiper>
</view>
<view class="box">
<view class="title">
{{ item.title }}
</view>
<view class="createBy">
<view class="">
发布人{{ item.userName }}
<view class="works">
<userHeadItem :item="detail"/>
<!-- 活动 -->
<activityInfo :item="item"/>
<daynamicInfo :item="detail"/>
<view class="bottom">
<view class="browse">
{{ detail.isBrowse }}浏览
</view> </view>
<view class="">
发布时间{{ $dayjs(item.createTime).format('YYYY-MM-DD') }}
<view class="browse">
{{ detail.isComment }}条评论
</view>
<!-- <view class="Leavingamessage"
@click="openLocation(detail.latitude, detail.longitude)"
v-if="detail.latitude && detail.longitude">
<uv-icon size="40rpx" name="map"></uv-icon>
导航
</view> -->
<view class="phone"
v-if="detail.phone"
@click.stop="callPhone">
<image src="/static/image/home/phone.png" mode=""></image>
联系{{ ta[detail.sex] }}
</view> </view>
</view> </view>
<view class="content">
<uv-parse :content="item.content"></uv-parse>
</view>
<!-- <view class="controls">
<contentControls
:type="2"
:up="isThumbs_up"
:down="isThumbs_down"
@loadData="getData"
:detail="item"/>
</view> -->
</view> </view>
<commentList
@getData="getData"
:list="list"
:params="params"
/>
</view> </view>
</template> </template>
<script> <script>
// import contentControls from '@/components/content/contentControls.vue'
import mixinsSex from '@/mixins/sex.js'
import mixinsList from '@/mixins/list.js'
import commentList from '../components/list/comment/commentList.vue'
import userHeadItem from '@/components/list/dynamic/userHeadItem.vue'
import daynamicInfo from '@/components/list/dynamic/daynamicInfo.vue'
import activityInfo from '@/components/list/activity/activityInfo.vue'
export default { export default {
mixins: [mixinsSex, mixinsList],
components: { components: {
// contentControls
commentList,
userHeadItem,
daynamicInfo,
activityInfo,
}, },
data() { data() {
return { return {
list: [
],
item: {},
isThumbs_up: undefined,//
isThumbs_down: undefined,//
detail: {},
mixinsListApi : 'getCommentPage',
params : {
type : '5',
orderId : '',
name : '',
},
id : 0, id : 0,
} }
}, },
@ -62,29 +77,52 @@
// this.$route.query // this.$route.query
console.log(options) console.log(options)
this.id = options.id this.id = options.id
},
onPullDownRefresh(){
this.getData()
},
onShow() {
this.getData()
this.queryParams.type = this.params.type
this.queryParams.orderId = options.id
this.params.orderId = options.id
}, },
onShareAppMessage(res) { onShareAppMessage(res) {
return { return {
title: this.detail.title, title: this.detail.title,
path: '/pages_order/activity/activityDetail?id=' + this.id
path: '/pages_order/post/postDetail?id=' + this.id
} }
}, },
onPullDownRefresh() {
this.getDetail()
},
onShow() {
this.getDetail()
},
onShareAppMessage(res) {
// return {
// title: this.item.title,
// desc: this.item.content && this.item.content.slice(0, 30),
// path: '/pages/publish/postDetail?id=' + this.id
// }
},
methods: { methods: {
getData() {
getDetail() {
this.$api('getActivityDetail', { this.$api('getActivityDetail', {
id : this.id
id: this.id
}, res => { }, res => {
uni.stopPullDownRefresh() uni.stopPullDownRefresh()
if (res.code == 200) { if (res.code == 200) {
this.item = res.result
// this.isThumbs_up = res.result.isThumbs_up//
// this.isThumbs_down = res.result.isThumbs_down//
this.params.name = res.result.userName
this.detail = res.result
}
})
},
callPhone(){
uni.makePhoneCall({
phoneNumber: this.detail.phone,
success() {
console.log('安卓拨打成功');
},
fail() {
console.log('安卓拨打失败');
} }
}) })
}, },
@ -94,40 +132,41 @@
<style lang="scss" scoped> <style lang="scss" scoped>
.postDetail { .postDetail {
.box {
padding: 20rpx;
width: 100vw;
.title {
font-size: 34rpx;
font-weight: 600;
color: #000;
}
padding-bottom: env(safe-area-inset-bottom);
.works {
background-color: #fff;
padding: 40rpx;
border-radius: 20rpx;
.createBy {
.bottom {
display: flex; display: flex;
margin-top: auto;
margin-bottom: 10rpx;
font-size: 24rpx;
margin-top: 20rpx; margin-top: 20rpx;
color: #555;
font-size: 24rpx;
&>view {
.browse {
margin: 0rpx 30rpx;
color: rgb(132, 132, 132);
}
.Leavingamessage {
margin-left: auto;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center;
padding-right: 20rpx;
} }
}
.controls {
margin-top: 30rpx;
}
.content {
margin-top: 30rpx;
font-size: 28rpx;
.phone{
background-color: rgba($uni-color, 0.2);
color: $uni-color;
padding: 8rpx 16rpx;
border-radius: 10rpx;
margin-left: auto;
image{
width: 20rpx;
height: 20rpx;
}
}
} }
} }
} }
</style> </style>

+ 10
- 7
pages_order/auth/wxLogin.vue View File

@ -16,9 +16,10 @@
微信授权登录 微信授权登录
</view> </view>
</view> </view>
<!-- <view class="btn b2">
使用短信验证登录
</view> -->
<view class="btn b2"
@click="qux">
取消登录
</view>
@ -60,7 +61,6 @@
} }
}, },
methods: { methods: {
wxLogin(){ wxLogin(){
if(!this.checkboxValue.length){ if(!this.checkboxValue.length){
return uni.showToast({ return uni.showToast({
@ -70,12 +70,15 @@
} }
this.$store.commit('login') this.$store.commit('login')
}, },
// //
openConfigDetail(key){ openConfigDetail(key){
this.$refs.popup.open(key) this.$refs.popup.open(key)
}
},
qux(){
uni.reLaunch({
url: '/pages/index/index'
})
},
} }
} }
</script> </script>


+ 33
- 3
pages_order/car/carList.vue View File

@ -1,22 +1,52 @@
<template> <template>
<view class="page pageList"> <view class="page pageList">
<navbar title="找车" leftClick @leftClick="$utils.navigateBack" />
<view
style="padding: 10rpx 30rpx;">
<uv-search
bgColor="#fff"
@search="getData"
@custom="getData"
searchIconSize="30rpx"
placeholder="请输入搜索关键字..."
v-model="queryParams.title"></uv-search>
</view>
<view class="list">
<cartItem
:key="index"
v-for="(item, index) in list"
:item="item"
@click="$utils.navigateTo('/pages_order/car/carListDetail?id=' + item.id)"
/>
</view>
</view> </view>
</template> </template>
<script> <script>
import mixinsList from '@/mixins/list.js'
import cartItem from '../components/list/cart/cartItem.vue'
export default { export default {
mixins: [mixinsList],
components : {
cartItem,
},
data() { data() {
return { return {
mixinsListApi : 'getCatPage',
} }
}, },
methods: { methods: {
} }
} }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.page{
.list{
padding: 0 20rpx;
}
}
</style> </style>

+ 145
- 5
pages_order/car/carListDetail.vue View File

@ -1,22 +1,162 @@
<template> <template>
<view class="page pageList">
<view class="postDetail">
<navbar leftClick @leftClick="$utils.navigateBack" title="详情" />
<view class="swipe">
<uv-swiper
:list="[detail.imageTitle]"
indicator
height="420rpx"></uv-swiper>
</view>
<view class="box">
<view class="title">
{{ detail.title }}
</view>
<view class="createBy">
{{ detail.num }}余座
{{ detail.startTime }}出发
</view>
<view class="createBy">
{{ detail.startAddress }}
{{ detail.endAddress }}
</view>
<view class="createBy">
<view class="">
{{ $dayjs(detail.createTime).format('YYYY-MM-DD') }}
</view>
<view class="phone"
v-if="detail.phone"
@click.stop="callPhone">
<image src="/static/image/home/phone.png" mode=""></image>
联系司机
</view>
</view>
</view>
<commentList
@getData="getData"
:list="list"
:params="params"
/>
</view> </view>
</template> </template>
<script> <script>
import mixinsList from '@/mixins/list.js'
import commentList from '../components/list/comment/commentList.vue'
export default { export default {
mixins: [mixinsList],
components: {
commentList
},
data() { data() {
return { return {
detail: {},
mixinsListApi : 'getCommentPage',
params : {
type : '7',
orderId : '',
name : '',
},
id : 0,
} }
}, },
methods: {
onLoad(options) {
// this.$route.query
console.log(options)
this.id = options.id
this.queryParams.type = this.params.type
this.queryParams.orderId = options.id
this.params.orderId = options.id
},
onPullDownRefresh(){
this.getDetail()
},
onShow() {
this.getDetail()
},
onShareAppMessage(res) {
return {
title: this.detail.title,
path: '/pages_order/scenicSpot/scenicSpotDetail?id=' + this.id
}
},
methods: {
getDetail() {
this.$api('getCatDetail', {
id : this.id
}, res => {
uni.stopPullDownRefresh()
if (res.code == 200) {
this.params.title = res.result.title
this.detail = res.result
}
})
},
} }
} }
</script> </script>
<style scoped lang="scss">
<style lang="scss" scoped>
.postDetail {
.box {
padding: 20rpx;
width: 100vw;
background-color: #fff;
box-sizing: border-box;
.title {
font-size: 34rpx;
font-weight: 600;
color: #000;
}
.createBy {
display: flex;
margin-top: auto;
margin-bottom: 10rpx;
font-size: 24rpx;
margin-top: 20rpx;
color: #555;
&>view {
display: flex;
align-items: center;
justify-content: center;
padding-right: 20rpx;
}
}
</style>
.controls {
margin-top: 30rpx;
}
.content {
margin-top: 30rpx;
font-size: 28rpx;
}
}
}
.phone{
background-color: rgba($uni-color, 0.2);
color: $uni-color;
padding: 8rpx 16rpx;
border-radius: 10rpx;
margin-left: auto;
image{
width: 20rpx;
height: 20rpx;
}
}
</style>

+ 109
- 0
pages_order/components/list/cart/cartItem.vue View File

@ -0,0 +1,109 @@
<template>
<view class="item" @click="$emit('click')">
<image :src="item.imageTitle"
@click.stop="previewImage([item.imageTitle])"
mode="aspectFill"></image>
<view class="text">
<view class="title">
{{ item.title }}
</view>
<view class="createBy">
{{ item.num }}余座
{{ item.startTime }}出发
</view>
<view class="createBy">
{{ item.startAddress }}
{{ item.endAddress }}
</view>
<view class="createBy">
<view class="">
{{ $dayjs(item.createTime).format('YYYY-MM-DD') }}
</view>
<view class="phone"
v-if="item.phone"
@click.stop="callPhone">
<image src="/static/image/home/phone.png" mode=""></image>
联系司机
</view>
</view>
</view>
</view>
</template>
<script>
import mixinsSex from '@/mixins/sex.js'
export default {
mixins: [mixinsSex],
props: ['item'],
data() {
return {
};
},
methods: {
callPhone(){
uni.makePhoneCall({
phoneNumber: this.item.phone
})
},
},
}
</script>
<style lang="scss" scoped>
.item {
height: 220rpx;
width: 100%;
background-color: #fff;
overflow: hidden;
border-radius: 10rpx;
color: #777;
display: flex;
font-size: 24rpx;
margin: 30rpx 0;
image {
width: 50%;
height: 100%;
}
.text {
display: flex;
flex-direction: column;
padding: 16rpx;
width: 50%;
.title {
font-size: 30rpx;
font-weight: 600;
color: #000;
}
.createBy {
display: flex;
margin-top: auto;
line-height: 40rpx;
justify-content: space-between;
&>view {
display: flex;
align-items: center;
justify-content: center;
}
.phone{
background-color: rgba($uni-color, 0.2);
color: $uni-color;
padding: 8rpx 16rpx;
border-radius: 10rpx;
margin-left: auto;
image{
width: 20rpx;
height: 20rpx;
}
}
}
}
}
</style>

+ 9
- 178
pages_order/post/postDetail.vue View File

@ -2,65 +2,12 @@
<view class="postDetail"> <view class="postDetail">
<navbar leftClick @leftClick="$utils.navigateBack" title="详情" /> <navbar leftClick @leftClick="$utils.navigateBack" title="详情" />
<view class="works" @click="$emit('click')">
<view class="box" :style="{'--sexcolor' : sex[detail.sex].color}">
<view class="headPortraitimg">
<image :src="detail.userImage"
@click.stop="previewImage([item.userImage])"
mode="aspectFill"></image>
</view>
<view class="YaoduUniversalWall">
<view class="heide">
<view class="username text-ellipsis">
{{ detail.userName }}
</view>
<view class="inde" v-if="detail.sex">
<!-- 性别 -->
{{ detail.sex }}
</view>
<view class="inde" v-if="detail.yearDate">
<!-- 年份 -->
{{ detail.yearDate }}
</view>
<view class="inde" v-if="detail.addId">
<!-- 地址 -->
{{ detail.addId }}
</view>
<view class="authentication" v-if="detail.isContent">
<!-- 个人认证 -->
{{ detail.isContent }}
</view>
</view>
<view class="Times">
<view class="TimeMonth">
<!-- 10-08 -->
{{ detail.createTime }}发布
</view>
<!-- <view class="Month">
12:34
</view> -->
</view>
</view>
</view>
<view class="dynamics" v-html="$utils.stringFormatHtml(detail.title)">
</view>
<view class="works">
<view class="address"
@click="openLocation(detail.latitude, detail.longitude)"
v-if="detail.address">
<uv-icon size="30rpx" name="map"></uv-icon>
<view class="text-ellipsis">
{{ detail.address }}
</view>
</view>
<userHeadItem :item="detail"/>
<daynamicInfo :item="detail"/>
<view class="Artworkimages">
<view class="wrokimg" @click.stop="previewImage(detail.image, i)" :key="i"
v-for="(img, i) in detail.image">
<image :src="img" mode="aspectFill"></image>
</view>
</view>
<view class="bottom"> <view class="bottom">
<view class="browse"> <view class="browse">
{{ detail.isBrowse }}浏览 {{ detail.isBrowse }}浏览
@ -100,10 +47,14 @@
import mixinsSex from '@/mixins/sex.js' import mixinsSex from '@/mixins/sex.js'
import mixinsList from '@/mixins/list.js' import mixinsList from '@/mixins/list.js'
import commentList from '../components/list/comment/commentList.vue' import commentList from '../components/list/comment/commentList.vue'
import userHeadItem from '@/components/list/dynamic/userHeadItem.vue'
import daynamicInfo from '@/components/list/dynamic/daynamicInfo.vue'
export default { export default {
mixins: [mixinsSex, mixinsList], mixins: [mixinsSex, mixinsList],
components: { components: {
commentList
commentList,
userHeadItem,
daynamicInfo,
}, },
data() { data() {
return { return {
@ -154,10 +105,6 @@
if (res.code == 200) { if (res.code == 200) {
this.params.name = res.result.userName this.params.name = res.result.userName
res.result.image =
res.result.image ?
res.result.image.split(',') : [],
this.detail = res.result this.detail = res.result
} }
@ -186,122 +133,6 @@
padding: 40rpx; padding: 40rpx;
border-radius: 20rpx; border-radius: 20rpx;
.box {
display: flex;
align-items: center;
.headPortraitimg {
width: 100rpx;
height: 100rpx;
border-radius: 15rpx;
overflow: hidden;
image {
width: 100%;
height: 100%;
}
}
.YaoduUniversalWall {
padding: 0rpx 10rpx;
.username {
max-width: 200rpx;
}
.heide {
display: flex;
justify-content: center;
align-items: center;
}
.inde {
display: flex;
justify-content: center;
align-items: center;
padding: 0rpx 10rpx;
margin: 0rpx 5rpx;
font-size: 20rpx;
height: 30rpx;
color: white;
// background-color: rgb(124, 136, 242);
background-color: var(--sexcolor);
border-radius: 7rpx;
flex-shrink: 0;
}
.authentication {
display: flex;
justify-content: center;
align-items: center;
padding: 0rpx 10rpx;
margin: 0rpx 5rpx;
font-size: 20rpx;
height: 34rpx;
padding: 0rpx 10rpx;
color: white;
background-color: #ffd036;
border-radius: 7rpx;
flex-shrink: 0;
}
.Times {
display: flex;
padding: 5rpx 0rpx;
font-size: 20rpx;
margin-top: 10rpx;
.Month {
margin: 0rpx 15rpx;
}
}
}
}
.personalInformation {
display: flex;
.inde {
font-size: 25rpx;
padding: 0rpx 8rpx;
}
.authentication {
font-size: 25rpx;
}
}
.dynamics {
margin-top: 20rpx;
font-size: 28rpx;
// font-weight: bold;
// line-height: 35rpx;
letter-spacing: 3rpx;
}
.address{
font-size: 24rpx;
margin-top: 20rpx;
display: flex;
align-items: center;
}
.Artworkimages {
display: flex;
flex-wrap: wrap;
.wrokimg {
margin: 10rpx;
image {
height: 190rpx;
width: 190rpx;
border-radius: 20rpx;
}
}
}
.bottom { .bottom {
display: flex; display: flex;
margin-top: 20rpx; margin-top: 20rpx;


+ 0
- 6
pages_order/scenicSpot/scenicSpotList.vue View File

@ -39,12 +39,6 @@
} }
}, },
methods: { methods: {
getDataThen(list){
// list.forEach(n => {
// n.detailsImage = n.detailsImage ? n.detailsImage.split(',') : []
// n.details = n.details ? n.details.split(',') : []
// })
},
} }
} }
</script> </script>


BIN
static/image/activity/h.png View File

Before After
Width: 55  |  Height: 59  |  Size: 2.4 KiB

BIN
static/image/activity/price.png View File

Before After
Width: 52  |  Height: 52  |  Size: 2.6 KiB

BIN
static/image/activity/user.png View File

Before After
Width: 73  |  Height: 59  |  Size: 2.7 KiB

Loading…
Cancel
Save