qingyiay
2023-07-07 837c21ced9ed0aafe17a7c0c16975a1b6731eb9d
验质功能修改,websocket优化
9个文件已修改
253 ■■■■■ 已修改文件
pages/customer-page/customer-my/customer-my.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/driver-page/driver-index/bill-of-lading-details/selectOrderPlan/selectOrderPlan.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail.vue 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/driver-page/driver-index/bill-of-lading-details/weighingDevice/weighingDevice.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/driver-page/drvier-my/drvier-my.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/freight-forwarder-page/freightForwarder-my/freightForwarder-my.vue 95 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/login/login.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/tabbar-page/index-tabbar/index-tabbar.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
store/index.js 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/customer-page/customer-my/customer-my.vue
@@ -363,6 +363,8 @@
            },
            logoutCancel() {
                this.logoutShow = false;
                this.$store.commit('changeisLogin', false)
                this.$store.dispatch('websocketOnClose')
            },
            // 跳转用户管理页面
            userManage() {
pages/driver-page/driver-index/bill-of-lading-details/selectOrderPlan/selectOrderPlan.vue
@@ -191,11 +191,13 @@
                }, []);
                return arrays;
            },
            // 验质选择
            validateClick(item) {
                uni.navigateTo({
                    url: `/pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail?orderPlanId=${item.id}`
                })
            },
            // 历史
            faYundetail(item) {
                uni.navigateTo({
                    url: `/pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail?orderPlanId=${item.id}&flag=${true}`
pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail.vue
@@ -42,42 +42,52 @@
                        <u--input placeholder="请输入扣渣"
                            border="bottom"
                            clearable
                            v-model="item.discount"
                            v-model="item.cinderWeight"
                            @input='v=>discountInputHandle(v,i,item.clean)'></u--input>
                    </view>
                    <view v-else-if='flag'
                        class="count">{{ item.discount }}%
                        class="count">{{ item.cinderWeight }}
                    </view>
                </view>
                <view class="weigh">
                    <view class="label-text">
                        扣渣后净重
                    </view>
                    <view class="count">{{ item.discountWeight }}</view>
                    <view class="count">{{ item.weight }}</view>
                </view>
            </view>
            <view class="level">
                <view class=""
                    style="width: 70rpx;">
                    <u--text text="蓝本"
                        size='32'></u--text>
                </view>
                <u-tag :text="MaterialList[i].breed+MaterialList[i].spec||'暂无'"
                    plain
                    @click="productNamePopoverShow(i)"
                    v-if='MaterialList[i].breed&&MaterialList[i].spec||roleType===4'></u-tag>
            </view>
            <view class="level"
                v-if='modifyMaterialList[i].modifyProductName'>
                <view style="width: 70rpx;">
                    <u--text text="修正"
                v-if='!flag'>
                <view class=""
                    style="width: 140rpx;">
                    <u--text text="物资明细"
                        size='32'></u--text>
                </view>
                <view>
                    <u-tag :text="modifyMaterialList[i].modifyProductName"
                        plain></u-tag>
                <u-tag :text="item.breed+item.spec||item.modifygoodsName||'暂无'"
                    plain
                    @click="goodsPopoverShow(i)"
                    v-if='item.breed&&item.spec||roleType===4'></u-tag>
            </view>
            <view class="level"
                v-if='item.modifygoodsName||flag'>
                <view style="width: 140rpx;">
                    <u--text text="产品名称"
                        size='32'></u--text>
                </view>
                <view v-if="showWeighCopy[i].modifyProductName||item.breed&&item.spec">
                    <u-tag :text="!flag?showWeighCopy[i].modifyProductName:item.breed+item.spec"
                        plain
                        @click="productNamePopoverShow(i)"></u-tag>
                </view>
            </view>
            <!-- 物资明细 -->
            <u-action-sheet :actions="goodsList"
                :show="goodsShow"
                cancelText='取消'
                :closeOnClickOverlay='true'
                @close='goodsNameClose'
                @select="goodsselectClick"></u-action-sheet>
            <!-- 产品列表 -->
            <view class="">
                <u-action-sheet :actions="actionsList"
                    :show="actionShow"
@@ -107,10 +117,15 @@
                orderPlanId: "",
                coalDetailsData: {},
                showWeigh: [],
                showWeighCopy: [],
                discountrate: "",
                loading: false,
                show: false,
                selectIndex: null,
                // 物资明细
                goodsList: [],
                goodsShow: false,
                goodsIndex: null,
                // 产品列表
                actionsList: [],
                actionShow: false,
@@ -119,11 +134,7 @@
                havedInput: false,
                flag: false,
                orderCode: null,
                // 物资明细list
                MaterialList: [],
                // 修改之后的物资明细list
                modifyMaterialList: [],
                // 修改之后的产品名称
                modifyProductName: null,
                // 是否修改
                isModify: false
@@ -156,6 +167,15 @@
                        this.orderCode = res.data.orderCode
                        this.showWeigh = this.coalDetailsData.tmTaskCoalItems ? this.coalDetailsData
                            .tmTaskCoalItems : [];
                        this.showWeigh = this.showWeigh.map(v => {
                            return {
                                ...v,
                                modifyProductName: '',
                                modifygoodsName: ''
                            }
                        })
                        this.showWeighCopy = JSON.parse(JSON.stringify(this.showWeigh))
                        uni.hideLoading()
                    } else {
                        this.$u.toast('加载失败')
@@ -163,8 +183,12 @@
                    }
                }).then(() => {
                    this.$reqGet('getMaterialDetailByOrderCode', { orderCode: this.orderCode }).then(r => {
                        this.MaterialList = r.data
                        this.modifyMaterialList = JSON.parse(JSON.stringify(this.MaterialList))
                        this.goodsList = r.data.map(v => {
                            return {
                                ...v,
                                name: v.breed + v.spec
                            }
                        })
                        uni.hideLoading()
                    })
                })
