qingyiay
2023-09-25 f46eb243908e145da448f65bffb8ba17197d9164
增加详情原发信息 增加装卸员下拉刷新 修改诸多问题 优化websocket
12个文件已修改
658 ■■■■ 已修改文件
App.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/globalApi.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package-lock.json 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/driver-page/appointment/appointment.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/driver-page/driver-index/bill-of-lading-details/bill-of-lading-details.vue 390 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/driver-page/driver-index/bill-of-lading-details/punchTheClock/punchTheClock.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/driver-page/driver-index/bill-of-lading-details/weighingDevice/weighingDevice.vue 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/driver-page/driver-index/driver-index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/loadUnload-page/loadUnload-detail/loadUnload-detail.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/tabbar-page/index-tabbar/index-tabbar.vue 102 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
store/index.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
App.vue
@@ -13,7 +13,7 @@
            if (!this.globalisconnect && !this.globalisUploadimg && this.globalisLogin) {
                if (!this.is_open_socket) {
                    this.$store.dispatch('websocketInit')
                    this.changeisconnect(false);
                    this.changeisconnect(true);
                    console.log('appvue的ws');
                }
            }
api/globalApi.js
@@ -442,5 +442,12 @@
    getFiledIdCoalBunker: {
        url: '/wrzs/jccoalbunker/getFiledIdCoalBunker',
        method: 'GET'
    },
    /**
     * @description 新增外购原发磅单表
     */
    appSaveContact: {
        url: '/wrzs/tmtaskcoalcontact/appSave',
        method: 'POST'
    }
}
package-lock.json
@@ -11,6 +11,7 @@
        "@amap/amap-jsapi-loader": "^1.0.1",
        "bignumber.js": "^9.1.1",
        "crypto-js": "^3.1.9-1",
        "dayjs": "^1.11.10",
        "qs": "^6.9.7",
        "vue-i18n": "^8.20.0"
      }
@@ -41,6 +42,11 @@
      "version": "3.3.0",
      "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-3.3.0.tgz",
      "integrity": "sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q=="
    },
    "node_modules/dayjs": {
      "version": "1.11.10",
      "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz",
      "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ=="
    },
    "node_modules/function-bind": {
      "version": "1.1.1",
@@ -133,6 +139,11 @@
      "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-3.3.0.tgz",
      "integrity": "sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q=="
    },
    "dayjs": {
      "version": "1.11.10",
      "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz",
      "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ=="
    },
    "function-bind": {
      "version": "1.1.1",
      "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz",
package.json
@@ -14,6 +14,7 @@
    "@amap/amap-jsapi-loader": "^1.0.1",
    "bignumber.js": "^9.1.1",
    "crypto-js": "^3.1.9-1",
    "dayjs": "^1.11.10",
    "qs": "^6.9.7",
    "vue-i18n": "^8.20.0"
  }
