From 29658de29b2eb5292bf0c2fad7427b374b769ebc Mon Sep 17 00:00:00 2001 From: qingyiay <2386314947@qq.com> Date: 星期三, 10 五月 2023 20:29:31 +0800 Subject: [PATCH] 样式修改,引入字体,修改逻辑 --- pages/tabbar-page/index-tabbar/index-tabbar.vue | 302 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 295 insertions(+), 7 deletions(-) diff --git a/pages/tabbar-page/index-tabbar/index-tabbar.vue b/pages/tabbar-page/index-tabbar/index-tabbar.vue index aa4986c..da810e4 100644 --- a/pages/tabbar-page/index-tabbar/index-tabbar.vue +++ b/pages/tabbar-page/index-tabbar/index-tabbar.vue @@ -1,9 +1,27 @@ <template> - <view> - <customer-index v-if="roleType == 1" ref="customerIndexRef"></customer-index> - <freight-forwarder-index v-if="roleType == 2" ref="freightForwarderIndexRef"></freight-forwarder-index> - <driver-index v-if="roleType == 3" ref="driverIndexRef"></driver-index> + <view class="max-block"> + <view class="search-bar"> + <view class="icon-body"> + <view class="icon-box" @click="messagePage"> + <u-badge :isDot="true" type="error" v-if="dotShow"></u-badge> + <u-icon name="chat" color="#fff" size="50"></u-icon> + </view> + </view> + </view> + <customer-index v-if="roleType == 1" ref="customerIndexRef" :orderPlanDataStore="orderPlanDataStore"></customer-index> + <freight-forwarder-index + v-if="roleType == 2" + ref="freightForwarderIndexRef" + :indexHistoryCoalData="indexHistoryCoalData" + :indexHuoDaiOrderPlanData="indexHuoDaiOrderPlanData" + ></freight-forwarder-index> + <driver-index v-if="roleType == 3" ref="driverIndexRef" :indexdriverBillOfLoadingData="indexdriverBillOfLoadingData"></driver-index> <tab-bar :current="0"></tab-bar> + <!-- 鎺ㄩ�佹秷鎭脊绐� --> + <u-modal :show="messagePushShow" :title="messageList.title" @confirm="messageconfirm" confirm-text="鍓嶅幓鏌ョ湅"> + <view class="slot-content"><rich-text :nodes="messageList.content"></rich-text></view> + </u-modal> + <view class="white-block"></view> </view> </template> @@ -11,25 +29,145 @@ import customerIndex from '@/pages/customer-page/customer-index/customer-index.vue'; import driverIndex from '@/pages/driver-page/driver-index/driver-index.vue'; import freightForwarderIndex from '@/pages/freight-forwarder-page/freightForwarder-index/freightForwarder-index.vue'; +import { mapState, mapMutations } from 'vuex'; +import { webSocketUrl } from '@/api/request.js'; +let socket = null; export default { components: { customerIndex, driverIndex, freightForwarderIndex }, + computed: { + ...mapState(['globalweighHouseCode', 'globalweigh']) + }, + //棣栭〉涓嬫媺鍒锋柊 + onPullDownRefresh() { + uni.showLoading({ title: '鍔犺浇涓�...' }); + // 鑾峰彇鍘嗗彶鎻愮叅鍗� + if (this.roleType == 1 || this.roleType == 2) { + this.$reqGet('getJhOrderPlanDataPage', { current: 1, size: 10 }).then(res => { + if (res.data.records) { + this.indexHistoryCoalData = res.data.records; + uni.hideLoading(); + uni.stopPullDownRefresh(); + } else { + this.$u.toast('鍔犺浇澶辫触'); + } + }); + } + // 瀹㈡埛鑾峰彇鏃ヨ鍒� + if (this.roleType == 1) { + this.$reqGet('GetOrderPlan').then(res => { + if (res.data) { + this.orderPlanDataStore = res.data; + this.$u.toast('鍔犺浇鎴愬姛'); + uni.hideLoading(); + uni.stopPullDownRefresh(); + } else { + this.$u.toast('鍔犺浇澶辫触'); + } + }); + } else if (this.roleType == 2) { + this.$reqGet('huoDaiList').then(res => { + if (res.data) { + this.indexHuoDaiOrderPlanData = res.data; + this.$u.toast('鍔犺浇鎴愬姛'); + uni.hideLoading(); + uni.stopPullDownRefresh(); + } else { + this.$u.toast('鍔犺浇澶辫触'); + } + }); + } else if (this.roleType == 3) { + this.$reqGet('qiangDanList').then(res => { + if (res.code == 0) { + this.indexdriverBillOfLoadingData = res.data; + this.$u.toast('鍔犺浇鎴愬姛'); + uni.hideLoading(); + uni.stopPullDownRefresh(); + } else { + this.$u.toast('鍔犺浇澶辫触'); + uni.hideLoading(); + uni.stopPullDownRefresh(); + } + }); + } + }, + onLoad() { + // 寮�鍚弻浜洪�氳瘽 + wx.setEnable1v1Chat({ + enable: true, + backgroundType: 1, + minWindowType: 2, + success() { + console.log('寮�鍚弻浜洪�氳瘽鎴愬姛'); + }, + fail() { + console.log('寮�鍚弻浜洪�氳瘽澶辫触'); + }, + complete() { + console.log('寮�鍚弻浜洪�氳瘽鎴愬姛Complete'); + } + }); + let amap = require('../../../utils/amap-wx.130.js'); + let amapPlugin = new amap.AMapWX({ + key: 'e3106700a6225e6a25727d3a41fa54c5' + }); + amapPlugin.getRegeo({ + success: data => { + console.log(data, '鑾峰彇浣嶇疆'); + }, + fail: info => { + console.log(info, '閿欒淇℃伅'); + } + }); + }, data() { return { - roleType: null + roleType: null, + orderPlanDataStore: [], + indexHuoDaiOrderPlanData: [], + indexHistoryCoalData: [], + indexdriverBillOfLoadingData: {}, + messagePushShow: false, + messageList: {}, + isconnect: false, + dotShow: false, + amapPlugin: null, + key: 'e3106700a6225e6a25727d3a41fa54c5', + addressName: '' }; }, onShow() { this.init(); + if (!this.isconnect) { + this.initWebsocket(); + } + this.userAuthorization(); + this.messageReq(); + }, + onHide() { + console.log('椤甸潰闅愯棌'); + if (!this.isconnect) { + this.initWebsocket(); + } + }, + onUnload() { + console.log('椤甸潰鍗歌浇'); + socket.close(); + clearInterval(this.intervalId); }, methods: { + ...mapMutations(['pushMessage', 'changeWeigh', 'changeinfraredStatus']), + messagePage() { + uni.navigateTo({ + url: '/pages/public-page/message/message' + }); + }, init() { this.roleType = uni.getStorageSync('roleType'); - console.log(this.roleType, 'indexTabbar'); switch (this.roleType) { case 1: console.log('customerIndexRef'); @@ -52,9 +190,159 @@ default: break; } + }, + // 瑕佹眰鐢ㄦ埛鎺堟潈鐩告満/楹﹀厠椋庢潈闄� + userAuthorization() { + wx.getSetting({ + success(res) { + // wx.startRecord(); + console.log('success'); + if (!res.authSetting['scope.record'] || !res.authSetting['scope.camera']) { + if (!res.authSetting['scope.camera']) { + wx.authorize({ + scope: 'scope.camera', + success() { + // 鐢ㄦ埛宸茬粡鍚屾剰灏忕▼搴忎娇鐢ㄥ綍闊冲姛鑳斤紝鍚庣画璋冪敤 wx.startRecord 鎺ュ彛涓嶄細寮圭獥璇㈤棶 + console.log('鎺堟潈鎴愬姛'); + }, + fail() { + console.log('鎺堟潈澶辫触'); + } + }); + } else if (!res.authSetting['scope.record']) { + wx.authorize({ + scope: 'scope.record', + success() { + // 鐢ㄦ埛宸茬粡鍚屾剰灏忕▼搴忎娇鐢ㄥ綍闊冲姛鑳斤紝鍚庣画璋冪敤 wx.startRecord 鎺ュ彛涓嶄細寮圭獥璇㈤棶 + console.log('鎺堟潈鎴愬姛'); + }, + fail: () => { + console.log('鎺堟潈澶辫触'); + } + }); + } + } + }, + fail() { + console.log('鑾峰彇澶辫触'); + } + }); + }, + // 鍒濆鍖杦ebsocket + 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.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; + }); + socket.onError(err => { + console.log('socket鎶ラ敊', err); + this.$u.toast('鍑虹幇閿欒锛岃閲嶆柊杩涘叆璇ラ〉闈紝閲嶈瘯锛侊紒'); + }); + }, + messageconfirm() { + this.messagePushShow = false; + uni.navigateTo({ + url: '/pages/public-page/message/message' + }); + }, + messageReq() { + this.$reqGet('getMessageByUser', { current: 1, size: 10 }).then(res => { + if (res.code == 0) { + this.messageList = res.data.records; + this.messageList.map(v => { + if (v.status !== 1) { + this.dotShow = true; + } else { + this.dotShow = false; + } + }); + } + }); } } }; </script> -<style lang="scss" scoped></style> +<style lang="scss" scoped> +.max-block { + font-family: siYuanLight !important; +} +.white-block { + width: 100%; + height: vww(20); + margin-top: vww(10); +} +.search-bar { + height: vww(20); + width: 96%; + position: absolute; + top: vww(96); + right: vww(32); + z-index: 1; + .icon-body { + position: relative; + display: flex; + justify-content: flex-end; + .icon-box { + width: vww(30); + height: vww(30); + border-radius: 50%; + display: flex; + justify-content: center; + align-items: center; + position: relative; + /deep/ .u-badge { + position: absolute; + left: vww(18); + top: vww(5); + z-index: 1; + } + } + } +} +</style> -- Gitblit v1.9.1