落日与鲸
2025-02-25 61baff2c6d976f64f34ed8f152854e3031462897
Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/H5/threeSide
12个文件已修改
569 ■■■■ 已修改文件
H5/pages.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/Appeal/Appeal.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/add-progress/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/dispatchWorkOrder/dispatchWorkOrder.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/index/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/list/list.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/location/location.vue 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/problemReporting/problemReporting.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/progress/progress.vue 404 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/result-entry/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/work-detail/postpone-apply.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/work-detail/work-detail.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages.json
@@ -4,7 +4,7 @@
    {
        "path": "pages/index/index",
        "style": {
            "navigationBarTitleText": "uni-app",
            "navigationBarTitleText": "首页",
            "navigationStyle": "custom"
        }
    },
@@ -101,7 +101,7 @@
    ],
    "globalStyle": {
        "navigationBarTextStyle": "black",
        "navigationBarTitleText": "uni-app",
        "navigationBarTitleText": "三个身边",
        "navigationBarBackgroundColor": "#F8F8F8",
        "backgroundColor": "#F8F8F8"
    },
H5/pages/Appeal/Appeal.vue
@@ -2,7 +2,7 @@
    <view class="content">
        <view class="main">
            <view class="card  flex a-center h-108 j-between">
                <text class="w-108 fs-27 font-bold mr-85">时间</text>
                <text class="w-108 fs-27 font-bold mr-85">发生时间</text>
                <view class=" flex a-center j-between flex1" @click="showDate=true">
                    <input v-model="time" disabled placeholder-style="color: rgba(0,0,0,0.3);font-size:27rpx;"
                        class="uni-input flex1" maxlength="10" placeholder="请选择问题发生的时间" />
@@ -18,7 +18,7 @@
                </view>
            </view>
            <view class="card  flex a-center h-108 j-between">
                <text class="w-108 fs-27 font-bold mr-85">群众</text>
                <text class="w-108 fs-27 font-bold mr-85">群众姓名</text>
                <input v-model="name" placeholder-style="color: rgba(0,0,0,0.3);font-size:27rpx;"
                    class="uni-input flex1" placeholder="请输入群众姓名" />
H5/pages/add-progress/index.vue
@@ -17,7 +17,7 @@
                    </view>
                </view>
                <view class="flex-column a-center">
                    <view class="fs-27 lh-38 font-bold">群众</view>
                    <view class="fs-27 lh-38 font-bold">群众姓名</view>
                    <view class="fs-27 lh-38 mt-10">{{ info.name }}</view>
                </view>
                <view class="flex-column a-center">
H5/pages/dispatchWorkOrder/dispatchWorkOrder.vue
@@ -13,7 +13,7 @@
            <view class="table-head">
                <view class="type flex1">问题类型</view>
                <view class="person flex1">群众</view>
                <view class="person flex1">群众姓名</view>
                <view class="phone flex1">联系电话</view>
            </view>
H5/pages/index/index.vue
@@ -37,7 +37,7 @@
                </view>
                <view class="pt-38 pb-38 bg1 w-333 br-19 mt-19 flex a-center">
                    <image class="w-81 h-77 ml-38" src="/static/home/img8.png" mode=""></image>
                    <text class="ml-37">分析统计</text>
                    <text class="ml-37">统计分析</text>
                </view>
                <view class="pt-38 pb-38 bg1 w-333 br-19 mt-19 flex a-center" @click="onClick()" v-if="showData">
                    <image class="w-94 h-77 ml-38" src="/static/home/img7.png" mode=""></image>
H5/pages/list/list.vue
@@ -84,7 +84,7 @@
                    </view>
                    <view class="">
                        <view class="">
                            群众
                            群众姓名
                        </view>
                        <view class="mt-10">
                            {{ item.name || '' }}
