jiangping
2024-05-14 25030e327649a9c0d0cba5cce36e24ebe5499018
Merge remote-tracking branch 'origin/master'
已添加23个文件
已修改5个文件
2404 ■■■■■ 文件已修改
h5/pages.json 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/driver/index.vue 279 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/driver/queueUp.vue 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/driver/queueUpRecord.vue 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/driver/reserved.vue 314 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/driver/reservedDetail.vue 372 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/driver/reservedGuide.vue 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/driver/reservedRecord.vue 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/driver/taskConfirm.vue 435 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/driver/taskDetail.vue 380 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staff/snapshot.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staff/task/index.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/userinfo/userinfo.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/visitorApplication/visitorApplication.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/driver/bg_renwu@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/driver/btn_qiandao@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/driver/btn_qiandao_fail@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/driver/ic_truck@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/driver/ic_yiqiandao@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/driver/ic_zuoyezhong@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/driver/wuliu_ic_car@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/driver/wuliu_ic_daolan@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/driver/wuliu_ic_huowu@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/driver/wuliu_ic_paidui@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/driver/wuliu_ic_ruyuanyuyue@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/driver/wuliu_ic_yuyuejilu@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/driver/wuliu_ic_zhinan@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/driver/wuliuche_banner@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages.json
@@ -187,90 +187,160 @@
                "enablePullDownRefresh": false
            }
        }
        ,{
        }, {
            "path" : "pages/staff/snapshot",
            "style" :
            {
            "style": {
                "navigationBarTitleText": "隐患随手拍",
                "enablePullDownRefresh": false
            }
            
        }
        ,{
        }, {
            "path" : "pages/staff/memberSel",
            "style" :
            {
            "style": {
                "navigationBarTitleText": "选择人员",
                "enablePullDownRefresh": false
            }
            
        }
        ,{
        }, {
            "path" : "pages/staff/meetingSub",
            "style" :
            {
            "style": {
                "navigationBarTitleText": "预约会议室",
                "enablePullDownRefresh": false
            }
            
        }
        ,{
        }, {
            "path" : "pages/staff/meetingSubOrder",
            "style" :
            {
            "style": {
                "navigationBarTitleText": "确认预约",
                "enablePullDownRefresh": false
            }
            
        }
        ,{
        }, {
            "path" : "pages/staff/vehicle/index",
            "style" :
            {
            "style": {
                "navigationBarTitleText": "用车申请",
                "enablePullDownRefresh": false
            }
            
        }
        ,{
        }, {
            "path" : "pages/staff/vehicle/shinei",
            "style" :
            {
            "style": {
                "navigationBarTitleText": "用车申请",
                "enablePullDownRefresh": false
            }
            
        }
        ,{
        }, {
            "path" : "pages/staff/vehicle/apply",
            "style" :
            {
            "style": {
                "navigationBarTitleText": "用车申请",
                "enablePullDownRefresh": false
            }
            
        }
        ,{
        }, {
            "path" : "pages/staff/vehicle/shiwai",
            "style" :
            {
            "style": {
                "navigationBarTitleText": "用车申请",
                "enablePullDownRefresh": false
            }
            
        }
        ,{
        }, {
            "path" : "pages/staff/task/index",
            "style" :
            {
            "style": {
                "navigationBarTitleText": "任务中心",
                "enablePullDownRefresh": false
            }
            
        }, {
            "path": "pages/staff/task/visitorApprove",
            "style": {
                "navigationBarTitleText": "访客审批",
                "enablePullDownRefresh": false
            }
        }, {
            "path": "pages/staff/sendACar",
            "style": {
                "navigationBarTitleText": "派车记录",
                "enablePullDownRefresh": false
            }
        }, {
            "path": "pages/staff/meetingCalendar",
            "style": {
                "navigationBarTitleText": "会议日历",
                "enablePullDownRefresh": false
            }
        }, {
            "path": "pages/staff/meetingDetail",
            "style": {
                "navigationBarTitleText": "会议详情",
                "enablePullDownRefresh": false
            }
        }, {
            "path": "pages/staff/meetingManager",
            "style": {
                "navigationBarTitleText": "会议室管理",
                "enablePullDownRefresh": false
            }
        }, {
            "path": "pages/driver/index",
            "style": {
                "navigationBarTitleText": "物流车中心",
                "enablePullDownRefresh": false
            }
        }, {
            "path": "pages/driver/reserved",
            "style": {
                "navigationBarTitleText": "入园预约",
                "enablePullDownRefresh": false
            }
        }, {
            "path": "pages/driver/reservedGuide",
            "style": {
                "navigationBarTitleText": "预约指南",
                "enablePullDownRefresh": false
            }
        }, {
            "path": "pages/driver/reservedRecord",
            "style": {
                "navigationBarTitleText": "预约记录",
                "enablePullDownRefresh": false
            }
        }, {
            "path": "pages/driver/queueUp",
            "style": {
                "navigationBarTitleText": "排队情况",
                "enablePullDownRefresh": false
            }
        }
        ,{
            "path" : "pages/staff/task/visitorApprove",
            "path" : "pages/driver/queueUpRecord",
            "style" :
            {
                "navigationBarTitleText": "作业中车辆",
                "enablePullDownRefresh": false
            }
        }
        ,{
            "path" : "pages/driver/taskDetail",
            "style" :
            {
                "navigationBarTitleText": "任务详情",
                "enablePullDownRefresh": false
            }
        }
        ,{
            "path" : "pages/driver/reservedDetail",
            "style" :                                                                                    
            {
                "navigationBarTitleText": "访客审批",
@@ -279,37 +349,10 @@
            
        }
        ,{
            "path" : "pages/staff/sendACar",
            "path" : "pages/driver/taskConfirm",
            "style" :                                                                                    
            {
                "navigationBarTitleText": "派车记录",
                "enablePullDownRefresh": false
            }
        }
        ,{
            "path" : "pages/staff/meetingCalendar",
            "style" :
            {
                "navigationBarTitleText": "会议日历",
                "enablePullDownRefresh": false
            }
        }
        ,{
            "path" : "pages/staff/meetingDetail",
            "style" :
            {
                "navigationBarTitleText": "会议详情",
                "enablePullDownRefresh": false
            }
        }
        ,{
            "path" : "pages/staff/meetingManager",
            "style" :
            {
                "navigationBarTitleText": "会议室管理",
                "navigationBarTitleText": "确认任务",
                "enablePullDownRefresh": false
            }
            
h5/pages/driver/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,279 @@
<template>
    <view class="main_app">
        <view class="title_wrap">
            <view class="name">某某某,欢迎登录~</view>
            <view class="btn" @click="loginOut">退出登录</view>
        </view>
        <!--  -->
        <view class="banner_wrap">
            <view class="h1">安泰物流智慧园区</view>
            <view class="h2">物流车专区</view>
            <image class="banner" src="../../static/driver/wuliuche_banner@2x.png" mode="widthFix"></image>
        </view>
        <!--  -->
        <view class="task_list">
            <view class="item">
                <view class="head">
                    <view class="name">运输单222</view>
                    <view class="status">
                        <view class="text">请确认任务</view>
                        <view class="time">预计等待:12小时</view>
                    </view>
                </view>
                <view class="content">
                    <view class="info">
                        <view class="plate">
                            <image src="@/static/driver/wuliu_ic_car@2x.png" class="icon" mode=""></image>
                            <text>皖AD</text>
                        </view>
                        <view class="plate">
                            <image src="@/static/driver/wuliu_ic_huowu@2x.png" class="icon" mode=""></image>
                            <text>3000万</text>
                        </view>
                    </view>
                    <view class="sub">
                        <view class="time">02-01 08:11:11</view>
                        <view class="sub_btn" @click="handleTask()">确认任务</view>
                    </view>
                </view>
            </view>
        </view>
        <!--  -->
        <view class="title_wrap"><view class="name">业务办理</view></view>
        <view class="container1">
            <view class="left">
                <view class="img_wrap img1" @click="$jump('/pages/driver/reserved')">
                    <image src="@/static/driver/wuliu_ic_ruyuanyuyue@2x.png" class="img"></image>
                    <view class="h1">入园须知</view>
                    <view class="h2">RESERVATION</view>
                </view>
                <view class="img_wrap img2" @click="$jump('/pages/driver/reservedGuide')">
                    <image src="@/static/driver/wuliu_ic_zhinan@2x.png" class="img"></image>
                    <view class="h1">预约指南</view>
                    <view class="h2">APPOINTMENT GUIDE</view>
                </view>
            </view>
            <view class="right">
                <view class="img_wrap img2" @click="$jump('/pages/driver/reservedRecord')">
                    <image src="@/static/driver/wuliu_ic_yuyuejilu@2x.png" class="img"></image>
                    <view class="h1">预约记录</view>
                    <view class="h2">APPOINTMENT RECORD</view>
                </view>
                <view class="img_wrap img2" @click="$jump('/pages/driver/queueUp')">
                    <image src="@/static/driver/wuliu_ic_paidui@2x.png" class="img"></image>
                    <view class="h1">月台排队情况</view>
                    <view class="h2">HIDDEN DANGER</view>
                </view>
                <view class="img_wrap img2">
                    <image src="@/static/driver/wuliu_ic_daolan@2x.png" class="img"></image>
                    <view class="h1">园区导览图</view>
                    <view class="h2">GUIDE MAP</view>
                </view>
            </view>
        </view>
        <!--  -->
        <view class="copyright">
            <image src="@/static/logo_s@2x.png" class="mr6" mode="widthFix" />
            <text>安徽安泰物流有限责任公司版权所有</text>
        </view>
    </view>
</template>
<script>
    export default {
        data() {
            return {
            };
        },
        methods: {
            handleTask(){
                uni.navigateTo({
                    url: '/pages/driver/taskConfirm'
                })
            }
        }
    }
</script>
<style lang="scss">
.title_wrap {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24rpx;
    .name {
        font-weight: 500;
        font-size: 34rpx;
        color: #222222;
    }
    .btn {
        width: 144rpx;
        height: 56rpx;
        border-radius: 36rpx;
        border: 1rpx solid #279baa;
        font-size: 26rpx;
        color: #279baa;
        display: flex;
        justify-content: center;
        align-items: center;
    }
}
.main_app {
    padding-top: 12rpx;
}
.banner_wrap {
    padding: 54rpx 44rpx;
    color: #fff;
    position: relative;
    width: 688rpx;
    height: 270rpx;
    margin-bottom: 40rpx;
    .h1 {
        font-weight: bold;
        line-height: 66rpx;
        font-size: 44rpx;
        margin-bottom: 14rpx;
    }
    .h2{
        font-weight: 500;
        font-size: 28rpx;
        width: 192rpx;
        color: #279BAA;
        height: 48rpx;
        line-height: 48rpx;
        text-align: center;
        background: #FFFFFF;
        box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(39,155,170,0.31);
        border-radius: 24rpx;
    }
    .banner {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        z-index: -1;
    }
}
.container1 {
    display: flex;
    flex-wrap: wrap;
    view {
        width: 336rpx;
    }
    .left {
        margin-right: 18rpx;
    }
    .img_wrap {
        position: relative;
        padding: 24rpx 0rpx 0 28rpx;
        border-radius: 8rpx;
        overflow: hidden;
        .h1 {
            font-weight: 500;
            font-size: 32rpx;
            color: #222222;
            line-height: 48rpx;
            margin-bottom: 4rpx;
        }
        .h2 {
            font-size: 22rpx;
            color: #7b9da1;
            line-height: 34rpx;
        }
        .img {
            width: 100%;
            height: 100%;
            position: absolute;
            top: 0;
            left: 0;
            z-index: -1;
        }
    }
    .img1 {
        width: 336rpx;
        height: 296rpx;
        margin-bottom: 16rpx;
    }
    .img2 {
        width: 336rpx;
        height: 140rpx;
        margin-bottom: 16rpx;
    }
}
.task_list{
    margin-bottom: 48rpx;
    .item{
        background: #FFFFFF;
        box-shadow: 0rpx 4rpx 32rpx 0rpx rgba(39,155,170,0.18);
        border-radius: 16rpx;
        .head{
            display: flex;
            justify-content: space-between;
            align-items: center;
            background: linear-gradient( 270deg, #FEFEFF 0%, #E1F7FE 100%);
            padding: 20rpx 30rpx;
            .name{
                font-weight: 600;
                font-size: 36rpx;
                color: #222222;
            }
            .status{
                color: #279BAA;
                font-weight: 500;
                .time{
                    font-size: 24rpx;
                    font-weight: 360;
                }
            }
        }
        .content{
            .info{
                display: flex;
                padding: 24rpx 30rpx;
                .plate{
                    flex: 1;
                    display: flex;
                    align-items: center;
                    .icon{
                        width: 26rpx;
                        height: 26rpx;
                        margin-right: 10rpx;
                    }
                }
            }
            .sub{
                display: flex;
                justify-content: space-between;
                align-items: center;
                padding: 0 30rpx 24rpx;
                .time{
                    font-size: 26rpx;
                    color: #999999;
                }
                .sub_btn{
                    height: 68rpx;
                    line-height: 68rpx;
                    padding: 0 34rpx;
                    color: #FFFFFF;
                    background: #279BAA;
                    box-shadow: 0rpx 4rpx 12rpx 0rpx rgba(39,155,170,0.4);
                    border-radius: 40rpx;
                }
            }
        }
    }
}
.copyright {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 44rpx;
    font-size: 24rpx;
    color: #666666;
    image {
        width: 40rpx;
        height: 40rpx;
    }
}
</style>
h5/pages/driver/queueUp.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
<template>
    <view class="main_app">
        <view class="main_name">
            <text class="mr12">物流入库月台</text>
            <u-icon name="arrow-down" color="#777777"></u-icon>
        </view>
        <!--  -->
        <view class="main_list">
            <view class="item" @click="handleCheck()">
                <view class="h1">作业中车辆</view>
                <view class="h2">
                    <text>4</text>
                    <text class="unit">辆</text>
                </view>
                <image class="img" src="../../static/driver/ic_zuoyezhong@2x.png" mode=""></image>
            </view>
            <view class="item cyan">
                <view class="h1">作业中车辆</view>
                <view class="h2">
                    <text>4</text>
                    <text class="unit">辆</text>
                </view>
                <image  class="img" src="../../static/driver/ic_yiqiandao@2x.png" mode=""></image>
            </view>
        </view>
    </view>
</template>
<script>
    export default {
        data() {
            return {
            };
        },
        methods: {
            handleCheck(){
                uni.navigateTo({
                    url: "/pages/driver/queueUpRecord"
                })
            }
        }
    }
</script>
<style lang="scss">
.main_app{
    .main_name{
        display: flex;
        justify-content: center;
        align-items: center;
        height: 104rpx;
        font-weight: 500;
        font-size: 32rpx;
        color: #111111;
    }
    .main_list{
        padding: 30rpx 10rpx;
        .item{
            width: 100%;
            height: 208rpx;
            padding: 30rpx 40rpx;
            margin-bottom: 30rpx;
            position: relative;
            .h1{
                font-weight: 400;
                font-size: 34rpx;
                color: #222222;
                line-height: 50rpx;
            }
            .h2{
                font-weight: bold;
                font-size: 64rpx;
                color: #00BA67;
                line-height: 110rpx;
                .unit{
                    font-weight: 400;
                    font-size: 26rpx;
                    margin-left: 12rpx;
                }
            }
            .img{
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                z-index: -1;
            }
        }
        .cyan{
            .h2{
                color: #279BAA;
            }
        }
    }
}
</style>
h5/pages/driver/queueUpRecord.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,140 @@
<template>
    <view class="main_app">
        <view class="main_name">
            <text class="mr12">物流入库月台</text>
            <u-icon name="arrow-down" color="#777777"></u-icon>
        </view>
        <!--  -->
        <view class="main_list">
            <view class="item">
                <view class="status">作业中</view>
                <image class="avatar" src="@/static/driver/ic_truck@2x.png" mode=""></image>
                <view class="content">
                    <view class="id_card">皖A</view>
                    <view class="line">
                        <view class="address">4号月台</view>
                        <view class="time">
                            <u-icon class="mr6" name="clock" color="#4d98a8"></u-icon>
                            <text>01:02:02</text>
                        </view>
                    </view>
                </view>
            </view>
            <view class="item active">
                <view class="status padding">作业中</view>
                <view class="me">我</view>
                <image class="avatar" src="@/static/driver/ic_truck@2x.png" mode=""></image>
                <view class="content">
                    <view class="id_card">皖A</view>
                    <view class="line">
                        <view class="address">4号月台</view>
                        <view class="time">
                            <u-icon class="mr6" name="clock" color="#4d98a8"></u-icon>
                            <text>01:02:02</text>
                        </view>
                    </view>
                </view>
            </view>
        </view>
    </view>
</template>
<script>
    export default {
        data() {
            return {
            };
        }
    }
</script>
<style lang="scss">
    page{
        background-color: #f7f7f7;
    }
.main_app{
    .main_name{
        display: flex;
        justify-content: center;
        align-items: center;
        height: 104rpx;
        font-weight: 500;
        font-size: 32rpx;
        color: #111111;
        background-color: #fff;
        margin:0 -30rpx 20rpx;
    }
    .main_list{
        .item{
            display: flex;
            align-items: center;
            position: relative;
            padding: 30rpx;
            background-color: #fff;
            margin-bottom: 20rpx;
            border-radius: 8rpx;
            .status{
                position: absolute;
                top: 0;
                right: 0;
                height: 50rpx;
                line-height: 50rpx;
                padding: 0 20rpx;
                background: #279BAA;
                color: #fff;
                font-size: 26rpx;
                border-radius: 0rpx 8rpx 0rpx 25rpx;
            }
            .me{
                position: absolute;
                top: 0;
                left: 0;
                background: #00BA67;
                border-radius: 8rpx 0rpx 8rpx 0rpx;
                height: 42rpx;
                line-height: 42rpx;
                width: 64rpx;
                text-align: center;
                color: #fff;
                font-size: 24rpx;
                z-index: 11;
            }
            .padding{
                background: #E9F5F6;
                color: #279BAA;
            }
            .avatar{
                width: 84rpx;
                height: 84rpx;
                margin-right: 20rpx;
            }
            .content{
                flex: 1;
                .id_card{
                    font-weight: 500;
                    font-size: 30rpx;
                    color: #111111;
                }
                .line{
                    display: flex;
                    justify-content: space-between;
                    align-items: center;
                    font-size: 26rpx;
                    color: #999999;
                    margin-top: 6rpx;
                    .time{
                        display: flex;
                        align-items: center;
                        color: #279BAA;
                    }
                }
            }
        }
        .active{
            background: linear-gradient( 270deg, #FFFFFF 0%, #E1F7FE 100%);
        }
    }
}
</style>
h5/pages/driver/reserved.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,314 @@
<template>
    <view class="main_app">
        <view class="main_wrap">
            <view class="main_title">运输信息</view>
            <view class="line">
                <view class="label">
                    <text>*</text>
                    <text>合同号</text>
                </view>
                <view class="value"><input type="text" placeholder="请输入您的合同号" v-model="param.receptMemberName" placeholder-style="color: #999999;" /></view>
            </view>
            <!--  -->
            <view class="line">
                <view class="label">
                    <text>*</text>
                    <text>到场时间</text>
                </view>
                <view class="value" @click="showDatetime = true">
                    <text class="mr6" :style="{ color: param.area ? '#000000' : '#999999' }">{{ param.area ? param.area : '请选择' }}</text>
                    <u-icon name="arrow-right" color="#CCCCCC" size="16"></u-icon>
                </view>
            </view>
            <view class="line">
                <view class="label">
                    <text>*</text>
                    <text>入库类型</text>
                </view>
                <view class="value">
                    <view class="btns">
                        <view class="btn active">整托盘</view>
                        <view class="btn">件烟</view>
                    </view>
                </view>
            </view>
            <view class="line">
                <view class="label">
                    <text>*</text>
                    <text>总运输量</text>
                </view>
                <view class="value">
                    <input type="text" placeholder="请输入总运输量" v-model="param.receptMemberName" placeholder-style="color: #999999;" />
                    <text class="unit">万支</text>
                </view>
            </view>
            <view class="line">
                <view class="label">
                    <text>*</text>
                    <text>准运证照片</text>
                </view>
                <view class="value">
                    <view class="upload_wrap"><u-icon name="plus" size="20" color="#999999"></u-icon></view>
                </view>
            </view>
            <view class="empty"></view>
            <view class="main_title">司机/车辆信息</view>
            <view class="line">
                <view class="label">
                    <text>*</text>
                    <text>司机姓名</text>
                </view>
                <view class="value"><input type="text" placeholder="请输入您的真实姓名" v-model="param.receptMemberName" placeholder-style="color: #999999;" /></view>
            </view>
            <view class="line">
                <view class="label">
                    <text>*</text>
                    <text>手机号</text>
                </view>
                <view class="value"><input type="text" placeholder="请输入您的手机号" v-model="param.receptMemberName" placeholder-style="color: #999999;" /></view>
            </view>
            <!--  -->
            <view class="line">
                <view class="label">
                    <text>*</text>
                    <text>车前牌照号</text>
                </view>
                <view class="value" @click="openInput(1)">
                    <text :style="{ color: param.carNos ? '#000000' : '' }">{{ param.carNos ? param.carNos : '请输入车牌号码' }}</text>
                </view>
            </view>
            <view class="line">
                <view class="label">
                    <text>*</text>
                    <text>车后牌照号</text>
                </view>
                <view class="value" @click="openInput(1)">
                    <text :style="{ color: param.carNos ? '#000000' : '' }">{{ param.carNos ? param.carNos : '请输入车牌号码' }}</text>
                </view>
            </view>
            <view class="copy" @click="copy">复制车前牌照号</view>
            <view class="perch"></view>
            <view class="handle_sub">
                æäº¤
            </view>
            <!--  -->
        </view>
        <u-datetime-picker
            :show="showDatetime"
            closeOnClickOverlay
            :minDate="new Date().getTime()"
            mode="datetime"
            @close="showDatetime = false"
            @cancel="showDatetime = false"
            @confirm="setinDate"
        ></u-datetime-picker>
        <keyboardInput ref="keyboard" @export="setPlate" @close="closeInput" />
    </view>
</template>
<script>
import keyboardInput from '@/components/keyboard-input/keyboard-input.vue';
import { uploadUrl } from '@/api';
export default {
    components: {
        keyboardInput
    },
    data() {
        return {
            param: {},
            showDatetime: false,
            inputType: ''
        };
    },
    methods: {
        copy(){
            this.param.carNos = this.param.carNos
            uni.showToast({
                title: '复制成功',
                duration: 1000
            });
        },
        handleUpload() {
            uni.chooseImage({
                success: chooseImageRes => {
                    uni.showLoading({ title: '上传中', mask: true });
                    for (let i = 0; i < chooseImageRes.tempFilePaths.length; i++) {
                        uni.uploadFile({
                            url: `${uploadUrl}visitsAdmin/cloudService/web/public/uploadFtp.do`,
                            filePath: chooseImageRes.tempFilePaths[i],
                            name: 'file',
                            formData: {
                                folderCode: 'MEMBER_IMG'
                            },
                            success: uploadFileRes => {
                                console.log('uploadFileRes', uploadFileRes);
                                let res = JSON.parse(uploadFileRes.data);
                                if (type === 'faceImg') {
                                    this.param.faceImg = res.data.halfPath;
                                    this.param.faceImgUrl = res.data.prefixPath + res.data.folder + res.data.halfPath;
                                } else {
                                    this.param.imgurl = res.data.halfPath;
                                    this.param.imgurlUrl = res.data.prefixPath + res.data.folder + res.data.halfPath;
                                }
                            },
                            complete() {
                                if (i === chooseImageRes.tempFilePaths.length - 1) {
                                    uni.hideLoading();
                                }
                            }
                        });
                    }
                }
            });
        },
        setinDate(e) {},
        openInput(type) {
            this.inputType = type;
            this.$refs.keyboard.open();
        },
        setPlate(e) {
            if (this.inputType === 1) {
                this.param.carNos = e;
            } else if (this.inputType === 2) {
                this.param.carNos = e;
            }
            this.$forceUpdate();
            this.closeInput();
        },
        closeInput() {
            this.$refs.keyboard.close();
        }
    }
};
</script>
<style lang="scss">
page {
    background-color: #f7f7f7;
}
.main_wrap {
    background-color: #fff;
    margin: 0 -30rpx;
    padding: 0 30rpx;
    .line {
        display: flex;
        justify-content: space-between;
        align-items: center;
        border-bottom: 1rpx solid #e5e5e5;
        padding: 30rpx 0;
        .label {
            font-size: 30rpx;
            font-weight: 400;
            text {
                &:nth-child(1) {
                    color: #e42d2d;
                    margin-right: 4rpx;
                }
            }
        }
        .value {
            flex: 1;
            height: 100%;
            margin-left: 30rpx;
            display: flex;
            align-items: center;
            justify-content: flex-end;
            .btns {
                display: flex;
                align-items: center;
                .btn {
                    height: 60rpx;
                    line-height: 60rpx;
                    padding: 0 16rpx;
                    font-size: 26rpx;
                    margin-left: 12rpx;
                    border-radius: 12rpx;
                    border: 1rpx solid #777777;
                    color: #777777;
                }
                .active {
                    background-color: #4d99a8;
                    color: #fff;
                    border: 1rpx solid #4d99a8;
                }
            }
            .unit {
                width: 64rpx;
                text-align: right;
                font-size: 26rpx;
                margin-bottom: 2rpx;
            }
            input {
                flex: 1;
                height: 100%;
                text-align: right;
                font-size: 28rpx;
                font-weight: 400;
                color: #222222;
            }
            .upload_wrap {
                width: 120rpx;
                height: 120rpx;
                border-radius: 12rpx;
                border: 2rpx solid #e5e5e5;
                background: #f7f7f7;
                color: #666666;
                display: flex;
                align-items: center;
                justify-content: center;
                overflow: hidden;
                image {
                    width: 100%;
                    height: 100%;
                }
            }
        }
    }
}
.main_app {
    // padding-top: 10rpx;
    .handle_sub{
        position: fixed;
        bottom: 64rpx;
        width: 690rpx;
        left: 30rpx;
        background-color: #4d99a8;
        height: 88rpx;
        line-height: 88rpx;
        text-align: center;
        color: #fff;
        border-radius: 50rpx;
    }
    .perch{
        width: 750rpx;
        margin: 0 -30rpx;
        height: 200rpx;
        background-color: #f7f7f7;
    }
    .copy{
        background-color: #f7f7f7;
        display: flex;
        margin: 0 -30rpx;
        justify-content: flex-end;
        padding: 12rpx 30rpx;
        font-size: 26rpx;
        color: #4d99a8;
    }
}
.main_title {
    width: 750rpx;
    padding: 16rpx 30rpx;
    background-color: #f7f7f7;
    margin: 0 -30rpx;
    color: #666666;
    font-size: 26rpx;
}
.empty {
    width: 750rpx;
    height: 20rpx;
    background-color: #f7f7f7;
    margin: 0 -30rpx;
}
</style>
h5/pages/driver/reservedDetail.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,372 @@
<template>
    <view class="main_app">
        <view class="status_wrap">
            <view class="name">丁恩凯的访客申请</view>
            <view class="desc">等待我处理</view>
            <view class="status">审批中</view>
        </view>
        <!--  -->
        <view class="emyty"></view>
        <view class="module_list">
            <view class="item">
                <view class="label">拜访人</view>
                <view class="value">廖成瑶</view>
            </view>
            <view class="item">
                <view class="label">预计入/离厂时间</view>
                <view class="value">05/01 8:00 - 05/01 18:00</view>
            </view>
            <view class="emyty"></view>
            <view class="item">
                <view class="label">访客信息</view>
                <view class="value">
                    <image class="avatar" src="@/static/logo@2x.png" mode="widthFix"></image>
                    <view class="info">
                        <text class="name">孙志 18177665678</text>
                        <text>身份证号:3309****2910</text>
                        <text>入园车辆:皖A88789</text>
                    </view>
                </view>
            </view>
            <view class="item">
                <view class="label">公司名称</view>
                <view class="value">中国移动</view>
            </view>
            <view class="item">
                <view class="label">施工人员</view>
                <view class="value">否</view>
            </view>
            <view class="item">
                <view class="label">来访事由</view>
                <view class="value">业务洽谈</view>
            </view>
        </view>
        <!-- æµç¨‹ -->
        <view class="flow_wrap">
            <view class="flow_title">流程</view>
            <view class="list">
                <view class="item">
                    <view class="avatar">
                        <image class="img" src="@/static/logo@2x.png" mode="widthFix" />
                        <image class="status" src="@/static/staff/liucheng_success@2x.png" mode="widthFix" />
                        <view class="separate"></view>
                    </view>
                    <view class="content">
                        <view class="head">
                            <view class="event">某某提交的拜访申请</view>
                            <view class="time">time</view>
                        </view>
                        <view class="name_wrap">
                            <text>李东(<text class="status">处理中</text>)</text>
                        </view>
                        <view class="remark">同意放行</view>
                    </view>
                </view>
                <view class="item">
                    <view class="avatar">
                        <image class="img" src="@/static/logo@2x.png" mode="widthFix" />
                        <image class="status" src="@/static/staff/liucheng_success@2x.png" mode="widthFix" />
                    </view>
                    <view class="content">
                        <view class="head">
                            <view class="event">某某提交的拜访申请</view>
                            <view class="time">time</view>
                        </view>
                        <view class="name_wrap">
                            <text>李东(<text class="status">处理中</text>)</text>
                        </view>
                        <view class="carbon">
                            <view class="carbon_item" v-for="i in 12">
                                <image src="@/static/logo@2x.png" mode="widthFix"></image>
                                <view class="text">name</view>
                            </view>
                        </view>
                    </view>
                </view>
            </view>
        </view>
        <view class="emyty"></view>
        <view class="main_footer">
            <view class="btn" @click="handleSub('0')">拒绝</view>
            <view class="btn agree" @click="handleSub('1')">同意</view>
        </view>
        <!--  -->
        <u-popup :show="showApprModal" :round="10" :safeAreaInsetBottom="true" mode="bottom" @close="showApprModal = false">
            <view class="appr_modal">
                <view class="title">同意</view>
                <textarea placeholder="同意说明,非必填" placeholder-class="placeholder9" />
                <view class="main_footer">
                    <view class="btn" @click="showApprModal = false">取消</view>
                    <view class="btn agree">提交</view>
                </view>
            </view>
        </u-popup>
    </view>
</template>
<script>
export default {
    data() {
        return {
            showApprModal: false,
            param: {}
        }
    },
    methods: {
        handleSub(flag) {
            // this.param.flag =
            if (flag === '1') {
            } else {
            }
            this.showApprModal = true
        }
    },
}
</script>
<style>
page {
    background-color: #F7F7F7;
}
</style>
<style lang="scss">
.main_app {
    background-color: #fff;
    padding-bottom: 0;
    .flow_wrap {
        padding: 30rpx 0;
        .flow_title {
            font-weight: 500;
            font-size: 32rpx;
            color: #222222;
            margin-bottom: 24rpx;
        }
        .list {
            .item {
                display: flex;
                margin-bottom: 48rpx;
                .avatar {
                    width: 80rpx;
                    height: 80rpx;
                    position: relative;
                    margin-right: 20rpx;
                    .img {
                        width: 80rpx;
                        height: 80rpx;
                        border-radius: 50%;
                    }
                    .status {
                        width: 28rpx;
                        height: 28rpx;
                        border-radius: 50%;
                        position: absolute;
                        right: 0;
                        bottom: 0;
                    }
                    .separate {
                        position: absolute;
                        width: 4rpx;
                        height: 100%;
                        background-color: #EEEEEE;
                        left: 50%;
                        transform: translate(-50%, 0);
                        bottom: -80rpx;
                    }
                }
                .content {
                    flex: 1;
                    .head {
                        display: flex;
                        justify-content: space-between;
                        margin-bottom: 4rpx;
                        .event {
                            font-size: 30rpx;
                        }
                        .time {
                            font-size: 26rpx;
                            color: #999999;
                        }
                    }
                    .name_wrap {
                        font-size: 26rpx;
                        color: #777777;
                        .status {
                            color: #279BAA;
                        }
                    }
                    .remark {
                        margin-top: 12rpx;
                        background-color: #f7f7f7;
                        padding: 14rpx 20rpx;
                        border-radius: 8rpx;
                        font-size: 26rpx;
                        color: #666666;
                        line-height: 36rpx;
                    }
                }
                .carbon{
                    display: flex;
                    width: 590rpx;
                    overflow-x: auto;
                    margin-top: 12rpx;
                    .carbon_item{
                        text-align: center;
                        flex-shrink: 0;
                        width: 100rpx;
                        image{
                            width: 60rpx;
                            height: 60rpx;
                            margin: 0 auto;
                        }
                        view{
                            font-size: 26rpx;
                            color: #777777;
                        }
                    }
                }
            }
        }
    }
    .module_list {
        .item {
            padding: 30rpx 0;
            border-bottom: 1rpx solid #E5E5E5;
            .label {
                font-size: 26rpx;
                color: #666666;
                margin-bottom: 20rpx;
            }
            .value {
                font-size: 30rpx;
                display: flex;
                align-items: center;
                .avatar {
                    margin-right: 20rpx;
                    width: 120rpx;
                    height: 120rpx;
                    border-radius: 8rpx;
                    border: 2rpx solid #E5E5E5;
                }
                .info {
                    flex: 1;
                    display: flex;
                    flex-direction: column;
                    justify-content: space-between;
                    font-size: 26rpx;
                    color: #666666;
                    .name {
                        font-size: 30rpx;
                        color: #333333;
                    }
                }
            }
        }
    }
    .status_wrap {
        position: relative;
        padding: 30rpx 0;
        .name {
            font-weight: 500;
            font-size: 32rpx;
            margin-bottom: 20rpx;
            color: #222222;
        }
        .desc {
            font-size: 26rpx;
            color: #ED4545;
        }
        .status {
            position: absolute;
            right: -30rpx;
            top: 0;
            height: 60rpx;
            line-height: 60rpx;
            padding: 0 32rpx;
            border-radius: 0rpx 0rpx 0rpx 30rpx;
            background-color: #e9edff;
            color: #279BAA;
        }
    }
    .main_footer {
        padding-bottom: 64rpx;
        display: flex;
        justify-content: space-between;
        .btn {
            width: 336rpx;
            height: 88rpx;
            line-height: 88rpx;
            background: #FFFFFF;
            border-radius: 44rpx;
            border: 1rpx solid #999999;
            font-size: 32rpx;
            text-align: center;
            margin: 16rpx 0;
        }
        .agree {
            background: #279BAA;
            color: #fff;
            border: 1rpx solid #279BAA;
        }
    }
    .appr_modal {
        padding: 36rpx 30rpx 0;
        .title {
            font-weight: 500;
            font-size: 32rpx;
            color: #222222;
            margin-bottom: 40rpx;
            text-align: center;
        }
        textarea {
            box-sizing: border-box;
            width: 690rpx;
            background-color: #f7f7f7;
            font-size: 28rpx;
            color: #333333;
            padding: 24rpx;
            border-radius: 8rpx;
            margin-bottom: 30rpx;
        }
    }
    .emyty {
        width: 750rpx;
        height: 20rpx;
        background-color: #f7f7f7;
        margin: 0 -30rpx;
    }
}
</style>
h5/pages/driver/reservedGuide.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
<template>
    <view>
    </view>
</template>
<script>
    export default {
        data() {
            return {
            };
        }
    }
</script>
<style lang="scss">
</style>
h5/pages/driver/reservedRecord.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,160 @@
<template>
    <view class="main_app">
        <!--  -->
        <view class="box_list">
            <view class="box_list_item" v-for="(item, index) in 3" :key="index" @click="handleDetail()">
                <view class="box_list_item_head">
                    <text>丁恩凯的劳务入厂申请</text>
                    <text class="loading">待审核</text>
                </view>
                <view class="box_list_item_nr">
                    <view class="box_list_item_nr_item">
                        <text>被访问人:</text>
                        <text>人事部-王亚蓝</text>
                    </view>
                    <view class="box_list_item_nr_item">
                        <text>进厂时间:</text>
                        <text>12-12 09:00</text>
                    </view>
                    <view class="box_list_item_nr_item">
                        <text>离厂时间:</text>
                        <text>12-12 12:00</text>
                    </view>
                    <view class="box_list_item_nr_item">
                        <text>来访事由:</text>
                        <text>业务来往</text>
                    </view>
                    <view class="box_list_item_nr_item">
                        <text>随行车辆:</text>
                        <text>皖A88888</text>
                    </view>
                </view>
            </view>
        </view>
        <!-- é€‰æ‹©è½¦è¾† -->
        <u-picker keyName="name" closeOnClickOverlay @close="isShowCar = false" :show="isShowCar" :columns="carList" @confirm="seletedCar" @cancel="isShowCar = false"></u-picker>
        <!-- æ—¥æœŸ -->
        <u-datetime-picker :show="isShowDate" :minDate="minDate" @confirm="confirmDate" @cancel="isShowDate = false" mode="date"></u-datetime-picker>
    </view>
</template>
<script>
export default {
    data() {
        return {
            isShowCar: false,
            isShowDate: false,
            param: {},
            carList: [[{ name: 'aa', value: '11' }]],
            timeList: [{ time: '08:30-09:00' }, { time: '08:30-09:00' }, { time: '08:30-09:00' }, { time: '08:30-09:00' }]
        };
    },
    methods: {
        handleDetail() {
            uni.navigateTo({
                url: "/pages/driver/reservedDetail"
            })
        },
        confirmDate(e) {
            console.log(e.value);
            this.param.aa = dayjs(e.value).format('YYYY-MM-DD');
            this.isShowDate = false;
        },
        seletedCar(e) {
            console.log(e.value);
            this.param.aa = dayjs(e.value).format('YYYY-MM-DD');
            this.isShowDate = false;
        }
    }
};
</script>
<style lang="scss">
    .main_app{
        background: #F7F7F7;
        padding: 0;
    }
.app_header {
    display: flex;
    align-items: center;
    margin: 0 -15rpx;
    background-color: #fff;
    .item {
        width: 360rpx;
        height: 72rpx;
        margin: 15rpx;
        padding: 0 30rpx;
        display: flex;
        align-items: center;
        justify-content: center;
        align-items: center;
    }
}
.box_list {
    width: 100%;
    padding: 30rpx;
    box-sizing: border-box;
    .box_list_item {
        width: 100%;
        margin-bottom: 20rpx;
        &:last-child {
            margin: 0 !important;
        }
        .box_list_item_head {
            width: 100%;
            height: 100rpx;
            padding: 0 30rpx;
            box-sizing: border-box;
            background: linear-gradient(270deg, #fefeff 0%, #e1f7fe 100%);
            border-radius: 8rpx 8rpx 0rpx 0rpx;
            display: flex;
            align-items: center;
            justify-content: space-between;
            .loading {
                color: #4c99a8;
            }
            .success {
                color: #03c68f;
            }
            .error {
                color: #e0312a;
            }
            text {
                &:nth-child(1) {
                    font-size: 32rpx;
                    font-weight: 500;
                    color: #222222;
                }
                &:nth-child(2) {
                    font-size: 26rpx;
                    font-weight: 400;
                }
            }
        }
        .box_list_item_nr {
            padding: 30rpx;
            width: 100%;
            box-sizing: border-box;
            background-color: #ffffff;
            .box_list_item_nr_item {
                width: 100%;
                display: flex;
                align-items: center;
                margin-bottom: 20rpx;
                text {
                    &:nth-child(1) {
                        font-size: 26rpx;
                        font-weight: 400;
                        color: #666666;
                    }
                    &:nth-child(2) {
                        font-size: 26rpx;
                        font-weight: 400;
                        color: #333333;
                    }
                }
            }
        }
    }
}
</style>
h5/pages/driver/taskConfirm.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,435 @@
<template>
    <view class="main_app">
        <view class="status_wrap">
            <image class="bg" src="../../static/driver/bg_renwu@2x.png" mode=""></image>
            <view class="name">作业已完成</view>
            <view class="id_card">皖AD1212</view>
            <view class="status">作业完成</view>
        </view>
        <!--  -->
        <view class="main_content">
            <view class="line">
                <view class="label">司机姓名</view>
                <view class="value">刘某</view>
            </view>
            <view class="line">
                <view class="label">手机号</view>
                <view class="value">188</view>
            </view>
            <view class="line">
                <view class="label">运输单号</view>
                <view class="value" @click="showDetail = true">
                    <text class="waybill_num">Y111</text>
                    <text class="btn">运单详情</text>
                </view>
            </view>
            <view class="line">
                <view class="label">作业类型</view>
                <view class="value">入园装货</view>
            </view>
            <view class="empty"></view>
            <!--  -->
            <view class="line">
                <view class="label">车前牌照号</view>
                <view class="value" @click="openInput(1)">
                    <text :style="{ color: param.carNos ? '#000000' : '#999999' }">{{ param.carNos ? param.carNos : '请输入车前牌照号'
                        }}</text>
                </view>
            </view>
            <view class="line">
                <view class="label">车后牌照号</view>
                <view class="value">
                    <text @click="openInput(1)" :style="{ color: param.carNos ? '#000000' : '#999999' }">{{ param.carNos ?
                    param.carNos : '请输入车后牌照号' }}</text>
                    <text class="copy">复制车前牌照号</text>
                </view>
            </view>
            <!--  -->
        </view>
        <view class="space"></view>
        <!-- ç­‰å¾…叫号 -->
        <view class="sub_wrap">
            <view class="btn check">确认任务</view>
        </view>
        <!-- modal -->
        <u-popup :show="showDetail" :round="10" :safeAreaInsetBottom="true" closeOnClickOverlay :closeable="true"
            mode="bottom" @close="showDetail = false">
            <view class="detail_modal">
                <view class="modal_title">运单详情</view>
                <view class="id_card">
                    <view class="last">皖</view>
                    <view class="name">AD1111</view>
                </view>
                <!--  -->
                <view class="info">
                    <view class="line">
                        <view class="label">运输单号</view>
                        <view class="value">2222</view>
                    </view>
                    <view class="line">
                        <view class="label">驾驶员</view>
                        <view class="value">2222</view>
                    </view>
                    <view class="line">
                        <view class="label">总运输量</view>
                        <view class="value">2222</view>
                    </view>
                    <view class="line">
                        <view class="label">运输公司</view>
                        <view class="value">2222</view>
                    </view>
                </view>
                <view class="separate"></view>
                <view class="contract_list">
                    <view class="title">合同号:111</view>
                    <view class="address">aadd</view>
                    <view class="list">
                        <view class="line">
                            <view class="label">物料:</view>
                            <view class="value">黄山黑马</view>
                        </view>
                        <view class="line">
                            <view class="label">数量:</view>
                            <view class="value">黄山黑马</view>
                        </view>
                        <view class="line">
                            <view class="label">物料:</view>
                            <view class="value">黄山黑马</view>
                        </view>
                        <view class="line">
                            <view class="label">数量:</view>
                            <view class="value">黄山黑马</view>
                        </view>
                    </view>
                </view>
            </view>
        </u-popup>
        <keyboardInput ref="keyboard" @export="setPlate" @close="closeInput" />
    </view>
    <!--  -->
</template>
<script>
import keyboardInput from '@/components/keyboard-input/keyboard-input.vue'
export default {
    components: {
        keyboardInput
    },
    data() {
        return {
            param: {
                status: '0'
            },
            showDetail: false,
            inputType: ''
        }
    },
    methods: {
        handleSignIn() {
            const { param } = this
            this.param.status = param.status == '0' ? '1' : '0'
        },
        getLocation() {
            uni.getLocation({
                type: 'wgs84',
                success: function (res) {
                    console.log('当前位置的经度:' + res.longitude)
                    console.log('当前位置的纬度:' + res.latitude)
                }
            })
        },
        openInput(type) {
            this.inputType = type
            this.$refs.keyboard.open()
        },
        setPlate(e) {
            if (this.inputType === 1) {
                this.param.carNos = e
            } else if (this.inputType === 2) {
                this.param.carNos = e
            }
            this.$forceUpdate()
            this.closeInput()
        },
        closeInput() {
            this.$refs.keyboard.close()
        }
    }
}
</script>
<style lang="scss">
page {
    background-color: #f7f7f7;
}
.main_app {
    padding: 0;
    .main_content {
        background: #FFFFFF;
        border-radius: 20rpx 20rpx 0rpx 0rpx;
        padding: 16rpx 30rpx;
        position: relative;
        bottom: 32rpx;
        .line {
            padding: 24rpx 0 28rpx;
            border-bottom: 1rpx solid #E5E5E5;
            .label {
                font-size: 26rpx;
                color: #666666;
                margin-bottom: 20rpx;
            }
            .value {
                display: flex;
                justify-content: space-between;
                align-items: center;
                font-size: 30rpx;
                .waybill_num {
                    flex: 1;
                }
                .copy {
                    font-size: 26rpx;
                    color: #279BAA;
                }
                .btn {
                    font-size: 28rpx;
                    color: #279BAA;
                    display: flex;
                }
            }
        }
        .empty{
            width: 750rpx;
                height: 20rpx;
                background-color: #f7f7f7;
                margin: 0 -30rpx;
        }
        .warnning {
            display: flex;
            color: #ED4545;
            align-items: center;
            margin: 40rpx 0;
        }
        .signIn_wrap {
            margin: 80rpx auto;
            width: 260rpx;
            height: 260rpx;
            position: relative;
            color: #fff;
            z-index: 1;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            .handle {
                font-weight: 500;
                font-size: 40rpx;
                line-height: 56rpx;
            }
            .time {
                color: rgba(255, 255, 255, 0.7);
            }
            .img {
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                z-index: -1;
            }
        }
    }
    .status_wrap {
        height: 200rpx;
        width: 100%;
        padding: 30rpx;
        position: relative;
        z-index: 99;
        color: #fff;
        .bg {
            width: 100%;
            height: 100%;
            position: absolute;
            top: 0;
            left: 0;
            z-index: -1;
        }
        .name {
            font-weight: 500;
            font-size: 40rpx;
            line-height: 56rpx;
            margin-bottom: 12rpx;
        }
        .id_card {
            color: rgba(255, 255, 255, 0.8);
        }
        .status {
            position: absolute;
            right: 0;
            top: 30rpx;
            height: 68rpx;
            line-height: 68rpx;
            background: #FFFFFF;
            padding: 0 24rpx;
            border-radius: 34rpx 0rpx 0rpx 34rpx;
            font-size: 26rpx;
            color: #279BAA;
        }
    }
    .space {
        width: 750rpx;
        height: 200rpx;
    }
    .sub_wrap {
        position: fixed;
        padding: 16rpx 30rpx 64rpx;
        bottom: 0;
        left: 0;
        width: 100%;
        display: flex;
        z-index: 1;
        justify-content: space-between;
        background-color: #fff;
        .btn {
            height: 96rpx;
            line-height: 96rpx;
            text-align: center;
            width: 690rpx;
            font-size: 36rpx;
            color: #333333;
            background: #FFFFFF;
            border-radius: 48rpx;
            border: 1rpx solid #999999;
        }
        .check {
            background: #279BAA;
            border: 1rpx solid #279BAA;
            color: #fff;
        }
    }
}
.detail_modal {
    padding: 36rpx 30rpx;
    .modal_title {
        font-weight: 500;
        font-size: 32rpx;
        color: #222222;
        line-height: 44rpx;
        text-align: center;
        margin-bottom: 36rpx;
    }
    .contract_list {
        .list {
            background: #F7F7F7;
            border-radius: 8rpx;
            padding: 20rpx;
            .line {
                display: flex;
                margin-bottom: 20rpx;
                &:nth-of-type(3n) {
                    border-top: 1rpx solid #E5E5E5;
                    padding-top: 20rpx;
                }
                .label {
                    color: #666666;
                    width: 86rpx;
                }
                .value {
                    flex: 1;
                    color: #222222;
                }
            }
        }
        .title {
            font-weight: 500;
            font-size: 30rpx;
            color: #279BAA;
            margin-bottom: 12rpx;
        }
        .address {
            font-size: 26rpx;
            color: #666666;
            margin-bottom: 20rpx;
        }
    }
    .info {
        .line {
            display: flex;
            margin-bottom: 20rpx;
            .label {
                font-size: 30rpx;
                color: #666666;
                width: 150rpx;
            }
            .value {
                flex: 1;
                font-size: 30rpx;
                color: #222222;
            }
        }
    }
    .separate {
        width: 750rpx;
        height: 2rpx;
        margin: 30rpx -30rpx;
        border: 1rpx solid #E5E5E5;
    }
    .id_card {
        border-radius: 8rpx;
        display: flex;
        height: 60rpx;
        line-height: 60rpx;
        font-weight: 600;
        font-size: 36rpx;
        color: #111111;
        text-align: center;
        margin-bottom: 30rpx;
        .last {
            background: #E9F5F6;
            width: 60rpx;
            border-radius: 8rpx 0rpx 0rpx 8rpx;
            border: 1rpx solid #DFDEDE;
        }
        .name {
            width: 186rpx;
            border: 1rpx solid #DFDEDE;
        }
    }
}
</style>
h5/pages/driver/taskDetail.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,380 @@
<template>
    <view class="main_app">
        <view class="status_wrap">
            <image class="bg" src="../../static/driver/bg_renwu@2x.png" mode=""></image>
            <view class="name">作业已完成</view>
            <view class="id_card">皖AD1212</view>
            <view class="status">作业完成</view>
        </view>
        <!--  -->
        <view class="main_content">
            <view class="line">
                <view class="label">司机姓名</view>
                <view class="value">刘某</view>
            </view>
            <view class="line">
                <view class="label">手机号</view>
                <view class="value">188</view>
            </view>
            <view class="line">
                <view class="label">运输单号</view>
                <view class="value" @click="showDetail = true">
                    <text class="waybill_num">Y111</text>
                    <text class="btn">运单详情</text>
                </view>
            </view>
            <view class="line">
                <view class="label">作业类型</view>
                <view class="value">入园装货</view>
            </view>
            <view class="line">
                <view class="label">车牌照</view>
                <view class="value">前:皖A21</view>
            </view>
            <!--  -->
            <view class="line">
                <view class="label">距离园区</view>
                <view class="value">
                    <view class="">0 å…¬é‡Œ</view>
                    <view class="btn" @click="getLocation">
                        <u-icon name="map" color="#279BAA" class="mr6"></u-icon>
                        é‡æ–°å®šä½
                    </view>
                </view>
            </view>
            <view class="warnning">
                <u-icon name="info-circle" color="#ED4545" class="mr12"></u-icon>
                å¦‚无法获取定位,请用微信扫描园区大屏二维
            </view>
<!--             <view class="line">
                <view class="label">签到时间</view>
                <view class="value">2022</view>
            </view>
            <view class="line">
                <view class="label">入园时间</view>
                <view class="value">2022</view>
            </view>
            <view class="line">
                <view class="label">作业完成</view>
                <view class="value">2022</view>
            </view> -->
            <view class="signIn_wrap" @click="handleSignIn">
                <image :src="param.status == '0' ? require('@/static/driver/btn_qiandao@2x.png') : require('@/static/driver/btn_qiandao_fail@2x.png')" class="img" mode="widthFix"></image>
                <view class="handle">签到</view>
                <view class="time">09:10</view>
            </view>
        </view>
        <view class="space"></view>
        <!-- ç­‰å¾…叫号 -->
        <view class="padding_wrap">
            <view class="btn cancel">取消签到</view>
            <view class="btn check">查看排队情况</view>
        </view>
        <!-- modal -->
        <u-popup :show="showDetail" :round="10" :safeAreaInsetBottom="true" closeOnClickOverlay :closeable="true" mode="bottom" @close="showDetail = false">
                    <view class="detail_modal">
                        <view class="modal_title">运单详情</view>
                        <view class="id_card">
                            <view class="last">皖</view>
                            <view class="name">AD1111</view>
                        </view>
                        <!--  -->
                        <view class="info">
                            <view class="line">
                                <view class="label">运输单号</view>
                                <view class="value">2222</view>
                            </view>
                            <view class="line">
                                <view class="label">驾驶员</view>
                                <view class="value">2222</view>
                            </view>
                            <view class="line">
                                <view class="label">总运输量</view>
                                <view class="value">2222</view>
                            </view>
                            <view class="line">
                                <view class="label">运输公司</view>
                                <view class="value">2222</view>
                            </view>
                        </view>
                        <view class="separate"></view>
                        <view class="contract_list">
                            <view class="title">合同号:111</view>
                            <view class="address">aadd</view>
                            <view class="list">
                                <view class="line">
                                    <view class="label">物料:</view>
                                    <view class="value">黄山黑马</view>
                                </view>
                                <view class="line">
                                    <view class="label">数量:</view>
                                    <view class="value">黄山黑马</view>
                                </view>
                                <view class="line">
                                    <view class="label">物料:</view>
                                    <view class="value">黄山黑马</view>
                                </view>
                                <view class="line">
                                    <view class="label">数量:</view>
                                    <view class="value">黄山黑马</view>
                                </view>
                            </view>
                        </view>
                    </view>
                </u-popup>
    </view>
</template>
<script>
    export default {
        data() {
            return {
                param: {
                    status: '0'
                },
                showDetail: false,
            };
        },
        methods: {
            handleSignIn() {
                const { param } = this
                this.param.status = param.status == '0' ? '1' : '0'
            },
            getLocation() {
                uni.getLocation({
                    type: 'wgs84',
                    success: function (res) {
                        console.log('当前位置的经度:' + res.longitude);
                        console.log('当前位置的纬度:' + res.latitude);
                    }
                });
            }
        }
    }
</script>
<style lang="scss">
.main_app{
    padding: 0;
    .main_content{
        background: #FFFFFF;
        border-radius: 20rpx 20rpx 0rpx 0rpx;
        padding: 16rpx 30rpx;
        position: relative;
        bottom: 32rpx;
        .line{
            padding: 24rpx 0 28rpx;
            border-bottom: 1rpx solid #E5E5E5;
            display: flex;
            .label{
                width: 150rpx;
                font-size: 30rpx;
                color: #666666;
            }
            .value{
                flex: 1;
                display: flex;
                justify-content: space-between;
                align-items: center;
                font-size: 30rpx;
                .waybill_num{
                    flex: 1;
                }
                .btn{
                    font-size: 28rpx;
                    color: #279BAA;
                    display: flex;
                }
            }
        }
        .warnning{
            display: flex;
            color: #ED4545;
            align-items: center;
            margin: 40rpx 0;
        }
        .signIn_wrap{
            margin: 80rpx auto;
            width: 260rpx;
            height: 260rpx;
            position: relative;
            color: #fff;
            z-index: 1;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            .handle{
                font-weight: 500;
                font-size: 40rpx;
                line-height: 56rpx;
            }
            .time{
                color: rgba(255,255,255,0.7);
            }
            .img{
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                z-index: -1;
            }
        }
    }
    .status_wrap{
        height: 200rpx;
        width: 100%;
        padding: 30rpx;
        position: relative;
        color: #fff;
        .bg{
            width: 100%;
            height: 100%;
            position: absolute;
            top: 0;
            left: 0;
            z-index: -1;
        }
        .name{
            font-weight: 500;
            font-size: 40rpx;
            line-height: 56rpx;
            margin-bottom: 12rpx;
        }
        .id_card{
            color: rgba(255,255,255,0.8);
        }
        .status{
            position: absolute;
            right: 0;
            top: 30rpx;
            height: 68rpx;
            line-height: 68rpx;
            background: #FFFFFF;
            padding: 0 24rpx;
            border-radius: 34rpx 0rpx 0rpx 34rpx;
            font-size: 26rpx;
            color: #279BAA;
        }
    }
    .space{
        width: 750rpx;
        height: 200rpx;
    }
    .padding_wrap{
        position: fixed;
        padding: 0 30rpx 64rpx;
        bottom: 0;
        left: 0;
        width: 100%;
        display: flex;
        justify-content: space-between;
        .btn{
            height: 96rpx;
            line-height: 96rpx;
            text-align: center;
            width: 336rpx;
            font-size: 36rpx;
            color: #333333;
            background: #FFFFFF;
            border-radius: 48rpx;
            border: 1rpx solid #999999;
        }
        .check{
            background: #279BAA;
            border: 1rpx solid #279BAA;
            color: #fff;
        }
    }
}
.detail_modal{
    padding: 36rpx 30rpx;
    .modal_title{
        font-weight: 500;
        font-size: 32rpx;
        color: #222222;
        line-height: 44rpx;
        text-align: center;
        margin-bottom: 36rpx;
    }
    .contract_list{
        .list{
            background: #F7F7F7;
            border-radius: 8rpx;
            padding: 20rpx;
            .line{
                display: flex;
                margin-bottom: 20rpx;
                &:nth-of-type(3n){
                    border-top: 1rpx solid #E5E5E5;
                    padding-top: 20rpx;
                }
                .label{
                    color: #666666;
                    width: 86rpx;
                }
                .value{
                    flex: 1;
                    color: #222222;
                }
            }
        }
        .title{
            font-weight: 500;
            font-size: 30rpx;
            color: #279BAA;
            margin-bottom: 12rpx;
        }
        .address{
            font-size: 26rpx;
            color: #666666;
            margin-bottom: 20rpx;
        }
    }
    .info{
        .line{
            display: flex;
            margin-bottom: 20rpx;
            .label{
                font-size: 30rpx;
                color: #666666;
                width: 150rpx;
            }
            .value{
                flex: 1;
                font-size: 30rpx;
                color: #222222;
            }
        }
    }
    .separate{
        width: 750rpx;
        height: 2rpx;
        margin: 30rpx -30rpx;
        border: 1rpx solid #E5E5E5;
    }
    .id_card{
        border-radius: 8rpx;
        display: flex;
        height: 60rpx;
        line-height: 60rpx;
        font-weight: 600;
        font-size: 36rpx;
        color: #111111;
        text-align: center;
        margin-bottom: 30rpx;
        .last{
            background: #E9F5F6;
            width: 60rpx;
            border-radius: 8rpx 0rpx 0rpx 8rpx;
            border: 1rpx solid #DFDEDE;
        }
        .name{
            width: 186rpx;
            border: 1rpx solid #DFDEDE;
        }
    }
}
</style>
h5/pages/staff/snapshot.vue
@@ -129,7 +129,7 @@
};
</script>
<style lang="scss" scoped>
<style lang="scss">
.main_wrap {
    .line {
        display: flex;
h5/pages/staff/task/index.vue
@@ -47,7 +47,7 @@
                    <view class="box_list_item_nr_x"></view>
                    <view class="box_list_item_nr_text">
                        <text class="time">2023-12-12 09:00提交</text>
                        <text class="btn">去处理</text>
                        <text class="btn" @click="handleAppr()">去处理</text>
                    </view>
                </view>
            </view>
@@ -123,6 +123,11 @@
            };
        },
        methods: {
            handleAppr(item) {
                uni.navigateTo({
                    url: '/pages/staff/task/visitorApprove'
                })
            },
            clickItem(index) {
                this.i = index
            },
h5/pages/userinfo/userinfo.vue
@@ -17,7 +17,7 @@
                <view class="title"><b>*</b>证件类型</view>
                <view class="content" @click="show = true">
                    <text :style="{color: visitorData.idcardTypeName ? '#000000' : ''}">{{visitorData.idcardTypeName ? visitorData.idcardTypeName : '请选择'}}</text>
                    <u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
                    <u-icon name="arrow-right" color="#CCCCCC" size="16" class="ml6"></u-icon>
                </view>
            </view>
            <view class="cell">
@@ -26,6 +26,7 @@
                    <input class="input" maxlength="18" placeholder-style="color: #999999;" v-model="visitorData.idcardNo" placeholder="请输入您的证件号码" />
                </view>
            </view>
            <view class="empty"></view>
            <view class="cell">
                <view class="title"><b>*</b>公司名称</view>
                <view class="content">
@@ -287,6 +288,12 @@
        width: 100%;
        height: 100%;
    }
    .empty{
        width: 750rpx;
        height: 20rpx;
        margin: 0 -30rpx;
        background-color: #f7f7f7;;
    }
    .title {
        font-size: 30rpx;
        font-weight: 400;
h5/pages/visitorApplication/visitorApplication.vue
@@ -901,7 +901,7 @@
                align-items: center;
                justify-content: space-between;
                .t {
                    background: #025EEF !important;
                    background: #4d99a9 !important;
                    color: #ffffff !important;
                }
                .adduser_footer_item {
@@ -910,11 +910,11 @@
                    line-height: 88rpx;
                    text-align: center;
                    border-radius: 44rpx;
                    border: 1rpx solid #025EEF;
                    border: 1rpx solid #4d99a9;
                    font-size: 32rpx;
                    font-family: PingFangSC, PingFang SC;
                    font-weight: 400;
                    color: #025EEF;
                    color: #4d99a9;
                    margin-right: 18rpx;
                    &:last-child {
                        margin: 0 !important;
@@ -958,7 +958,7 @@
                justify-content: space-between;
                margin-top: 60rpx;
                .t {
                    background: #025EEF !important;
                    background: #4d99a9 !important;
                    color: #ffffff !important;
                }
                .addcar_footer_item {
@@ -1267,12 +1267,12 @@
                justify-content: center;
                background: rgba(2, 94, 239, 0);
                border-radius: 25rpx;
                border: 1rpx solid #025EEF;
                border: 1rpx solid #4c99a8;
                font-size: 22rpx;
                font-family: PingFangSC, PingFang SC;
                font-weight: 400;
                margin-top: 20rpx;
                color: #025EEF;
                color: #4c99a8;
                margin: 0 auto;
            }
        }
@@ -1296,7 +1296,7 @@
                height: 88rpx;
                line-height: 88rpx;
                text-align: center;
                background: #025EEF;
                background: #4c99a8;
                border-radius: 44rpx;
                font-size: 32rpx;
                font-weight: 500;
h5/static/driver/bg_renwu@2x.png
h5/static/driver/btn_qiandao@2x.png
h5/static/driver/btn_qiandao_fail@2x.png
h5/static/driver/ic_truck@2x.png
h5/static/driver/ic_yiqiandao@2x.png
h5/static/driver/ic_zuoyezhong@2x.png
h5/static/driver/wuliu_ic_car@2x.png
h5/static/driver/wuliu_ic_daolan@2x.png
h5/static/driver/wuliu_ic_huowu@2x.png
h5/static/driver/wuliu_ic_paidui@2x.png
h5/static/driver/wuliu_ic_ruyuanyuyue@2x.png
h5/static/driver/wuliu_ic_yuyuejilu@2x.png
h5/static/driver/wuliu_ic_zhinan@2x.png
h5/static/driver/wuliuche_banner@2x.png