2.27(我的收藏

This commit is contained in:
Hong
2024-02-27 19:23:41 +08:00
parent e40bf8ad52
commit e9e2254099
10 changed files with 568 additions and 236 deletions

View File

@@ -25,6 +25,20 @@ export function getProductInfoDealer(id) {
'method': 'get',
})
}
//添加租车商品收藏 /api/front/car/rental/product/collect/add/{id}
export function getProductInfoCollectAdd(id) {
return request({
'url': `/api/front/car/rental/product/collect/add/${id}`,
'method': 'get',
})
}
//取消租车商品收藏 /api/front/car/rental/product/collect/add/{id}
export function getProductInfoCollectCancel(id) {
return request({
'url': `/api/front/car/rental/product/collect/cancel/${id}`,
'method': 'get',
})
}
//买车详情
export function getProductInfo(params) {
return request({

View File

@@ -111,6 +111,30 @@ export function cardUserRecord(data) {
params
})
}
//租车商品收藏列表 /api/front/car/rental/product/collect/product/list
export function getCollectProductList(params) {
return request({
url: '/api/front/car/rental/product/collect/product/list',
method: 'get',
params
})
}
// 买车商品收藏列表 /api/front/car/seller/product/collect/product/list
export function getSellerCollectProductList(params) {
return request({
url: '/api/front/car/seller/product/collect/product/list',
method: 'get',
params
})
}
//动态,问答,咨询 收藏列表 /api/front/community/note/my/collect/list
export function getCollectList(params) {
return request({
url: '/api/front/community/note/my/collect/list',
method: 'get',
params
})
}
// 核销券(卡券)列表
export function getFrontCardList(params) {
return request({

View File

@@ -57,6 +57,14 @@ export function getIntegralOrderProduct(productId) {
method: 'post',
})
}
//积分商品批量取消收藏 /api/front/integral/product/reply/cancel/product
export function getIntegralCancelProduct(data) {
return request({
url: `/api/front/integral/product/reply/cancel/product`,
method: 'post',
data
})
}
//邀请海报 /api/front/user/invite/poster/info
export function getInviteInfo() {
return request({

View File

@@ -11,7 +11,7 @@ export const tabsList1 = [{
name: '问答',
value: 4
}, {
name: '咨询',
name: '资讯',
value: 5
}, {
name: '积分',

View File

@@ -54,7 +54,24 @@
<view class="r_txt"> 关注 </view>
</view>
</view>
<view class="con_txt"> {{ detailObj.content }} </view>
<view class="con_txt">
<view v-if="type==2">
<!-- #ifdef MP-WEIXIN -->
<image class="ads" style="width: 44rpx;height: 44rpx;top: 12rpx;left: 0;"
:src="`${config.aliyunOssUrl}/static/images/app/mine/ask.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image class="ads mr-2" style="width: 44rpx;height: 44rpx;top: 12rpx;left: 0;"
src="@/static/images/app/mine/ask.png" mode="">
</image>
<!-- #endif -->
<text class="questions-and-answers-text-color">
<text class="" v-for="(topic) in detailObj.topicList" :key="topic.id"> #{{topic.name}}#
</text>
</text>
</view>
{{ detailObj.content }}
</view>
<view class="image-list-box " v-if="detaImage.length">
<view v-if="detaImage.length==1">
<view v-for="(itemImage,imageIndex) in detaImage" :key="imageIndex">
@@ -383,7 +400,7 @@
<view class="pop_comment">
<view class="title_view">
<u-icon name="arrow-left" size="19" color="#999999" @click="showComment=false"></u-icon>
<view class="title"> {{ replyListLength }} 条评论 </view>
<view class="title"> {{ replyListLength }} 条评论 </view>
<!-- #ifdef MP-WEIXIN -->
<image @click="showComment=false" class="r_img"
src="https://qicheoss.oss-cn-shanghai.aliyuncs.com/static/images/app/icon/report_close.png"
@@ -414,7 +431,7 @@
</view>
<view class="con_txt" @click="replyToComments(itemObj,1)"> {{ itemObj.content }} </view>
<view class="con_info">
<view class="info_l"> {{ itemObj.diffDays }} 浙江杭州 </view>
<view class="info_l"> {{ itemObj.diffDays }} 浙江杭州 </view>
<view class="info_r">
<view @click.stop="likeNo(itemObj)">
<!-- #ifdef APP -->
@@ -611,7 +628,9 @@
noteId: null,
replyId: 0,
userId: null
}
},
//type==2 问答,话题
type: 1,
}
},
@@ -619,6 +638,7 @@
this.noteId = query.id
this.getDetail(query.id)
this.authorId = query.authorId
this.type = query.type
},
onShow() {
this.getUserInfo1()
@@ -632,8 +652,7 @@
imageUrl: this.detaImage.length ? this.detaImage[0] : '',
summary: this.detailObj.content ? this.detailObj.content : '分享图片'
}
shareApi(type, shareData).then(res => {
})
shareApi(type, shareData).then(res => {})
},
//查看
examineFn(urlList, index) {
@@ -695,18 +714,22 @@
})
},
// 时间处理
formatTime(createTime){
formatTime(createTime) {
const date = new Date(createTime)
const now = new Date()
const inter = parseInt((now.getTime() - date.getTime())/1000/60)
const inter = parseInt((now.getTime() - date.getTime()) / 1000 / 60)
// console.log(inter,'时间间隔----分钟');
if (inter==0){ return '刚刚'}
else if (inter<60){ return inter.toString()+'分钟前' }
else if (inter<60*24){ return parseInt(inter/60).toString()+'小时前' }
else if (now.getFullYear()==date.getFullYear()){
return (date.getMonth()+1).toString()+"-"+date.getDate().toString()
}else{
return date.getFullYear().toString().substring(2,3)+"-"+(date.getMonth()+1).toString()+"-"+date.getDate().toString()
if (inter == 0) {
return '刚刚'
} else if (inter < 60) {
return inter.toString() + '分钟前'
} else if (inter < 60 * 24) {
return parseInt(inter / 60).toString() + '小时前'
} else if (now.getFullYear() == date.getFullYear()) {
return (date.getMonth() + 1).toString() + "-" + date.getDate().toString()
} else {
return date.getFullYear().toString().substring(2, 3) + "-" + (date.getMonth() + 1).toString() + "-" +
date.getDate().toString()
}
},
// 点击关注
@@ -742,8 +765,8 @@
item.replyList.forEach(el => {
el.diffDays = this.formatTime(el.createTime)
})
this.itemObj=item
this.replyListLength=item.replyList.length
this.itemObj = item
this.replyListLength = item.replyList.length
},
// 去举报页
toReportPages() {
@@ -771,15 +794,15 @@
whoBtn(num) {
if (num == 1) {
uni.showToast({
title:'已复制链接',
icon:'none'
title: '已复制链接',
icon: 'none'
})
} else {
noteNoteDislike(this.detailObj.authorId).then(res=>{
noteNoteDislike(this.detailObj.authorId).then(res => {
console.log(res);
uni.showToast({
title:'已设置不喜欢',
icon:'none',
title: '已设置不喜欢',
icon: 'none',
success: (resToa) => {
uni.navigateBack()
// uni.switchTab({
@@ -788,7 +811,7 @@
}
})
})
}
},
// 全部/楼主/最新/最热
@@ -884,12 +907,12 @@
// 回复评论
replyToComments(ele, num) {
// console.log(ele,'数据数据',num,'数字1或2');
if(num==2){
this.placeholderReply='回复'+' '+ ele.nickname +' ' + ':'
if (num == 2) {
this.placeholderReply = '回复' + ' ' + ele.nickname + ' ' + ':'
}
this.showReply=true
this.replyAddData.replyId=ele.id
this.replyAddData.userId=this.myInfo.id
this.showReply = true
this.replyAddData.replyId = ele.id
this.replyAddData.userId = this.myInfo.id
this.getDetail(this.noteId)
},
// 发送按钮
@@ -899,10 +922,10 @@
this.$refs.paging.reload()
})
this.showReply = false
this.placeholderReply='友善评论、文明发言'
this.placeholderReply = '友善评论、文明发言'
},
resetData() {
this.placeholderReply='友善评论、文明发言'
this.placeholderReply = '友善评论、文明发言'
this.replyAddData = {
authorUserId: null,
content: '',
@@ -911,9 +934,9 @@
userId: null
}
},
closeBtn(){
this.showReply=false
this.placeholderReply='友善评论、文明发言'
closeBtn() {
this.showReply = false
this.placeholderReply = '友善评论、文明发言'
},
goBack() {
uni.navigateBack()
@@ -1608,4 +1631,7 @@
left: 50%;
transform: translate(-50%, -50%);
}
.questions-and-answers-text-color {
color: #13AFA8;
}
</style>

View File

@@ -40,9 +40,10 @@
:list="indexTabList"
:scrollable="false"
@click="tabClick"></u-tabs> -->
<view :class="['tab-item', actTabType==item.value && 'tab-item-active']" v-for="(item,index) in indexTabList" @click="tabClick(item)">
<view :class="['tab-item', actTabType==item.value && 'tab-item-active']"
v-for="(item,index) in indexTabList" @click="tabClick(item)">
{{item.name}}
</view>
</view>
</view>
</view>
<!-- </u-sticky> -->
@@ -61,7 +62,8 @@
@click="brannerClick"></u-swiper>
</view>
<view class="list-box">
<z-paging use-page-scroll ref="paging" v-model="dataList" @query="queryList" :hide-empty-view="actTabType == 5">
<z-paging use-page-scroll ref="paging" v-model="dataList" @query="queryList"
:hide-empty-view="actTabType == 5">
<!-- <block v-if="actTabType == 5">
<view class="user-list flex f-a-i" v-for="(item,index) in dataList" :key="index">
<view class="user-list-image">
@@ -79,7 +81,7 @@
</view>
</block> -->
<block>
<view class="user-item border-bottom border-eee" v-for="(item,index) in dataList" :key="index" >
<view class="user-item border-bottom border-eee" v-for="(item,index) in dataList" :key="index">
<view class="user-info flex align-center justify-between">
<view class="left flex align-center" @click.stop="linkPersonalCenter(item.authorId)">
<image :src="item.authorAvatar" mode=""></image>
@@ -107,22 +109,28 @@
<view class="image-list-box ">
<view v-show="item.image.length==1">
<view v-for="(itemImage,imageIndex) in item.image" :key="imageIndex">
<image class="image-one" :src="itemImage" mode="cover" @click.stop="examineFn(item.image,imageIndex)"></image>
<image class="image-one" :src="itemImage" mode="cover"
@click.stop="examineFn(item.image,imageIndex)"></image>
</view>
</view>
<view v-show="item.image.length==2" style="width: 100%;" class="flex justify-between">
<view v-for="(itemImage,imageIndex) in item.image" :key="imageIndex">
<image class="image-two" :src="itemImage" mode="cover" @click.stop="examineFn(item.image,imageIndex)"></image>
<image class="image-two" :src="itemImage" mode="cover"
@click.stop="examineFn(item.image,imageIndex)"></image>
</view>
</view>
<view v-show="item.image.length==4" style="width: 100%;" class="flex justify-between flex-wrap">
<view v-show="item.image.length==4" style="width: 100%;"
class="flex justify-between flex-wrap">
<view v-for="(itemImage,imageIndex) in item.image" :key="imageIndex">
<image class="image-two" :src="itemImage" mode="cover" @click.stop="examineFn(item.image,imageIndex)"></image>
<image class="image-two" :src="itemImage" mode="cover"
@click.stop="examineFn(item.image,imageIndex)"></image>
</view>
</view>
<view v-show="item.image.length>2&&item.image.length!=4" class="flex-wrap flex justify-between">
<view v-show="item.image.length>2&&item.image.length!=4"
class="flex-wrap flex justify-between">
<view v-for="(itemImage,imageIndex) in item.image" :key="imageIndex">
<image class="image-three" :src="itemImage" mode="cover" @click.stop="examineFn(item.image,imageIndex)"></image>
<image class="image-three" :src="itemImage" mode="cover"
@click.stop="examineFn(item.image,imageIndex)"></image>
</view>
<view v-for="(a,b) in (item.image.length%3-1)<0?0:(item.image.length%3-1)">
<view class="image-three"></view>
@@ -131,7 +139,7 @@
</view>
<view class="faceback-box flex align-center justify-between">
<view class="" @click.stop="delCommFn(item, index)">
<text class="red" v-if="userInfo.id == item.authorId" >删除</text>
<text class="red" v-if="userInfo.id == item.authorId">删除</text>
</view>
<view class="flex align-center justify-end">
<view class="faceback-box-item flex align-center" @click.stop="shareFn(item)">
@@ -150,7 +158,8 @@
<image src="@/static/images/app/mine/information.png"></image>
<!-- #endif -->
<!-- #ifdef MP-WEIXIN -->
<image :src="`${config.aliyunOssUrl}/static/images/app/mine/information.png`"></image>
<image :src="`${config.aliyunOssUrl}/static/images/app/mine/information.png`">
</image>
<!-- #endif -->
{{item.replyNum}}
</view>
@@ -180,30 +189,29 @@
关注后可以再这里查看对方的最新动态
</view>
<view class="body-box">
<view class="body-list flex align-center">
<view class="body-item flex-column align-center rel" v-for="(item2,index2) in noAttentionList" :key="index2">
<view class="close-icon abs">
<image src="@/static/images/icon/x_1.png" mode=""></image>
</view>
<view class="avatar-icon">
<image v-if="!item2.avatar" src="@/static/images/logo/logo_tab.png" mode=""></image>
<image v-else :src="item2.avatar" mode=""></image>
</view>
<view class="pic-list flex align-center justify-around">
{{item2.nickname}}
<!-- <image src="" mode="" v-for="(item3,index3) in 3" :key="index3"></image> -->
</view>
<view class="btns">
<u-button @click="attentionFn(item2,index2)"
:customStyle="{width: '204rpx', height: '66rpx', fontSize: '30rpx'}"
:icon="`/static/images/app/icon/${!item2.isConcerned ? 'plus-1.png': 'dui-1.png'}`"
fontSize="8"
plain
shape="circle"
:color="!item2.isConcerned? '#13AFA8': '#999'">{{!item2.isConcerned ? '关注' : '已关注'}}</u-button>
</view>
<view class="body-list flex align-center">
<view class="body-item flex-column align-center rel"
v-for="(item2,index2) in noAttentionList" :key="index2">
<view class="close-icon abs">
<image src="@/static/images/icon/x_1.png" mode=""></image>
</view>
<view class="avatar-icon">
<image v-if="!item2.avatar" src="@/static/images/logo/logo_tab.png" mode=""></image>
<image v-else :src="item2.avatar" mode=""></image>
</view>
<view class="pic-list flex align-center justify-around">
{{item2.nickname}}
<!-- <image src="" mode="" v-for="(item3,index3) in 3" :key="index3"></image> -->
</view>
<view class="btns">
<u-button @click="attentionFn(item2,index2)"
:customStyle="{width: '204rpx', height: '66rpx', fontSize: '30rpx'}"
:icon="`/static/images/app/icon/${!item2.isConcerned ? 'plus-1.png': 'dui-1.png'}`"
fontSize="8" plain shape="circle"
:color="!item2.isConcerned? '#13AFA8': '#999'">{{!item2.isConcerned ? '关注' : '已关注'}}</u-button>
</view>
</view>
</view>
</view>
</view>
</z-paging>
@@ -214,7 +222,9 @@
</template>
<script>
import {shareApi} from "@/utils/index.js"
import {
shareApi
} from "@/utils/index.js"
import promptBox from "@/components/prompt-box/prompt-box.vue"
import {
indexTabList
@@ -240,7 +250,7 @@
data() {
return {
//未关注列表
noAttentionList:[],
noAttentionList: [],
showElement: true, // 初始化为显示状态
prevScrollTop: 0, // 记录上一次滚动的位置
current: 0,
@@ -281,21 +291,20 @@
let userInfo = uni.getStorageSync('userInfo')
this.unreadNum = userInfo.unreadNum
// console.log(userInfo.unreadNum);
if(this.$refs.paging){
if (this.$refs.paging) {
this.$refs.paging.reload()
}
},
methods: {
//分享
shareFn(item){
let shareData={
href:'http',
type:item.image.length?0:1,
imageUrl:item.image.length?item.image[0]:'',
summary:item.content?item.content:'分享图片'
}
shareApi('WXSceneSession',shareData).then(res=>{
})
shareFn(item) {
let shareData = {
href: 'http',
type: item.image.length ? 0 : 1,
imageUrl: item.image.length ? item.image[0] : '',
summary: item.content ? item.content : '分享图片'
}
shareApi('WXSceneSession', shareData).then(res => {})
},
//三个点
reportFn(item) {
@@ -308,14 +317,13 @@
})
}
},
fail: (res) => {
}
fail: (res) => {}
});
},
//回关
attentionFn(item,index){
this.noAttentionList[index].isConcerned=!this.noAttentionList[index].isConcerned
concernedAuthor(item.id).then(res=>{
attentionFn(item, index) {
this.noAttentionList[index].isConcerned = !this.noAttentionList[index].isConcerned
concernedAuthor(item.id).then(res => {
// this.$refs.paging.refresh();
})
},
@@ -347,17 +355,17 @@
uni.hideLoading()
})
},
toDetailPages(id){
toDetailPages(id) {
uni.navigateTo({
url:`/pages/driver/index/detail?id=${id}`
url: `/pages/driver/index/detail?id=${id}`
})
},
//查看
examineFn(urlList,index){
examineFn(urlList, index) {
uni.previewImage({
urls:urlList,
current:index,
loop:true
urls: urlList,
current: index,
loop: true
})
},
linkPersonalCenter(id) {
@@ -408,10 +416,10 @@
}).then(res => {
// console.log(res.data.list);
res.data.list.forEach(item => {
if(item.image!=''){
if (item.image != '') {
item.image = item.image.split(",")
}else{
item.image=[]
} else {
item.image = []
}
const date1 = new Date();
const date2 = new Date(item.createTime);
@@ -431,10 +439,10 @@
limit
}).then(res => {
res.data.list.forEach(item => {
if(item.image!=''){
if (item.image != '') {
item.image = item.image.split(",")
}else{
item.image=[]
} else {
item.image = []
}
const date1 = new Date();
const date2 = new Date(item.createTime);
@@ -453,7 +461,7 @@
limit
}).then(res => {
console.log(res.data.list);
this.noAttentionList=res.data.list
this.noAttentionList = res.data.list
}).catch(err => {
this.$refs.paging.complete(false)
})
@@ -463,10 +471,10 @@
limit
}).then(res => {
res.data.list.forEach(item => {
if(item.image!=''){
if (item.image != '') {
item.image = item.image.split(",")
}else{
item.image=[]
} else {
item.image = []
}
const date1 = new Date();
const date2 = new Date(item.createTime);
@@ -549,11 +557,13 @@
.tab-box {
padding: 0 32rpx;
width: 750rpx;
.tab-item {
font-size: 34rpx;
line-height: 110rpx;
color: #666;
}
.tab-item-active {
font-size: 36rpx;
color: #111;
@@ -641,18 +651,19 @@
}
}
}
.user-list {
width: 686rpx;
margin-left: 24rpx;
margin-top: 24rpx;
.user-list-title {
margin-left: 24rpx;
width: 548rpx;
height: 144rpx;
line-height: 144rpx;
border-bottom: 1rpx solid #F4F4F4;
.attention-type {
width: 150rpx;
height: 64rpx;
@@ -662,7 +673,7 @@
text-align: center;
line-height: 64rpx;
}
.attention-followed {
width: 150rpx;
height: 64rpx;
@@ -671,18 +682,20 @@
border-radius: 200rpx 200rpx 200rpx 200rpx;
text-align: center;
line-height: 64rpx;
}
}
image {
width: 96rpx;
height: 96rpx;
border-radius: 50%;
}
}
.no-body {
padding-top: 100rpx;
.text-1 {
margin-top: 32rpx;
font-size: 40rpx;
@@ -690,49 +703,59 @@
color: #333333;
line-height: 56rpx;
}
.text-2 {
margin-top: 8rpx;
font-size: 24rpx;
color: #666666;
line-height: 42rpx;
}
.body-box {
margin-top: 96rpx;
width: 688rpx;
overflow-x: auto;
}
.body-list {
padding: 0 32rpx;
.body-item {
margin-right: 32rpx;
padding: 88rpx 32rpx 52rpx 32rpx;
width: 352rpx;
height: 514rpx;
border-radius: 8rpx;
box-shadow: 0rpx 0rpx 33rpx 0rpx rgba(0,0,0,0.05);
box-shadow: 0rpx 0rpx 33rpx 0rpx rgba(0, 0, 0, 0.05);
border: 2rpx solid #EDEDED;
.close-icon {
top: 16rpx;
right: 16rpx;
image {
width: 32rpx;
height: 32rpx;
}
}
.avatar-icon {
width: 140rpx;
height: 140rpx;
border-radius: 50%;
// background-color: #13AFA8;
image{
image {
width: 140rpx;
height: 140rpx;
border-radius: 50%;
}
}
.pic-list {
margin-top: 52rpx;
width: 288rpx;
image {
width: 80rpx;
height: 80rpx;
@@ -740,11 +763,13 @@
background-color: #13AFA8;
}
}
.btns {
margin-top: 32rpx;
}
}
}
image {
width: 174rpx;
height: 120rpx;

View File

@@ -23,51 +23,74 @@
@click="clickTabFn(tab)" :key="index">{{tab.name}}</view>
</view>
</view>
<view v-if="actTab==10">
<view v-if="actTab==1">
<view class="list-cont f-a-i" v-for="(item,index) in dataList" :key="index">
<view class="checkmark-circle-class" v-if="actFlaf">
<!-- <view class="checkmark-circle-class" v-if="actFlaf">
<view v-if="index%2==0" class="circle"></view>
<u-icon v-else name="checkmark-circle-fill" color="#13AFA8" size="16"></u-icon>
</view>
<view :class="['f-a-i','car-rental',actFlaf?'act-flaf':'']">
<image src="@/static/favicon.ico" mode=""></image>
</view> -->
<view :class="['f-a-i','car-rental']" v-if="item.carInformation">
<image :src="item.carInformation.image" mode=""></image>
<view class="car-rental-cont">
<view class="car-rental-cont-name">汽车标题</view>
<view class="car-rental-cont-auto-age">车龄 1 | 租期 1</view>
<view class="car-rental-cont-price">198.00~3500<text
class="car-rental-cont-price-tit">/</text></view>
</view>
</view>
</view>
</view>
<view v-else-if="actTab==20">
<view class="list-cont f-a-i" v-for="(item,index) in dataList" :key="index">
<view class="checkmark-circle-class" v-if="actFlaf">
<view v-if="index%2==0" class="circle"></view>
<u-icon v-else name="checkmark-circle-fill" color="#13AFA8" size="16"></u-icon>
</view>
<view :class="['f-a-i','car-rental',actFlaf?'act-flaf':'']">
<image src="@/static/favicon.ico" mode=""></image>
<view class="car-rental-cont">
<view class="car-rental-cont-name">汽车标题</view>
<view class="f-a-i">
<text class="car-rental-cont-total-payment">全款价格</text>
<view class="car-rental-cont-price" style="margin-left: 8rpx;">35</view>
<view class="car-rental-cont-name flex justify-between">
<view>{{item.carInformation.title}}</view>
<view class="flex justify-between align-center" style="height: 40rpx;">
<u--text :lines="1" size="14" :text="item.productName"></u--text>
<view v-show="actFlaf" class="cancel-collect"
@click.stop="cancelCollectFn(item.carInformation,1)">
取消收藏
</view>
</view>
</view>
<view class="car-rental-cont-auto-age">车龄 {{item.carInformation.carAge}} | 租期
{{item.carInformation.monthRent}}个月
</view>
<view class="car-rental-cont-price">
{{item.carInformation.minGuidePrice}}~{{item.carInformation.maxGuidePrice}}<text
class="car-rental-cont-price-tit">/</text>
</view>
</view>
</view>
</view>
</view>
<view v-else-if="actTab==30">
<view v-else-if="actTab==2">
<view class="list-cont f-a-i" v-for="(item,index) in dataList" :key="index">
<!-- <view class="checkmark-circle-class" v-if="actFlaf">
<view v-if="index%2==0" class="circle"></view>
<u-icon v-else name="checkmark-circle-fill" color="#13AFA8" size="16"></u-icon>
</view> -->
<view :class="['f-a-i','car-rental']" v-if="item.carSellerProduct">
<image :src="item.carSellerProduct.mainImage" mode=""></image>
<view class="car-rental-cont">
<view class="car-rental-cont-name flex justify-between">
<view>{{item.carSellerProduct.title}}</view>
<view class="flex justify-between align-center" style="height: 40rpx;">
<u--text :lines="1" size="14" :text="item.productName"></u--text>
<view v-show="actFlaf" class="cancel-collect"
@click.stop="cancelCollectFn(item.carSellerProduct,2)">
取消收藏
</view>
</view>
</view>
<view class="f-a-i">
<text class="car-rental-cont-total-payment">全款价格</text>
<view class="car-rental-cont-price" style="margin-left: 8rpx;">
{{item.carSellerProduct.fullPrice}}
</view>
</view>
</view>
</view>
</view>
</view>
<view v-else-if="actTab==3">
<view class="list-cont-dynamic" v-for="(item,index) in dataList" :key="index">
<view class="dynamic-condition">
<view class="dynamic-condition" @click.stop="toDetailPages(item)">
<view class="dynamic-condition-header f-jcsb f-a-i">
<view class="f-a-i">
<image src="@/static/images/tabbar/mine.png" mode=""></image>
<image :src="item.authorAvatar" mode=""></image>
<view class="dynamic-condition-header-l">
<view>用户昵称</view>
<view>IP 杭州 天前</view>
<view>{{item.authorName}}</view>
<view>IP {{item.city}} {{item.diffDays}}天前</view>
</view>
</view>
<view v-if="actFlaf" class="cancel-collect">取消收藏</view>
@@ -77,65 +100,87 @@
</view>
<view style="margin: 24rpx 0;width: 100%;">
<u--text :lines="2" bold size="14"
text="关于uView的取名来由首字母u来自于uni-app首字母,uni-app是基VuejsVue和View(延伸为UI、视图之意)同音同时view组件uni-app中最础最重要的故取名uView表达源于uni-app和Vue之意同时在此也对它示感谢。"></u--text>
:text="item.content"></u--text>
</view>
<view>
<image style="width: 100%;height: 386rpx;" src="@/static/favicon.ico"
mode=""></image>
<view class="image-list-box" v-if="item.image">
<view v-show="item.image.length==1">
<view v-for="(itemImage,imageIndex) in item.image" :key="imageIndex">
<image class="image-one" :src="itemImage" mode="cover"
@click.stop="examineFn(item.image,imageIndex)"></image>
</view>
</view>
<view v-show="item.image.length==2" style="width: 100%;" class="flex justify-between">
<view v-for="(itemImage,imageIndex) in item.image" :key="imageIndex">
<image class="image-two" :src="itemImage" mode="cover"
@click.stop="examineFn(item.image,imageIndex)"></image>
</view>
</view>
<view v-show="item.image.length==4" style="width: 100%;"
class="flex justify-between flex-wrap">
<view v-for="(itemImage,imageIndex) in item.image" :key="imageIndex">
<image class="image-two" :src="itemImage" mode="cover"
@click.stop="examineFn(item.image,imageIndex)"></image>
</view>
</view>
<view v-show="item.image.length>2&&item.image.length!=4"
class="flex-wrap flex justify-between">
<view v-for="(itemImage,imageIndex) in item.image" :key="imageIndex">
<image class="image-three" :src="itemImage" mode="cover"
@click.stop="examineFn(item.image,imageIndex)"></image>
</view>
<view v-for="(a,b) in (item.image.length%3-1)<0?0:(item.image.length%3-1)">
<view class="image-three"></view>
</view>
</view>
</view>
<view class="f-jce dynamic-condition-operate">
<view class="f-a-i">
<!-- #ifdef MP-WEIXIN -->
<image class="dynamic-condition-operate-image"
:src="`${config.aliyunOssUrl}/static/images/app/mine/share.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image class="dynamic-condition-operate-image" src="@/static/images/app/mine/share.png"
mode="">
</image>
<!-- #endif -->
<view class="dynamic-condition-operate-num">165</view>
</view>
<view class="f-a-i">
<!-- #ifdef MP-WEIXIN -->
<image class="dynamic-condition-operate-image"
:src="`${config.aliyunOssUrl}/static/images/app/mine/information.png`" mode="">
</image>
<!-- #endif -->
<!-- #ifdef APP -->
<image class="dynamic-condition-operate-image"
src="@/static/images/app/mine/information.png" mode=""></image>
<!-- #endif -->
<view class="dynamic-condition-operate-num">165</view>
</view>
<view class="f-a-i">
<!-- #ifdef MP-WEIXIN -->
<image v-if="index%2==0" class="dynamic-condition-operate-image"
:src="`${config.aliyunOssUrl}/static/images/app/mine/like.png`" mode=""></image>
<image v-else class="dynamic-condition-operate-image"
:src="`${config.aliyunOssUrl}/static/images/app/mine/like_act.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image v-if="index%2==0" class="dynamic-condition-operate-image"
src="@/static/images/app/mine/like.png" mode="">
</image>
<image v-else class="dynamic-condition-operate-image"
src="@/static/images/app/mine/like_act.png" mode=""></image>
<!-- #endif -->
<view class="dynamic-condition-operate-num">165</view>
<view class="faceback-box flex align-center justify-end">
<view class="flex align-center justify-end">
<view class="faceback-box-item flex align-center" @click.stop="shareFn(item)">
<!-- #ifdef APP -->
<image src="@/static/images/app/mine/share.png"></image>
<!-- #endif -->
<!-- #ifdef MP-WEIXIN -->
<image :src="`${config.aliyunOssUrl}/static/images/app/mine/share.png`">
</image>
<!-- #endif -->
{{item.shareNum}}
</view>
<view class="faceback-box-item flex align-center" @click.stop="toDetailPages(item)">
<!-- #ifdef APP -->
<image src="@/static/images/app/mine/information.png"></image>
<!-- #endif -->
<!-- #ifdef MP-WEIXIN -->
<image :src="`${config.aliyunOssUrl}/static/images/app/mine/information.png`">
</image>
<!-- #endif -->
{{item.replyNum}}
</view>
<view class="faceback-box-item flex align-center" @click="Like(item)">
<!-- #ifdef APP -->
<image v-show="!item.userIsLike" src="@/static/images/app/mine/like.png"></image>
<image v-show="item.userIsLike" src="@/static/images/app/icon/like.png"></image>
<!-- #endif -->
<!-- #ifdef MP-WEIXIN -->
<image v-show="!item.userIsLike"
:src="`${config.aliyunOssUrl}/static/images/app/mine/like.png`" />
<image v-show="item.userIsLike"
:src="`${config.aliyunOssUrl}/static/images/app/icon/like.png`"></image>
<!-- #endif -->
{{item.likeNum}}
</view>
</view>
</view>
</view>
</view>
</view>
<view v-else-if="actTab==40">
<view v-else-if="actTab==4">
<view class="list-cont-dynamic" v-for="(item,index) in dataList" :key="index">
<view class="questions-and-answers">
<view class="questions-and-answers" @click.stop="toDetailPages(item)">
<view class="dynamic-condition-header f-jcsb f-a-i">
<view class="f-a-i">
<image src="@/static/images/tabbar/mine.png" mode=""></image>
<image :src="item.authorAvatar" mode=""></image>
<view class="dynamic-condition-header-l">
<view>用户昵称</view>
<view>{{item.authorName}}</view>
</view>
</view>
<view v-if="actFlaf" class="cancel-collect">取消收藏</view>
@@ -154,14 +199,45 @@
src="@/static/images/app/mine/ask.png" mode="">
</image>
<!-- #endif -->
<text class="questions-and-answers-text-color">
#驾享新能源#
<text class="questions-and-answers-text-color" v-for="(topic,index) in item.topicList" :key="index">
#{{topic.name}}#
</text>
关于uView的取名来由首字母u来自于uni-app首字母,uni-app是基VuejsVue和View(延伸为UI视图之意)同音同时view组件uni-app中最础最重要的故取名uView表达源于uni-app和Vue之意同时在此也对它示感谢
{{item.content}}
</view>
</view>
<view class="image-list-box" v-if="item.image">
<view v-show="item.image.length==1">
<view v-for="(itemImage,imageIndex) in item.image" :key="imageIndex">
<image class="image-one" :src="itemImage" mode="cover"
@click.stop="examineFn(item.image,imageIndex)"></image>
</view>
</view>
<view v-show="item.image.length==2" style="width: 100%;" class="flex justify-between">
<view v-for="(itemImage,imageIndex) in item.image" :key="imageIndex">
<image class="image-two" :src="itemImage" mode="cover"
@click.stop="examineFn(item.image,imageIndex)"></image>
</view>
</view>
<view v-show="item.image.length==4" style="width: 100%;"
class="flex justify-between flex-wrap">
<view v-for="(itemImage,imageIndex) in item.image" :key="imageIndex">
<image class="image-two" :src="itemImage" mode="cover"
@click.stop="examineFn(item.image,imageIndex)"></image>
</view>
</view>
<view v-show="item.image.length>2&&item.image.length!=4"
class="flex-wrap flex justify-between">
<view v-for="(itemImage,imageIndex) in item.image" :key="imageIndex">
<image class="image-three" :src="itemImage" mode="cover"
@click.stop="examineFn(item.image,imageIndex)"></image>
</view>
<view v-for="(a,b) in (item.image.length%3-1)<0?0:(item.image.length%3-1)">
<view class="image-three"></view>
</view>
</view>
</view>
<view class="f-jcsb f-a-i dynamic-condition-operate">
<view>IP 杭州 1天前</view>
<view>IP {{item.city}} {{item.diffDays}}天前</view>
<view class="f-jce ">
<view class="f-a-i">
<!-- #ifdef MP-WEIXIN -->
@@ -173,7 +249,7 @@
<image class="dynamic-condition-operate-image"
src="@/static/images/app/mine/information.png" mode=""></image>
<!-- #endif -->
<view class="dynamic-condition-operate-num">165</view>
<view class="dynamic-condition-operate-num">{{item.replyNum}}</view>
</view>
<view class="f-a-i">
<!-- #ifdef MP-WEIXIN -->
@@ -190,7 +266,7 @@
<image v-else class="dynamic-condition-operate-image"
src="@/static/images/app/mine/like_act.png" mode=""></image>
<!-- #endif -->
<view class="dynamic-condition-operate-num">165</view>
<view class="dynamic-condition-operate-num">{{item.likeNum}}</view>
</view>
</view>
</view>
@@ -230,8 +306,7 @@
<view class="integral-cont">
<view class="flex justify-between align-center" style="height: 40rpx;">
<u--text :lines="1" size="14" :text="item.productName"></u--text>
<view v-show="actFlaf" class="cancel-collect"
@click.stop="cancelCollectFn(item,6)">取消收藏
<view v-show="actFlaf" class="cancel-collect" @click.stop="cancelCollectFn(item,6)">取消收藏
</view>
</view>
<view class="f-jcsb integral-specification">
@@ -263,17 +338,19 @@
<u-icon v-else name="checkmark-circle-fill" color="#13AFA8" size="16"></u-icon>
</view> -->
<!-- ,actFlaf?'act-flaf':'' -->
<view :class="['f-a-i','integral']">
<view :class="['f-a-i','integral']" v-if="item.cardProduct">
<image :src="item.cardProduct.image" mode=""></image>
<view class="integral-cont">
<view class="flex justify-between align-center" style="height: 40rpx;">
<u--text :lines="1" size="14" :text="item.cardProduct.name"></u--text>
<view class="f-28">
{{item.cardProduct.name?item.cardProduct.name:'--'}}
</view>
<view v-show="actFlaf" class="cancel-collect"
@click.stop="cancelCollectFn(item.cardProduct,7)">取消收藏
</view>
</view>
<view class="f-jcsb integral-specification">
<text class="">{{item.cardProduct.content}}</text>
<view class="f-jcsb integral-specification flex align-center">
<u--text :lines="2" size="14" :text="item.cardProduct.intro"></u--text>
<view class="">X 1</view>
</view>
<view class="f-a-i">
@@ -304,16 +381,25 @@
</template>
<script>
import {shareApi} from "@/utils/index.js"
import promptBox from "@/components/prompt-box/prompt-box.vue"
import {
getProductInfoCollectCancel,
carCancelProduct
} from "@/api/showroom/showroom.js"
import {
unCollectAPI
} from "@/api/serve/coupons.js"
import {
getCardCollectList,
getCardReplyList
getCardReplyList,
getCollectProductList,
getSellerCollectProductList,
getCollectList
} from "@/api/user/index.js"
import {
getIntegralOrderProduct
getIntegralOrderProduct,
getIntegralCancelProduct
} from "@/api/welfare/welfare.js"
import {
tabsList1
@@ -338,6 +424,37 @@
},
methods: {
// 详情页
toDetailPages(item) {
if(this.actTab == 7){
uni.navigateTo({
url: `/pages/serve/coupons/cou_detail?id=${item.id}`
})
}else{
uni.navigateTo({
url:`/pages/driver/index/detail?id=${item.id}`
})
}
},
//分享
shareFn(item){
let shareData={
href:'http',
type:item.image.length?0:1,
imageUrl:item.image.length?item.image[0]:'',
summary:item.content?item.content:'分享图片'
}
shareApi('WXSceneSession',shareData).then(res=>{
})
},
//查看
examineFn(urlList,index){
uni.previewImage({
urls:urlList,
current:index,
loop:true
})
},
//点击管理
managementFn() {
this.actFlaf = !this.actFlaf
@@ -348,26 +465,58 @@
this.$refs.paging.refresh();
},
//收藏列表
queryList(pageNo, pageSize) {
async queryList(pageNo, pageSize) {
// 此处请求仅为演示,请替换为自己项目中的请求
let obj = {
page: pageNo,
limit: pageSize,
}
console.log(this.actTab, '类型');
if (this.actTab == 7) {
getCardCollectList(obj).then(res => {
await getCardCollectList(obj).then(res => {
console.log(res.data);
this.$refs.paging.complete(res.data.list);
})
} else if (this.actTab == 6) {
getCardReplyList(obj).then(res => {
await getCardReplyList(obj).then(res => {
console.log(res.data);
this.$refs.paging.complete(res.data.list);
})
} else if (this.actTab == 1) {
await getCollectProductList(obj).then(res => {
// console.log(res.data);
this.$refs.paging.complete(res.data.list);
})
} else if (this.actTab == 2) {
await getSellerCollectProductList(obj).then(res => {
console.log(res.data);
this.$refs.paging.complete(res.data.list);
})
} else {
this.$refs.paging.complete([]);
obj.categoryId = this.actTab == 3 ? 1 : this.actTab == 4 ? 5 : 3
await getCollectList(obj).then(res => {
console.log(res.data);
res.data.list.forEach(item => {
if (item.image) {
item.image = item.image.split(",")
} else {
item.image = []
}
const date1 = new Date();
const date2 = new Date(item.createTime);
// 计算相差的毫秒数
const diffTime = Math.abs(date2 - date1);
// 将毫秒数转换为天数
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
item.diffDays = diffDays
})
this.$refs.paging.complete(res.data.list);
})
}
},
//取消收藏
cancelCollectFn(item, type) {
console.log(item);
this.presentData = item
if (type == 7) {
this.$refs.pbox.show = true
@@ -377,6 +526,14 @@
this.$refs.pbox.show = true
this.$refs.pbox.tipContent.content = '您确定要取消该积分商品收藏吗?'
this.$refs.pbox.tipContent.cancelText = '取消'
} else if (type == 1) {
this.$refs.pbox.show = true
this.$refs.pbox.tipContent.content = '您确定要取消该租车模板收藏吗?'
this.$refs.pbox.tipContent.cancelText = '取消'
} else if (type == 2) {
this.$refs.pbox.show = true
this.$refs.pbox.tipContent.content = '您确定要取消该车模板收藏吗?'
this.$refs.pbox.tipContent.cancelText = '取消'
}
},
//确认取消
@@ -388,20 +545,30 @@
this.$refs.paging.refresh();
})
} else if (this.actTab == 6) {
getIntegralOrderProduct(
let arr = [this.presentData.id]
console.log(arr);
getIntegralCancelProduct({
ids: this.presentData.productId
}).then(res => {
this.$refs.paging.refresh();
})
} else if (this.actTab == 1) {
getProductInfoCollectCancel(
this.presentData.id
).then(res => {
this.$refs.paging.refresh();
})
} else if (this.actTab == 2) {
let arr = [this.presentData.id]
carCancelProduct({
ids: arr
}).then(res => {
console.log(res);
this.$refs.paging.refresh();
})
}
},
// 详情页
toDetailPages(item) {
uni.navigateTo({
url: `/pages/serve/coupons/cou_detail?id=${item.id}`
})
},
//返回
navBackFn() {
uni.navigateBack()
@@ -620,4 +787,44 @@
color: #13AFA8;
border: 1rpx solid #13AFA8;
}
.faceback-box {
padding: 34rpx 0;
.faceback-box-item {
margin-left: 48rpx;
}
image {
margin: 0 16rpx;
width: 36rpx;
height: 36rpx;
}
}
.image-list-box {
width: 100%;
margin-top: 24rpx;
.image-one {
width: 686rpx;
height: 686rpx;
border-radius: 8rpx;
}
.image-two {
width: 330rpx;
height: 330rpx;
box-shadow: 0rpx 0rpx 4rpx 0rpx rgba(0, 0, 0, 0.09);
border-radius: 8rpx;
}
.image-three {
width: 218rpx;
height: 218rpx;
box-shadow: 0rpx 0rpx 4rpx 0rpx rgba(0, 0, 0, 0.09);
border-radius: 8rpx;
}
}
</style>

View File

@@ -68,7 +68,7 @@
<z-paging use-page-scroll ref="paging" v-model="dataList" @query="queryList">
<view v-if="actTab==1">
<view class="list-cont-dynamic" v-for="(item,index) in dataList" :key="index">
<view class="dynamic-condition">
<view class="dynamic-condition" @click.stop="toDetailPages(item.id)">
<view class="dynamic-condition-header f-jcsb f-a-i">
<view class="f-a-i">
<image :src="item.authorAvatar" mode=""></image>
@@ -152,7 +152,7 @@
</view>
<view v-else>
<view class="list-cont-dynamic" v-for="(item,index) in dataList" :key="index">
<view class="dynamic-condition">
<view class="dynamic-condition" @click.stop="toDetailPages(item.id,2)">
<view class="dynamic-condition-header f-jcsb f-a-i">
<view class="f-a-i">
<image :src="item.authorAvatar" mode=""></image>
@@ -254,7 +254,7 @@
userInfo: {},
authorId: 0,
actTab: 1,
actFlaf:false
actFlaf: false
};
},
onLoad(option) {
@@ -264,6 +264,13 @@
this.getUserInfo(option.uid)
},
methods: {
//详情
toDetailPages(id,type){
uni.navigateTo({
url:`/pages/driver/index/detail?id=${id}&type=${type}`
})
},
//tab
checkedActTab(e) {
this.actTab = e
this.$refs.paging.refresh()
@@ -334,7 +341,7 @@
item.diffDays = diffDays
})
this.$refs.paging.complete(res.data.list);
// console.log(res);
console.log(res.data.list);
}).catch(err => {
this.$refs.paging.complete(false);
})
@@ -355,7 +362,7 @@
item.diffDays = diffDays
})
this.$refs.paging.complete(res.data.list);
// console.log(res);
console.log(res.data.list);
}).catch(err => {
this.$refs.paging.complete(false);
})
@@ -376,7 +383,7 @@
item.diffDays = diffDays
})
this.$refs.paging.complete(res.data.list);
// console.log(res);
console.log(res.data.list);
}).catch(err => {
this.$refs.paging.complete(false);
})
@@ -403,11 +410,12 @@
font-weight: 400;
line-height: 50rpx;
margin: 16rpx 0;
.questions-and-answers-text-color {
color: #13AFA8;
}
}
.list-cont-dynamic {
background: #fff;
width: 100%;

View File

@@ -9,7 +9,7 @@
<view slot="right">
<!-- #ifdef MP-WEIXIN -->
<view class="flex collect-share" style="">
<image v-if="commodityDeta.isCollect" @click="getIntegralOrderProductFn"
<image v-if="!commodityDeta.userIsCollect" @click="getIntegralOrderProductFn"
:src="`${config.aliyunOssUrl}/static/images/app/serve/coupons_xingxing_end.png`" alt="">
</image>
<image v-else @click="getIntegralOrderProductFn"
@@ -18,9 +18,10 @@
<!-- #endif -->
<!-- #ifdef APP -->
<view class="flex collect-share" style="margin-right: 0;">
<image @click="getIntegralOrderProductFn" src="@/static/images/app/serve/coupons_xingxing.png"
mode=""></image>
<image src="@/static/images/app/serve/coupons_xingxing_end.png" alt=""></image>
<image v-if="!commodityDeta.userIsCollect" @click="getIntegralOrderProductFn"
src="@/static/images/app/serve/coupons_xingxing.png" mode=""></image>
<image v-else @click="getIntegralOrderProductFn"
src="@/static/images/app/serve/coupons_xingxing_end.png" alt=""></image>
<image src="@/static/images/app/serve/coupons_fenxiang.png" mode=""></image>
<!-- #endif -->
</view>
@@ -247,7 +248,8 @@
</view>
<view class="read-images flex align-center justify-between">
<image v-for="(process, index) in carDealerData.processImage" :key="index"
class="liucheng" :src="process" mode="" @click="examineFn(carDealerData.rulesImage,index)"></image>
class="liucheng" :src="process" mode=""
@click="examineFn(carDealerData.rulesImage,index)"></image>
</view>
</view>
</view>
@@ -322,7 +324,9 @@
import {
getProductInfoDealer,
informationDealerList,
getInformationInfo
getInformationInfo,
getProductInfoCollectAdd,
getProductInfoCollectCancel
} from "@/api/showroom/showroom.js"
export default {
data() {
@@ -361,10 +365,10 @@
},
methods: {
//查看
examineFn(arr,index){
examineFn(arr, index) {
uni.previewImage({
current:index,
urls:arr
current: index,
urls: arr
})
},
//车商发布列表
@@ -480,18 +484,28 @@
//商品详情
getProductInfoDealerFn(id) {
getProductInfoDealer(id).then(res => {
console.log(res.data);
this.commodityDeta = res.data
this.branner = res.data.sliderImage.split(',')
})
},
// 添加收藏接口
// 添加收藏接口;取消收藏
getIntegralOrderProductFn() {
getIntegralOrderProduct(this.commodityDeta.id).then(res => {
this.getProductInfoDealerFn(this.commodityDeta.id)
})
console.log(this.commodityDeta.userIsCollect);
if (this.commodityDeta.userIsCollect) {
getProductInfoCollectCancel(this.commodityDeta.id).then(res => {
console.log(res, '取消收藏');
this.$refs.paging.refresh();
})
} else {
getProductInfoCollectAdd(this.commodityDeta.id).then(res => {
console.log(res, '添加收藏');
this.$refs.paging.refresh();
})
}
},
//去评论列表
navEvaluateFn(item){
navEvaluateFn(item) {
uni.navigateTo({
url: `/pages/driver/mine/my_order/evaluate_order/evaluate_list?id=${item.id}`
})

View File

@@ -55,7 +55,7 @@
<z-paging use-page-scroll ref="paging" v-model="dataList" @query="queryList">
<view>
<view class="list-cont-dynamic" v-for="(item,index) in dataList" :key="index">
<view class="dynamic-condition">
<view class="dynamic-condition" @click.stop="toDetailPages(item.id,2)">
<view class="dynamic-condition-header f-jcsb f-a-i">
<view class="f-a-i">
<image :src="item.authorAvatar" mode=""></image>
@@ -188,6 +188,12 @@
this.$refs.paging.refresh();
},
//详情
toDetailPages(id,type){
uni.navigateTo({
url:`/pages/driver/index/detail?id=${id}&type=${type}`
})
},
//详情
getTopicInfoFn() {
getTopicInfo(this.topicId).then(res => {
// console.log(res);