pages/customer-page/customer-my/customer-my.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pages/driver-page/drvier-my/drvier-my.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pages/freight-forwarder-page/freightForwarder-my/freightForwarder-my.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pages/tabbar-page/index-tabbar/index-tabbar.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
store/index.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
pages/customer-page/customer-my/customer-my.vue
@@ -360,6 +360,8 @@ }, logoutConfirm() { redirectLogin(); this.$store.commit('changeisLogin', false) this.$store.dispatch('websocketOnClose') }, logoutCancel() { this.logoutShow = false; pages/driver-page/drvier-my/drvier-my.vue
@@ -567,6 +567,8 @@ }, logoutConfirm() { redirectLogin(); this.$store.commit('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, @@ -185,6 +210,8 @@ }, logoutConfirm() { redirectLogin(); this.$store.commit('changeisLogin', false) this.$store.dispatch('websocketOnClose') }, logoutCancel() { this.logoutShow = false; @@ -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/tabbar-page/index-tabbar/index-tabbar.vue
@@ -171,11 +171,11 @@ }, onShow() { this.init(); console.log(this.globalisconnect); if (this.globalisconnect) { this.$store.dispatch('websocketInit') this.changeisconnect(false) console.log(this.globalisconnect, 'index的ws心事’'); this.$store.commit('changeisLogin', true) console.log(this.globalisconnect, 'index的ws数据'); } this.userAuthorization(); this.messageReq(); store/index.js
@@ -78,6 +78,9 @@ socketTask: null, websocketData: null, // 存放从后端接收到的websocket数据 globalIntervalId: null, is_open_socket: false, //避免重复连接 connectNum: 1, //重连次数, reconnectTimeOut: null }, mutations: { lengthchange(state, payload) { @@ -131,7 +134,19 @@ }, setWebsocketData(state, data) { state.websocketData = data }, // 改变重连状态 changereconnectState(state, payload) { state.is_open_socket = payload }, // 改变重连次数 changereconnectNum(state, payload) { if (state.connectNum < 6) { state.connectNum += payload } else { state.connectNum = payload } }, }, actions: { websocketInit({ state, dispatch, commit }) { @@ -139,20 +154,29 @@ state.socketTast = uni.connectSocket({ url: wsUrl, header: { CLIENT_TOC: 'Y' }, complete: res => { console.log(res, 'socket结果') success: res => { console.log(res, 'socketSuccess') if (res.errMsg === 'connectSocket:ok') { commit('changeisconnect', true) commit('changereconnectState', true) } }, fail: res => { console.log(res, 'socketFail') console.log('ws失败'); commit('changereconnectState', false) dispatch('reconnect') } }) state.socketTast.onOpen(() => dispatch('websocketOnOpen')) state.socketTast.onMessage(result => dispatch('websocketOnMessage', result.data)) state.socketTast.onClose(e => dispatch('websocketOnClose', e)) state.socketTast.onError(e => dispatch('websocketOnError')) state.socketTast.onError(e => dispatch('websocketOnError', e)) }, websocketOnOpen({ state, commit }) { console.log('onOpen') console.log('ws打开') clearInterval(state.reconnectTimeOut) clearInterval(state.globalIntervalId) state.globalIntervalId = setInterval(() => { state.socketTast.send({ data: JSON.stringify({ type: 'ping' }), @@ -162,19 +186,70 @@ }) }, 30000) }, websocketOnClose({ state, commit }) { websocketOnClose({ state, commit, dispatch }, e) { if (!state.socketTast) return console.log('ws关闭', e) state.socketTast.close(e => { commit('changeisconnect', false) }) console.log('ws关闭') clearInterval(state.globalIntervalId) clearInterval(state.reconnectTimeOut) state.socketTast = null commit('changereconnectState', false) 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(e) { console.log('socket报错', e) websocketOnError({ state, commit, dispatch }, e) { // 如果重连状态为false则不进行重连,为true才会 console.log('ws报错', e) clearInterval(state.globalIntervalId) clearInterval(state.reconnectTimeOut) state.socketTast = null commit('changereconnectState', false) 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 } }, // 接收数据 websocketOnMessage({ state, commit }, result) { commit('setWebsocketData', result) }, // 重新连接 reconnect({ state, commit, dispatch }) { console.log(state.is_open_socket, '重新连接socket状态'); clearInterval(state.globalIntervalId) if (!state.is_open_socket && state.globalisLogin) { state.reconnectTimeOut = setInterval(() => { dispatch('websocketInit') }, 5000) } } } })