<template>
|
<view class="max-block">
|
<view class="search-bar">
|
<view class="icon-body">
|
<view class="icon-box"
|
@click="messagePage" v-if="roleType != 6">
|
<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>
|
<load-unload ref="LoadUnloadRef"
|
v-if="roleType == 5" :indexLoadUnloadBillOfLoadingData="detailData"></load-unload>
|
<doorkeep-index ref="doorkeepIndexRef"
|
v-if="roleType == 6"></doorkeep-index>
|
<!-- <selectTarget v-if="roleType == 5"
|
ref="LoadUnloadRef"></selectTarget> -->
|
<qualityIndex ref="qualityIndexRef" v-if="roleType == 7"></qualityIndex>
|
<tab-bar :current="0"></tab-bar>
|
<!-- 推送消息弹窗 -->
|
<u-modal :show="messagePushShow"
|
:title="messageList.title"
|
@confirm="messageconfirm"
|
confirm-text="前去查看">
|
<view class="slot-content"><u-parse :content="messageList.content"></u-parse></view>
|
</u-modal>
|
<!-- <view class="white-block"></view> -->
|
</view>
|
</template>
|
|
<script>
|
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 LoadUnload from '@/pages/loadUnload-page/loadUnload-page.vue'
|
import selectTarget from '@/pages/loadUnload-page/selectTarget/selectTarget.vue'
|
import qualityIndex from '@/pages/quality-inspection-page/qualityIndex/qualityIndex'
|
import doorkeepIndex from '@/pages/doorkeeper-page/doorkeeper-index/doorkeeper-index.vue';
|
import { mapState, mapMutations } from 'vuex';
|
import { webSocketUrl } from '@/api/request.js';
|
|
let socket = null;
|
export default {
|
components: {
|
customerIndex,
|
driverIndex,
|
freightForwarderIndex,
|
LoadUnload,
|
selectTarget,
|
qualityIndex, //化验
|
doorkeepIndex,
|
selectTarget
|
},
|
computed: {
|
...mapState(['globalweighHouseCode', 'globalweigh', 'globalisconnect', 'globalSocket', 'websocketData',
|
'globalIntervalId'
|
])
|
},
|
//首页下拉刷新
|
onPullDownRefresh() {
|
if(this.roleType!==6){
|
uni.showLoading({ title: '加载中...' });
|
}else{
|
this.$refs.doorkeepIndexRef.TaskCoalList()
|
}
|
// 获取历史提煤单
|
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();
|
}
|
});
|
}else if(this.roleType == 5){
|
//装卸员
|
this.getDetailData();
|
}
|
},
|
// getWarehouseListFun() {
|
// this.$reqGet('getWarehouseList').then(res => {
|
// uni.hideLoading()
|
// if (res.code === 0) {
|
// if(res.data.length){
|
// this.getDetailData();
|
|
// }
|
// } else {
|
// this.$u.toast('加载失败')
|
// }
|
// })
|
// },
|
onHide() {
|
console.log('页面隐藏')
|
},
|
onUnload() {
|
console.log('页面卸载');
|
this.$store.dispatch('websocketOnClose')
|
clearInterval(this.globalIntervalId);
|
this.changeisconnect(false)
|
},
|
onShow() {
|
this.count = this.count +1;
|
this.init();
|
this.messageReq();
|
},
|
onLoad() {
|
this.$store.dispatch('websocketInit')
|
this.$store.commit('changeisLogin', true)
|
console.log(this.globalisconnect, 'index的ws数据');
|
/* #ifdef MP-WEIXIN */
|
this.userAuthorization();
|
/* #endif */
|
this.messageReq();
|
// 开启双人通话
|
/* #ifdef MP-WEIXIN */
|
wx.setEnable1v1Chat({
|
enable: true,
|
backgroundType: 1,
|
minWindowType: 2,
|
success() {
|
console.log('开启双人通话成功');
|
},
|
fail() {
|
console.log('开启双人通话失败');
|
},
|
complete() {
|
console.log('开启双人通话成功Complete');
|
}
|
});
|
/* #endif */
|
},
|
data() {
|
return {
|
roleType: null,
|
orderPlanDataStore: [],
|
indexHuoDaiOrderPlanData: [],
|
indexHistoryCoalData: [],
|
count:0,
|
detailData:[],
|
indexdriverBillOfLoadingData: {},
|
messagePushShow: false,
|
messageList: {
|
title: '',
|
content: "",
|
},
|
isconnect: false,
|
dotShow: false,
|
appHide: false
|
};
|
},
|
watch: {
|
'$store.state.websocketData'(v) {
|
console.log(v, '接受的ws数据');
|
if (v.startsWith('weigh')) { //重量(称重的条件)
|
let nowWeighObj = JSON.parse(v.slice(7));
|
if (this.globalweighHouseCode && nowWeighObj.eqCode == this.globalweighHouseCode) {
|
this.changeWeigh(nowWeighObj.weigh);
|
this.changeinfraredStatus(!!nowWeighObj.eqInfraredStatus);
|
let warningState = nowWeighObj.warning == 1
|
this.changeWarning(warningState)
|
}
|
} else if (v.startsWith('msg')) { //消息
|
function removeTags(str) {
|
return str.replace(/<\/?[^>]+>/gi, '');
|
}
|
this.messageList = JSON.parse(v.slice(5));
|
this.messageList = {
|
...this.messageList,
|
title: this.messageList.title.slice(0, 8) + '...',
|
content: removeTags(this.messageList.content).trim().slice(0, 8) + '...'
|
}
|
this.messagePushShow = !this.messageList.appUserId || uni.getStorageSync('userId') === this.messageList
|
.appUserId;
|
} else if (v.startsWith('wsg')) { //提醒磅房有车
|
let wsgObj = JSON.parse(v.slice(5));
|
if (uni.getStorageSync('carNo') === wsgObj.carNo && !wsgObj.peopleWeigh) {
|
this.changewsgVisiable(true) //磅房忙碌的弹框的现隐藏
|
this.changewsgContent(wsgObj.content) //磅房忙碌的弹框的内容提示
|
}
|
if (uni.getStorageSync('carNo') === wsgObj.carNo && wsgObj.peopleWeigh === 2) {
|
this.changeconfirmWeighVisiable(true)
|
this.changeconfirmWeighContent(wsgObj.content)
|
}
|
}
|
}
|
},
|
methods: {
|
...mapMutations(['pushMessage', 'changeWeigh', 'changeinfraredStatus', 'changeisconnect', 'websocketInit',
|
'changewsgVisiable', 'changewsgContent', 'changeconfirmWeighVisiable', 'changeconfirmWeighContent',
|
'changeWarning'
|
]),
|
messagePage() {
|
uni.navigateTo({
|
url: '/pages/public-page/message/message'
|
});
|
},
|
init() {
|
this.roleType = uni.getStorageSync('roleType');
|
console.log(this.roleType,'this.roleType=====')
|
switch (this.roleType) {
|
case 1:
|
console.log('customerIndexRef');
|
this.$nextTick(() => {
|
this.$refs.customerIndexRef.init();
|
});
|
break;
|
case 2:
|
console.log('freightForwarderIndexRef');
|
this.$nextTick(() => {
|
this.$refs.freightForwarderIndexRef.init();
|
});
|
break;
|
case 3:
|
console.log('driverIndexRef');
|
this.$nextTick(() => {
|
this.$refs.driverIndexRef.init();
|
});
|
break;
|
case 5:
|
console.log('LoadUnloadRef');
|
this.$nextTick(() => {
|
console.log(this.count,'count')
|
if(this.count <=1){
|
this.$refs.LoadUnloadRef.init();
|
}
|
});
|
break;
|
case 7:
|
console.log('qualityIndexRef');
|
this.$nextTick(() => {
|
console.log(this.count,'count')
|
if(this.count <=1){
|
this.$refs.qualityIndexRef.init();
|
}
|
});
|
break;
|
case 6:
|
console.log('doorkeepIndexRef');
|
this.$nextTick(() => {
|
this.$refs.doorkeepIndexRef.init();
|
});
|
break;
|
default:
|
break;
|
}
|
},
|
// 要求用户授权相机/麦克风权限
|
/* #ifdef MP-WEIXIN */
|
userAuthorization() {
|
wx.getSetting({
|
success(res) {
|
console.log(res);
|
if (!res.authSetting['scope.record'] || !res.authSetting['scope.camera']) {
|
if (!res.authSetting['scope.camera']) {
|
wx.authorize({
|
scope: 'scope.camera',
|
success() {
|
console.log('相机成功');
|
},
|
fail() {
|
console.log('相机失败');
|
}
|
});
|
} else if (!res.authSetting['scope.record']) {
|
wx.authorize({
|
scope: 'scope.record',
|
success() {
|
console.log('录音成功');
|
},
|
fail: () => {
|
console.log('录音失败');
|
}
|
});
|
}
|
}
|
},
|
fail() {
|
console.log('获取失败');
|
},
|
});
|
},
|
/* #endif */
|
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;
|
let filtermessage = this.messageList.filter(v => v.status == 0);
|
this.dotShow = filtermessage.length > 0;
|
}
|
});
|
},
|
getDetailData(){
|
this.$reqGet('getTaskCoalListByBunkerId', { bunkerId:uni.getStorageSync('bunkerId')}).then(res => {
|
if (res.code === 0) {
|
this.detailData = res.data.map(item=>{
|
item.tmTaskCoalList.map(el=>{
|
el.flag = el.isPretendDischar ? false : true
|
return el
|
})
|
return item;
|
});
|
this.$u.toast('加载成功');
|
uni.stopPullDownRefresh();
|
uni.hideLoading();
|
}
|
})
|
|
},
|
}
|
};
|
</script>
|
|
<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>
|