董国庆
2025-02-24 4db32af93a5e59960f5feadcdc0efd5c4e68a7cc
调试接口
2个文件已修改
395 ■■■■■ 已修改文件
H5/pages/work-detail/service.js 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/work-detail/work-detail.vue 385 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/work-detail/service.js
@@ -1,8 +1,12 @@
import request from '@/utils/request.js'
export const list = (params) => {
    return request.post(`/api/huacheng-sangeshenbian/applet/complaint/list`, params)
}
// 党员端
// 党员端-普通商品列表
export const getHomeGoodsSkuVOList = (params) => {
    return request.post(`/goods/forepart/goods-sku/getHomeGoodsSkuVOList`, params)
// 党员端-工单详情
export const workOrderDetail = (params) => {
    return request.get(`/api/huacheng-sangeshenbian/applet/complaint/detail`, params)
}
// 上级端
H5/pages/work-detail/work-detail.vue
@@ -6,16 +6,17 @@
        </view>
        <view class="allContent">
            <view class="topStatus">
                <view class="status">上报待上级审核</view>
                <view class="status">{{['正在办理','延期办理','超时办理','已办结 ','群众撤销','上报待审核','上级驳回'][orderInfo.status] ||''}}
                </view>
                <view class="flex a-center j-between mb-17">
                    <view class="tit">当前状态</view>
                    <!-- 延期状态 -->
                    <view v-if="false" class="flex a-center">
                    <view v-if="orderInfo.status==1" class="flex a-center">
                        <image src="../../static/detailImg/explain.png" class="plainIcon shrink0"></image>
                        <view class="explain">延期情况说明</view>
                    </view>
                    <!-- 超时状态 -->
                    <view v-if="true" class="flex a-center">
                    <view v-if="orderInfo.status==2" class="flex a-center">
                        <image src="../../static/detailImg/notice.png" class="overTimeIcon shrink0"></image>
                        <view class="overTime">已超时</view>
                        <view class="day">12</view>
@@ -24,8 +25,8 @@
                </view>
            </view>
            <!-- 已完结诉求信息 -->
            <view class="mt-19 flex a-center j-between topMore">
            <!-- 已完结诉求信息   已办结-->
            <view class="mt-19 flex a-center j-between topMore" v-if="orderInfo.status==3">
                <view class="name">诉求信息</view>
                <view class="flex a-center">
                    <view class="more">办理进度</view>
@@ -33,29 +34,65 @@
                </view>
            </view>
            <!-- 上报待上级审核--待审核状态显示 -->
            <view class="card1" v-if="status==3">
                <image src="../../static/detailImg/Ovaled.png" class="topIcon shrink0"></image>
                <view class="infoCard">
                    <view class="flex j-between">
                        <view class="label">上报人</view>
                        <view class="value">张三</view>
            <!-- 上级驳回   -->
            <view class="mt-19 flex a-center j-between topMore" v-if="orderInfo.status==6">
                <view class="name">上报情况</view>
            </view>
            <!-- 上报后的状态 -->
            <view class="card1" v-if="orderInfo.status==6 ||orderInfo.status==5 ">
                <!-- 上报上级上级驳回-->
                <view class="flex j-between" v-if="orderInfo.status==6">
                    <view class="flex flex-column a-center  mr-46">
                        <image src="../../static/detailImg/Ovaled.png" class="topIcon shrink0"></image>
                        <view class="proLine">
                        </view>
                    </view>
                    <view class="flex j-between">
                        <view class="label">联系电话</view>
                        <view class="value">13987654321</view>
                    <view class="infoCard mb-46">
                        <view class="flex j-between">
                            <view class="label">审核时间</view>
                            <view class="value">张三</view>
                        </view>
                        <view class="flex j-between">
                            <view class="label">审核人</view>
                            <view class="value">13987654321</view>
                        </view>
                        <view class="flex j-between">
                            <view class="label">联系电话</view>
                            <view class="value">XXXXXXX部门</view>
                        </view>
                        <view class="flex j-between">
                            <view class="label">驳回原因</view>
                            <view class="value">上报说明上报说明上报说明上报上报说明上报说明上报说明上报上报说明上报说明上报说明上报</view>
                        </view>
                    </view>
                    <view class="flex j-between">
                        <view class="label">所属部门</view>
                        <view class="value">XXXXXXX部门</view>
                </view>
                <!-- 上报待上级审核--待审核状态显示 -->
                <view class="flex j-between">
                    <view class="flex flex-column j-center  mr-46">
                        <image src="../../static/detailImg/Ovaled.png" class="topIcon shrink0"></image>
                    </view>
                    <view class="flex j-between">
                        <view class="label">上报时间</view>
                        <view class="value">2025-09-09 11:09:09</view>
                    </view>
                    <view class="flex j-between">
                        <view class="label">上报说明</view>
                        <view class="value">上报说明上报说明上报说明上报上报说明上报说明上报说明上报上报说明上报说明上报说明上报</view>
                    <view class="infoCard">
                        <view class="flex j-between">
                            <view class="label">上报人</view>
                            <view class="value">{{orderInfo.reportName||''}}</view>
                        </view>
                        <view class="flex j-between">
                            <view class="label">联系电话</view>
                            <view class="value">{{orderInfo.contactNumber||''}}</view>
                        </view>
                        <view class="flex j-between">
                            <view class="label">所属部门</view>
                            <view class="value">{{orderInfo.departmentName||""}}</view>
                        </view>
                        <view class="flex j-between">
                            <view class="label">上报时间</view>
                            <view class="value">{{orderInfo.reportTime||''}}</view>
                        </view>
                        <view class="flex j-between">
                            <view class="label">上报说明</view>
                            <view class="value">{{orderInfo.comment||''}}</view>
                        </view>
                    </view>
                </view>
            </view>
@@ -63,45 +100,44 @@
            <!--  -->
            <view class="cardInfo">
                <view class="flex j-between a-center">
                    <view class="title">诉求号:7843523454</view>
                    <view class="flex a-center" v-if="true" @click.stop="applyOverTime">
                    <view class="title">诉求号:{{orderInfo.serialNumber||''}}</view>
                    <view class="flex a-center" v-if="orderInfo.status==0" @click.stop="applyOverTime">
                        <view class="apply">延期申请</view>
                        <image src="../../static/detailImg/right.png" class="rightIcon shrink0"></image>
                    </view>
                </view>
                <view class="addressCard">
                    <view class="address">江苏省常州市溧阳市牛顿大道172号</view>
                    <view class="address">{{orderInfo.detailedAddress||""}}</view>
                    <image src="../../static/detailImg/dwei.png" class="addressIcon shrink0" mode="aspectFill"></image>
                </view>
                <view class="flex j-between">
                    <view class="label">创建时间</view>
                    <view class="value">2025-09-09 11:09:09</view>
                    <view class="value">{{orderInfo.createTime||''}}</view>
                </view>
                <view class="flex j-between">
                    <view class="label">问题类型</view>
                    <view class="value">教育</view>
                    <view class="value">{{orderInfo.problemType||''}}</view>
                </view>
                <view class="flex j-between">
                    <view class="label">群众</view>
                    <view class="value">张三</view>
                    <view class="value">{{orderInfo.name||''}}</view>
                </view>
                <view class="flex j-between">
                    <view class="label"> 联系电话</view>
                    <view class="value">13987654321</view>
                    <view class="value">{{orderInfo.contactNumber||""}}</view>
                </view>
                <view class="flex j-between">
                    <view class="label">详细地址</view>
                    <view class="value">上报说明上报说明上报说明上报
                        上报说明上报说明上报说明上报说</view>
                    <view class="value">{{orderInfo.detailedAddress||''}}</view>
                </view>
                <!-- 上级端需要的字段 -->
                <view class="flex j-between">
                    <view class="label">录入人</view>
                    <view class="value">上报说明上报说明上报说明</view>
                    <view class="value">{{orderInfo.createBy||''}}</view>
                </view>
                <view class="flex j-between">
                    <view class="label">录入人联系方式</view>
                    <view class="value">13987654321</view>
                    <view class="value">{{orderInfo.contactNumber||''}}</view>
                </view>
                <!--  上级端需要的字段-->
            </view>
@@ -110,100 +146,89 @@
            <view class="problem">
                <view class="title">问题描述</view>
                <view class="desc">
                    <view class="top">问题标题问题标题问题标题问题标题</view>
                    <view class="top">{{orderInfo.descriptionTitle||""}}</view>
                    <view class="line1"></view>
                    <view class="context">问题描述内容问题描述内容问题描述内容问题描述内容问题描述内容问题描述内容问题描述内容问题描述内容问题描述内容问题描述内容问题描述内容</view>
                    <view class="context">{{orderInfo.descriptionContent||''}}</view>
                </view>
                <view class="title">描述图片</view>
                <view class="descPic">
                    <view class="picItem" v-for="(item,index) in 3">
                        <image src="https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png"
                            class="img shrink0" mode="aspectFill">
                <view class="descPic" v-if="problemImg.length>0">
                    <view class="picItem" v-for="(item,index) in problemImg">
                        <image :src="item" class="img shrink0" mode="aspectFill">
                        </image>
                    </view>
                </view>
                <view v-else class="noData">暂无数据</view>
                <view class="title">描述视频</view>
                <view class="descPic">
                    <view class="picItem relative" v-for="(item,index) in 3">
                        <!-- <image src="https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png"
                            class="img shrink0" mode="aspectFill">
                        </image> -->
                        <!-- <video :autoplay="true" src="https://www.w3schools.com/tags/movie.mp4"
                            class="img shrink0"></video> -->
                <view class="descPic" v-if="problemVideos.length>0">
                    <view class="picItem relative" v-for="(item,index) in problemVideos">
                        <video id="myVideo" class="videoImg shrink0" disabled :controls="false"
                            :show-center-play-btn="false" :src="src">
                            :show-center-play-btn="false" :src="item">
                        </video>
                        <view class="videoOpen" @click.stop="openVideo(src)">
                        <view class="videoOpen" @click.stop="openVideo(item)">
                            <image src="../../static/detailImg/open.png" class="video shrink0" mode="aspectFill">
                            </image>
                        </view>
                    </view>
                </view>
            </view>
            <!-- 办结情况 -->
            <view class=" flex a-center j-between topMore topMore1 ">
                <view class="name">办结情况</view>
                <view class="flex a-center">
                </view>
            </view>
            <!-- 办结结果描述 -->
            <view class="resultDesc">
                <view class="topInfo">
                    <view class="flex a-center j-between mb-15">
                        <view class="flex a-center">
                            <view class="name">办结人员:</view>
                            <view class="value">13987654321</view>
                        </view>
                        <view class="flex a-center">
                            <view class="name">联系电话:</view>
                            <view class="value">13987654321</view>
                        </view>
                    </view>
                    <view class="flex a-center">
                        <view class="name">办结时间:</view>
                        <view class="value">13987654321</view>
                    </view>
                </view>
                <view class="title">办结结果描述</view>
                <view class="context">
                    1、处理措施:记录为解决该问题所采取的具体措施,包括政策宣传、处理沟通、现场处理等方式。
                    2、处理时间:记录处理该问题的时间节点,包括开始处理时间、处理完成时间等。
                    3、参与人员:记录参与处理该问题的人员名单,包括走访人员、相关部门工作人员等。
                    4、结果概述:简要描述问题的处理结果,是否得到有效解决,是否达到走访对象的期望等。
                    5、后续跟进:如需进一步跟进或处理,记录后续跟进的计划、时间节点及责任人员。
                </view>
                <view class="title">描述图片</view>
                <view class="descPic">
                    <view class="picItem" v-for="(item,index) in 3">
                        <image src="https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png"
                            class="img shrink0" mode="aspectFill">
                        </image>
                    </view>
                </view>
                <view class="title">描述视频</view>
                <view class="descPic" v-if="false">
                    <view class="picItem" v-for="(item,index) in 3">
                        <image src="https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png"
                            class="img shrink0" mode="aspectFill">
                        </image>
                    </view>
                </view>
                <view v-else class="noData">暂无数据</view>
            </view>
            <!-- 详情/办理进度 --正在办理显示-->
            <view class="progress">
            <!-- 办结情况 -->
            <view class=" flex a-center j-between topMore topMore1" v-if="orderInfo.status==3">
                <view class="name">办结情况</view>
                <view class="flex a-center">
                </view>
            </view>
            <!-- 办结结果描述 -->
            <view class="resultDesc" v-if="orderInfo.status==3">
                <view class="topInfo">
                    <view class="flex a-center j-between mb-15">
                        <view class="flex a-center">
                            <view class="name">办结人员:</view>
                            <view class="value">{{orderInfo.completionUsername||''}}</view>
                        </view>
                        <view class="flex a-center">
                            <view class="name">联系电话:</view>
                            <view class="value">{{orderInfo.completionUserPhone||''}}</view>
                        </view>
                    </view>
                    <view class="flex a-center">
                        <view class="name">办结时间:</view>
                        <view class="value">{{orderInfo.completionTime||''}}</view>
                    </view>
                </view>
                <view class="title">办结结果描述</view>
                <view class="context">{{orderInfo.completionDescription||''}}
                </view>
                <view class="title">描述图片</view>
                <view class="descPic" v-if="resultImg.length>0">
                    <view class="picItem" v-for="(item,index) in resultImg">
                        <image :src="item" class="img shrink0" mode="aspectFill">
                        </image>
                    </view>
                </view>
                <view v-else class="noData">暂无数据</view>
                <view class="title">描述视频</view>
                <view class="descPic" v-if="resultVideos.length>0">
                    <view class="picItem relative" v-for="(item,index) in resultVideos">
                        <video id="myVideo" class="videoImg shrink0" disabled :controls="false"
                            :show-center-play-btn="false" :src="item">
                        </video>
                        <view class="videoOpen" @click.stop="openVideo(item)">
                            <image src="../../static/detailImg/open.png" class="video shrink0" mode="aspectFill">
                            </image>
                        </view>
                    </view>
                </view>
                <view v-else class="noData">暂无数据</view>
            </view>
            <!-- 详情/办理进度 --正在办理-延期-超时  显示-->
            <view class="progress" v-if="['0','1','2'].includes(orderInfo.status)">
                <view class="title">当前办理进度</view>
                <view class="proCard">
                    <view class="proItem" v-for="(item,index) in 3">
                    <view class="proItem" v-for="(item,index) in progressesList">
                        <view class="mr-31 flex flex-column a-center">
                            <image src="../../static/detailImg/Ovaled.png" class="proIcon shrink0" mode="aspectFill">
                            </image>
@@ -212,23 +237,24 @@
                        </view>
                        <view>
                            <view class="flex a-center j-between mb-10">
                                <view class="name">李雷</view>
                                <view class="time">2024年9月29日11:09:09</view>
                                <view class="name">{{item.createByName||''}}</view>
                                <view class="time">{{item.createTime||''}}</view>
                            </view>
                            <view class="context">处理进度说明处理进度说明处理进度说明处理进
                                度说明处理进度说明处理进度说明处理进度说明处理进度说明</view>
                            <view class="context">{{item.describe||''}}</view>
                            <view class="proImg">
                                <view class="imgOrVedio" v-for="(item,index) in 4">
                                    <image
                                        src="https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png"
                                        class="img shrink0" mode="aspectFill">
                                <view class="imgOrVedio" v-for="(ite,ind) in item.imgList">
                                    <image :src="ite" class="img shrink0" mode="aspectFill">
                                    </image>
                                    <view class="openVideo" v-if="item==4">
                                </view>
                                <view class="imgOrVedio" v-for="(ite,ind) in item.videoList ">
                                    <video id="myVideo" class="videoImg shrink0" disabled :controls="false"
                                        :show-center-play-btn="false" :src="ite">
                                    </video>
                                    <view class="videoOpen" @click.stop="openVideo(ite)">
                                        <image src="../../static/detailImg/open.png" class="video shrink0"
                                            mode="aspectFill">
                                        </image>
                                    </view>
                                </view>
                            </view>
                        </view>
@@ -237,27 +263,30 @@
            </view>
            <!-- 详情/诉求流转 --正在办理显示-->
            <view class="careRequire">
            <view class="careRequire" v-if="orderInfo.status==0">
                <view class="title">诉求流转</view>
                <view class="proCard">
                    <view class="proItem" v-for="(item,index) in 3">
                    <view class="proItem" v-for="(item,index) in flowsList">
                        <view class="mr-34 flex flex-column a-center">
                            <image v-if="item==3" src="../../static/detailImg/Ovaled.png" class="proIcon shrink0"
                                mode="aspectFill">
                            <image v-if="index==flowsList.length-1" src="../../static/detailImg/Ovaled.png"
                                class="proIcon shrink0" mode="aspectFill">
                            </image>
                            <image v-else src="../../static/detailImg/Ovaled.png" class="proIcon shrink0"
                                mode="aspectFill">
                            </image>
                            <view v-if="item!=3" class="proLine">
                            <view v-if="index!=flowsList.length-1" class="proLine">
                            </view>
                        </view>
                        <view class="requireItem">
                            <view class="flex a-center j-between mb-23">
                                <view class="name" :class="item==3?'opt1':''">市级下派</view>
                                <view class="time" :class="item==3?'opt1':''">2024年9月29日11:09:09</view>
                                <view class="name" :class="index==flowsList.length-1?'opt1':''">{{item.name||''}}</view>
                                <view class="time" :class="index==flowsList.length-1?'opt1':''">{{item.createTime||''}}
                                </view>
                            </view>
                            <view class="name fs-23" :class="item==3?'opt1':''">上报</view>
                            <view class="name fs-23" :class="index==flowsList.length-1?'opt1':''">
                                {{item.type==0?"上报":'下派'}}
                            </view>
                        </view>
                    </view>
@@ -267,21 +296,21 @@
        </view>
        <!-- 上级显示 -->
        <view class="btnButtom" v-if="false">
            <view class="btnDown">问题上报</view>
            <view class="btnDown">诉求下派</view>
        <view class="btnButtom" v-if="['0','1','2'].includes(orderInfo.status)">
            <view class="btnDown" @click.stop="toUp">问题上报</view>
            <view class="btnDown" @click.stop="toDown">诉求下派</view>
            <view class="btnAdd">添加办理进度</view>
            <view class="btnAdd">办理结果录入</view>
        </view>
        <view class="btnButtom" v-if="false">
        <view class="btnButtom" v-if="orderInfo.status==5">
            <view class="cancel" @click.stop="showPop=true">驳回</view>
            <view class="sure">审核通过</view>
        </view>
        <!-- 上级显示 -->
        <!-- 党员显示 -->
        <view class="btnButtom" v-if="true">
            <view class="btnDown partyUp">问题上报</view>
        <view class="btnButtom" v-if="['0','1','2'].includes(orderInfo.status)">
            <view class="btnDown partyUp" @click.stop="toUp">问题上报</view>
            <view class="btnAdd partyDown">添加办理进度</view>
            <view class="btnAdd partyDown">办理结果录入</view>
        </view>
@@ -306,18 +335,26 @@
</template>
<script>
    import {
        workOrderDetail,
        list
    } from './service.js'
    export default {
        data() {
            return {
                id: "", //工单详情ID
                orderInfo: {}, //工单详情
                problemVideos: [], //描述视频
                problemImg: [], //描述图片
                resultVideos: [], //结果描述视频
                resultImg: [], //结果描述图片
                progressesList: [], //诉求流转记录
                flowsList: [], //办理进度
                showPop: false, //弹窗驳回
                rejectText: "", //驳回原因
                status: '2', //1 正在办理2已完结
                scoreTopHeight: 0, //距离顶部多高
                src: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/2minute-demo.mp4'
            };
        },
        onPageScroll(e) {
@@ -325,7 +362,12 @@
        },
        onShow() {
            list({
                pageNum: 1,
                pageSize: 10,
            }).then(res => {
            })
        },
        methods: {
            open() {},
@@ -338,7 +380,41 @@
            },
            // 获取订单详情信息
            getDetailInfo() {
                workOrderDetail({
                    id: this.id
                }).then(res => {
                    if (res.data.images) {
                        this.problemImg = res.data.images.split(',')
                    }
                    if (res.data.videos) {
                        this.problemVideos = res.data.videos.split(',')
                    }
                    if (res.data.completionImages) {
                        this.resultImg = res.data.completionImages.split(',')
                    }
                    if (res.data.completionVideos) {
                        this.resultVideos = res.data.completionVideos.split(',')
                    }
                    // 办理进度
                    if (res.data.complaintProgresses.length > 0) {
                        this.progressesList = res.data.complaintProgresses.map((item) => {
                            return {
                                ...item,
                                imgList: item.imgUrl ? item.imgUrl.split(',') : [],
                                videoList: item.video ? item.video.split(',') : [],
                            }
                        })
                    }
                    // 诉求流转记录
                    if (res.data.complaintFlows.length > 0) {
                        this.flowsList = res.data.complaintFlows
                    }
                    this.orderInfo = {
                        ...res.data
                    }
                })
            },
            // 确认驳回
            submitReject() {
@@ -348,6 +424,18 @@
            applyOverTime() {
                uni.navigateTo({
                    url: `/pages/work-detail/postpone-apply`
                })
            },
            // 问题上报
            toUp() {
                uni.navigateTo({
                    url: `/pages/problemReporting/problemReporting?id=${this.id}`
                })
            },
            // 问题下派
            toDown() {
                uni.navigateTo({
                    url: `/pages/dispatchWorkOrder/dispatchWorkOrder?id=${this.id}`
                })
            },
        }
@@ -458,14 +546,21 @@
        .card1 {
            margin-top: 21rpx;
            display: flex;
            justify-content: space-between;
            .topIcon {
                margin-top: 17rpx;
                width: 26.23rpx;
                height: 26.23rpx;
                margin-right: 46rpx;
            }
            .proLine {
                flex: 1;
                width: 4rpx;
                min-height: 50rpx;
                background: rgba(0, 0, 0, 0.06);
                border-radius: 3rpx;
            }
            .infoCard {
@@ -693,10 +788,11 @@
                                margin-top: 19rpx;
                            }
                            .openVideo {
                            .videoOpen {
                                position: absolute;
                                top: 19rpx;
                                top: 10rpx;
                                left: 0;
                                z-index: 99;
                                width: 140rpx;
                                height: 140rpx;
                                border-radius: 8rpx;
@@ -705,6 +801,7 @@
                                justify-content: center;
                                .video {
                                    z-index: 999;
                                    width: 140rpx;
                                    height: 140rpx;
                                }