@@ -202,14 +226,8 @@
                this.showWeigh = this.showWeigh.map((v, i) => {
                    return {
                        ...v,
                        itemId: this.MaterialList[i].itemId,
                        Num: this.MaterialList[i].Num,
                        NumUnit: this.MaterialList[i].NumUnit,
                        Remark: this.MaterialList[i].Remark,
                        spec: this.modifyMaterialList[i].modifyProductName ? this.actionsList[i].spec : this
                            .MaterialList[i].spec,
                        breed: this.modifyMaterialList[i].modifyProductName ? this.actionsList[i]
                            .secondCategoryName : this.MaterialList[i].breed
                        breed: this.showWeighCopy[i].modifyProductName ? this.showWeighCopy[i].breed : v.breed,
                        spec: this.showWeighCopy[i].modifyProductName ? this.showWeighCopy[i].spec : v.spec
                    }
                })
                this.$reqPost('updateTmTaskCoalItem', this.showWeigh, 'json').then(
@@ -228,20 +246,42 @@
                        }
                    })
            },
            // 物资明细
            goodsPopoverShow(index) {
                this.goodsShow = true
                this.goodsIndex = index
            },
            goodsNameClose() {
                this.goodsShow = false
            },
            goodsselectClick(val) {
                this.showWeigh[this.goodsIndex].modifygoodsName = val.name
                this.showWeigh[this.goodsIndex].itemId = val.itemId
                this.showWeigh[this.goodsIndex].num = val.num
                this.showWeigh[this.goodsIndex].numUnit = val.numUnit
                this.showWeigh[this.goodsIndex].remark = val.remark
                this.showWeigh[this.goodsIndex].breed = val.breed
                this.showWeigh[this.goodsIndex].spec = val.spec
            },
            // 产品列表
            productNamePopoverShow(index) {
                if (this.roleType === 4 && !this.flag) {
                this.actionShow = true
                this.actionIndex = index
                }
            },
            productNameClose() {
                this.actionShow = false
            },
            selectClick(val) {
                this.modifyMaterialList[this.actionIndex].modifyProductName = val.name
                this.showWeighCopy[this.actionIndex].modifyProductName = val.name
                this.showWeighCopy[this.actionIndex].breed = val.secondCategoryName
                this.showWeighCopy[this.actionIndex].spec = val.spec
            },
            // 折扣率输入
            discountInputHandle(value, index, clean) {
                this.showWeigh[index].cinderWeight = Number(value)
                this.showWeigh[index].discountWeight = (clean - (Number(value)).toFixed(2));
                this.showWeigh[index].weight = (clean - (Number(value)).toFixed(2));
            }
        },
    }