H5/pages/location/location.vue
@@ -11,7 +11,7 @@
        <view class=" main">
            <view class="searchMain  mb-35 mt-38">
                <view class="search fs-27 ">
                    <text class="mr-35 ml-50">成都市</text>
                    <text class="mr-35 ml-50">{{ city }}</text>
                    <image class="w-17 h-8 mr-35" src="/static/location/toleft.png" mode=""></image>
                    <image class="w-31 h-31 mr-13" src="/static/location/search.png" mode=""></image>
                    <input class="flex1" v-model="keyword" placeholder="搜索小区/写字楼等"
@@ -42,18 +42,12 @@
                map: null,
                uid: 0,
                keyword: '',
                markers:[],
                locationList: [],
                city: '攀枝花市'
            };
        },
        methods: {
            clearMarkers() {
                // 清除所有标点
                this.markers.forEach((marker) => {
                    this.map.removeOverlay(marker);
                });
                this.markers = []; // 清空存储标点的数组
            },
            back() {
                uni.navigateBack()
            },
@@ -108,52 +102,87 @@
        },
        onReady() {
            this.map = new BMapGL.Map("container"); // 创建地图实例 
            console.log(this.map);
            // uni.getLocation({
            //     type: 'wgs84',
            //     success: (res) => {
            navigator.geolocation.getCurrentPosition(success, error, options);
            uni.getLocation({
                type: 'wgs84',
                success: (res) => {
                    console.log(res, 'resgetLocation');
                    this.longitude = res.longitude;
                    this.latitude = res.latitude;
                    var point = new BMapGL.Point(res.longitude, res.latitude); // 创建点坐标
                    this.map.enableScrollWheelZoom(true);
                    this.map.centerAndZoom(point, 12);
                    var marker = new BMapGL.Marker(point);
                    this.map.addOverlay(marker);
                    this.markers.push(marker);
                    var myGeo = new BMapGL.Geocoder();
                    // 根据坐标得到地址描述
                    myGeo.getLocation(new BMapGL.Point(res.longitude, res.latitude), (result) => {
                        console.log(result, 'result');
                        this.locationList = result.surroundingPois.map((item, index) => {
                            item.id = index + 1
                            return item
                        })
            function success(position) {
                const latitude = position.coords.latitude;
                const longitude = position.coords.longitude;
                const accuracy = position.coords.accuracy; // 精度,单位米
                    })
                    this.map.addEventListener('click', (e) => {
                        this.clearMarkers()
                        var mercator = this.map.lnglatToMercator(e.latlng.lng, e.latlng.lat);
                        this.latitude = e.latlng.lat
                        this.longitude = e.latlng.lng
                        var point = new BMapGL.Point(e.latlng.lng, e.latlng.lat);
                        this.map.centerAndZoom(point, 12);
                        var myGeo = new BMapGL.Geocoder();
                        // 根据坐标得到地址描述
                        myGeo.getLocation(new BMapGL.Point(e.latlng.lng, e.latlng.lat), (result) => {
                            console.log(result, 'result');
                            this.locationList = result.surroundingPois.map((item, index) => {
                                item.id = index + 1
                                return item
                            })
                console.log(`纬度: ${latitude}, 经度: ${longitude}, 精度: ${accuracy}`);
                //  在这里可以使用获取到的经纬度信息,例如在地图上显示位置等。
            }
                        })
                        var marker = new BMapGL.Marker(point);
                        this.map.addOverlay(marker);
                          this.markers.push(marker);
                    });
            function error(err) {
                console.log(err);
                switch (err.code) {
                    case err.PERMISSION_DENIED:
                        console.error("用户拒绝了位置请求。");
                        break;
                    case err.POSITION_UNAVAILABLE:
                        console.error("无法获取位置信息。");
                        break;
                    case err.TIMEOUT:
                        console.error("位置请求超时。");
                        break;
                    default:
                        console.error("未知错误。");
                }
            }
            const options = {
                enableHighAccuracy: true, // 启用高精度定位
                timeout: 5000, // 5 秒超时
                maximumAge: 0 //  不使用缓存
            };
            let res = {
                longitude: 101.725544,
                latitude: 26.587259
            }
            this.longitude = res.longitude;
            this.latitude = res.latitude;
            var point = new BMapGL.Point(res.longitude, res.latitude); // 创建点坐标
            this.map.enableScrollWheelZoom(true);
            this.map.centerAndZoom(point, 12);
            var marker = new BMapGL.Marker(point);
            this.map.addOverlay(marker);
            var myGeo = new BMapGL.Geocoder();
            // 根据坐标得到地址描述
            myGeo.getLocation(new BMapGL.Point(res.longitude, res.latitude), (result) => {
                this.locationList = result.surroundingPois.map((item, index) => {
                    item.id = index + 1
                    return item
                })
            })
            this.map.addEventListener('click', (e) => {
                var mercator = this.map.lnglatToMercator(e.latlng.lng, e.latlng.lat);
                this.latitude = e.latlng.lat
                this.longitude = e.latlng.lng
                var point = new BMapGL.Point(e.latlng.lng, e.latlng.lat);
                this.map.centerAndZoom(point, 12);
                var myGeo = new BMapGL.Geocoder();
                // 根据坐标得到地址描述
                myGeo.getLocation(new BMapGL.Point(e.latlng.lng, e.latlng.lat), (result) => {
                    console.log(result, 'result');
                    this.locationList = result.surroundingPois.map((item, index) => {
                        item.id = index + 1
                        return item
                    })
                })
                var marker = new BMapGL.Marker(point);
                this.map.addOverlay(marker);
            });
            // },
            // error:err=>{
            //     console.log(err,'err');
            // }
            // });
        }
    }
H5/pages/problemReporting/problemReporting.vue
@@ -13,7 +13,7 @@
            <view class="table-head">
                <view class="type flex1">问题类型</view>
                <view class="person flex1">群众</view>
                <view class="person flex1">群众姓名</view>
                <view class="phone flex1">联系电话</view>
            </view>
H5/pages/progress/progress.vue
@@ -17,7 +17,7 @@
                    </view>
                </view>
                <view class="flex-column a-center">
                    <view class="fs-27 lh-38 font-bold">群众</view>
                    <view class="fs-27 lh-38 font-bold">群众姓名</view>
                    <view class="fs-27 lh-38 mt-10">{{ info.name }}</view>
                </view>
                <view class="flex-column a-center">
@@ -72,231 +72,231 @@
</template>
<script>
import {
    getComplaintDetail
} from './service'
export default {
    data() {
        return {
            id: '',
            info: {},
            type: true,
    import {
        getComplaintDetail
    } from './service'
    export default {
        data() {
            return {
                id: '',
                info: {},
                type: true,
            }
        },
        onLoad(params) {
            this.id = params.id
            if (params.type) {
                this.type = false
                uni.setNavigationBarTitle({
                    title: '办理进度'
                })
            }
            getComplaintDetail({
                id: params.id
            }).then(res => {
                this.info = res.data
            })
        },
        methods: {
            toAdd() {
                uni.navigateTo({
                    url: `/pages/add-progress/index?id=${this.id}`
                })
            },
            viewImage(item) {
                uni.previewImage({
                    urls: [item]
                })
            },
            // 去大屏播放视频
            openVideo(url) {
                uni.navigateTo({
                    url: `/pages/work-detail/maxVideo?url=${url}`
                })
            },
        }
    },
    onLoad(params) {
        this.id = params.id
        if (params.type) {
            this.type = false
            uni.setNavigationBarTitle({
                title: '办理进度'
            })
        }
        getComplaintDetail({
            id: params.id
        }).then(res => {
            this.info = res.data
        })
    },
    methods: {
        toAdd() {
            uni.navigateTo({
                url: `/pages/add-progress/index?id=${this.id}`
            })
        },
        viewImage(item) {
            uni.previewImage({
                urls: [item]
            })
        },
        // 去大屏播放视频
        openVideo(url) {
            uni.navigateTo({
                url: `/pages/work-detail/maxVideo?url=${url}`
            })
        },
    }
}
</script>
<style scoped lang="scss">
.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;
}
.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);
}
.progress {
    border-radius: 27rpx;
    margin-top: 38.46rpx;
    background: #FFFFFF;
    box-shadow: 0rpx 0rpx 27rpx 0rpx rgba(0, 0, 0, 0.1);
    padding: 34rpx 31rpx;
    .title {
        font-weight: 600;
        font-size: 27rpx;
        color: rgba(0, 0, 0, 0.88);
        line-height: 38rpx;
        text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1);
        margin-bottom: 48rpx;
    .bs-1 {
        box-shadow: 0rpx 0rpx 27rpx 0rpx rgba(0, 0, 0, 0.1);
    }
    .proCard {
        .proItem {
            display: flex;
            padding-bottom: 38rpx;
    .color1 {
        color: #FF4948;
    }
            .dot {
                width: 19rpx;
                height: 19rpx;
                background: linear-gradient(180deg, #FD8D3C 0%, #FA541C 100%);
                box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(252, 141, 85, 0.4);
                border-radius: 50%;
                margin: 10rpx 0;
    .color2 {
        color: rgba(0, 0, 0, .8);
    }
    .color3 {
        color: #FAAD14;
    }
    .color4 {
        color: #FFFFFF;
    }
    .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);
    }
    .progress {
        border-radius: 27rpx;
        margin-top: 38.46rpx;
        background: #FFFFFF;
        box-shadow: 0rpx 0rpx 27rpx 0rpx rgba(0, 0, 0, 0.1);
        padding: 34rpx 31rpx;
        .title {
            font-weight: 600;
            font-size: 27rpx;
            color: rgba(0, 0, 0, 0.88);
            line-height: 38rpx;
            text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1);
            margin-bottom: 48rpx;
        }
        .proCard {
            .proItem {
                display: flex;
                align-items: center;
                justify-content: center;
                padding-bottom: 38rpx;
                .box {
                    width: 7rpx;
                    height: 7rpx;
                    background-color: #fff;
                .dot {
                    width: 19rpx;
                    height: 19rpx;
                    background: linear-gradient(180deg, #FD8D3C 0%, #FA541C 100%);
                    box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(252, 141, 85, 0.4);
                    border-radius: 50%;
                }
            }
            .proLine {
                flex: 1;
                width: 4rpx;
                background: rgba(0, 0, 0, 0.06);
                border-radius: 3rpx;
            }
            .name {
                font-weight: 400;
                font-size: 27rpx;
                color: rgba(0, 0, 0, 0.8);
                line-height: 38rpx;
            }
            .time {
                font-weight: 400;
                font-size: 23rpx;
                color: rgba(0, 0, 0, 0.4);
                line-height: 33rpx;
            }
            .context {
                font-size: 27rpx;
                color: rgba(0, 0, 0, 0.8);
                line-height: 38rpx;
            }
            .proImg {
                display: flex;
                flex-wrap: wrap;
                .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;
                    margin: 10rpx 0;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    margin-top: 19rpx;
                    .video {
                        z-index: 999;
                    .box {
                        width: 7rpx;
                        height: 7rpx;
                        background-color: #fff;
                        border-radius: 50%;
                    }
                }
                .proLine {
                    flex: 1;
                    width: 4rpx;
                    background: rgba(0, 0, 0, 0.06);
                    border-radius: 3rpx;
                }
                .name {
                    font-weight: 400;
                    font-size: 27rpx;
                    color: rgba(0, 0, 0, 0.8);
                    line-height: 38rpx;
                }
                .time {
                    font-weight: 400;
                    font-size: 23rpx;
                    color: rgba(0, 0, 0, 0.4);
                    line-height: 33rpx;
                }
                .context {
                    font-size: 27rpx;
                    color: rgba(0, 0, 0, 0.8);
                    line-height: 38rpx;
                }
                .proImg {
                    display: flex;
                    flex-wrap: wrap;
                    .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;
                        margin-top: 19rpx;
                        .video {
                            z-index: 999;
                            width: 140rpx;
                            height: 140rpx;
                        }
                    }
                }
            }
        }
        .proItem:last-child {
            .proLine {
                display: none;
            .proItem:last-child {
                .proLine {
                    display: none;
                }
            }
        }
    }
}
.videoImg {
    width: 140.38rpx;
    height: 140.38rpx;
    border-radius: 7.69rpx;
    position: relative;
}
    .videoImg {
        width: 140.38rpx;
        height: 140.38rpx;
        border-radius: 7.69rpx;
        position: relative;
    }
#myVideo {
    z-index: 1;
}
    #myVideo {
        z-index: 1;
    }
</style>
H5/pages/result-entry/index.vue
@@ -19,7 +19,7 @@
                            info.problemType }}</view>
                    </view>
                    <view class="flex-column a-center">
                        <view class="fs-27 lh-38 font-bold">群众</view>
                        <view class="fs-27 lh-38 font-bold">群众姓名</view>
                        <view class="fs-27 lh-38 mt-10">{{ info.name }}</view>
                    </view>
                    <view class="flex-column a-center">
