123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- <template>
- <mescroll-uni ref="mescrollRef" top="80rpx" @init="mescrollInit" @down="downCallback" @up="upCallback"
- :down="downOption" :up="upOption">
- <view class="comment-list">
- <view v-for="(item, index) in list" :key="index" class="comment-item bg-white m-t-20">
- <view v-if="type == 1">
- <view class="m-l-20">
- <shop-title :shop="item.shop"></shop-title>
- </view>
- <view v-for="(gitem, gindex) in item.order_goods_un_comment" :key="gindex">
- <router-link :to="{path: '/pages/goods_details/goods_details', query: {id: gitem.goods_id}}">
- <view class="comment-goods flex">
- <u-image width="160rpx" height="160rpx" border-radius="6rpx"
- :src="gitem.goods_item.image"></u-image>
- <view class="goods-desc flex-1 m-l-24">
- <view class="goods-name line-2">{{gitem.goods_name}}</view>
- <view class="m-t-10 xs muted line-1">{{gitem.goods_item.spec_value_str}}</view>
- <view class="flex row-between m-t-20">
- <price-format :price="gitem.goods_price" :subscript-size="26" :first-size="30"
- :second-size="30" />
- <view class="nr">x{{gitem.goods_num}}</view>
- </view>
- </view>
- </view>
- </router-link>
- <router-link :to="{path: '/bundle/pages/goods_reviews/goods_reviews', query: {id: gitem.id}}">
- <view class="evaluate-footer flex row-right">
- <view class="btn flex row-center primary br60">评价商品</view>
- </view>
- </router-link>
- </view>
- </view>
- <view v-if="type == 2">
- <view class="p-20">
- <view class="p-b-20 time">
- <view class="muted xs">评价时间: {{item.create_time}}</view>
- </view>
- <view v-if="item.comment" class="m-t-20">
- {{item.comment}}
- </view>
- <view v-if="item.goods_comment_image_arr && item.goods_comment_image_arr.length" class="flex flex-wrap m-t-20">
- <view v-for="(iitem, idx) in item.goods_comment_image_arr" :key="idx" class="comment-img"
- @tap="previewImage(item.goods_comment_image_arr, idx, $event)">
- <u-image width="160rpx" height="160rpx" border-radius="6rpx" :src="iitem" />
- </view>
- </view>
- <view class="comment-goods flex bg-body m-t-20">
- <u-image width="160rpx" height="160rpx" border-radius="6rpx" :src="item.goods_item.image">
- </u-image>
- <view class="goods-desc flex-1 m-l-24">
- <view class="goods-name line-2">{{item.goods.name}}</view>
- <view class="m-t-10 xs muted line-1">{{item.goods_item.spec_value_str}}</view>
- <view class="flex m-t-10">
- <view class="sm m-r-10 muted">评分</view>
- <u-rate :disabled="true" :value="item.goods_comment" :active-color="colorConfig.primary"
- :size="36" />
- </view>
-
- </view>
- </view>
- </view>
- </view>
- </view>
- </view>
- </view>
- </mescroll-uni>
- </template>
- <script>
- import {
- getUnComment,
- getComment
- } from "@/api/user";
- import MescrollMixin from "@/components/mescroll-uni/mescroll-mixins.js";
- import MescrollMoreItemMixin from "@/components/mescroll-uni/mixins/mescroll-more-item.js";
- export default {
- mixins: [MescrollMixin, MescrollMoreItemMixin],
- data() {
- return {
- list: [],
- downOption: {
- auto: false // 不自动加载 (mixin已处理第一个tab触发downCallback)
- },
- upOption: {
- auto: false, // 不自动加载
- noMoreSize: 4, //如果列表已无数据,可设置列表的总数量要大于半页才显示无更多数据;避免列表数据过少(比如只有一条数据),显示无更多数据会不好看; 默认5
- empty: {
- icon: '/static/images/goods_null.png',
- tip: '暂无评价~', // 提示
- fixed: true
- }
- },
- };
- },
- props: {
- type: {
- type: Number | String
- }
- },
- created() {
- uni.$on("refreshcomment", () => {
- this.downCallback()
- })
- },
- destroyed() {
- uni.$off("refreshcomment")
- },
- methods: {
- async upCallback(page) {
- const {
- type,
- } = this;
- const params = {
- page_size: page.size,
- page_no: page.num
- }
- console.log(type)
- const {
- data,
- code
- } = type == 1 ? await getUnComment(params) : await getComment(params)
- if (code == 1) {
- const curPageData = data.lists;
- const curPageLen = curPageData.length;
- const hasNext = !!data.more;
- if (page.num == 1) this.list = [];
- this.list = this.list.concat(curPageData);
- this.mescroll.endSuccess(curPageLen, hasNext);
- }
- },
- previewImage(urls, current) {
- console.log(urls, current)
- uni.previewImage({
- current,
- // 当前显示图片的http链接
- urls // 需要预览的图片http链接列表
- });
- }
- }
- };
- </script>
- <style lang="scss" scoped>
- .comment-list {
- .comment-goods {
- padding: 20rpx 24rpx;
- .goods-desc {
- min-width: 500rpx;
- }
-
- }
- .time {
- border-bottom: $-solid-border;
- }
- }
- .comment-item {
- .comment-img {
- margin-bottom: 20rpx;
- &:not(:nth-last-of-type(4n+1)) {
- margin-right: 20rpx;
- }
- }
- .evaluate-footer {
- padding: 0 24rpx 28rpx;
- .btn {
- width: 178rpx;
- height: 52rpx;
- border: 1px solid $-color-primary;
- }
- }
- }
-
- </style>
|