pages/driver-page/appointment/appointment.vue
@@ -59,7 +59,6 @@
            };
        },
        onLoad(params) {
            console.log('appointment,params', params);
            if (params.type == '入场申请') {
                this.isRCSQ = true;
                this.rcsqData.originalYyId = params.yyId;
@@ -102,11 +101,13 @@
            // 预约
            yuYueClick(id) {
                this.yuYuePostParams.yuYueId = id;
                this.$reqPost('yuYue', { takeCoalId: this.yuYuePostParams.takeCoalId, yuYueId: this.yuYuePostParams
                        .yuYueId }, 'params').then(res => {
                this.$reqPost('yuYue', {
                    takeCoalId: this.yuYuePostParams.takeCoalId,
                    yuYueId: this.yuYuePostParams.yuYueId
                }, 'params').then(res => {
                    if (res.code == 0) {
                        this.$u.toast('预约成功!');
                        this.yuYueList();
                        this.$u.toast('预约成功');
                        let timer = setTimeout(() => {
                            uni.navigateBack({
                                delta: 1
@@ -115,8 +116,6 @@
                    } else {
                        this.$u.toast(res.msg ? res.msg : '预约失败');
                    }
                }).then(() => {
                    this.yuYueList();
                })
            },
            // 入场申请
@@ -127,6 +126,11 @@
                this.$reqPost('saveRCSQ', this.rcsqData, 'json').then(res => {
                    if (res.code == 0) {
                        this.$u.toast('入场申请成功');
                        let timer = setTimeout(() => {
                            uni.navigateBack({
                                delta: 1
                            });
                        }, 500);
                    } else {
                        this.$u.toast(res.msg ? res.msg : '入场申请失败,请稍后重试');
                    }
pages/driver-page/driver-index/bill-of-lading-details/bill-of-lading-details.vue
@@ -57,7 +57,91 @@
                </view>
            </view>
        </view>
        <view class="origin-info"
            v-if="originInfoVisible">
            <view class="origin-info_wrapper">
                <view class="origin-info_content">
                    <view class="first-line"><combined-title title="原发信息"></combined-title></view>
                    <u-form :model="originInfoForm"
                        label-position="top"
                        label-width="160"
                        :label-style="{'marginLeft':'9px'}"
                        ref="originInfoRef">
                        <u-form-item prop="coalContactSkin">
                            <view class="second-line">
                                <view class="label-text"
                                    :class="{ focusClass: isfocus1 }"><text style="color: #f56c6c;">*</text>皮重</view>
                                <view class="input-container"
                                    :class="{ inputClass: isfocus1, disabledClass: isModifyoriginInfo }">
                                    <u--input placeholder="请输入皮重"
                                        border="surround"
                                        v-model="originInfoForm.coalContactSkin"
                                        @focus="inputFocus(1)"
                                        @blur="inputBlur"
                                        @change="inputChange"
                                        :disabled="isModifyoriginInfo"></u--input>
                                </view>
                                <view class="unit"
                                    :class="{ focusClass: isfocus1 }">吨</view>
                            </view>
                        </u-form-item>
                        <u-form-item prop="coalContactHair">
                            <view class="second-line">
                                <view class="label-text"
                                    :class="{ focusClass: isfocus2 }"><text style="color: #f56c6c;">*</text>毛重</view>
                                <view class="input-container"
                                    :class="{ inputClass: isfocus2, disabledClass: isModifyoriginInfo }">
                                    <u--input placeholder="请输入毛重"
                                        border="surround"
                                        v-model="originInfoForm.coalContactHair"
                                        @focus="inputFocus(2)"
                                        @blur="inputBlur"
                                        @change="inputChange"
                                        :disabled="isModifyoriginInfo"></u--input>
                                </view>
                                <view class="unit"
                                    :class="{ focusClass: isfocus2 }">吨</view>
                            </view>
                        </u-form-item>
                        <u-form-item>
                            <view class="second-line">
                                <view class="label-text"><text style="color: #f56c6c;">*</text>净重</view>
                                <view class="input-container"
                                    :class="{ disabledClass: isModifyoriginInfo }">
                                    <u--input placeholder="净重"
                                        border="surround"
                                        v-model="coalContactClean"
                                        :disabled="isModifyoriginInfo"></u--input>
                                </view>
                                <view class="unit">吨</view>
                            </view>
                        </u-form-item>
                        <u-form-item prop='contactPicture'>
                            <view class="label-text">
                                <text style="color: #f56c6c;">*</text>原发磅单
                            </view>
                            <u-upload :fileList="fileList1"
                                @afterRead="afterRead"
                                @delete="deletePic"
                                name="1"
                                multiple
                                :maxCount="2"
                                width="250"
                                height="150"
                                :previewFullImage="true"
                                :disabled="isModifyoriginInfo"
                                :deletable='!deletable'></u-upload>
                        </u-form-item>
                    </u-form>
                    <view class="submit-button">
                        <u-button text="提交"
                            type="primary"
                            @click.stop="submitOriginInfo"
                            :disabled="isModifyoriginInfo"></u-button>
                    </view>
                </view>
            </view>
        </view>
        <view class="timeLine">
            <u-steps :current="dayRZ.length - 1"
                direction="column"
@@ -84,7 +168,7 @@
                        plain
                        @click="rcsqClick"
                        shape="circle"
                        :disabled="coalDetailsData.status >= 3"></u-button>
                        :disabled="coalDetailsData.status === 3"></u-button>
                </view>
                <view class="bottom-button">
                    <u-button text="放空"
@@ -128,7 +212,8 @@
            <view class="weigh-button"><u-button text="上磅计量"
                    @click="cengZhongClick"
                    type="primary"
                    shape="circle"></u-button></view>
                    shape="circle"
                    :disabled="haveInputOrigin"></u-button></view>
        </view>
        <view class="evacuationModal">
            <u-modal :show="evacuationModalShow"
@@ -166,18 +251,47 @@
<script>
    import { webSocketUrl } from '@/api/request.js';
    import { BaseUrl } from '@/api/publicInterface.js';
    import { mapState, mapMutations } from 'vuex';
    import combinedTitle from '@/components/combined-title/combined-title.vue';
    import BigNumber from "bignumber.js"
    const dayjs = require('dayjs')
    import isBetween from 'dayjs/plugin/isBetween'
    export default {
        components: {
            combinedTitle
        },
        onLoad(value) {
            this.orderPlanId = value.orderPlanId;
            this.yyId = value.yyId;
            this.originInfoVisible = value.orderType === '外购'
            if (value.overTmWaixiao) {
                this.overTmWaixiao = value.overTmWaixiao
                this.getWeightHouseObj.overTmWaixiao = value.overTmWaixiao
            }
            this.fileList1 = []
            dayjs.extend(isBetween)
            if (this.globalIsFirstWeighing === 1) {
                this.getTakeCoal(); //获取提煤单详情
            }
            this.init(); //获取日志
        },
        onShow() {
            this.init();
            this.coalDayPage(); //获取日志 定时任务
            if (this.globalIsFirstWeighing === 2) {
                this.getTakeCoal(); //获取提煤单详情
            }
        },
        onHide() {
            clearInterval(this.interval);
        },
        onReady() {
            if (this.originInfoVisible) {
                this.$refs.originInfoRef.setRules(this.rules);
            }
        },
        beforeDestroy() {
            clearInterval(this.interval);
        },
        data() {
            return {
@@ -250,16 +364,49 @@
                ablePrintOut: false, //出门证是否显示
                enterLoading: false, //入门按钮loading
                outLoading: false, //出门按钮loading
                // 是否填写原发信息
                isInputOrigin: false,
                haveInputOrigin: false,
                isModifyoriginInfo: false,
                // 聚焦时改变样式
                isfocus1: false,
                isfocus2: false,
                // 输入的原发信息
                originInfoForm: {
                    coalContactSkin: '',
                    coalContactHair: '',
                    coalContactClean: 0,
                    contactPicture: ''
                },
                originInfoVisible: false,
                fileList1: [], //图片列表
                deletable: true,
                rules: {
                    contactPicture: {
                        type: 'string',
                        required: true,
                        message: '请上传原发磅单图片',
                        trigger: ['blur', 'change']
                    },
                    coalContactHair: {
                        type: 'string',
                        required: true,
                        message: '请输入毛重',
                        trigger: ['blur', 'change']
                    },
                    coalContactSkin: {
                        type: 'string',
                        required: true,
                        message: '请输入皮重',
                        trigger: ['blur', 'change']
                    }
                },
                timeout: '0',
            };
        },
        onHide() {
            clearInterval(this.interval);
        },
        beforeDestroy() {
            clearInterval(this.interval);
        },
        computed: {
            ...mapState(['globalweigh', 'globalinfraredStatus', 'wsgVisiable', 'wsgContent']),
            ...mapState(['globalweigh', 'globalinfraredStatus', 'wsgVisiable', 'wsgContent', 'globalIsFirstWeighing']),
            name() {
                return uni.getStorageSync('name');
            },
@@ -282,12 +429,27 @@
            },
            isapproach() {
                return this.currentPageCoalStatus !== 3;
            },
            coalContactClean() {
                let xx = BigNumber(this.originInfoForm.coalContactHair ? this.originInfoForm.coalContactHair : 0)
                let yy = BigNumber(this.originInfoForm.coalContactSkin ? this.originInfoForm.coalContactSkin : 0)
                return xx.minus(yy).toNumber().toFixed(2) || ''
            },
            currentTime() {
                let currentDate = new Date();
                let year = currentDate.getFullYear();
                let month = ("0" + (currentDate.getMonth() + 1)).slice(-2);
                let date = ("0" + currentDate.getDate()).slice(-2);
                let hours = ("0" + currentDate.getHours()).slice(-2);
                let minutes = ("0" + currentDate.getMinutes()).slice(-2);
                let formattedDate = year + "-" + month + "-" + date + " " + hours + ":" + minutes;
                return formattedDate
            }
        },
        methods: {
            ...mapMutations(['changewsgVisiable']),
            ...mapMutations(['changewsgVisiable', 'changeisUploadimg', 'changeglobalIsFirstWeighing']),
            init() {
                this.$reqGet('coalDayPage', { id: this.orderPlanId }).then(res => {
                this.$reqGet('coalDayPage', { id: this.orderPlanId, timeout: this.timeout }).then(res => {
                    if (res.code == 0) {
                        // this.dayRZ = res.data;
                        this.dayRZ = res.data.map(v => {
@@ -303,9 +465,6 @@
                        });
                    }
                });
                this.coalDayPage(); //获取日志
                this.getTakeCoal(); //获取提煤单详情
            },
            // 获取客服openid
            getgetService() {
@@ -358,10 +517,34 @@
                        this.primarySkin = this.coalDetailsData.skinTwo;
                        this.primaryHair = this.coalDetailsData.hairTwo;
                        this.primaryClean = this.coalDetailsData.cleanTwo;
                        // 判断当前时间是否超出预约时间
                        let endTime = this.coalDetailsData.yuYueSection.slice(0, 10) + ' ' + this.coalDetailsData
                            .yuYueSection.slice(-5);
                        if (dayjs(this.currentTime).isAfter(endTime) && this.coalDetailsData.status <= 1) {
                            this.$u.toast('已超出预约时间,可点击入场申请重新入场')
                            this.timeout = '1'
                        }
                        // 入门证 和 出门证 是否显示
                        this.ablePrintInduction = this.coalDetailsData.hair || this.coalDetailsData.skin
                        this.ablePrintOut = this.coalDetailsData.hair && this.coalDetailsData.skin || this
                            .coalDetailsData.status === 6
                        // 原发信息回显以及控制是否可修改
                        this.haveInputOrigin = !this.coalDetailsData.skinTwo && this.coalDetailsData.orderType ===
                            '外购'
                        this.deletable = this.isModifyoriginInfo = this.coalDetailsData.status > 3
                        this.originInfoForm.coalContactSkin = this.coalDetailsData.skinTwo;
                        this.originInfoForm.coalContactHair = this.coalDetailsData.hairTwo;
                        if (this.coalDetailsData.contactPicture) {
                            this.fileList1 = this.coalDetailsData.contactPicture.split(',').map(v => {
                                return {
                                    url: BaseUrl + v
                                }
                            })
                        } else {
                            this.fileList1 = []
                        }
                    } else {
                        this.$u.toast('加载失败');
                    }
@@ -388,9 +571,8 @@
            // 日志查询
            coalDayPage() {
                this.interval = setInterval(() => {
                    this.$reqGet('coalDayPage', { id: this.orderPlanId }).then(res => {
                    this.$reqGet('coalDayPage', { id: this.orderPlanId, timeout: this.timeout }).then(res => {
                        if (res.code == 0) {
                            // this.dayRZ = res.data;
                            this.dayRZ = res.data.map(v => {
                                let slicedate = v.taskStatusDes.slice(0, 10);
                                if (slicedate == this.currentDate) {
@@ -491,6 +673,7 @@
            },
            // 称重
            cengZhongClick() {
                this.changeglobalIsFirstWeighing(2)
                this.$reqGet('getWeighHouse', this.getWeightHouseObj).then(res => {
                    console.log(res, '获取磅房');
                    if (res.code == 0) {
@@ -504,7 +687,7 @@
                            res.data.id
                        }&gateCameraId=${res.data.lastEquipmentId}&gateCameraCode=${res.data.lastEquipmentCode}&weighHouseCode=${res.data.code}&primarySkin=${
                            this.primarySkin
                        }&primaryHair=${this.primaryHair}&psrimaryClean=${this.primaryClean}&sceneInOut=${res.data.sceneInOut}&overTmWaixiao=${this.overTmWaixiao}`
                        }&primaryHair=${this.primaryHair}&primaryClean=${this.primaryClean}&sceneInOut=${res.data.sceneInOut}&overTmWaixiao=${this.overTmWaixiao}`
                        });
                    } else {
                        this.$u.toast(res.msg ? res.msg : '未在磅房,请前往磅房后再试!!');
@@ -583,6 +766,95 @@
            },
            wsgContentConfirm() {
                this.changewsgVisiable(false)
            },
            // input聚焦
            inputFocus(v) {
                if (v == 1) {
                    this.isfocus1 = true;
                } else {
                    this.isfocus2 = true;
                }
            },
            // input失焦
            inputBlur() {
                this.isfocus1 = false;
                this.isfocus2 = false;
            },
            inputChange() {
                if (Number(this.originInfoForm.coalContactHair) > 0 && Number(this.originInfoForm.coalContactSkin > 0)) {
                    this.isInputOrigin = true;
                }
            },
            deletePic(event) {
                this.changeisUploadimg(true);
                this[`fileList${event.name}`].splice(event.index, 1);
            },
            async afterRead(event) {
                // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
                let lists = [].concat(event.file);
                let fileListLen = this[`fileList${event.name}`].length;
                lists.map(item => {
                    this[`fileList${event.name}`].push({
                        ...item,
                        status: 'uploading',
                        message: '上传中'
                    });
                });
                for (let i = 0; i < lists.length; i++) {
                    const result = await this.uploadFilePromise(lists[i].url, event.name);
                    let item = this[`fileList${event.name}`][fileListLen];
                    this[`fileList${event.name}`].splice(
                        fileListLen,
                        1,
                        Object.assign(item, {
                            status: 'success',
                            message: '上传成功',
                            url: result
                        })
                    );
                    fileListLen++;
                }
            },
            uploadFilePromise(url, num) {
                return new Promise((resolve, reject) => {
                    let a = uni.uploadFile({
                        url: BaseUrl + '/admin/sys-file/uploadUnToken',
                        filePath: url,
                        name: 'file',
                        success: res => {
                            if (num == 1) {
                                this.originInfoForm.contactPicture = JSON.parse(res.data).data.url;
                                resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`);
                            }
                        }
                    });
                });
            },
            submitOriginInfo() {
                let form = {
                    skin: Number(this.originInfoForm.coalContactSkin),
                    hair: Number(this.originInfoForm.coalContactHair),
                    clean: Number(this.coalContactClean),
                    tmId: this.getWeightHouseObj.tmId,
                    contactPicture: this.originInfoForm.contactPicture,
                    deptId: this.coalDetailsData.deptId,
                    filedId: this.coalDetailsData.filedId,
                    coalName: this.coalDetailsData.coalName,
                    taskCoalCode: this.coalDetailsData.code,
                    carNo: this.coalDetailsData.carNo,
                }
                this.$refs.originInfoRef.validate().then(res => {
                    this.$reqPost('appSaveContact', form, 'json').then(res => {
                        if (res.code === 0) {
                            this.$u.toast('提交成功')
                            this.getTakeCoal()
                        } else {
                            this.$u.toast(res.msg ? res.msg : '提交失败')
                        }
                    })
                }).catch(errors => {
                    uni.$u.toast('请填写完整原发信息')
                })
            }
        }
    };
@@ -770,6 +1042,86 @@
            }
        }
        .origin-info {
            width: 690rpx;
            height: 600rpx;
            margin: vww(20) vww(15) vww(13);
            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;
            @include flex;
            justify-content: center;
            overflow: hidden;
            position: relative;
            top: vww(120);
            &_wrapper {
                width: 650rpx;
                height: 600rpx;
                @include flex;
                flex-direction: column;
                margin-bottom: vww(20);
                position: relative;
                .origin-info_content {
                    width: 100%;
                    height: 100%;
                    overflow-y: scroll;
                    .first-line,
                    .second-line {
                        width: 90%;
                        height: vww(44);
                        .focusClass {
                            color: #5b95fd;
                        }
                        .inputClass {
                            border: 1px solid rgba(73, 95, 252, 0.6) !important;
                            box-shadow: 0rpx 5rpx 13rpx 0rpx rgba(73, 95, 252, 0.6) !important;
                            border-radius: 12rpx !important;
                        }
                        .isInputOrigin {
                            background-color: #f4f4fc;
                        }
                        .input-container {
                            border: 2px solid #c5c5c5;
                            box-shadow: 0rpx 5rpx 13rpx 0rpx #c5c5c5;
                            border-radius: 12rpx;
                        }
                    }
                    .first-line {
                        @include flex;
                        position: relative;
                        top: vww(8);
                    }
                    .second-line {
                        @include flex;
                    }
                    .submit-button {
                        width: 180rpx;
                        margin: vww(8) auto;
                        .u-button {
                            font-size: 28rpx;
                            font-weight: 300;
                            color: #ffffff;
                            background: #497bfb;
                            letter-spacing: 4rpx;
                            border-radius: 37rpx 37rpx 37rpx 37rpx;
                            box-shadow: 2rpx 3rpx 13rpx 0rpx rgba(43, 98, 239, 0.5), 0rpx 0rpx 9rpx 0rpx rgba(247, 250, 253, 0.29);
                        }
                    }
                }
            }
        }
        .timeLine {
            height: 300rpx;
            margin: vww(20);
pages/driver-page/driver-index/bill-of-lading-details/punchTheClock/punchTheClock.vue
@@ -21,10 +21,6 @@
<script>
    import { todayDate } from '@/utils/util.js';
    export default {
        onLoad(params) {
            this.punchTheClockObj.tmcoa = params.tmId.toString();
            this.coalStatus = params.coalStatus;
        },
        data() {
            return {
                nowTime: '',
@@ -36,7 +32,9 @@
                }
            };
        },
        onLoad() {
        onLoad(params) {
            this.punchTheClockObj.tmcoa = params.tmId;
            this.coalStatus = params.coalStatus;
            this.getSetting(); //获取授权
            this.getFuzzyLocation(); //获取位置
            this.todayDate(); //当前时间
pages/driver-page/driver-index/bill-of-lading-details/weighingDevice/weighingDevice.vue
@@ -5,7 +5,6 @@
        background-size: cover;">
            <view class="top">
                <view class="top_left">
                    <!-- <text>{{ realTimeWeigh }}</text> -->
                    <text>{{ globalweigh }}</text>
                </view>
                <view class="top_right">
@@ -26,56 +25,8 @@
            <view class="bottom"><text>TIP:当前状态为正常时可以称重</text></view>
        </view>
        <view class="middle-block"
            v-if="firstHairCustomernameShow || sideline">
            <view class="block-main"
                v-if="firstHairCustomernameShow">
                <view class="first-line"><combined-title title="原发信息"></combined-title></view>
                <view class="second-line">
                    <view class="label-text"
                        :class="{ focusClass: isfocus1 }">皮重</view>
                    <view class="input-container"
                        :class="{ inputClass: isfocus1, disabledClass: haveInputOrigin }">
                        <u--input placeholder="请输入皮重"
                            border="surround"
                            v-model="weighData.coalContactSkin"
                            @focus="inputFocus(1)"
                            @blur="inputBlur"
                            @change="inputChange"
                            :disabled="haveInputOrigin"></u--input>
                    </view>
                    <view class="unit"
                        :class="{ focusClass: isfocus1 }">吨</view>
                </view>
                <view class="second-line">
                    <view class="label-text"
                        :class="{ focusClass: isfocus2 }">毛重</view>
                    <view class="input-container"
                        :class="{ inputClass: isfocus2, disabledClass: haveInputOrigin }">
                        <u--input placeholder="请输入毛重"
                            border="surround"
                            v-model="weighData.coalContactHair"
                            @focus="inputFocus(2)"
                            @blur="inputBlur"
                            @change="inputChange"
                            :disabled="haveInputOrigin"></u--input>
                    </view>
                    <view class="unit"
                        :class="{ focusClass: isfocus2 }">吨</view>
                </view>
                <view class="second-line">
                    <view class="label-text">净重</view>
                    <view class="input-container"
                        :class="{ disabledClass: haveInputOrigin }">
                        <u--input placeholder="净重"
                            border="surround"
                            v-model="coalContactClean"
                            :disabled="haveInputOrigin"></u--input>
                    </view>
                    <view class="unit">吨</view>
                </view>
            </view>
            <view class="block-sideline"
                v-if="sideline">
            v-if="sideline">
            <view class="block-sideline">
                <view class="first-line"><combined-title title="原发信息"></combined-title></view>
                <view class="weigh-item">
                    <view class="item">
@@ -243,7 +194,7 @@
            <!-- 外销订单称皮时,返回加减吨按钮置灰。称毛时可用.外购订单,不出现返回加减吨的按钮 -->
            <u-button type="primary"
                text="确定称重"
                :disabled="realTimeWeigh == 0 || globalinfraredStatus || isweigh || !isInputOrigin||!mergeState"
                :disabled="realTimeWeigh == 0 || globalinfraredStatus || isweigh ||!mergeState||isExceedOrigin"
                :loading="isConfirmWeighLoading"
                loadingText="确认"
                @click="confirmWeigh"
@@ -254,6 +205,14 @@
                @click="addAndSubtractCoal"
                class="jiajian"
                v-if="outBuy"></u-button>
        </view>
        <view class="four">
            <u-button type="primary"
                text="刷新"
                @click.stop="RefreshHandle"
                icon="reload"
                throttle-time="800"
                :loading="refreshLoading"></u-button>
        </view>
        <!-- 放空弹窗 -->
        <view class="evacuationModal">
@@ -339,10 +298,6 @@
                    coalContactSkin: 0,
                    isMerge: 0 //1是 0不是  默认0  是否合卡
                },
                // 是否填写原发信息
                isInputOrigin: false,
                haveInputOrigin: false,
                takeCoalId: null,
                weighHouseCode: '',
                isConfirmWeighLoading: false, //确定称重按钮
@@ -368,11 +323,6 @@
                orderSurplusLess: false,
                // 外购类型称重填写毛,皮,
                firstHairCustomernameShow: false,
                coalContactHair: '',
                coalContactSkin: '',
                // 聚焦时改变样式
                isfocus1: false,
                isfocus2: false,
                // 外购第一次称毛重不需要加减吨
                outBuy: true,
                // 皮重异常相关
@@ -408,7 +358,9 @@
                },
                mergeState: true, //合卡状态 
                mergeStateShow: false, //合卡弹窗
                checkboxValue1: []
                checkboxValue1: [],
                isExceedOrigin: false, //是否超出原发毛重
                refreshLoading: false
            };
        },
        watch: {
@@ -443,6 +395,14 @@
                        if (this.weighList.hair == 0) {
                            this.isSkinWeigh = false;
                            this.temporaryWeighObj.hair = newV;
                            if (this.weighList.orderType == '外购') {
                                let xx = new BigNumber(newV)
                                let yy = new BigNumber(this.weighList.hairTwo)
                                if (xx.minus(yy) > 0.3) {
                                    this.$u.toast('超出原发信息毛重,请等待管理人员处理')
                                    this.isExceedOrigin = true
                                }
                            }
                        } else {
                            this.isSkinWeigh = true;
                            this.temporaryWeighObj.skin = newV;
@@ -463,7 +423,9 @@
            }
        },
        computed: {
            ...mapState(['globalweigh', 'globalinfraredStatus']),
            ...mapState(['globalweigh', 'globalinfraredStatus', 'globalisconnect', 'globalisUploadimg', 'globalisLogin',
                'is_open_socket'
            ]),
            coalContactClean() {
                let xx = BigNumber(this.weighData.coalContactHair)
                let yy = BigNumber(this.weighData.coalContactSkin)
@@ -491,8 +453,21 @@
                return this.weighList.orderType == '内购' || this.weighList.orderType == '转入';
            }
        },
        methods: {
            ...mapMutations(['changeweighHouseCode', 'changeisLogin', 'changeWeigh']),
            RefreshHandle() {
                if (this.globalisconnect) return this.$u.toast('已连接,无需刷新')
                this.refreshLoading = true
                if (!this.globalisconnect && !this.globalisUploadimg && this.globalisLogin) {
                    if (!this.is_open_socket) {
                        this.$store.dispatch('websocketInit')
                        this.changeisconnect(true);
                        this.refreshLoading = false
                        this.$u.toast('刷新成功')
                    }
                }
            },
            init() {
                uni.showLoading({
                    title: "加载中"
@@ -995,9 +970,8 @@
        }
        .four {
            width: 100%;
            margin-top: vww(5);
            text-align: center;
            width: vww(80);
            margin: 0 auto;
        }
        .slide-fade-enter-active {
pages/driver-page/driver-index/driver-index.vue
@@ -316,6 +316,7 @@
            },
            init() {
                this.qiangDanList();
                this.getLogOn()
            },
            // 司机首页列表
            qiangDanList() {
@@ -373,7 +374,7 @@
            },
            list3CardIconClick(value) {
                uni.navigateTo({
                    url: `/pages/driver-page/driver-index/bill-of-lading-details/bill-of-lading-details?orderPlanId=${value.id}&yyId=${value.yyId}`
                    url: `/pages/driver-page/driver-index/bill-of-lading-details/bill-of-lading-details?orderPlanId=${value.id}&yyId=${value.yyId}&orderType=${value.orderType}`
                });
            },
            // 提煤单详情
pages/loadUnload-page/loadUnload-detail/loadUnload-detail.vue
@@ -86,6 +86,10 @@
            this.init()
        },
        methods: {
            onPullDownRefresh() {
                this.init()
                uni.stopPullDownRefresh();
            },
            init() {
                uni.showLoading({
                    title: "加载中"
pages/tabbar-page/index-tabbar/index-tabbar.vue
@@ -115,7 +115,22 @@
                });
            }
        },
        onHide() {
            console.log('页面隐藏')
        },
        onUnload() {
            console.log('页面卸载');
            this.$store.dispatch('websocketOnClose')
            clearInterval(this.globalIntervalId);
            this.changeisconnect(false)
        },
        onLoad() {
            this.init();
            this.$store.dispatch('websocketInit')
            this.$store.commit('changeisLogin', true)
            console.log(this.globalisconnect, 'index的ws数据');
            this.userAuthorization();
            this.messageReq();
            // 开启双人通话
            wx.setEnable1v1Chat({
                enable: true,
@@ -155,13 +170,9 @@
                if (v.startsWith('weigh')) {
                    let nowWeighObj = JSON.parse(v.slice(7));
                    if (this.globalweighHouseCode && nowWeighObj.eqCode == this.globalweighHouseCode) {
                        if (nowWeighObj.eqInfraredStatus) {
                            this.changeinfraredStatus(true);
                            this.changeWeigh(nowWeighObj.weigh);
                        } else {
                            this.changeinfraredStatus(false);
                            this.changeWeigh(nowWeighObj.weigh);
                        }
                        this.changeWeigh(nowWeighObj.weigh);
                        this.changeinfraredStatus(!!nowWeighObj.eqInfraredStatus);
                        console.log(!!nowWeighObj.eqInfraredStatus, '红外状态');
                    }
                } else if (v.startsWith('msg')) {
                    function removeTags(str) {
@@ -184,26 +195,6 @@
                    }
                }
            }
        },
        onShow() {
            this.init();
            if (this.globalisconnect) {
                this.$store.dispatch('websocketInit')
                this.changeisconnect(false)
                this.$store.commit('changeisLogin', true)
                console.log(this.globalisconnect, 'index的ws数据');
            }
            this.userAuthorization();
            this.messageReq();
        },
        onHide() {
            console.log('页面隐藏')
        },
        onUnload() {
            console.log('页面卸载');
            this.$store.dispatch('websocketOnClose')
            clearInterval(this.globalIntervalId);
            this.changeisconnect(true)
        },
        methods: {
            ...mapMutations(['pushMessage', 'changeWeigh', 'changeinfraredStatus', 'changeisconnect', 'websocketInit',
@@ -277,63 +268,6 @@
                    fail() {
                        console.log('获取失败');
                    },
                });
            },
            // 初始化websocket
            initWebsocket() {
                let wsUrl = `${webSocketUrl}?access_token=${uni.getStorageSync('token')}`;
                socket = uni.connectSocket({
                    url: wsUrl,
                    header: {
                        CLIENT_TOC: 'Y'
                    },
                    complete: res => {
                        console.log(res, 'socket结果');
                        if (res.errMsg == 'connectSocket:ok') {
                            this.changeisconnect(true);
                            this.isconnect = true;
                        }
                    }
                });
                socket.onOpen(() => {
                    console.log('onOpen');
                    this.intervalId = setInterval(() => {
                        socket.send({
                            data: JSON.stringify({ type: 'ping' }),
                            success(e) {
                                console.log(e, '发送心跳成功');
                            }
                        });
                    }, 30000);
                });
                // 获取服务器传来的数据,做相应处理
                socket.onMessage(res => {
                    console.log('message', res);
                    if (res.data.startsWith('weigh')) {
                        let nowWeighObj = JSON.parse(res.data.slice(7));
                        if (this.globalweighHouseCode && nowWeighObj.eqCode == this.globalweighHouseCode) {
                            if (nowWeighObj.eqInfraredStatus) {
                                this.changeinfraredStatus(true);
                                this.changeWeigh(nowWeighObj.weigh);
                            } else {
                                this.changeinfraredStatus(false);
                                this.changeWeigh(nowWeighObj.weigh);
                            }
                        }
                    } else if (res.data.startsWith('msg')) {
                        this.messageList = JSON.parse(res.data.slice(5));
                        this.messagePushShow = true;
                    } else {}
                });
                socket.onClose(e => {
                    console.log('webSocketClose', e);
                    this.isconnect = false;
                    this.changeisconnect(false);
                });
                socket.onError(err => {
                    console.log('socket报错', err);
                    this.$u.toast('出现错误,请重新进入该页面,重试!!');
                });
            },
            messageconfirm() {
store/index.js
@@ -144,7 +144,8 @@
            'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj44.jpg',
        ],
        wsgVisiable: false, //磅房忙碌弹窗控制
        wsgContent: ''
        wsgContent: '',
        globalIsFirstWeighing: 1 //是否是第一次上磅
    },
    mutations: {
        lengthchange(state, payload) {
@@ -225,6 +226,9 @@
        },
        changewsgContent(state, payload) {
            state.wsgContent = payload
        },
        changeglobalIsFirstWeighing(state, payload) {
            state.globalIsFirstWeighing = payload
        }
    },
    actions: {