hejianhao
2025-03-18 fc0568a82301b0aa26ba0770c641926a0241c5f4
修改bug
4个文件已修改
1个文件已添加
322 ■■■■■ 已修改文件
H5/pages.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/evaluate/evaluate-detail.vue 285 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/evaluate/service.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/list/list.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/work-detail/work-detail.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages.json
@@ -112,6 +112,12 @@
                "navigationBarTitleText": "诉求评价",
                "navigationStyle": "custom"
            }
        },{
            "path": "pages/evaluate/evaluate-detail",
            "style": {
                "navigationBarTitleText": "评价详情",
                "navigationStyle": "custom"
            }
        },
        {
            "path" : "pages/authentication/authentication",
H5/pages/evaluate/evaluate-detail.vue
New file
@@ -0,0 +1,285 @@
<template>
    <view class="content">
        <view class="topColor">
        </view>
        <view class="allContent">
            <view class="fs-27 lh-38 font-bold">评价打分</view>
            <view class="mt-25 flex j-between">
                <view class="evaluateItem" v-for="(item,index) in list" :key="index"
                    :class="rate==item.value && 'activeBg'">
                    <image :src="item.img" class="statusImg" />
                    <view class="title">{{item.tit}}</view>
                </view>
            </view>
            <view class="mt-38">
                <view class="fs-27 lh-38 font-bold">评价内容</view>
                <textarea disabled v-model="content" class="pt-25 pl-31 mt-27 fs-27 br-8 bgcolor4"
                    style="height: 365rpx;width: calc(100% - 31rpx);" placeholder="" />
                <view class="fs-27 mt-38 lh-38 font-bold">上传图片</view>
                <view v-if="localImageUrls.length != 0" class="flex wrap mt-27">
                    <view class="relative mr-15" v-for="(item, index) in localImageUrls" :key="index">
                        <image v-if="item != 'loading'" :src="item" class="w-140 h-140 shrink0 br-8" />
                        <view v-if="item != 'loading'" class="absolute w-140 h-140 bgcolor5 top0 left0 br-8">
                            <view class="absolute flex a-center j-between px-34"
                                style="top: 50%;left: 50%;transform: translate(-50%,-50%);width: calc(100% - 68rpx);">
                                <image @tap="viewImage(item)" src="@/static/Appeal/amplify.png" class="w-19 h-19" />
                            </view>
                        </view>
                    </view>
                </view>
                <view v-else>无</view>
                <view class="fs-27 mt-37 lh-38 font-bold">上传视频</view>
                <view v-if="video.length != 0" class="flex wrap mt-27">
                    <view class="imgOrVedio" v-for="(ite, ind) in video" :key="ind">
                        <video v-if="ite != 'loading'" id="myVideo" class="videoImg shrink0" disabled :controls="false"
                            :show-center-play-btn="false" :src="ite">
                        </video>
                        <view v-if="ite != 'loading'" class="absolute w-140 h-140 bgcolor5 top0 left0 br-8 zIndex999">
                            <view class="absolute flex a-center j-between"
                                style="top: 50%;left: 50%;transform: translate(-50%,-50%);">
                                <image @tap="openVideo(ite)" src="@/static/detailImg/open.png" class="w-140 h-140" />
                            </view>
                        </view>
                    </view>
                </view>
                <view v-else>无</view>
            </view>
            <view class="safe-box"></view>
        </view>
    </view>
</template>
<script>
    import {
        getDetail,
    } from './service'
    export default {
        data() {
            return {
                content: '', //评价内容
                localImageUrls: [], //本地回显的图片
                video: [],
                rate: null, //评价打分
                list: [{
                    img: '../../static/detailImg/img1.png',
                    tit: '不满意',
                    value: 0
                }, {
                    img: '../../static/detailImg/img2.png',
                    tit: '一般',
                    value: 1
                }, {
                    img: '../../static/detailImg/img3.png',
                    tit: '满意',
                    value: 2
                }, {
                    img: '../../static/detailImg/img4.png',
                    tit: '非常满意',
                    value: 3
                }],
            }
        },
        onLoad(params) {
            getDetail(params.id).then(res => {
                this.content = res.data.content
                this.rate = res.data.rate
                this.localImageUrls = res.data.imgUrl
                this.video = res.data.video
            })
        },
        methods: {
            back() {
                uni.navigateBack({
                    delta: 2
                })
            },
            viewImage(item) {
                uni.previewImage({
                    urls: [item]
                })
            },
            // 去大屏播放视频
            openVideo(url) {
                uni.navigateTo({
                    url: `/pages/work-detail/maxVideo?url=${url}`
                })
            },
        }
    }
</script>
<style>
    page {
        background: linear-gradient(180deg, #FFFFFF 0%, #F9F9F9 6%, #F8F8F8 100%);
    }
</style>
<style lang="scss" scoped>
    .content {
        width: 100%;
        height: 100%;
    }
    .topColor {
        height: 346rpx;
        background: linear-gradient(180deg, #FFDCDB 0%, rgba(255, 255, 255, 0) 100%);
        // padding: 176rpx 27rpx 17rpx 27rpx;
    }
    .allContent {
        margin-top: -203rpx;
        padding: 38rpx 31rpx 0 31rpx;
        background: #FFFFFF;
        box-shadow: 0rpx 0rpx 27rpx 0rpx rgba(0, 0, 0, 0.1);
        border-radius: 36rpx 36rpx 0 0;
        height: 100%;
        .evaluateItem {
            flex: 1;
            // height: 175rpx;
            background: rgba(0, 0, 0, 0.03);
            border-radius: 19rpx;
            padding: 25rpx 0 19rpx 0;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            margin-right: 17rpx;
            .statusImg {
                width: 75rpx;
                height: 75rpx;
            }
            .title {
                font-size: 23rpx;
                color: rgba(0, 0, 0, 0.6);
                line-height: 33rpx;
                margin-top: 23rpx;
            }
        }
        .activeBg {
            background: url('../../static/detailImg/bg.png') no-repeat 100% 100%;
            background-size: 100% 100%;
        }
        .evaluateItem:last-child {
            margin-right: 0;
        }
    }
    .bs-1 {
        box-shadow: 0rpx 0rpx 27rpx 0rpx rgba(0, 0, 0, 0.1);
    }
    .color1 {
        color: #FF4948;
    }
    .color2 {
        color: rgba(0, 0, 0, .8);
    }
    .color3 {
        color: #FAAD14;
    }
    .color4 {
        color: #FFFFFF;
    }
    .color99 {
        color: #FB9A0E;
    }
    .bgcolor-border {
        background: rgba(255, 253, 241, 1) !important;
        border: 2rpx solid #FFE58F;
    }
    .bgcolor1 {
        background: linear-gradient(270deg, rgba(255, 241, 0, 0.5) 0%, rgba(255, 249, 172, 0.25) 48%, rgba(255, 255, 255, 0.2) 100%, #FFFFFF 100%);
    }
    .bgcolor2 {
        background: linear-gradient(180deg, #FFDCDB 0%, rgba(255, 255, 255, 0) 25%);
    }
    .bgcolor3 {
        background: #FFFBE6;
    }
    .bgcolor4 {
        background: #F8F8F8;
    }
    .bgcolor5 {
        background: rgba(0, 0, 0, .23);
    }
    .bgcolor6 {
        background: linear-gradient(270deg, #FC8D55 0%, #FF4948 100%);
    }
    .border1 {
        border: 2rpx solid #FFF1B8;
    }
    .border2 {
        border: 2rpx solid #F8F8F8;
    }
    .safe-box {
        height: env(safe-area-inset-bottom);
    }
    .imgOrVedio {
        margin-right: 17rpx;
        position: relative;
        .img {
            width: 140rpx;
            height: 140rpx;
            border-radius: 8rpx;
            margin-top: 19rpx;
        }
        .videoOpen {
            position: absolute;
            top: 10rpx;
            left: 0;
            z-index: 99;
            width: 140rpx;
            height: 140rpx;
            border-radius: 8rpx;
            display: flex;
            align-items: center;
            justify-content: center;
            .video {
                z-index: 999;
                width: 140rpx;
                height: 140rpx;
            }
        }
    }
    .videoImg {
        width: 140.38rpx;
        height: 140.38rpx;
        border-radius: 7.69rpx;
        position: relative;
    }
    #myVideo {
        z-index: 1;
    }
    .zIndex999 {
        z-index: 999;
    }
    .btn-box {
        height: 120rpx;
    }
</style>
H5/pages/evaluate/service.js
@@ -5,3 +5,8 @@
export const saveProcess = (params) => {
    return request.post(`/api/huacheng-sangeshenbian/applet/complaint/commentComplaint`, params, )
}
// 评论详情
export const getDetail = (id) => {
    return request.get(`/api/huacheng-sangeshenbian/applet/complaint/getComplaintCommentInfo/${id}`)
}
H5/pages/list/list.vue
@@ -1,8 +1,9 @@
<template>
    <view class="content">
        <view class="bgColor2 h-96 flex a-center fs-27  j-between txt-center shadow1 font-w400 color1"
            style="position: sticky;top: 0;">
            <view @click="changeType('')" class="flex1 bgColor2 relative" :class="searchParams.type == '' && 'color2 font-bold'">
            style="position: sticky;top: 0;z-index: 999;">
            <view @click="changeType('')" class="flex1 bgColor2 relative"
                :class="searchParams.type == '' && 'color2 font-bold'">
                <view class="relative zIndex1000">
                    全部
                </view>
@@ -123,7 +124,8 @@
                    <view class="txt-center fs-23 mt-27 color6">
                        创建时间:{{ item.createTime | formatTime }}
                    </view>
                    <view v-if="item.listControlsButtonStatus == 0" class="flex a-center j-center fs-23 mt-29 txt-center">
                    <view v-if="item.listControlsButtonStatus == 0"
                        class="flex a-center j-center fs-23 mt-29 txt-center">
                        <view @click.stop="addProgress(item.id)" class="h-58 lh-58 bgColor5 w-192 br-29 color10">
                            添加办理进度
                        </view>
@@ -134,6 +136,11 @@
                    <view v-if="item.evaluateButtonStatus == 0" class="flex a-center j-center fs-23 mt-29 txt-center">
                        <view @click.stop="toEvaluate(item.id)" class="h-58 lh-58 bgColor6 w-192 br-29 color10">
                            评价
                        </view>
                    </view>
                    <view v-if="item.status == 8" class="flex a-center j-center fs-23 mt-29 txt-center">
                        <view @click.stop="toDetailEvaluate(item.id)" class="h-58 lh-58 bgColor6 w-192 br-29 color10">
                            查看评价
                        </view>
                    </view>
                </view>
@@ -210,6 +217,11 @@
                    url: `/pages/evaluate/evaluate?id=${id}`
                })
            },
            toDetailEvaluate(id) {
                uni.navigateTo({
                    url: `/pages/evaluate/evaluate-detail?id=${id}`
                })
            },
            fetchList(params, callback) {
                if (this.status == 'loading') return
                this.status = 'loading'
H5/pages/work-detail/work-detail.vue
@@ -327,6 +327,9 @@
        <view class="btnButtom" v-if="orderInfo.evaluateButtonStatus == 0">
            <view class=" btnAdd evaluate" @click.stop="toEvaluate">评价</view>
        </view>
        <view class="btnButtom" v-if="orderInfo.status == 8">
            <view class=" btnAdd evaluate" @click.stop="toDetailEvaluate">查看评价</view>
        </view>
@@ -561,6 +564,11 @@
                    url: `/pages/evaluate/evaluate?id=${this.id}`
                })
            },
            toDetailEvaluate() {
                uni.navigateTo({
                    url: `/pages/evaluate/evaluate-detail?id=${this.id}`
                })
            },
            addProgress() {
                uni.navigateTo({
                    url: `/pages/progress/progress?id=${this.id}`