<template>
|
<view class="weighingDevice">
|
<view class="one"
|
:style="{ backgroundImage: `url(${onlineurl}/appimg/image/banner/weighbanner.png)`, backgroundSize: 'cover', backgroundRepeat: 'no-repeat' }">
|
<view class="top">
|
<view class="top_left">
|
<!-- <text>{{ realTimeWeigh }}</text> -->
|
<text>{{ globalweigh }}</text>
|
</view>
|
<view class="top_right">
|
<view class="">
|
称重:
|
<u--text :type="realTimeWeigh == 0 ? 'error' : 'success'"
|
:text="realTimeWeigh == 0 ? '异常' : '正常'"
|
size="34"></u--text>
|
</view>
|
<view class="">
|
红外:
|
<u--text :type="globalinfraredStatus ? 'error' : 'success'"
|
:text="globalinfraredStatus ? '异常' : '正常'"
|
size="34"></u--text>
|
</view>
|
</view>
|
</view>
|
<view class="bottom"><text>TIP:当前状态为正常时可以称重</text></view>
|
</view>
|
<view class="bottom-block">
|
<view class="block-main">
|
<view class="main-information"
|
v-if="weighList.orderType=='转入'||weighList.orderType=='转出'">
|
<view class="prefix">
|
发货地煤场:
|
</view>
|
<view class="suffix">
|
{{ weighList.filedName || '' }}
|
</view>
|
</view>
|
<view class="main-information"
|
v-if="weighList.orderType=='转入'||weighList.orderType=='转出'">
|
<view class="prefix">
|
收货地煤场:
|
</view>
|
<view class="suffix">
|
{{ weighList.toFiledName || '' }}
|
</view>
|
</view>
|
<view class="main-information"
|
v-if="weighList.orderType!=='转入'||weighList.orderType!=='转出'">
|
<view class="prefix">客户:</view>
|
<view class="suffix">{{ weighList.customerName|| '' }}</view>
|
</view>
|
<view class="main-information"
|
v-if="weighList.orderType!=='转入'||weighList.orderType!=='转出'">
|
<view class="prefix">仓库:</view>
|
<view class="suffix">{{ weighList.deptName || '' }}</view>
|
</view>
|
<view class="main-information"
|
v-if="weighList.orderType!=='转入'||weighList.orderType!=='转出'">
|
<view class="prefix">基地:</view>
|
<view class="suffix">{{ weighList.filedName || '' }}</view>
|
</view>
|
<!-- <view class="main-information">
|
<view class="prefix">煤种名称:</view>
|
<view class="suffix">{{ weighList.coalName || '' }}</view>
|
</view> -->
|
<view class="main-information">
|
<view class="prefix">订单类型:</view>
|
<view class="suffix">{{ weighList.orderType || '' }}</view>
|
</view>
|
<view class="main-information">
|
<view class="prefix">皮重:</view>
|
<view class="suffix">
|
{{currentSkin}}
|
</view>
|
</view>
|
<view class="main-information">
|
<view class="prefix">毛重:</view>
|
<view class="suffix">
|
{{currentHair}}
|
</view>
|
</view>
|
<view class="main-information">
|
<view class="prefix">净重:</view>
|
<view class="suffix">
|
{{ currentClean}}
|
</view>
|
</view>
|
<view class="main-information">
|
<view class="prefix">订单余量:</view>
|
<view class="suffix">{{ weighList.orderSurplus || 0 }}</view>
|
</view>
|
</view>
|
</view>
|
<!-- 称重历史-->
|
<weigh-item :list="weighHistory"></weigh-item>
|
<view class="three">
|
<!-- 放空 -->
|
<u-button type="primary"
|
text="放空"
|
plain
|
@click="evacuation"
|
throttleTime="500"
|
:disabled="!isEvacuation"></u-button>
|
<!-- 外销订单称皮时,返回加减吨按钮置灰。称毛时可用.外购订单,不出现返回加减吨的按钮 -->
|
<u-button type="primary"
|
text="确定称重"
|
:disabled="realTimeWeigh == 0 || globalinfraredStatus || isweigh ||globalWarning"
|
:loading="isConfirmWeighLoading"
|
loadingText="确认"
|
@click="confirmWeigh"></u-button>
|
<u-button type="primary"
|
text="返回加减吨"
|
:disabled="addAndSubtractCoalDisabled"
|
@click="addAndSubtractCoal"
|
class="jiajian"
|
v-if="outBuy"></u-button>
|
<u-button type="primary"
|
text="继续卸货"
|
@click="UnloadingAgainHandle"
|
:loading="UnloadingAgainLoading"
|
loadingText="确认"
|
:disabled="isweigh||realTimeWeigh == 0"
|
v-if='canUnload'></u-button>
|
</view>
|
<!-- 放空弹窗 -->
|
<view class="evacuationModal">
|
<u-modal :show="evacuationModalShow"
|
:title="evacuationTitle"
|
:content="evacuationContent"
|
:showCancelButton="true"
|
@confirm="evacuationConfirm"
|
@cancel="evacuationCancel"></u-modal>
|
</view>
|
</view>
|
</template>
|
|
<script>
|
let socket = null;
|
import { webSocketUrl, onlineurl } from '@/api/request.js';
|
import { mapState, mapMutations } from 'vuex';
|
import combinedTitle from '@/components/combined-title/combined-title.vue';
|
import weighItem from '@/components/weighItem.vue'
|
export default {
|
onLoad(params) {
|
this.takeCoalId = params.takeCoalId;
|
this.weighData.sceneId = params.sceneId;
|
this.weighData.gateCameraId = params.gateCameraId;
|
this.weighData.equipmentCode = params.gateCameraCode;
|
this.weighData.sceneInOut = params.sceneInOut;
|
this.weighHouseCode = params.weighHouseCode;
|
this.primarySkin = params.primarySkin;
|
this.primaryHair = params.primaryHair;
|
this.primaryClean = params.primaryClean;
|
if (params.overTmWaixiao) {
|
this.weighData.overTmWaixiao = 1
|
}
|
this.changeweighHouseCode(params.weighHouseCode);
|
this.changeWeigh(0)
|
},
|
components: {
|
combinedTitle,
|
weighItem
|
},
|
data() {
|
return {
|
weighData: {
|
//确认称重接口参数
|
deptId: '',
|
tmId: '',
|
sceneId: '',
|
carNo: '',
|
gateCameraId: '',
|
equipmentCode: '',
|
weigh: 0,
|
tmCode: '',
|
sceneInOut: '',
|
// coalContactClean: 0,
|
// coalContactHair: 0,
|
// coalContactSkin: 0
|
},
|
// 是否填写原发信息
|
isInputOrigin: false,
|
haveInputOrigin: false,
|
|
takeCoalId: null,
|
weighHouseCode: '',
|
isConfirmWeighLoading: false, //确定称重按钮
|
realTimeWeigh: 0,
|
weighList: {},
|
// 临时称重对象
|
temporaryWeighObj: {
|
skin: null,
|
hair: null,
|
clean: null
|
},
|
infraredStatus: false, // 红外状态,
|
// 放空控制
|
evacuationModalShow: false,
|
evacuationTitle: '放空确认',
|
evacuationContent: '是否确认放空',
|
// 获取原发信息
|
primarySkin: null,
|
primaryHair: null,
|
primaryClean: null,
|
// 判断称重按钮是否可用
|
isweigh: false,
|
// 外购类型称重填写毛,皮,
|
firstHairCustomernameShow: false,
|
coalContactHair: '',
|
coalContactSkin: '',
|
// 聚焦时改变样式
|
isfocus1: false,
|
isfocus2: false,
|
// 外购类型
|
outBuy: true,
|
// 继续卸货按钮
|
canUnload: false,
|
UnloadingAgainLoading: false,
|
onlineurl,
|
};
|
},
|
watch: {
|
realTimeWeigh(newV, oldV) {
|
if (this.weighList.orderType == '外销' || this.weighList.orderType == '内销' || this.weighList.orderType ==
|
'转出') {
|
if (!this.showWeigh.skin) {
|
this.temporaryWeighObj.skin = newV;
|
} else {
|
this.temporaryWeighObj.hair = newV;
|
this.isweigh = Number(this.currentClean) > this.weighList.orderSurplus || Number(this
|
.currentClean) < 0;
|
}
|
} else if (this.weighList.orderType == '外购' || this.weighList.orderType == '内购' || this.weighList
|
.orderType == '转入') {
|
if (!this.showWeigh.hair) {
|
this.temporaryWeighObj.hair = newV;
|
} else {
|
this.temporaryWeighObj.skin = newV;
|
this.isweigh = Number(this.currentClean) < 0 || this.showWeigh.skin < newV && this.showWeigh
|
.skin > 0;
|
}
|
}
|
},
|
// 监听重量变化
|
globalweigh: {
|
handler: function(newV) {
|
this.weighData.weigh = this.realTimeWeigh = newV;
|
console.log(this.realTimeWeigh, '真实重量改变了');
|
},
|
deep: true
|
}
|
},
|
onShow() {
|
this.init();
|
// this.realTimeWeigh = 0
|
},
|
computed: {
|
...mapState(['globalweigh', 'globalinfraredStatus', 'globalWarning']),
|
token() {
|
return uni.getStorageSync('token');
|
},
|
// 加减煤按钮禁用与否
|
addAndSubtractCoalDisabled() {
|
return this.realTimeWeigh == 0;
|
},
|
// 是否放空按钮禁用
|
isEvacuation() {
|
if (this.weighList.orderType == '外销' || this.weighList.orderType == '内销' || this.weighList.orderType ==
|
'转出') {
|
return (this.weighList.skin === 0 ? this.temporaryWeighObj.skin : this.weighList.skin) == this
|
.temporaryWeighObj.hair;
|
}
|
if (this.weighList.orderType == '外购' || this.weighList.orderType == '内购' || this.weighList.orderType ==
|
'转入') {
|
return (this.weighList.hair === 0 ? this.temporaryWeighObj.skin : this.weighList.hair) == this
|
.temporaryWeighObj.hair;
|
}
|
},
|
|
showWeigh() {
|
return this.weighList.tmTaskCoalItems ? (this.weighList.tmTaskCoalItems[0] ? this
|
.weighList.tmTaskCoalItems[0] : {}) : {}
|
},
|
// 称重历史
|
weighHistory() {
|
return this.weighList.tmTaskCoalItems ? this.weighList.tmTaskCoalItems : []
|
},
|
currentHair() {
|
return this.temporaryWeighObj.hair ? this.temporaryWeighObj.hair : this.showWeigh.skin ? (this.showWeigh
|
.skin || '') : (this.showWeigh.hair || '')
|
},
|
currentSkin() {
|
return this.temporaryWeighObj.skin || ''
|
},
|
currentClean() {
|
if (!this.currentSkin) return ''
|
return (this.currentHair - this.currentSkin).toFixed(2)
|
}
|
},
|
methods: {
|
...mapMutations(['changeweighHouseCode', 'changeisLogin', 'changeWeigh']),
|
init() {
|
uni.showLoading({
|
title: '加载中'
|
})
|
// 获取称重信息
|
this.$reqGet('weighList', { id: this.takeCoalId }).then(res => {
|
console.log(res, '获取称重信息');
|
uni.hideLoading()
|
if (res.code == 0) {
|
this.weighList = res.data;
|
this.weighData.deptId = res.data.deptId;
|
this.weighData.tmId = res.data.id;
|
this.weighData.carNo = res.data.carNo;
|
this.weighData.tmCode = res.data.code;
|
this.weighData.filedId = res.data.filedId;
|
this.outBuy = (this.weighList.orderType.indexOf('销') !== -1) && this.showWeigh.skin > 0;
|
// 继续卸货只有外购类型第二次会有
|
this.canUnload = this.weighList.orderType === '外购' && this.showWeigh.hair > 0;
|
}
|
});
|
},
|
/**
|
* @确认称重等待后端提供实时称重接口,获取皮重,毛重
|
*/
|
confirmWeigh() {
|
if (this.isConfirmWeighLoading == false) {
|
this.isConfirmWeighLoading = true;
|
if (this.weighData.weigh != 0) {
|
if (this.weighList.orderType == '外销') {
|
if (this.weighList.skin ? (this.weighList.skin < this.realTimeWeigh ? true : false) : true) {
|
this.saveWeigh();
|
} else {
|
this.$u.toast('毛重不能小于皮重');
|
this.isConfirmWeighLoading = false;
|
}
|
} else {
|
this.saveWeigh();
|
}
|
} else {
|
this.$u.toast('未能获取地磅重量');
|
this.isConfirmWeighLoading = false;
|
}
|
}
|
},
|
// 确认称重接口
|
saveWeigh() {
|
// this.weighData.coalContactClean = this.coalContactClean;
|
this.$reqPost('saveWeigh', this.weighData, 'json')
|
.then(res => {
|
console.log(res, '称重接口');
|
if (res.code == 0) {
|
this.$u.toast('称重成功');
|
setTimeout(() => {
|
uni.navigateBack({
|
delta: 1
|
});
|
this.isConfirmWeighLoading = false;
|
}, 1000);
|
} else {
|
this.$u.toast('称重失败,请稍后重试');
|
}
|
})
|
.catch(err => {
|
this.isConfirmWeighLoading = false;
|
console.log(err);
|
});
|
},
|
// 加减煤
|
addAndSubtractCoal() {
|
this.$reqPost('addAndSubtractCoal', {
|
deptId: this.weighData.deptId,
|
sceneId: this.weighData.sceneId,
|
carNo: this.weighData.carNo,
|
tmId: this.weighData.tmId,
|
filedId: this.weighData.filedId,
|
tmId: this.weighData.tmId,
|
gateCameraId: this.weighData.gateCameraId,
|
equipmentCode: this.weighData.equipmentCode,
|
tmCode: this.weighData.tmCode,
|
sceneInOut: this.weighData.sceneInOut,
|
weigh: this.realTimeWeigh
|
}, 'json').then(res => {
|
if (res.code == 0) {
|
this.$u.toast('操作成功,即将返回上一页');
|
setTimeout(() => {
|
uni.navigateBack({
|
delta: 1
|
});
|
this.isConfirmWeighLoading = false;
|
}, 1000);
|
console.log(res, '加减煤');
|
} else {
|
this.$u.toast('操作失败,请稍候重试');
|
}
|
});
|
},
|
// 继续卸货
|
UnloadingAgainHandle() {
|
this.UnloadingAgainLoading = true
|
this.$reqPost('continueWeigh', {
|
deptId: this.weighData.deptId,
|
sceneId: this.weighData.sceneId,
|
carNo: this.weighData.carNo,
|
tmId: this.weighData.tmId,
|
filedId: this.weighData.filedId,
|
tmId: this.weighData.tmId,
|
gateCameraId: this.weighData.gateCameraId,
|
equipmentCode: this.weighData.equipmentCode,
|
tmCode: this.weighData.tmCode,
|
sceneInOut: this.weighData.sceneInOut,
|
weigh: this.realTimeWeigh
|
}, 'json').then(res => {
|
this.UnloadingAgainLoading = false
|
if (res.code == 0) {
|
this.$u.toast('操作成功,即将返回上一页');
|
setTimeout(() => {
|
uni.navigateBack({
|
delta: 1
|
});
|
}, 1000);
|
} else {
|
this.$u.toast('操作失败,请稍候重试');
|
}
|
})
|
},
|
// 放空
|
evacuation() {
|
this.evacuationModalShow = true;
|
},
|
// 放空弹窗确认
|
evacuationConfirm() {
|
this.$reqPost('getTwoEvacuation', this.weighData, 'json').then(res => {
|
console.log(res, '第二次放空');
|
if (res.code == 0) {
|
this.$u.toast('操作成功');
|
this.evacuationModalShow = false;
|
} else {
|
this.$u.toast(res.msg ? res.msg : '操作失败');
|
this.evacuationModalShow = true;
|
}
|
});
|
},
|
// 放空弹窗取消
|
evacuationCancel() {
|
this.evacuationModalShow = false;
|
},
|
}
|
};
|
</script>
|
|
<style lang="scss"
|
scoped>
|
@mixin flex {
|
display: flex;
|
justify-content: space-between;
|
align-items: center;
|
}
|
|
// 称重历史
|
.weighHistory-enter-active,
|
.weighHistory-leave-active {
|
transition: opacity 0.5s ease;
|
}
|
|
.weighHistory-enter-from,
|
.weighHistory-leave-to {
|
opacity: 0;
|
}
|
|
.weigh-history {
|
width: 690rpx;
|
height: 100%;
|
min-height: 420rpx;
|
margin: vww(10) auto vww(20);
|
background: #ffffff;
|
box-shadow: 4rpx 6rpx 51rpx 0rpx rgba(73, 120, 240, 0.11);
|
border-radius: 20rpx;
|
position: relative;
|
font-size: 30rpx;
|
font-weight: 300;
|
color: #303030;
|
overflow: hidden;
|
|
.block-main {
|
display: grid;
|
grid-template-columns: auto;
|
grid-template-rows: repeat(auto-fit, minmax(40rpx, 1fr));
|
width: 94%;
|
height: 100%;
|
min-height: 380rpx;
|
margin: vww(18) vww(7) vww(11) vww(17);
|
gap: 10rpx 20rpx;
|
|
.weigh-item {
|
width: 100%;
|
height: vww(80);
|
@include flex;
|
flex-direction: column;
|
justify-content: space-around;
|
align-items: flex-start;
|
|
.item-block {
|
width: 100%;
|
height: vww(36);
|
@include flex;
|
justify-content: space-around;
|
|
.item {
|
min-width: vww(50);
|
height: vww(45);
|
font-size: 21rpx;
|
font-weight: 400;
|
color: #ffffff;
|
text-align: center;
|
line-height: vww(30);
|
@include flex;
|
|
.concrete {
|
width: vww(36);
|
height: vww(36);
|
}
|
|
.num {
|
font-size: 40rpx;
|
font-weight: 300;
|
color: #303030;
|
}
|
}
|
}
|
}
|
}
|
}
|
|
::v-deep.weighingDevice {
|
width: 100%;
|
height: 100%;
|
display: flex;
|
flex-direction: column;
|
|
.one {
|
// flex: 3;
|
height: 290rpx;
|
margin: vww(20);
|
border-radius: vww(15);
|
|
.top {
|
height: 75%;
|
display: flex;
|
|
.top_left {
|
flex: 3;
|
font-size: vww(50);
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
font-size: 74rpx;
|
font-weight: 400;
|
color: #ffffff;
|
line-height: 69rpx;
|
text-shadow: 0rpx 3rpx 14rpx rgba(0, 0, 0, 0.33);
|
|
text {
|
font-family: weighting;
|
}
|
}
|
|
.top_right {
|
display: flex;
|
flex-direction: column;
|
justify-content: center;
|
flex: 2;
|
font-size: 31rpx;
|
font-weight: 300;
|
color: #ffffff;
|
|
view {
|
display: flex;
|
align-items: center;
|
}
|
}
|
}
|
|
.bottom {
|
text-align: center;
|
height: 25%;
|
display: flex;
|
justify-content: space-between;
|
align-items: center;
|
flex-direction: column;
|
font-size: 28rpx;
|
font-weight: 300;
|
color: #d9e1fe;
|
}
|
}
|
|
.middle-block {
|
width: 690rpx;
|
height: 386rpx;
|
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;
|
|
.block-main {
|
width: 650rpx;
|
height: 350rpx;
|
@include flex;
|
flex-direction: column;
|
margin-bottom: vww(20);
|
position: relative;
|
|
.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;
|
}
|
}
|
|
.block-sideline {
|
width: 94%;
|
height: vww(100);
|
@include flex flex-direction: column;
|
align-items: flex-start;
|
|
.first-line {
|
width: 100%;
|
}
|
|
.weigh-item {
|
width: 100%;
|
height: vww(36);
|
@include flex justify-content: space-around;
|
|
.item {
|
min-width: vww(50);
|
height: vww(45);
|
font-size: 21rpx;
|
font-weight: 400;
|
color: #ffffff;
|
text-align: center;
|
line-height: vww(30);
|
@include flex;
|
|
.concrete {
|
width: vww(36);
|
height: vww(36);
|
}
|
|
.num {
|
font-size: 40rpx;
|
font-weight: 300;
|
color: #303030;
|
}
|
}
|
}
|
}
|
}
|
|
.bottom-block {
|
width: calc(100% - 60rpx);
|
box-sizing: border-box;
|
height: 630rpx;
|
margin: 0 vww(15) vww(15) vww(15);
|
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;
|
|
.block-main {
|
width: 94%;
|
height: 565rpx;
|
margin-top: vww(10);
|
@include flex;
|
justify-content: space-around;
|
align-items: flex-start;
|
flex-direction: column;
|
overflow: hidden;
|
|
.main-information {
|
width: 100%;
|
height: 28rpx;
|
font-size: 28rpx;
|
font-weight: 300;
|
color: #303030;
|
@include flex;
|
justify-content: flex-start;
|
overflow: hidden;
|
|
.prefix {
|
min-width: vww(60);
|
}
|
|
.suffix {
|
flex: 1;
|
margin-left: vww(12);
|
text-align: left;
|
}
|
}
|
}
|
}
|
|
.three {
|
margin: 0 auto vww(5);
|
width: 96%;
|
display: grid;
|
grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
|
justify-content: center;
|
gap: vww(10);
|
color: #939393;
|
|
.u-button {
|
width: vww(90);
|
}
|
}
|
|
.four {
|
width: 100%;
|
margin-top: vww(5);
|
text-align: center;
|
}
|
}
|
|
.secondary-confirmation__main {
|
display: flex;
|
flex-direction: column;
|
justify-content: space-between;
|
align-items: center;
|
|
.secondary-child {
|
display: flex;
|
justify-content: space-between;
|
}
|
}
|
</style>
|