pages/driver-page/driver-index/bill-of-lading-details/weighingDevice/weighingDevice.vue
@@ -252,7 +252,6 @@
        },
        onShow() {
            this.init();
            this.changeisLogin(true)
            // this.realTimeWeigh = 0
        },
        computed: {
pages/driver-page/drvier-my/drvier-my.vue
@@ -376,7 +376,7 @@
            this.$refs.editRef.setRules(this.rules);
        },
        methods: {
            ...mapMutations(['changeisUploadimg']),
            ...mapMutations(['changeisUploadimg', 'changeisLogin']),
            init() {
                this.getUserEntity();
            },
@@ -532,6 +532,8 @@
            },
            logoutConfirm() {
                redirectLogin();
                this.changeisLogin(false)
                this.$store.dispatch('websocketOnClose')
            },
            logoutCancel() {
                this.logoutShow = false;
pages/freight-forwarder-page/freightForwarder-my/freightForwarder-my.vue
@@ -1,11 +1,14 @@
<template>
    <view class="freightForwarder-my">
        <view class="driver-banner"><view class="navgation">我的</view></view>
        <view class="driver-banner">
            <view class="navgation">我的</view>
        </view>
        <view class="personal-information">
            <view class="personal-information-block">
                <view class="block-main">
                    <view class="fleet-container">
                        <combined-title title="我的车队" @rightText="addFleet">
                        <combined-title title="我的车队"
                            @rightText="addFleet">
                            <template v-slot:rightText>
                                <text>添加</text>
                            </template>
@@ -13,16 +16,19 @@
                        <view class="fleet-list">
                            <u-swipe-action>
                                <u-cell-group :border="false">
                                    <u-swipe-action-item
                                        :options="options1"
                                    <u-swipe-action-item :options="options1"
                                        v-for="(item, index) in fleetData"
                                        :index="index"
                                        :name="item.id"
                                        :key="index"
                                        @click="deleteFleetClick"
                                    >
                                        <u-cell :title="item.name" :value="item.userSijisum + '辆'" @click="tofleetDetails(item.id)">
                                            <u-icon name="arrow-right" color="#999999" size="30" slot="right-icon"></u-icon>
                                        @click="deleteFleetClick">
                                        <u-cell :title="item.name"
                                            :value="item.userSijisum + '辆'"
                                            @click="tofleetDetails(item.id)">
                                            <u-icon name="arrow-right"
                                                color="#999999"
                                                size="30"
                                                slot="right-icon"></u-icon>
                                        </u-cell>
                                    </u-swipe-action-item>
                                </u-cell-group>
@@ -35,43 +41,64 @@
        <!-- 新建车队弹出框 -->
        <view class="addNewGroup">
            <u-popup :show="updateGroupShow" @close="addNewFleetPopupClose" @open="addNewFleetPopupOpen" mode="center">
                <view class="title"><u--text text="新建车队" size="30" lineHeight="80" align="center"></u--text></view>
            <u-popup :show="updateGroupShow"
                @close="addNewFleetPopupClose"
                @open="addNewFleetPopupOpen"
                mode="center">
                <view class="title"><u--text text="新建车队"
                        size="30"
                        lineHeight="80"
                        align="center"></u--text></view>
                <view class="addCarForm">
                    <u--form labelPosition="left" :model="addGroupForm" ref="form1" labelAlign="center">
                        <u-form-item label="组名" borderBottom ref="groupName" labelWidth="100">
                            <u--input v-model="addGroupForm.name" border="none" placeholder="请输入车队名称"></u--input>
                    <u--form labelPosition="left"
                        :model="addGroupForm"
                        ref="form1"
                        labelAlign="center">
                        <u-form-item label="组名"
                            borderBottom
                            ref="groupName"
                            labelWidth="100">
                            <u--input v-model="addGroupForm.name"
                                border="none"
                                placeholder="请输入车队名称"></u--input>
                        </u-form-item>
                        <!-- <u-form-item label="车牌" borderBottom ref="cars" labelWidth="80">
                            <u--textarea maxlength="2000" v-model="addGroupForm.carNums" placeholder="请输入车牌" height="150"></u--textarea>
                        </u-form-item> -->
                    </u--form>
                </view>
                <view class="addCarButton"><u-button text="添加" type="primary" @click="addNewGroupClick"></u-button></view>
                <view class="addCarButton"><u-button text="添加"
                        type="primary"
                        @click="addNewGroupClick"></u-button></view>
            </u-popup>
        </view>
        <!-- <view class="statistics"><u-button text="发运统计" type="primary" @click="statistics"></u-button></view> -->
        <view class="utils-button">
            <view class="utils"><u-button text="退出登录" type="primary" @click="logout"></u-button></view>
            <view class="utils"><u-button text="退出登录"
                    type="primary"
                    @click="logout"></u-button></view>
        </view>
        <!-- 删除车队模态框 -->
        <view class="deleteFleetModal">
            <u-modal
                :show="deleteFleetShow"
            <u-modal :show="deleteFleetShow"
                :title="deleteFleetTitle"
                @close="deleteFleetClose"
                @cancel="deleteFleetCancel"
                @confirm="deleteFleetConfirm"
                :closeOnClickOverlay="true"
                :showCancelButton="true"
            >
                :showCancelButton="true">
                <view class="slot-content"><rich-text :nodes="deleteFleetContent"></rich-text></view>
            </u-modal>
        </view>
        <view class="logoutModel">
            <u-modal :show="logoutShow" :title="logoutTitle" showCancelButton :content="logoutContent" @confirm="logoutConfirm" @cancel="logoutCancel"></u-modal>
            <u-modal :show="logoutShow"
                :title="logoutTitle"
                showCancelButton
                :content="logoutContent"
                @confirm="logoutConfirm"
                @cancel="logoutCancel"></u-modal>
        </view>
    </view>
</template>
@@ -88,11 +115,9 @@
                // wxUserId: uni.getStorageSync('userInfo').id
            },
            updateGroupShow: false,
            options1: [
                {
                options1: [{
                    text: '删除'
                }
            ],
                }],
            // 删除车队模态框
            deleteFleetId: null, // 删除车队id
            deleteFleetShow: false,