H5/pages/work-detail/postpone-apply.vue
@@ -17,7 +17,7 @@
                    </view>
                </view>
                <view class="flex-column a-center">
                    <view class="fs-27 lh-38 font-bold">群众</view>
                    <view class="fs-27 lh-38 font-bold">群众姓名</view>
                    <view class="fs-27 lh-38 mt-10">{{ info.name }}</view>
                </view>
                <view class="flex-column a-center">
H5/pages/work-detail/work-detail.vue
@@ -120,7 +120,7 @@
                    <view class="value">{{orderInfo.problemType||''}}</view>
                </view>
                <view class="flex j-between">
                    <view class="label">群众</view>
                    <view class="label">群众姓名</view>
                    <view class="value">{{orderInfo.name||''}}</view>
                </view>
                <view class="flex j-between">
@@ -284,12 +284,12 @@
                        </view>
                        <view class="requireItem">
                            <view class="flex a-center j-between mb-23">
                                <view class="name" :class="index==flowsList.length-1?'opt1':''">{{item.name||''}}</view>
                                <view class="time" :class="index==flowsList.length-1?'opt1':''">
                                <view class="name">{{item.name||''}}</view>
                                <view class="time">
                                    {{item.createTime|formatTime}}
                                </view>
                            </view>
                            <view class="name fs-23" :class="index==flowsList.length-1?'opt1':''">
                            <view class="name fs-23">
                                {{item.type==0?"上报":'下派'}}
                            </view>
@@ -302,8 +302,10 @@
        <!-- 上级显示 -->
        <view class="btnButtom" v-if="[0,1,2,6].includes(orderInfo.status) && !isParty">
            <view class="btnDown" @click.stop="toUp" v-if="userInfo.accountLevel>1">问题上报</view>
            <view class="btnDown" @click.stop="toDown" v-if="userInfo.accountLevel<4">诉求下派</view>
            <view class="btnDown" @click.stop="toUp" v-if="userInfo.accountLevel>1"
                :class="[2,3].includes(userInfo.accountLevel)?'':'partyUp'">问题上报</view>
            <view class="btnDown" @click.stop="toDown" v-if="userInfo.accountLevel<4"
                :class="[2,3].includes(userInfo.accountLevel)?'':'partyDown'">诉求下派</view>
            <view class="btnAdd" @click="addProgress">添加办理进度</view>
            <view class="btnAdd" @click="resultEntery">办理结果录入</view>
        </view>