yangan
2025-02-27 ea7457be6870e35cd385e163ca9bba26d7621d66
feat:无人值守h5增加门卫端
6个文件已修改
2个文件已添加
1183 ■■■■■ 已修改文件
api/request.js 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/entranceGuard/entranceGuard.vue 551 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/entranceGuard/index.vue 524 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/login/userPassword.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/tabbar-page/index-tabbar/index-tabbar.vue 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/tabbar-page/myPage-tabbar/myPage-tabbar.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
store/index.js 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/request.js
@@ -103,8 +103,8 @@
// const BaseUrl = "http://192.168.0.110:9896"
// const webSocketUrl = "ws://192.168.0.110:9896/wrzs/ws/info"
// const BaseUrl = "http://192.168.0.87:9896"
// const webSocketUrl = "ws://192.168.0.87:9896/wrzs/ws/info"
const BaseUrl = "http://192.168.0.87:9896"
const webSocketUrl = "ws://192.168.0.87:9896/wrzs/ws/info"
export const onlineurl = "https://mr1.res.jzeg.cn:9096";
// const BaseUrl = "http://192.168.0.100:9997";
@@ -113,8 +113,8 @@
// const BaseUrl = "http://192.168.0.108:9997";
// const webSocketUrl = "ws://192.168.0.108:9997/wrzs/ws/info"
// 线上生产
const BaseUrl = "https://mr1.res.jzeg.cn:9096";
const webSocketUrl = "wss://mr1.res.jzeg.cn:9096/wrzs/ws/info"
// const BaseUrl = "https://mr1.res.jzeg.cn:9096";
// const webSocketUrl = "wss://mr1.res.jzeg.cn:9096/wrzs/ws/info"
// 请求拦截
pages.json
@@ -323,6 +323,23 @@
                "enablePullDownRefresh": false
            }
        },
        {
            "path" : "pages/entranceGuard/index",
            "style" :
            {
                "navigationBarTitleText": "门卫首页",
                "enablePullDownRefresh": false
            }
        },
        {
            "path": "pages/entranceGuard/entranceGuard",
            "style": {
                "navigationBarTitleText": "我的",
                "enablePullDownRefresh": false
            }
        }
    ],
    "subPackages": [{
pages/entranceGuard/entranceGuard.vue
New file
@@ -0,0 +1,551 @@
<template>
    <view class="driver-my">
        <view class="driver-banner">
            <view class="navgation">我的</view>
            <view class="avatar">
                <view class="avatar-imgage"
                    style="background: url('https://mr1.res.jzeg.cn:9096/appimg/image/banner/driverava.png')no-repeat;background-size: cover;">
                </view>
                <view class="avatar-name">{{ userInfo.name || '' }}</view>
                <view class="edit-button"><u-button type="primary"
                        @click="editBtnClick"
                        shape="circle"
                        plain>编辑个人资料</u-button></view>
            </view>
            <view class="personal-information">
                <view class="personal-information-block">
                    <view class="block-main">
                        <view class="information-line"
                            @click="">
                            <view class="line-label">
                                <image src="https://mr1.res.jzeg.cn:9096/appimg/image/banner/personalicon.png"
                                    mode="widthFix"></image>
                                <view class="label-text">身份证号</view>
                            </view>
                            <view class="information-value">
                                {{ userInfo.idCard || '' }}
                            </view>
                        </view>
                        <view class="information-line">
                            <view class="line-label">
                                <image src="https://mr1.res.jzeg.cn:9096/appimg/image/banner/phonenum.png"
                                    mode="widthFix"></image>
                                <view class="label-text">手机号</view>
                            </view>
                            <view class="information-value">
                                {{ userInfo.phone || '' }}
                            </view>
                        </view>
                        <view class="information-line">
                            <view class="line-label">
                                <image src="https://mr1.res.jzeg.cn:9096/appimg/image/banner/phonenum.png"
                                    mode="widthFix"></image>
                                <view class="label-text">账号</view>
                            </view>
                            <view class="information-value">
                                {{ userInfo.username || '' }}
                            </view>
                        </view>
                        <view class="information-line last">
                            <view class="line-label">
                                <image src="https://mr1.res.jzeg.cn:9096/appimg/image/banner/weighnum.png"
                                    mode="widthFix"></image>
                                <view class="label-text">体重</view>
                            </view>
                            <view class="information-value">
                                {{ userInfo.weight || '' }}
                            </view>
                        </view>
                    </view>
                </view>
            </view>
        </view>
        <view class="loginout">
            <view class="loginout-main"><u-button text="退出登录"
                    type="primary"
                    @click="logout"
                    shape="circle"
                    plain></u-button></view>
        </view>
        <!-- 修改弹出框 -->
        <view class="editDriverPopup-container">
            <u-popup :show="editDriverPopupShow"
                mode="bottom"
                @close="editDriverPopupClose"
                @open="editDriverPopupOpen"
                :closeable="true">
                <combined-title title="修改个人信息"
                    style="margin-left:20rpx"></combined-title>
                <view class="editDriverPopup-container-box">
                    <u--form labelPosition="left"
                        :model="editUserInfo"
                        ref="editRef">
                        <u-form-item labelWidth="20%"
                            label="姓名"
                            prop="name"
                            required>
                            <u--input v-model="editUserInfo.name"
                                border="none"
                                inputAlign="left"></u--input>
                        </u-form-item>
                        <u-form-item labelWidth="20%"
                            label="身份证号"
                            prop="idCard"
                            required>
                            <u--input v-model="editUserInfo.idCard"
                                border="none"
                                inputAlign="left"></u--input>
                        </u-form-item>
                        <u-form-item labelWidth="20%"
                            label="手机号"
                            prop="phone"
                            required>
                            <u--input v-model="editUserInfo.phone"
                                border="none"
                                inputAlign="left"></u--input>
                        </u-form-item>
                        <u-form-item labelWidth="20%"
                            label="账号"
                            prop="username"
                            required>
                            <u--input v-model="editUserInfo.username"
                                border="none"
                                inputAlign="left"></u--input>
                        </u-form-item>
                        <u-form-item labelWidth="20%"
                            label="体重"
                            prop="weight"
                            required>
                            <u--input v-model="editUserInfo.weight"
                                border="none"
                                inputAlign="left"
                                placeholder="体重以kg作为单位"></u--input>
                        </u-form-item>
                    </u--form>
                    <view style="margin-top: 30rpx;">
                        <u-button text="提交"
                            @click="updateUser"
                            type="primary"></u-button>
                    </view>
                </view>
            </u-popup>
        </view>
        <view class="logoutModel">
            <u-modal :show="logoutShow"
                :title="logoutTitle"
                showCancelButton
                :content="logoutContent"
                @confirm="logoutConfirm"
                @cancel="logoutCancel"></u-modal>
        </view>
    </view>
</template>
<script>
    import { customerId, userInfo, redirectLogin } from '@/utils/status';
    import { BaseUrl } from '@/api/publicInterface.js';
    import { mapMutations } from 'vuex';
    export default {
        data() {
            return {
                // 获取的司机详情
                userInfo: {},
                // 修改司机详情
                editUserInfo: {
                    phone: '',
                    name: '',
                    username: '',
                    type: 3,
                    idCard: '',
                    carNo: '',
                    carImg: '',
                    drivingImg: '',
                    axleNum: '',
                    weight: '',
                    userId: ''
                },
                rules: {
                    name: {
                        type: 'string',
                        required: true,
                        message: '请填写姓名',
                        trigger: ['blur', 'change']
                    },
                    idCard: [{
                            type: 'string',
                            required: true,
                            message: '请输入身份证号',
                            trigger: ['blur', 'change']
                        },
                        {
                            pattern: /^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
                            message: '身份证号格式不正确'
                        }
                    ],
                    phone: [{
                            required: true,
                            message: '此项为必填项',
                            // blur和change事件触发检验
                            trigger: ['blur', 'change']
                        },
                        {
                            min: 11,
                            max: 11,
                            message: '请输入合法手机号'
                        },
                        {
                            validator: (rule, value, callback) => {
                                return uni.$u.test.mobile(value);
                            },
                            message: '手机号码格式不正确',
                            trigger: ['change', 'blur']
                        }
                    ],
                    weight: {
                        type: 'number',
                        required: true,
                        message: '请填写体重',
                        trigger: ['blur', 'change']
                    },
                    username: {
                        type: 'string',
                        required: true,
                        message: '请填写账号',
                        trigger: ['blur', 'change']
                    }
                },
                src: '',
                fileList1: [],
                fileList2: [],
                // 修改信息弹出框
                editDriverPopupShow: false,
                // previewImage
                previewImageShow: false,
                previewImageSrc: '',
                // 退出模态框
                logoutShow: false,
                logoutTitle: '提示',
                logoutContent: '是否确认退出',
                BaseUrl
            };
        },
        onShow() {
            this.init();
        },
        onReady() {
            this.$refs.editRef.setRules(this.rules);
        },
        methods: {
            ...mapMutations(['changeisUploadimg']),
            init() {
                this.getUserEntity();
            },
            getUserEntity() {
                uni.showLoading({
                    title: '加载中...'
                });
                this.$reqGet('getUserEntity').then(res => {
                    uni.hideLoading();
                    this.userInfo = res.data;
                    Object.keys(this.editUserInfo).map(item => {
                        if (res.data[item]) {
                            this.editUserInfo[item] = res.data[item];
                        }
                    });
                });
            },
            // 修改按钮点击
            editBtnClick() {
                this.editDriverPopupShow = true;
            },
            /**
             * @editPopup 修改弹出框事件
             */
            editDriverPopupClose() {
                this.editDriverPopupShow = false;
            },
            editDriverPopupOpen() {},
            // 修改用户信息
            updateUser() {
                this.editUserInfo = {
                    ...this.editUserInfo,
                    carImg: uni.getStorageSync('carImg'),
                    drivingImg: uni.getStorageSync('drivingImg')
                };
                this.$refs.editRef
                    .validate()
                    .then(res => {
                        this.$reqPost('updateUser', this.editUserInfo, 'json').then(res => {
                            console.log('更新数据', res);
                            this.editDriverPopupShow = false;
                            if (res.code == 0) {
                                this.$u.toast('修改成功');
                                this.init();
                            } else {
                                uni.showToast({
                                    title: res.msg,
                                    icon: 'none',
                                    duration: 2000
                                });
                            }
                        });
                    })
                    .catch(err => {
                        this.$u.toast('修改失败');
                    });
            },
            logout() {
                this.logoutShow = true;
            },
            logoutConfirm() {
                redirectLogin();
                this.$store.commit('changeisLogin', false)
                this.$store.dispatch('websocketOnClose')
            },
            logoutCancel() {
                this.logoutShow = false;
            },
        }
    };
</script>
<style lang="scss"
    scoped>
    @mixin flex {
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    .statistics {
        margin-top: vww(10);
        margin-bottom: vww(10);
    }
    ::v-deep.driver-my {
        width: 100%;
        margin: 0 auto;
        padding-bottom: vww(60);
        .driver-banner {
            width: 100%;
            height: 430rpx;
            background: linear-gradient(0deg, #ffffff 0%, #0055fe 100%);
            background-size: contain;
            position: fixed;
            top: 0;
            .navgation {
                width: 80rpx;
                height: 37rpx;
                font-size: 40rpx;
                font-weight: normal;
                color: #ffffff;
                line-height: 69rpx;
                margin: vww(60) auto;
            }
            .avatar {
                width: 100%;
                height: 430rpx;
                display: flex;
                align-items: center;
                position: fixed;
                top: 0;
                .avatar-imgage {
                    width: 98rpx;
                    height: 98rpx;
                    margin-left: vww(18);
                    @include flex;
                    justify-content: center;
                }
                .avatar-name {
                    width: 200rpx;
                    display: flex;
                    flex-wrap: wrap;
                    height: 32rpx;
                    font-size: 34rpx;
                    font-weight: bold;
                    color: #ffffff;
                    margin-left: vww(17);
                }
                .edit-button {
                    position: relative;
                    left: vww(73);
                    top: vww(4);
                }
            }
            .personal-information {
                width: 100%;
                display: flex;
                justify-content: center;
                position: relative;
                top: vww(20);
                &-block {
                    width: 690rpx;
                    height: 400rpx;
                    background: #ffffff;
                    box-shadow: 0rpx 0rpx 14rpx 0rpx rgba(73, 120, 240, 0.14), 0rpx 7rpx 45rpx 0rpx rgba(73, 120, 240, 0.12);
                    border-radius: 20rpx;
                    display: flex;
                    flex-direction: column;
                    justify-content: space-between;
                    .block-main {
                        width: 636rpx;
                        margin: vww(10) vww(14);
                    }
                    .information-line {
                        @include flex width: 636rpx;
                        height: vww(45);
                        border-bottom: 1rpx solid #f0f1f6;
                        .line-label {
                            width: 188rpx;
                            height: 90rpx;
                            @include flex image {
                                width: 50rpx;
                                height: 50rpx;
                            }
                            .label-text {
                                width: 120rpx;
                                font-size: 30rpx;
                                font-weight: 400;
                                color: #000000;
                                line-height: 85rpx;
                            }
                        }
                        .information-value {
                            min-width: vww(125);
                            @include flex;
                            font-size: 30rpx;
                            font-weight: 400;
                            color: #000000;
                            line-height: 85rpx;
                        }
                    }
                    .last {
                        border-bottom: 0;
                    }
                }
            }
        }
        .car-information {
            width: 100%;
            position: relative;
            top: vww(410);
            @include flex justify-content: center;
            .information-main {
                width: 690rpx;
                height: 552rpx;
                background: #ffffff;
                box-shadow: 0rpx 0rpx 14rpx 0rpx rgba(73, 120, 240, 0.14), 0rpx 7rpx 45rpx 0rpx rgba(73, 120, 240, 0.12);
                border-radius: 20rpx;
                .information-body {
                    width: 636rpx;
                    margin: vww(15) vww(14);
                    @include flex flex-direction: column;
                    .car-img {
                        height: 246rpx;
                        width: 100%;
                        @include flex;
                        flex-direction: column;
                        align-items: flex-start;
                        .label-title {
                            @include flex;
                            width: 220rpx;
                            height: 100rpx;
                            .label-text {
                                width: 100%;
                                height: 50rpx;
                            }
                            image {
                                width: 50rpx;
                                height: 50rpx;
                            }
                        }
                    }
                }
            }
        }
        .loginout {
            width: 100%;
            height: 74rpx;
            @include flex;
            justify-content: center;
            position: relative;
            bottom: vww(-430);
            .loginout-main {
                width: 84%;
            }
        }
        // 表单
        .personal-information-form {
            margin-top: vww(200);
            .push-information-button {
                display: flex;
                margin: vww(20) auto 0;
                width: 80%;
                .u-button {
                    &:nth-of-type(2) {
                        margin-left: vww(10);
                    }
                }
            }
        }
        // 预览图片
        .previewImage-container {}
        // 修改弹出框
        .editDriverPopup-container {
            .u-popup {
                .u-transition {
                    height: 50%;
                    .u-popup__content {
                        overflow: scroll !important;
                        .editDriverPopup-container-box {
                            width: 90%;
                            margin: 0 auto;
                        }
                        //closeIcon
                        .u-popup__content__close--top-right {
                            top: vww(20) !important;
                            .u-icon {
                                .u-icon__icon {
                                    font-size: vww(20) !important;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
</style>
pages/entranceGuard/index.vue
New file
@@ -0,0 +1,524 @@
<template>
    <view class="">
        <view class="customer-index">
            <view class="customer-index_body">
                <view class="wait-collection"
                    style="background: url('https://mr1.res.jzeg.cn:9096/appimg/image/banner/customerbanner.png') no-repeat;background-size:100% 100%">
                </view>
                <!-- <view style="position: relative;top: -120px;">
                    <u-empty mode="data"
                        icon="http://cdn.uviewui.com/uview/empty/data.png"
                        textSize="30"
                        iconSize="1000"
                        v-if="CoalNameList.length == 0"></u-empty>
                </view> -->
                <view class="title"><u-icon  size='26' color="#" name="order"></u-icon><i>待放行车辆</i>    </view>
              <view class="btn">
                <u-button type="primary"  plain text="刷新" @click="page.current = 1;getListData"></u-button>
              </view>
                <view class="body">
                    <!-- <selectTarget ref='selectTarget'></selectTarget> -->
                    <view class="collection-form"
                    >
                     <u-list @scrolltolower="scrolltolower"
                     pagingEnabled
                     >
                        <view style="position: relative;">
                    <u-empty mode="data"
                        icon="http://cdn.uviewui.com/uview/empty/data.png"
                        textSize="30"
                        iconSize="1000"
                        text="暂无待检数据"
                        v-if="orderPlanData.length == 0"></u-empty>
                </view>
                        <view class="collection-form-item"
                        v-for="(item, index) in orderPlanData"
                        :key="index">
                         <u-list-item style="width:100%">
                        <view class="first-line">
                            <view class="dispatch-receive">
                                <view class="dispatch-orderCode">编号:{{ item.code }}</view>
                            </view>
                        </view>
                        <view class="second-line">
                            <view style="font-size: 20rpx;">{{ item.carNo }}</view>
                    </view>
                        <!-- <view class="second-line"
                            style="width: 94%;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;"
                            v-if="item.orderType==='内销'||item.orderType==='外购'">
                            {{item.customerName}}
                        </view> -->
                        <view class="second-line">
                            <view class="coal-name">
                                <view class="">{{ item.coalName }}</view>
                                <view class="black-bar"></view>
                                <view class="coal-type"
                                    v-if="item.orderType">{{ item.orderType }}</view>
                            </view>
                        </view>
                        <view class="fourth-line">
                            <view class="forward"
                            v-if="item.inspectionStatus!==3"
                                @click.stop="forwardClick(item)">
                                <u-button type="primary"  text="确认放行"></u-button>
                            </view>
                        </view>
                        </u-list-item>
                    </view>
                    <view class="bottom"></view>
                      </u-list>
                </view>
                </view>
            </view>
        </view>
        <u-modal :show="showFlag"
                 :title="'确认放行?'"
                 :cancelText="'取消'"
                 showCancelButton
                  :closeOnClickOverlay="true"
                @close="showFlag = false"
                @cancel="showFlag = false"
                @confirm="popupDetermineClick">
            </u-modal>
    </view>
</template>
<script>
    export default {
        components: {
        },
        watch:{
            samplingData: {
                handler(v) {
                    this.orderPlanData = v;
                },
                deep: true,
                immediate: true
            }
        },
        data() {
            return {
                orderPlanData:[],
                page:{
                    current:1,
                    size:5,
                },
                tagName:'外销',
                activeObj:{},
                timer:null,
                showFlag:false,
                tabList:[{
                    name:'外销'
                        },
                        {
                            name:'外购'
                        },
                        {
                            name:'内购'
                        }
                    ]
            };
        },
        onLoad() {
            this.init()
        },
        methods: {
            init() {
                this.$nextTick(() => {
                        this.getListData();
                })
            },
            getListData(){
                uni.showLoading({ title: '加载中...' });
                this.$reqGet('gateAuth',{current:this.page.current,size:this.page.size,status:30}).then(res=>{
                    console.log(res,'result');
                    if(res.code == 0){
                            uni.hideLoading();
                        if(res.data.records.length){
                            this.orderPlanData  = res.data.records
                        }else{
                            this.orderPlanData = [];
                        }
                    }
                })
            },
            //确认取样
            forwardClick(item){
                this.showFlag = true;
                this.activeObj =  item;
            },
            popupDetermineClick(){
                this.$reqGet('gateAuthPass',{deptId:this.activeObj.deptId,filedId:this.activeObj.filedId,carNo:this.activeObj.carNo,id:this.activeObj.id}).then(res=>{
                    console.log(res,'result');
                    if(res.code == 0){
                        this.showFlag = false;
                        this.page.current = 1;
                        this.init();
                         this.$u.toast('确认放行完成!')
                    }else{
                        this.$u.toast(res.msg  || '请求失败')
                        this.showFlag = false;
                    }
                })
            },
            //定时查询任务
            timerFun(){
            this.timer = window.setInterval(() => {
                              this.page.current = 1;
                            this.getListData() //调用接口的方法
                }, 60000);
            },
            clearTime(){
                window.clearInterval(this.timer)
            },
            tabClick(val){
                console.log(val,'valll')
                    this.tagName = val.name;
                    if(val.name == '外购'){
                        this.getWaiData();
                    }else if(val.name === '内购'){
                        this.getNeiData();
                    }
                    else{
                        this.getListData();
                    }
            },
            scrolltolower(){
                console.log('触发')
                this.page.current += 1;
                     this.$reqGet('gateAuth',{current:this.page.current,size:this.page.size,status:30}).then(res=>{
                    console.log(res,'result');
                    if(res.code == 0){
                            uni.hideLoading();
                            if(res.data.records.length){
                            this.orderPlanData  = this.orderPlanData.concat(res.data.records)
                            }else{
                                this.orderPlanData  = this.orderPlanData.concat([])
                            }
                    }
                })
            }
        },
    }
</script>
<style lang="scss"
    scoped>
    /* 大型设备(大台式电脑,1201px 起)*/
    @media screen and (min-width: 1201px) {
        .wait-collection{
            min-height: 1800rpx!important;
        }
        }
        /* 中型设备(台式电脑,992px 起) */
        @media screen and (min-width: 991px) and (max-width: 1200px) {
        .wait-collection{
            min-height: 1400rpx!important;
        }
        }
        /* 小型设备(平板电脑,768px 起) */
        @media screen and (min-width: 768px) and (max-width: 990px) {
        .wait-collection{
            min-height: 600rpx!important;
        }
        }
        /* 超小设备(手机,小于 768px)*/
        @media only screen and (max-height: 767px) {
        .wait-collection{
            min-height: 600rpx!important;
        }
        }
    @mixin flex {
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    .wait-collection {
        width: 100%;
        height: 600rpx;
        position: relative;
        top: vww(-10);
        z-index: 0;
    }
    .customer-index {
        width: 100%;
        margin: 0 auto;
    }
    .body{
        position: absolute;
        top: 38%;
        width: 97%;
        left: 50%;
        margin-left: -47%;
        // box-shadow: 0 2px 18px 0 rgba(0, 0, 0, .2);
        // background: #fff;
        border-radius: 20rpx;
    }
    .bottom{
        height: 200rpx;
    }
    .btn{
         position: absolute;
        top: 34%;
        right: 5%;
    }
    .title{
        position: absolute;
        top: 34%;
        left: 50%;
        transform: translateX(-50%);
        color: #fff;
        font-size: 25rpx;
        display: flex;
    }
    .collection-form {
                margin: 0 vww(15);
                position: relative;
                transform: translateX(-20rpx);
                .collection-form-item {
                    width: 100%;
                    height: 230rpx;
                    background: #ffffff;
                    box-shadow: 4rpx 6rpx 25rpx 0rpx rgba(73, 120, 240, 0.15);
                    border-radius: 20rpx;
                    overflow: hidden;
                    @include flex;
                    flex-direction: column;
                    position: relative;
                    align-items: flex-start;
                    margin-top: vww(10);
                    .first-line {
                        width: 94%;
                        height: vww(30);
                        margin: vww(10) vww(16) 0 vww(16);
                        display: flex;
                        justify-content: space-between;
                        .dispatch-receive {
                            width: 70%;
                            display: flex;
                            justify-content: flex-start;
                            align-items: center;
                            .dispatch-dept {
                                font-size: 25rpx;
                                display: flex;
                                align-items: center;
                            }
                            .dispatch-orderCode{
                                width: 100%;
                                font-size: 25rpx;
                            }
                            .black-bar {
                                width: 2rpx;
                                font-size: 25rpx;
                                height: 30rpx;
                                background: #515151;
                                margin-left: vww(12);
                            }
                            .dispatch {
                                font-size: 25rpx;
                                margin-left: vww(12);
                                min-width: vww(50);
                            }
                        }
                        .point-number {
                            width: 15%;
                            text {
                                font-size: 20rpx;
                                font-weight: 400;
                                color: #c78a64;
                            }
                            .residue {
                                font-size: 23rpx;
                                font-weight: 400;
                                color: #f81414;
                            }
                        }
                    }
                    .second-line {
                        width: 100%;
                        height: vww(30);
                        margin-left: vww(16);
                        display: flex;
                        align-items: center;
                        justify-content: flex-start;
                        .coal-name {
                            flex-grow: 1;
                            height: 30rpx;
                            font-size: 30rpx;
                            font-weight: 300;
                            color: #515151;
                            position: relative;
                            display: flex;
                            align-items: center;
                            .black-bar {
                                width: 2rpx;
                                height: 30rpx;
                                background: #515151;
                                margin-left: vww(12);
                            }
                            .coal-type {
                                margin-left: vww(12);
                                min-width: vww(50);
                                height: 30rpx;
                                line-height: 30rpx;
                                font-size: 30rpx;
                                font-weight: 300;
                                color: #515151;
                            }
                        }
                    }
                    .third-line {
                        width: 40%;
                        height: vww(30);
                        margin-left: vww(15);
                        display: flex;
                        justify-content: flex-start;
                        align-items: center;
                        .send-date {
                            margin-left: vww(14);
                            width: 168rpx;
                            height: 24rpx;
                            line-height: 24rpx;
                            font-size: 28rpx;
                            font-weight: 300;
                            color: #515151;
                        }
                    }
                    .fourth-line {
                        width: 100%;
                        height: vww(30);
                        @include flex;
                        justify-content: flex-start;
                        position: relative;
                        bottom: vww(20);
                        left: 25%;
                        .receive,
                        .forward {
                            width: vww(123);
                            height: vww(48);
                            @include flex;
                            justify-content: center;
                            color: #ffffff;
                            font-size: 28rpx;
                            position: absolute;
                            .button-image {
                                width: 100%;
                                height: 100%;
                                // background: url('../../../static/image/banner/button.png') no-repeat;
                                background-size: cover;
                                font-size: 28rpx;
                                font-weight: 300;
                                color: #ffffff;
                                text-align: center;
                                line-height: vww(45);
                            }
                        }
                        .receive {
                            left: vww(20);
                        }
                        .forward {
                            width: vww(106);
                            left: vww(140);
                            .button-image {
                                width: 100%;
                                height: 100%;
                                // background: url('../../../static/image/banner/transpartent.png') no-repeat;
                                background-size: cover;
                                font-size: 28rpx;
                                font-weight: 300;
                                color: #3b56eb;
                                text-align: center;
                                line-height: vww(45);
                            }
                        }
                    }
                }
            }
            .receiverPopup {
            height: vww(110);
            width: 400rpx;
            .receiverPopup__title {
                width: 80%;
                text-align: center;
            }
            .receiverPopup__input {
                width: 80%;
                margin: vww(10) auto 0;
                .u-input {
                    border: 1px solid #dddddd;
                }
            }
            &__btn {
                margin: vww(10) auto;
                width: 50%;
                .u-button {
                    height: vww(20);
                }
            }
        }
</style>
pages/login/userPassword.vue
@@ -95,7 +95,7 @@
                password: uni.getStorageSync('remberPassWord').password || '',
                baseUrl: '',
                weXinisLoginFlag:[1,2,3], //微信
                H5IsLoginFlag:[5,6], //h5
                H5IsLoginFlag:[5,6,7], //h5
                submitLoading: false
            };
        },
pages/tabbar-page/index-tabbar/index-tabbar.vue
@@ -32,6 +32,11 @@
            ref="samplingRef"
            :samplingData="samplingData"
            />
            <entranceGuard
             v-if="roleType == 7"
            ref="entranceGuardgRef"
            :samplingData="entranceGuardData"
            />
        <tab-bar :current="0"></tab-bar>
        <!-- 推送消息弹窗 -->
        <u-modal :show="messagePushShow"
@@ -53,6 +58,7 @@
    import { mapState, mapMutations,mapGetters } from 'vuex';
    import { webSocketUrl } from '@/api/request.js';
    import sampling from '@/pages/sampling-page/index.vue'
    import entranceGuard from '@/pages/entranceGuard/index.vue'
    let socket = null;
    export default {
@@ -62,7 +68,8 @@
            freightForwarderIndex,
            LoadUnload,
            selectTarget,
            sampling
            sampling,
            entranceGuard
        },
        computed: {
            ...mapState(['globalweighHouseCode', 'globalweigh', 'globalisconnect', 'globalSocket', 'websocketData',
@@ -139,12 +146,37 @@
                        uni.stopPullDownRefresh();
                    }
                });
            }else if(this.roleType == 7){
                this.$reqGet('gateAuth',{current:1,size:5,status:30}).then(res => {
                    if (res.code == 0) {
                        if(res.data.records.length){
                            this.orderPlanData  = res.data.records;
                        }else{
                            this.orderPlanData  = [];
                        }
                        this.$u.toast('加载成功');
                        uni.hideLoading();
                        uni.stopPullDownRefresh();
                    } else {
                        this.$u.toast('加载失败');
                        uni.hideLoading();
                        uni.stopPullDownRefresh();
                    }
                });
            }
        },
        onHide() {
            console.log('页面隐藏')
            this.$nextTick(()=>{
                this.$refs.samplingRef.clearTime();
                if(this.roleType === 7){
                    this.$refs.entranceGuardgRef.clearTime();
                }else{
                    this.$refs.samplingRef.clearTime();
                }
            })
        },
        onUnload() {
@@ -184,6 +216,7 @@
                roleType: null,
                orderPlanDataStore: [],
                indexHuoDaiOrderPlanData: [],
                entranceGuardData:[],
                indexHistoryCoalData: [],
                indexdriverBillOfLoadingData: {},
                samplingData:[],
@@ -241,6 +274,14 @@
                        });
                }
                //门卫页面
                else if (v.startsWith('gate_auth')) {
                    //收到通知更新数据
                    this.$nextTick(() => {
                            this.$refs.entranceGuardgRef.init();
                        });
                }
                }
                
                 },
@@ -293,6 +334,13 @@
                            this.$refs.samplingRef.timerFun();
                        });
                        break;
                        case 7:
                        console.log('entranceGuardgRef');
                        this.$nextTick(() => {
                            this.$refs.entranceGuardgRef.init();
                            this.$refs.entranceGuardgRef.timerFun();
                        });
                        break;
                    default:
                        break;
                }
pages/tabbar-page/myPage-tabbar/myPage-tabbar.vue
@@ -10,7 +10,8 @@
            v-if="roleType == 5"></unload-mypage>
            <sampling-myPage ref="samplingRef"
            v-if="roleType == 6"></sampling-myPage>
        <tab-bar :current="(roleType==5 || roleType == 6 )?1:2"></tab-bar>
            <entranceGuardMypage ref='entranceGuardRef' v-if="roleType == 7"/>
        <tab-bar :current="(roleType==5 || roleType == 6 || roleType == 7)?1:2"></tab-bar>
    </view>
</template>
@@ -20,13 +21,15 @@
    import freightForwarderMyPage from '@/pages/freight-forwarder-page/freightForwarder-my/freightForwarder-my.vue';
    import UnloadMypage from '@/pages/loadUnload-page/my-page/my-page.vue';
    import samplingMyPage from '@/pages/sampling-page/sampling-my.vue';
    import entranceGuardMypage from '@/pages/entranceGuard/entranceGuard'
    export default {
        components: {
            customerMyPage,
            driverMyPage,
            freightForwarderMyPage,
            UnloadMypage,
            samplingMyPage
            samplingMyPage,
            entranceGuardMypage
        },
        onLoad() {
            this.init();
@@ -87,7 +90,10 @@
                            this.$nextTick(()=>{
                                this.$refs.samplingRef.init();
                            })
                            case 7:
                            this.$nextTick(()=>{
                                this.$refs.entranceGuardRef.init();
                            })
                        break;
                    default:
                        break;
store/index.js
@@ -68,7 +68,19 @@
        selectedIconPath: '../../static/tabBar-icon/Bmine57.png',
        text: '我的'
    }
    ],
    seven:[{
        pagePath: 'pages/tabbar-page/index-tabbar/index-tabbar',
        iconPath: '../../static/tabBar-icon/home.png',
        selectedIconPath: '../../static/tabBar-icon/homeblue.png',
        text: '首页'
    },
    {
        pagePath: 'pages/tabbar-page/myPage-tabbar/myPage-tabbar',
        iconPath: '../../static/tabBar-icon/Gmine10.png',
        selectedIconPath: '../../static/tabBar-icon/Bmine57.png',
        text: '我的'
    }
    ]
}
const store = new Vuex.Store({
@@ -185,6 +197,9 @@
            }else if(roleType == 6){
                state.userTabbar = userRoleTabbar.six
                uni.setStorageSync('userTabbar', state.userTabbar)
            }else if(roleType == 7){
                state.userTabbar = userRoleTabbar.seven
                uni.setStorageSync('userTabbar', state.userTabbar)
            }
        },
        // 改变重量