@@ -188,6 +213,8 @@
        },
        logoutCancel() {
            this.logoutShow = false;
                this.$store.commit('changeisLogin', false)
                this.$store.dispatch('websocketOnClose')
        },
        // 跳转发运统计页面
        statistics() {
@@ -199,16 +226,20 @@
};
</script>
<style lang="scss" scoped>
<style lang="scss"
    scoped>
.statistics {
    margin-top: vww(10);
    margin-bottom: vww(10);
}
.utils-button {
    margin-top: vww(35);
    .utils {
        margin-top: vww(10);
        margin-bottom: vww(10);
        /deep/ .u-button {
            width: 631rpx;
            height: 74rpx;
@@ -219,9 +250,11 @@
        }
    }
}
::v-deep.freightForwarder-my {
    width: 100%;
    margin: vww(90) auto;
    .driver-banner {
        width: 100%;
        height: 430rpx;
@@ -229,6 +262,7 @@
        background-size: contain;
        position: fixed;
        top: 0;
        .navgation {
            width: 80rpx;
            height: 37rpx;
@@ -239,6 +273,7 @@
            margin: vww(60) auto;
        }
    }
    .personal-information {
        width: 100%;
        display: flex;
@@ -247,6 +282,7 @@
        flex-direction: column;
        position: relative;
        top: vww(20);
        &-block {
            width: 690rpx;
            min-height: 478rpx;
@@ -257,12 +293,14 @@
            flex-direction: column;
            justify-content: space-between;
            margin-top: vww(8);
            .block-main {
                width: 636rpx;
                margin: vww(10) vww(14);
            }
        }
    }
    // 新建车队
    .addNewGroup {
        .u-popup {
@@ -270,19 +308,22 @@
                width: 94%;
                height: vww(160);
                border-radius: 1%;
                .title {
                    width: 100%;
                    text-align: center;
                    font-size: 20;
                    .u-text {
                        .u-text__value {
                            .u-text__value {}
                        }
                    }
                }
                .addCarForm {
                    width: 80%;
                    margin: 0 auto vww(30);
                }
                .addCarButton {
                    width: 40%;
                    margin: 0 auto;
pages/login/login.vue
@@ -121,7 +121,6 @@
                    apiLoginWx({ code: code }).then(res => {
                        if (res.code != 1) {
                            this.$u.toast('登录成功');
                            this.changeisLogin(true);
                            // 登陆成功,存储相关信息
                            setToken(res.access_token);
                            setRefreshToken(res.refresh_token);
@@ -136,7 +135,7 @@
                                this.$nextTick(() => {
                                    redirectHome();
                                });
                            });
                            })
                        } else {
                            this.$u.toast(res.msg);
                            this.bindWxModelShow = true;
pages/tabbar-page/index-tabbar/index-tabbar.vue
@@ -171,10 +171,10 @@
        },
        onShow() {
            this.init();
            console.log(this.globalisconnect);
            if (this.globalisconnect) {
                this.$store.dispatch('websocketInit')
                this.changeisconnect(false)
                this.changeisLogin(true)
                console.log(this.globalisconnect, 'index的ws数据’');
            }
            this.userAuthorization();
@@ -187,7 +187,9 @@
            this.changeisconnect(true)
        },
        methods: {
            ...mapMutations(['pushMessage', 'changeWeigh', 'changeinfraredStatus', 'changeisconnect', 'websocketInit']),
            ...mapMutations(['pushMessage', 'changeWeigh', 'changeinfraredStatus', 'changeisconnect', 'websocketInit',
                'changeisLogin'
            ]),
            messagePage() {
                uni.navigateTo({
                    url: '/pages/public-page/message/message'
store/index.js
@@ -225,12 +225,22 @@
            clearInterval(state.reconnectTimeOut)
            state.socketTast = null
            commit('changereconnectState', false)
            if (state.connectNum < 6) {
                dispatch('reconnect')
            } else {
            if (state.connectNum < 6 && state.globalisLogin) {
                uni.showToast({
                    title: `连接失败,正在尝试第${state.connectNum}次连接`,
                    icon: 'none'
                })
                commit('changereconnectNum', 1)
                dispatch('reconnect')
            } else if (state.connectNum > 6 && state.globalisLogin) {
                commit('changereconnectNum', 1)
                uni.showToast({
                    title: '网络异常,请稍后重试',
                    icon: 'none'
                })
            } else {
                return
            }
        },
        websocketOnError({ state, commit, dispatch }, e) {
            // 如果重连状态为false则不进行重连,为true才会
@@ -239,19 +249,21 @@
            clearInterval(state.reconnectTimeOut)
            state.socketTast = null
            commit('changereconnectState', false)
            if (state.connectNum < 6) {
            if (state.connectNum < 6 && state.globalisLogin) {
                uni.showToast({
                    title: `连接失败,正在尝试第${state.connectNum}次连接`,
                    icon: 'none'
                })
                commit('changereconnectNum', 1)
                dispatch('reconnect')
            } else {
            } else if (state.connectNum > 6 && state.globalisLogin) {
                commit('changereconnectNum', 1)
                uni.showToast({
                    title: '网络异常,请稍后重试',
                    icon: 'none'
                })
            } else {
                return
            }
        },
        // 接收数据
@@ -262,7 +274,7 @@
        reconnect({ state, commit, dispatch }) {
            console.log(state.is_open_socket, '重新连接socket状态');
            clearInterval(state.globalIntervalId)
            if (!state.is_open_socket) {
            if (!state.is_open_socket && state.globalisLogin) {
                state.reconnectTimeOut = setInterval(() => {
                    dispatch('websocketInit')
                }, 5000)