From 246e8f9a3b35b481d4567790c8ca2401c29b4473 Mon Sep 17 00:00:00 2001 From: "3321822538@qq.com" <3321822538@qq.com> Date: Thu, 26 Mar 2026 17:47:52 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A6=8F=E9=BC=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/http.interceptor.js | 2 +- page_fenbao/daoyou/daoyouxq.vue | 114 ++++- page_fenbao/daoyou/dydianpin.vue | 508 +++++++++++++++++++++ page_fenbao/daoyou/dypinjia.vue | 348 ++++++++++++++ page_fenbao/daoyou/index.vue | 2 +- page_fenbao/daoyou/lvxingshe-dianpin.vue | 550 +++++++++++++++++++++++ page_fenbao/daoyou/lvxingshe.vue | 218 ++++++++- page_fenbao/daoyou/lvxingshexq.vue | 2 +- page_fenbao/jiudian/addpj.vue | 43 +- page_fenbao/jiudian/dianpin.vue | 58 ++- page_fenbao/jiudian/index.vue | 2 +- page_fenbao/jiudian/jiudianxq.vue | 34 +- page_user/meishi/meishixq.vue | 26 +- page_user/techan/techandp-dianpin.vue | 515 +++++++++++++++++++++ page_user/techan/techandp.vue | 198 +++++++- pages.json | 28 ++ 16 files changed, 2554 insertions(+), 94 deletions(-) create mode 100644 page_fenbao/daoyou/dydianpin.vue create mode 100644 page_fenbao/daoyou/dypinjia.vue create mode 100644 page_fenbao/daoyou/lvxingshe-dianpin.vue create mode 100644 page_user/techan/techandp-dianpin.vue diff --git a/common/http.interceptor.js b/common/http.interceptor.js index 92e023a..8b78dcc 100644 --- a/common/http.interceptor.js +++ b/common/http.interceptor.js @@ -16,7 +16,7 @@ const install = (Vue, vm) => { // }, // }); Vue.prototype.$u.http.setConfig({ - // baseUrl: 'http://192.168.1.6:4601', + // baseUrl: 'http://192.168.1.4:4601', // baseUrl: 'http://192.168.2.75:4601', baseUrl: 'https://fd.ccttiot.com/prod-api', loadingText: '努力加载中~', diff --git a/page_fenbao/daoyou/daoyouxq.vue b/page_fenbao/daoyou/daoyouxq.vue index 53a2482..f1017f1 100644 --- a/page_fenbao/daoyou/daoyouxq.vue +++ b/page_fenbao/daoyou/daoyouxq.vue @@ -9,8 +9,28 @@ {{agencyDetail.name}} - + + + + + + {{ agencyDetail.averageRating == undefined ? '--' : Number(agencyDetail.averageRating).toFixed(1) }} + + + + + {{ agencyDetail.commentNum == undefined ? (total || 0) : agencyDetail.commentNum }} 条评价 + + @@ -26,6 +46,7 @@ {{ lxsobj.description == null ? '暂无简介' : lxsobj.description }} + @@ -62,16 +83,24 @@ bgc: { backgroundColor: "#fff", }, + // 评价相关 + count:5, + rating:4, agencyDetail: {}, id:'', lxsobj:{}, lxsdylst:[], - fanhui:'' + fanhui:'', + plarr:[], + total:0, + bqlist:[] } }, onLoad(option) { this.id = option.id this.getxq() + this.getpinlun() + this.getbiaoqian() if(option && option.fanhui){ this.fanhui = option.fanhui } @@ -92,6 +121,11 @@ } }, methods: { + btnaddpj(){ + uni.navigateTo({ + url:'/page_fenbao/daoyou/dypinjia?id=' + this.id + }) + }, btnfh(){ if(this.fanhui == 1){ uni.reLaunch({ @@ -167,6 +201,29 @@ } }) }, + // 查询导游评价列表(只取一条展示) + getpinlun(){ + this.$u.get(`/app/comment/list?bstId=${this.id}&bstTypes=5&pageNum=1&pageSize=1`).then(res =>{ + if(res.code == 200){ + this.plarr = res.rows + this.total = res.total + } + }) + }, + // 查询导游评价标签 + getbiaoqian(){ + this.$u.get(`/app/comment/labelList?bstId=${this.id}&bstType=5`).then(res =>{ + if(res.code == 200){ + this.bqlist = res.data + } + }) + }, + // 点击查看更多导游评价 + btndp(){ + uni.navigateTo({ + url:'/page_fenbao/daoyou/dydianpin?id=' + this.id + }) + }, // 点击查看旅行社详情 btnxq(){ @@ -354,5 +411,56 @@ top: 50%; transform: translateY(-50%); } - + // 评价模块样式 + .pinlun{ + width: 710rpx; + margin: auto; + margin-top: 28rpx; + .tit{ + display: flex; + align-items: center; + justify-content: space-between; + font-size: 24rpx; + color: #1EC28B; + margin-top: 36rpx; + .one{ + font-weight: 600; + font-size: 36rpx; + color: #3D3D3D; + } + } + } + .pinjia{ + margin-top: 20rpx; + display: flex; + align-items: center; + justify-content: space-between; + .rt{ + font-size: 24rpx; + color: #1EC28B; + padding-right: 20rpx; + } + .lt{ + width: 260rpx; + height: 56rpx; + background: #e6eae7; + border-radius: 28rpx 28rpx 28rpx 28rpx; + display: flex; + align-items: center; + border-radius: 50rpx; + .fen{ + border-radius:50rpx 0 0 50rpx; + text-align: center; + font-weight: 600; + font-size: 40rpx; + color: #FFFFFF; + background-color: #1EC28B; + width: 90rpx; + height: 56rpx; + line-height: 56rpx; + padding-left: 10rpx; + box-sizing: border-box; + } + } + } \ No newline at end of file diff --git a/page_fenbao/daoyou/dydianpin.vue b/page_fenbao/daoyou/dydianpin.vue new file mode 100644 index 0000000..3104f29 --- /dev/null +++ b/page_fenbao/daoyou/dydianpin.vue @@ -0,0 +1,508 @@ + + + + + + diff --git a/page_fenbao/daoyou/dypinjia.vue b/page_fenbao/daoyou/dypinjia.vue new file mode 100644 index 0000000..b47a92c --- /dev/null +++ b/page_fenbao/daoyou/dypinjia.vue @@ -0,0 +1,348 @@ + + + + \ No newline at end of file diff --git a/page_fenbao/daoyou/index.vue b/page_fenbao/daoyou/index.vue index c38735f..0167f6f 100644 --- a/page_fenbao/daoyou/index.vue +++ b/page_fenbao/daoyou/index.vue @@ -44,7 +44,7 @@ {{ agency.name }} {{ agency.description == null ? '暂无简介' : agency.description }} - + diff --git a/page_fenbao/daoyou/lvxingshe-dianpin.vue b/page_fenbao/daoyou/lvxingshe-dianpin.vue new file mode 100644 index 0000000..83a699f --- /dev/null +++ b/page_fenbao/daoyou/lvxingshe-dianpin.vue @@ -0,0 +1,550 @@ + + + + + + diff --git a/page_fenbao/daoyou/lvxingshe.vue b/page_fenbao/daoyou/lvxingshe.vue index 74acebe..92fc18c 100644 --- a/page_fenbao/daoyou/lvxingshe.vue +++ b/page_fenbao/daoyou/lvxingshe.vue @@ -10,7 +10,7 @@ {{ agencyDetail.name }} {{ agencyDetail.description == null ? '暂无简介' : agencyDetail.description }} - + @@ -35,6 +35,59 @@ + + + + + + 评价({{ total || 0 }}) + + + 更多评价 + + + + + + + + + + + + {{ item.createTime }} + + + + {{ item.content }} + + + + + + 全部{{ total }}条评论 + + + + + + + 暂无评价,快来抢沙发~ + + + + + + @@ -49,7 +102,9 @@ guideList: [], id:'', obj:{}, - fanhui:'' + fanhui:'', + plarr:[], + total:0 } }, onLoad(option) { @@ -57,6 +112,7 @@ this.id = option.id this.getxq() this.getdylist() + this.getpinlun() if(option && option.fanhui){ this.fanhui = option.fanhui } @@ -114,6 +170,27 @@ uni.navigateTo({ url:'/page_fenbao/daoyou/lvxingshexq?id=' + this.id }) + }, + // 查询旅行社评价列表(根据旅行社id,类型为4) + getpinlun(){ + this.$u.get(`/app/comment/list?bstId=${this.id}&bstTypes=4&pageNum=1&pageSize=1`).then((res) => { + if(res.code === 200){ + this.plarr = res.rows || [] + this.total = res.total || 0 + } + }) + }, + // 查看全部评价 + btndp(){ + uni.navigateTo({ + url:'/page_fenbao/daoyou/lvxingshe-dianpin?id=' + this.id + }) + }, + // 写评价(评价旅行社) + btnaddpj(){ + uni.navigateTo({ + url:'/page_fenbao/jiudian/addpj?btsid=' + this.id + '&type=4' + }) } } } @@ -256,4 +333,141 @@ line-height: 1.4; } + /* 旅行社评价区域样式 */ + .agency-comment-section { + margin: 40rpx 30rpx 40rpx; + position: relative; + padding-bottom: 160rpx; + } + + .agency-comment-header { + justify-content: space-between; + } + + .more-comment { + font-size: 26rpx; + color: #1EC28B; + display: flex; + align-items: center; + } + + .comment-summary { + width: 710rpx; + background: #FFFFFF; + border-radius: 16rpx; + padding: 24rpx 32rpx; + box-sizing: border-box; + display: flex; + align-items: center; + justify-content: space-between; + margin-top: 10rpx; + } + + .score-box { + display: flex; + align-items: center; + } + + .score-number { + font-weight: 600; + font-size: 64rpx; + color: #1EC28B; + margin-right: 14rpx; + } + + .score-text text { + font-size: 24rpx; + color: #606060; + display: block; + } + + .comment-list { + margin-top: 28rpx; + } + + .comment-item { + background: #f3f3f3; + border-radius: 20rpx; + margin: auto; + padding: 32rpx 24rpx; + box-sizing: border-box; + margin-top: 20rpx; + } + + .comment-top { + display: flex; + justify-content: space-between; + align-items: center; + } + + .comment-user { + display: flex; + align-items: center; + } + + .comment-avatar { + width: 68rpx; + height: 68rpx; + border-radius: 50%; + margin-right: 14rpx; + } + + .comment-nickname { + font-weight: 600; + font-size: 28rpx; + color: #3D3D3D; + } + + .comment-time { + font-size: 26rpx; + color: #606060; + } + + .comment-content { + font-size: 28rpx; + color: #3D3D3D; + margin-top: 22rpx; + line-height: 1.6; + word-wrap: break-word; + } + + .comment-images { + margin-top: 28rpx; + display: flex; + flex-wrap: wrap; + gap: 10rpx; + } + + .comment-images image { + width: 210rpx; + height: 210rpx; + border-radius: 14rpx; + } + + .comment-all { + font-size: 28rpx; + color: #3D3D3D; + margin-top: 28rpx; + width: 100%; + text-align: center; + } + + + .no-comment { + width: 100%; + text-align: center; + margin-top: 30rpx; + color: #ccc; + font-size: 26rpx; + } + + .add-comment-btn { + width: 120rpx; + height: 126rpx; + position: fixed; + right: 30rpx; + bottom: 560rpx; + z-index: 99; + } + \ No newline at end of file diff --git a/page_fenbao/daoyou/lvxingshexq.vue b/page_fenbao/daoyou/lvxingshexq.vue index fd56695..e720b00 100644 --- a/page_fenbao/daoyou/lvxingshexq.vue +++ b/page_fenbao/daoyou/lvxingshexq.vue @@ -14,7 +14,7 @@ - + diff --git a/page_fenbao/jiudian/addpj.vue b/page_fenbao/jiudian/addpj.vue index fdfb250..3ddb00f 100644 --- a/page_fenbao/jiudian/addpj.vue +++ b/page_fenbao/jiudian/addpj.vue @@ -57,7 +57,7 @@ - + @@ -92,6 +92,7 @@ ], id:'', jdobj:{}, + bstType:3, token:'', imglist:[], contxt:'', @@ -100,7 +101,14 @@ }, onLoad(e) { console.log(e); - this.id = e.id + // 兼容酒店和其它业务类型:优先使用 btsid,其次 id + this.id = e.btsid || e.id + // 业务类型:默认 3(酒店),旅行社传 4 + if(e.type){ + this.bstType = Number(e.type) + }else{ + this.bstType = 3 + } this.getxq() this.getqiniuyun() }, @@ -109,7 +117,7 @@ btntj(){ if(this.contxt == ''){ uni.showToast({ - title: '酒店评价不能为空', + title: '商家评价不能为空', icon: 'none', duration: 3000 }) @@ -121,7 +129,7 @@ this.jlflag = false const picture = this.imglist.join(',') let data = { - bstType:3, + bstType:this.bstType, bstId:this.id, content:this.contxt, mediaUrl:picture, @@ -162,11 +170,28 @@ }, // 查询酒店详情 getxq(){ - this.$u.get(`/app/hotel/${this.id}`).then(res =>{ - if(res.code == 200){ - this.jdobj = res.data - } - }) + // 酒店 + if(this.bstType === 3){ + this.$u.get(`/app/hotel/${this.id}`).then(res =>{ + if(res.code == 200){ + this.jdobj = res.data + } + }) + // 旅行社 + }else if(this.bstType === 4){ + this.$u.get(`/app/travelAgency/detail/${this.id}`).then(res =>{ + if(res.code == 200){ + this.jdobj = res.data + } + }) + // 店铺(特产 / 美食等,类型 2) + }else if(this.bstType === 2){ + this.$u.get(`/app/store/detail/${this.id}`).then(res =>{ + if(res.code == 200){ + this.jdobj = res.data + } + }) + } }, // 获取七牛云上传token getqiniuyun(){ diff --git a/page_fenbao/jiudian/dianpin.vue b/page_fenbao/jiudian/dianpin.vue index 3b9f4d2..4ae54aa 100644 --- a/page_fenbao/jiudian/dianpin.vue +++ b/page_fenbao/jiudian/dianpin.vue @@ -14,20 +14,20 @@ - {{obj.rating}} + {{obj.averageRating}} - - 不错 - 一般 - + + 不错 + 一般 + 高于86%同类酒店 - {{obj.locationRating == undefined ? '--' : obj.locationRating}} + {{obj.averageLocationRating == undefined ? '--' : obj.averageLocationRating}} 位置 @@ -35,7 +35,7 @@ - {{obj.facilityRating == undefined ? '--' : obj.facilityRating}} + {{obj.averageFacilityRating == undefined ? '--' : obj.averageFacilityRating}} 设施 @@ -43,7 +43,7 @@ - {{obj.serviceRating == undefined ? '--' : obj.serviceRating}} + {{obj.averageServiceRating == undefined ? '--' : obj.averageServiceRating}} 服务 @@ -51,7 +51,7 @@ - {{obj.hygieneRating == undefined ? '--' : obj.hygieneRating}} + {{obj.averageHygieneRating == undefined ? '--' : obj.averageHygieneRating}} 卫生 @@ -144,6 +144,7 @@ rating:3, count:5, obj:{}, + bstType:3, pageNum:1, id:'', havePicOrVideo:false, @@ -163,18 +164,37 @@ }, onLoad(e) { this.id = e.id + // 支持按类型区分:酒店=3,旅行社=4,店铺=2(默认3,兼容老入口) + this.bstType = e.type ? Number(e.type) : 3 this.getxq() this.getpinlun() this.getbiaoqian() }, methods: { - // 请求酒店详情 + // 请求商家详情(酒店 / 旅行社 / 店铺) getxq(){ - this.$u.get(`/app/hotel/${this.id}`).then(res =>{ - if(res.code == 200){ - this.obj = res.data - } - }) + // 酒店 + if(this.bstType === 3){ + this.$u.get(`/app/hotel/${this.id}`).then(res =>{ + if(res.code == 200){ + this.obj = res.data + } + }) + // 旅行社 + }else if(this.bstType === 4){ + this.$u.get(`/app/travelAgency/detail/${this.id}`).then(res =>{ + if(res.code == 200){ + this.obj = res.data + } + }) + // 店铺(特产 / 美食等) + }else if(this.bstType === 2){ + this.$u.get(`/app/store/detail/${this.id}`).then(res =>{ + if(res.code == 200){ + this.obj = res.data + } + }) + } }, // 上拉加载更多 handqixing() { @@ -196,9 +216,9 @@ this.getpinlun() } }, - // 请求酒店标签 + // 请求标签 getbiaoqian(){ - this.$u.get(`/app/comment/labelList?bstId=${this.id}&bstType=3`).then(res =>{ + this.$u.get(`/app/comment/labelList?bstId=${this.id}&bstType=${this.bstType}`).then(res =>{ if(res.code == 200){ this.bqlist = res.data } @@ -315,9 +335,9 @@ this.getpinlun() } }, - // 请求评价列表 + // 请求评价列表(bstTypes 按类型区分:酒店3 / 旅行社4) getpinlun(){ - this.$u.get(`/app/comment/list?pageNum=${this.pageNum}&pageSize=20&bstTypes=3&bstId=${this.id}&havePicOrVideo=${this.havePicOrVideo}&maxRating=${this.maxRating}&keyword=${this.searchKeyword}&types=${this.bqname}&sortBy=${this.time_desc}`).then(res =>{ + this.$u.get(`/app/comment/list?pageNum=${this.pageNum}&pageSize=20&bstTypes=${this.bstType}&bstId=${this.id}&havePicOrVideo=${this.havePicOrVideo}&maxRating=${this.maxRating}&keyword=${this.searchKeyword}&types=${this.bqname}&sortBy=${this.time_desc}`).then(res =>{ if(res.code == 200){ this.total = res.total if(this.pageNum == 1){ diff --git a/page_fenbao/jiudian/index.vue b/page_fenbao/jiudian/index.vue index ea9083b..5b1622d 100644 --- a/page_fenbao/jiudian/index.vue +++ b/page_fenbao/jiudian/index.vue @@ -78,7 +78,7 @@ {{ item.name }} - {{ item.rating != null && item.rating !== '' ? Number(item.rating).toFixed(1) : '--' }} + {{ item.averageRating != null && item.averageRating !== '' ? Number(item.averageRating).toFixed(1) : '--' }} {{val}} diff --git a/page_fenbao/jiudian/jiudianxq.vue b/page_fenbao/jiudian/jiudianxq.vue index 8e4607c..7fbf8b0 100644 --- a/page_fenbao/jiudian/jiudianxq.vue +++ b/page_fenbao/jiudian/jiudianxq.vue @@ -14,12 +14,12 @@ - {{jdobj.rating == undefined ? '--' : Number(jdobj.rating).toFixed(1)}} + {{jdobj.averageRating == undefined ? '--' : Number(jdobj.averageRating).toFixed(1)}} - + - {{jdobj.commentCount == undefined ? '0' : jdobj.commentCount}}条评价 + {{jdobj.commentNum == undefined ? '0' : jdobj.commentNum}}条评价 ¥{{ merchant.capita || '-' }}/人 @@ -152,14 +152,6 @@ this.$u.get(`app/store/list?pageNum=1&pageSize=999&dishIds=${this.id}`).then((res) => { if(res.code == 200){ this.merchantList = res.rows - // this.total = res.total - // if(this.pageNum == 1){ - // this.pageNum++ - - // }else{ - // this.pageNum++ - // this.merchantList = this.merchantList.concat(res.rows) - // } } }) }, @@ -179,22 +171,6 @@ uni.navigateTo({ url:'/page_user/techan/techandp?id=' + merchant.id + '&type=1' }) - // uni.openLocation({ - // latitude: parseFloat(merchant.areaLat), // 确保是数字类型 - // longitude: parseFloat(merchant.areaLon), // 确保是数字类型 - // name: merchant.address || '目的地', // 地点名称 - // success: function(res) { - // console.log('打开地图成功', res); - // }, - // fail: function(err) { - // console.error('打开地图失败', err); - // uni.showToast({ - // title: '打开地图失败: ' + (err.errMsg || '未知错误'), - // icon: 'none', - // duration: 3000 - // }); - // } - // }) } } } diff --git a/page_user/techan/techandp-dianpin.vue b/page_user/techan/techandp-dianpin.vue new file mode 100644 index 0000000..6751168 --- /dev/null +++ b/page_user/techan/techandp-dianpin.vue @@ -0,0 +1,515 @@ + + + + + + diff --git a/page_user/techan/techandp.vue b/page_user/techan/techandp.vue index 2e799e6..177fad0 100644 --- a/page_user/techan/techandp.vue +++ b/page_user/techan/techandp.vue @@ -14,10 +14,16 @@ 地址:{{obj.address}} + - - - + + + 导航 + + + + 打电话 + {{tyep == 1 ? '精选美食' : '精选好物'}} @@ -29,6 +35,48 @@ {{item.name}} + + + + + + 评价({{ total || (obj.commentNum || 0) }}) + + {{ Number(obj.averageRating).toFixed(1) }} + + + + + + 写评价 + + + + + + + + + + {{item.nickName}} + + + + {{item.createTime}} + + + {{item.content}} + + + + + 暂无评价,快来写第一条吧~ + + + @@ -46,7 +94,9 @@ obj:{}, type:'', lists:[], - fanhui:'' + fanhui:'', + plarr:[], + total:0 } }, onLoad(e) { @@ -55,6 +105,7 @@ this.type = e.type } this.getdianpu() + this.getpinlun() if(e && e.fanhui){ this.fanhui = e.fanhui } @@ -163,6 +214,27 @@ } }) }, + // 查询店铺评价(类型 2,取一条展示) + getpinlun(){ + this.$u.get(`/app/comment/list?bstId=${this.id}&bstTypes=2&pageNum=1&pageSize=1`).then((res) => { + if(res.code === 200){ + this.plarr = res.rows || [] + this.total = res.total || 0 + } + }) + }, + // 查看更多评价列表 + btndp(){ + uni.navigateTo({ + url:'/page_user/techan/techandp-dianpin?id=' + this.id + }) + }, + // 写评价 + btnaddpj(){ + uni.navigateTo({ + url:'/page_fenbao/jiudian/addpj?btsid=' + this.id + '&type=2' + }) + }, // 点击精选好物跳转详情 btnhw(item){ uni.navigateTo({ @@ -175,16 +247,15 @@