| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369 |
- <template>
- <view>
- <view class="flex margin-lr padding-tb-sm u-border-bottom" v-if="shopDet.shopScore">
- <view class="flex padding-right">
- <view class="text-sl" style="color: #FD6416;">{{shopDet.shopScore}}</view>
- <view class="flex flex-direction justify-around margin-left-sm">
- <view>商家评分</view>
- <view class="flex">
- <u-icon v-for="ite in shopDet.shopScore1" :key='ite' color="#FCD202" name="star-fill"></u-icon>
- </view>
- </view>
- </view>
- <view class="flex-sub flex justify-around u-border-left padding-left">
- <view class="flex flex-direction justify-around text-center">
- <view>好评</view>
- <view>{{EvaluateData.goodReputation}}</view>
- </view>
- <view class="flex flex-direction justify-around text-center">
- <view>中评</view>
- <view>{{EvaluateData.mediumReview}}</view>
- </view>
- <view class="flex flex-direction justify-around text-center">
- <view>差评</view>
- <view>{{EvaluateData.negativeComment}}</view>
- </view>
- </view>
- </view>
- <view class="padding-tb-sm margin-lr">
- <u-button hover-class='none' @click="sel(0)" type="primary" shape="circle" size="mini" :plain="false"
- :custom-style="count==0?customStyle:customStyle1">全部评论</u-button>
- <u-button hover-class='none' @click="sel(1)" type="primary" shape="circle" size="mini" :plain="false"
- :custom-style="count==1?customStyle:customStyle1">
- 好评({{EvaluateData.goodReputation}})</u-button>
- <u-button hover-class='none' @click="sel(2)" type="primary" shape="circle" size="mini" :plain="false"
- :custom-style="count==2?customStyle:customStyle1">
- 中评({{EvaluateData.mediumReview}})</u-button>
- <u-button hover-class='none' @click="sel(3)" type="primary" shape="circle" size="mini" :plain="false"
- :custom-style="count==3?customStyle:customStyle1">
- 差评({{EvaluateData.negativeComment}})</u-button>
- </view>
- <view class="padding-tb-sm margin-lr u-border-bottom" v-for="(item, index) in EvaluateList" :key='index'>
- <view class="flex justify-between align-center">
- <view class="flex align-center">
- <u-avatar :src="item.avatar" size="65"></u-avatar>
- <view class=" margin-left-sm" style="line-height: 46upx;">{{item.userName?item.userName:'匿名'}}
- </view>
- <view class="flex margin-left-sm">
- <u-icon v-for="ite in item.score" :key='ite' color="#FCD202" name="star-fill">
- </u-icon>
- </view>
- </view>
- <view>{{item.createTime}}</view>
- </view>
- <view style="display: flex;">
- <view class="margin-top-sm" :style="!item.shopReplyMessage ? 'width: 90%;' : ''">{{item.evaluateMessage}}</view>
- <view class="flex padding-top-sm margin-right" @tap="goShow(index)" v-if="!item.shopReplyMessage">
- <image src="../../static/images/order/pinglun.png" style="width: 20px;height: 20px;"></image>
- </view>
- </view>
- <view class="margin-top-sm" v-if="item.shopReplyMessage">
- <view class="flex align-center">
- <view class=" flex align-center text-df" style="color: #999999;">
- <view class="text-df">商家回复:</view>{{item.shopReplyMessage}}
- </view>
- </view>
- <!-- <view class="text-lg padding-left margin-left-xl">{{dataDet.shopReplyMessage}}</view> -->
- </view>
- <view class="flex" style="width: 100%;margin-top: 20rpx;flex-wrap: wrap;" v-if="item.pictures">
- <image @click="lookImgs(ind,item.pictures)" :src="ite" v-for="(ite,ind) in item.pictures" :key="ind" style="width: 200rpx;height: 200rpx;margin-right: 10rpx;margin-bottom: 10rpx;" mode=""></image>
- </view>
- </view>
- <empty v-if="EvaluateList.length<=0"></empty>
- <!-- 评论弹框 -->
- <u-popup v-model="show" mode="bottom" border-radius="14" :closeable="closeable">
- <view>
- <view class="margin padding-tb">
- <u-input v-model="pinglun" type="textarea" height="200" placeholder="请填写回复的内容" maxlengt="200"
- :clearable="false" style="background:#F5F5F5;" />
- </view>
- <view class="btn" @click="bindEvaluate()">提交</view>
- </view>
- </u-popup>
- </view>
- </template>
- <script>
- import empty from '../../components/empty.vue'
- export default {
- components:{
- empty
- },
- data() {
- return {
- pinglun: '',
- count: 0,
- show: false,
- customStyle: {
- color: '#333333',
- background: '#FCD202',
- marginRight: '20rpx',
- border: 0
- },
- customStyle1: {
- color: '#333333',
- background: '#F2F2F2',
- marginRight: '20rpx',
- border: 0
- },
- cashDeposit: [],
- EvaluateData: {},
- EvaluateList: [],
- grade: '',
- page: 1,
- size: 10,
- isShow: false,
- oneData: [],
- titleData: [],
- shopDet: {}
- }
- },
- onShow() {
- this.getshanghuinfo();
- this.getList()
- },
- onReachBottom: function() {
- this.page = this.page + 1;
- this.getList()
- },
- methods: {
- //预览图片
- lookImgs(index,imgs){
- uni.previewImage({
- current:index,
- urls:imgs
- })
- },
- goShow(index){
- this.orderNumber = this.EvaluateList[index].orderNumber;
- this.show = true;
- },
- getshanghuinfo() {
- let data = {
- shopId: uni.getStorageSync('shopId')
- }
- this.$Request.get("/app/shop/selectShopMessage", data).then(res => {
- if (res.code == 0) {
- this.shopDet = res.data;
- this.shopDet.shopScore = parseFloat(this.shopDet.shopScore).toFixed(1)
- this.shopDet.shopScore1 = Math.floor(this.shopDet.shopScore)
- }
- });
- },
- //评论
- bindEvaluate() {
- let data = {
- shopReplyMessage: this.pinglun,
- orderNumber: this.orderNumber
- }
- this.$Request.postT("/admin/order/shopReplyEvaluate", data).then(res => {
- uni.hideLoading()
- if (res.code == 0) {
- this.show = false
- this.page = 1
- this.getList()
- }
- });
- },
- sel(e) {
- this.grade = e
- this.count = e
- this.page = 1
- this.getList()
- },
- open(data) {
- console.log(data);
- this.oneData = data;
- this.titleData = data.goods
- this.isShow = true;
- },
- close() {
- this.isShow = false;
- },
- // 获取评价列表
- getList() {
- let data = {
- shopId: uni.getStorageSync('shopId'),
- page: this.page,
- limit: this.size,
- grade: this.grade
- }
- this.$Request.get("/app/goods/selectEvaluateByShopId", data).then(res => {
- if (res.code == 0 && res.data) {
- this.EvaluateData = res.data
- res.data.pageUtils.list.map(item=>{
- if(item.pictures){
- item.pictures = item.pictures.split(',')
- }else{
- item.pictures = []
- }
- })
- if (this.page == 1) {
- this.EvaluateList = res.data.pageUtils.list
- } else {
- this.EvaluateList = [...this.EvaluateList, ...res.data.pageUtils.list]
- }
- }
- });
- }
- }
- }
- </script>
- <style lang="scss">
- page {
- background-color: #FFFFFF;
- }
- .box1 {
- position: absolute;
- background: #000000;
- width: 750rpx;
- height: 100vh;
- opacity: 0.4;
- }
- .moudes {
- width: 650rpx;
- position: absolute;
- background: #FFFFFF;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- margin: auto;
- height: 700rpx;
- border-radius: 10rpx;
- .bt {
- font-size: 30rpx;
- font-weight: bold;
- }
- .pjImg {
- width: 200rpx;
- height: 200rpx;
- }
- .navBox {
- .avtiter {
- width: 80rpx;
- height: 80rpx;
- border-radius: 40rpx;
- margin-right: 15rpx
- }
- padding-left: 30rpx;
- padding-top: 30rpx;
- display: flex;
- align-items: center;
- .userName {
- font-size: 28rpx;
- font-weight: bold;
- }
- }
- }
- .nrTxt {
- display: inline-block;
- width: 500rpx;
- }
- .navList {
- text-align: center;
- margin-top: 30rpx;
- padding-left: 30rpx;
- padding-right: 30rpx;
- display: flex;
- justify-content: center;
- .xq {
- font-size: 30rpx;
- font-weight: bolder;
- text-align: center;
- }
- }
- .contentTxt {
- view {
- margin-bottom: 30rpx;
- display: flex;
- align-items: center;
- }
- .title {
- font-size: 30rpx;
- font-weight: bold;
- color: #000000;
- margin-right: 15rpx;
- }
- .imgRsc {
- width: 100rpx;
- height: 100rpx;
- border-radius: 10rpx;
- }
- }
- .list_1 {
- position: absolute;
- }
- .btn {
- width: 690upx;
- height: 88upx;
- margin: 30upx auto;
- background: #FCD202;
- box-shadow: 0px 10upx 20upx 0upx #FFD9B3;
- border-radius: 16upx;
- display: flex;
- align-items: center;
- justify-content: center;
- color: #000000;
- }
- .one {
- background: #FFFFFF;
- margin-top: 20rpx;
- display: flex;
- justify-content: space-between;
- padding: 20rpx;
- .imgSrc {
- width: 100rpx;
- height: 100rpx;
- vertical-align: middle;
- margin-right: 20rpx;
- border-radius: 10rpx;
- }
- .name {
- margin-top: 10rpx;
- margin-bottom: 20rpx;
- font-size: 24rpx;
- color: #000000;
- }
- .timer {
- font-size: 20rpx;
- color: #b3b3c4;
- }
- .contentTxt {
- font-size: 24rpx;
- color: #000000;
- }
- }
- </style>
|