| | |
| | | <template> |
| | | <view class="weighingDevice"> |
| | | <view class="one"> |
| | | <view |
| | | class="one" |
| | | style="background: url('https://mx.jzeg.cn:9095/appimg/image/banner/weighbanner.png') no-repeat; |
| | | background-size: cover;" |
| | | > |
| | | <view class="top"> |
| | | <view class="top_left"> |
| | | <text>{{ realTimeWeigh }}</text> |
| | |
| | | 红外: |
| | | <u--text :type="globalinfraredStatus ? 'error' : 'success'" :text="globalinfraredStatus ? '异常' : '正常'" size="34"></u--text> |
| | | </view> |
| | | <!-- <view class=""> |
| | | 雷达: |
| | | <u--text type="success" text="正常" size="34"></u--text> |
| | | </view> --> |
| | | </view> |
| | | </view> |
| | | <view class="bottom" v-if="weighList.orderType == '内购' || weighList.orderType == '转出'"> |
| | | <view class="bottom" v-if="weighList.orderType == '内购' || weighList.orderType == '转入'"> |
| | | <view> |
| | | <view style="font-weight: 600;">原发信息</view> |
| | | <text>皮重{{ primarySkin || '' }}毛重{{ primaryHair || '' }}净重{{ primaryClean || '' }}</text> |
| | | |
| | | <text>毛重:{{ primaryHair || '' }}皮重:{{ primarySkin || '' }}净重:{{ primaryClean || '' }}</text> |
| | | </view> |
| | | </view> |
| | | <!-- <view class="bottom" v-else-if="weighList.orderType == '外购' && weighList.hair == 0"> |
| | | <text> |
| | | 毛重:{{ coalContactHair || '' }}皮重:{{ coalContactSkin || '' }}净重:{{ (Number(this.coalContactHair) - Number(this.coalContactSkin)).toFixed(2) || '' }} |
| | | </text> |
| | | </view> --> |
| | | <view class="bottom"><text>TIP:当前状态为正常时可以称重</text></view> |
| | | </view> |
| | | <view class="two"> |
| | | <p>订单编号:{{ weighList.code || '' }}</p> |
| | | <p>订单类型:{{ weighList.orderType || '' }}</p> |
| | | <p>订单余量:{{ weighList.orderSurplus || 0 }}</p> |
| | | <p>皮重:{{ temporaryWeighObj.skin == 0 ? weighList.skin : temporaryWeighObj.skin }}</p> |
| | | <p>毛重:{{ temporaryWeighObj.hair == 0 ? weighList.hair : temporaryWeighObj.hair }}</p> |
| | | <p>净重:{{ temporaryWeighObj.clean == 0 ? weighList.clean : temporaryWeighObj.clean }}</p> |
| | | <p>煤种名称:{{ weighList.coalName || '' }}</p> |
| | | <p>单位名称:{{ weighList.deptName || '' }}</p> |
| | | <p>矿场名称:{{ weighList.filedName || '' }}</p> |
| | | <view class="middle-block"> |
| | | <view class="block-main" v-if="firstHairCustomernameShow"> |
| | | <view class="first-line"><combined-title title="原发信息"></combined-title></view> |
| | | <view class="second-line"> |
| | | <view class="label-text">皮重</view> |
| | | <view class="input-container"><u--input placeholder="请输入皮重" border="surround" v-model="weighData.coalContactSkin"></u--input></view> |
| | | <view class="unit">吨</view> |
| | | </view> |
| | | <view class="second-line"> |
| | | <view class="label-text">毛重</view> |
| | | <view class="input-container"><u--input placeholder="请输入毛重" border="surround" v-model="weighData.coalContactHair"></u--input></view> |
| | | <view class="unit">吨</view> |
| | | </view> |
| | | <view class="second-line"> |
| | | <view class="label-text">净重</view> |
| | | <view class="input-container"><u--input placeholder="请输入净重" border="surround" v-model="coalContactClean"></u--input></view> |
| | | <view class="unit">吨</view> |
| | | </view> |
| | | </view> |
| | | <view class="block-sideline" v-if="weighList.orderType == '内购' || weighList.orderType == '转出'"> |
| | | <view class="first-line"><combined-title title="原发信息"></combined-title></view> |
| | | <view class="weigh-item"> |
| | | <view class="item"> |
| | | <view class="concrete" style="background: url('https://mx.jzeg.cn:9095/appimg/image/banner/skin.png') no-repeat;background-size: cover;">皮</view> |
| | | <view class="num">{{ weighList.skin }}</view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="concrete" style="background: url('https://mx.jzeg.cn:9095/appimg/image/banner/hair.png') no-repeat;background-size: cover;">毛</view> |
| | | <view class="num">{{ weighList.hair }}</view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="concrete" style="background: url('https://mx.jzeg.cn:9095/appimg/image/banner/clean.png') no-repeat;background-size: cover;">净</view> |
| | | <view class="num">{{ weighList.clean }}</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="bottom-block"> |
| | | <view class="block-main"> |
| | | <view class="main-information"> |
| | | <view class="prefix">客户:</view> |
| | | <view class="suffix">{{ weighList.customerName }}</view> |
| | | </view> |
| | | <view class="main-information"> |
| | | <view class="prefix">矿场:</view> |
| | | <view class="suffix">{{ weighList.deptName || '' }}</view> |
| | | </view> |
| | | <view class="main-information"> |
| | | <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">{{ temporaryWeighObj.skin == 0 ? weighList.skin : temporaryWeighObj.skin }}</view> |
| | | </view> |
| | | <view class="main-information"> |
| | | <view class="prefix">毛重:</view> |
| | | <view class="suffix">{{ temporaryWeighObj.hair == 0 ? weighList.hair : temporaryWeighObj.hair }}</view> |
| | | </view> |
| | | <view class="main-information"> |
| | | <view class="prefix">净重:</view> |
| | | <view class="suffix">{{ temporaryWeighObj.clean == 0 ? weighList.clean : temporaryWeighObj.clean }}</view> |
| | | </view> |
| | | <view class="main-information"> |
| | | <view class="prefix">订单余量:</view> |
| | | <view class="suffix">{{ weighList.orderSurplus || 0 }}</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="three"> |
| | | <!-- 放空 --> |
| | |
| | | @cancel="evacuationCancel" |
| | | ></u-modal> |
| | | </view> |
| | | <view class=""> |
| | | <u-modal :show="firstHairCustomernameShow" title="填写重量" @confirm="OutsourcingConfirm"> |
| | | <view class=""> |
| | | <view class=""><u--input placeholder="请输入毛重" border="surround" v-model="CoalContactHair" type="digit"></u--input></view> |
| | | <view class=""><u--input placeholder="请输入皮重" border="surround" v-model="CoalContactSkin" type="digit"></u--input></view> |
| | | </view> |
| | | </u-modal> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | |
| | | let socket = null; |
| | | import { webSocketUrl } from '@/api/request.js'; |
| | | import { mapState, mapMutations } from 'vuex'; |
| | | import combinedTitle from '@/components/combined-title/combined-title.vue'; |
| | | export default { |
| | | onLoad(params) { |
| | | this.takeCoalId = params.takeCoalId; |
| | |
| | | this.primaryClean = params.primaryClean; |
| | | this.changeweighHouseCode(params.weighHouseCode); |
| | | }, |
| | | components: { |
| | | combinedTitle |
| | | }, |
| | | data() { |
| | | return { |
| | | weighData: { |
| | |
| | | equipmentCode: '', |
| | | weigh: 0, |
| | | tmCode: '', |
| | | sceneInOut: '' |
| | | sceneInOut: '', |
| | | coalContactClean: 0, |
| | | coalContactHair: 0, |
| | | coalContactSkin: 0 |
| | | }, |
| | | takeCoalId: null, |
| | | weighHouseCode: '', |
| | | isConfirmWeighLoading: false, //确定称重按钮 |
| | | realTimeWeigh: '', |
| | | realTimeWeigh: 0, |
| | | weighList: {}, |
| | | // 临时称重对象 |
| | | temporaryWeighObj: { |
| | |
| | | primaryClean: null, |
| | | // 判断称重按钮是否可用 |
| | | isweigh: false, |
| | | // 外购类型称重出现弹窗填写毛,皮, |
| | | // 外购类型称重填写毛,皮, |
| | | firstHairCustomernameShow: false, |
| | | CoalContactHair: '', |
| | | CoalContactSkin: '' |
| | | coalContactHair: '', |
| | | coalContactSkin: '' |
| | | // 二次确认 |
| | | }; |
| | | }, |
| | | watch: { |
| | |
| | | if (this.weighList.skin == 0) { |
| | | // this.temporaryWeighObj.skin = this.realTimeWeigh; |
| | | this.temporaryWeighObj.skin = newV; |
| | | this.isweigh = this.temporaryWeighObj.skin > this.weighList.orderSurplus; |
| | | } else { |
| | | // this.temporaryWeighObj.hair = this.realTimeWeigh; |
| | | this.temporaryWeighObj.hair = newV; |
| | |
| | | if (this.weighList.hair == 0) { |
| | | // this.temporaryWeighObj.hair = this.realTimeWeigh; |
| | | this.temporaryWeighObj.hair = newV; |
| | | this.isweigh = this.temporaryWeighObj.hair > this.weighList.orderSurplus; |
| | | } else { |
| | | // this.temporaryWeighObj.skin = this.realTimeWeigh; |
| | | this.temporaryWeighObj.skin = newV; |
| | |
| | | // 监听重量变化 |
| | | globalweigh: { |
| | | handler(v) { |
| | | this.weighData.weigh = this.realTimeWeigh = v; |
| | | console.log(this.realTimeWeigh, '真实重量改变了'); |
| | | // this.weighData.weigh = this.realTimeWeigh = v; |
| | | // console.log(this.realTimeWeigh, '真实重量改变了'); |
| | | setTimeout(() => { |
| | | this.weighData.weigh = this.realTimeWeigh = v; |
| | | }, 0); |
| | | }, |
| | | immediate: true, |
| | | deep: true |
| | | deep: true, |
| | | immediate: true |
| | | } |
| | | }, |
| | | onShow() { |
| | | this.init(); |
| | | this.realTimeWeigh = 0; |
| | | // this.initWebSocket(); |
| | | }, |
| | | computed: { |
| | | ...mapState(['globalweigh', 'globalinfraredStatus']), |
| | | coalContactClean() { |
| | | return (Number(this.weighData.coalContactHair) - Number(this.weighData.coalContactSkin)).toFixed(2); |
| | | }, |
| | | token() { |
| | | return uni.getStorageSync('token'); |
| | | }, |
| | |
| | | this.weighData.tmId = res.data.id; |
| | | this.weighData.carNo = res.data.carNo; |
| | | this.weighData.tmCode = res.data.code; |
| | | if (this.weighList.orderType == '外销' && this.weighList.hair == 0) { |
| | | this.weighData.filedId = res.data.filedId; |
| | | if (this.weighList.orderType == '外购' && this.weighList.hair == 0) { |
| | | this.firstHairCustomernameShow = true; |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | OutsourcingConfirm() { |
| | | this.weighData.CoalContactSkin = Number(this.CoalContactSkin); |
| | | this.weighData.CoalContactHair = Number(this.CoalContactHair); |
| | | this.weighData.CoalContactclean = Number(this.CoalContactHair) - Number(this.CoalContactSkin); |
| | | this.saveWeigh(); |
| | | }, |
| | | /** |
| | | * @确认称重等待后端提供实时称重接口,获取皮重,毛重 |
| | |
| | | }, |
| | | // 确认称重接口 |
| | | saveWeigh() { |
| | | this.weighData.coalContactClean = this.coalContactClean; |
| | | this.$reqPost('saveWeigh', this.weighData, 'json') |
| | | .then(res => { |
| | | console.log(res, '称重接口'); |
| | |
| | | } |
| | | }); |
| | | }, |
| | | /** |
| | | * 初始化 weoSocket |
| | | */ |
| | | // initWebSocket() { |
| | | // let wsUrl = `${webSocketUrl}?access_token=${uni.getStorageSync('token')}`; |
| | | // let socket = uni.connectSocket({ |
| | | // url: wsUrl, |
| | | // header: { |
| | | // CLIENT_TOC: 'Y' |
| | | // }, |
| | | // complete: res => { |
| | | // console.log(res, 'socket结果'); |
| | | // } |
| | | // }); |
| | | // socket.onOpen(() => { |
| | | // console.log('onOpen'); |
| | | // }); |
| | | // // 获取服务器传来的数据,做相应处理 |
| | | // socket.onMessage(res => { |
| | | // console.log('socketWeigh', res); |
| | | // let nowWeighObj = JSON.parse(res.data.slice(7)); |
| | | // if (nowWeighObj.eqCode == this.weighHouseCode) { |
| | | // if (nowWeighObj.eqInfraredStatus) { |
| | | // this.infraredStatus = true; |
| | | // this.weighData.weigh = this.realTimeWeigh = nowWeighObj.weigh; |
| | | // } else { |
| | | // this.infraredStatus = false; |
| | | // this.weighData.weigh = this.realTimeWeigh = nowWeighObj.weigh; |
| | | // } |
| | | // } |
| | | // }); |
| | | // socket.onClose(() => { |
| | | // uni.closeSocket(); |
| | | // console.log('webSocketClose'); |
| | | // this.$u.toast('磅房已关闭'); |
| | | // }); |
| | | // socket.onError(err => { |
| | | // console.log('socket报错', err); |
| | | // this.$u.toast('磅房暂时不能使用,请重新进入该页面,重试!!'); |
| | | // }); |
| | | // }, |
| | | // 放空 |
| | | evacuation() { |
| | | this.evacuationModalShow = true; |
| | |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @mixin flex { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | } |
| | | ::v-deep.weighingDevice { |
| | | width: 100%; |
| | | height: 100vh; |
| | | display: flex; |
| | | flex-direction: column; |
| | | .one { |
| | | flex: 2; |
| | | border: vww(2) solid #dddddd; |
| | | // flex: 3; |
| | | height: 290rpx; |
| | | margin: vww(20) vww(20) 0 vww(20); |
| | | border-radius: vww(15); |
| | | .top { |
| | | height: 80%; |
| | | height: 75%; |
| | | display: flex; |
| | | .top_left { |
| | | flex: 3; |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | font-size: 74rpx; |
| | | font-family: Determination Sans; |
| | | font-weight: 400; |
| | | color: #ffffff; |
| | | line-height: 69rpx; |
| | | text-shadow: 0rpx 3rpx 14rpx rgba(0, 0, 0, 0.33); |
| | | } |
| | | .top_right { |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | flex: 2; |
| | | font-size: 31rpx; |
| | | font-family: Microsoft YaHei; |
| | | font-weight: 300; |
| | | color: #ffffff; |
| | | view { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | } |
| | | } |
| | | .bottom { |
| | | text-align: center; |
| | | position: relative; |
| | | top: vww(-30); |
| | | height: 25%; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | flex-direction: column; |
| | | font-size: 28rpx; |
| | | font-family: Microsoft YaHei; |
| | | font-weight: 300; |
| | | color: #d9e1fe; |
| | | // position: relative; |
| | | // top: vww(-10); |
| | | } |
| | | } |
| | | .two { |
| | | flex: 4; |
| | | border: vww(2) solid #dddddd; |
| | | margin: vww(20); |
| | | border-radius: vww(10); |
| | | padding: vww(20); |
| | | p { |
| | | text-align: center; |
| | | font-size: vww(20); |
| | | font-weight: 500; |
| | | margin-top: vww(5); |
| | | .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); |
| | | .first-line, |
| | | .second-line { |
| | | width: 90%; |
| | | height: vww(44); |
| | | .input-container { |
| | | border: 2px solid #c5c5c5; |
| | | box-shadow: 0rpx 5rpx 13rpx 0rpx #c5c5c5; |
| | | border-radius: 12rpx; |
| | | } |
| | | } |
| | | .first-line { |
| | | @include flex; |
| | | } |
| | | .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-family: Microsoft YaHei; |
| | | 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-family: Microsoft YaHei; |
| | | font-weight: 300; |
| | | color: #303030; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .bottom-block { |
| | | width: 690rpx; |
| | | height: 630rpx; |
| | | margin: 0 vww(15) vww(45) 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; |
| | | .block-main { |
| | | width: 94%; |
| | | height: 565rpx; |
| | | margin-top: vww(10); |
| | | @include flex; |
| | | justify-content: space-around; |
| | | align-items: flex-start; |
| | | flex-direction: column; |
| | | .main-information { |
| | | width: 50%; |
| | | height: 28rpx; |
| | | font-size: 28rpx; |
| | | font-family: Microsoft YaHei; |
| | | font-weight: 300; |
| | | color: #303030; |
| | | @include flex; |
| | | } |
| | | } |
| | | } |
| | | .three { |
| | |
| | | flex: 0.5; |
| | | } |
| | | } |
| | | .secondary-confirmation__main { |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | .secondary-child { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | } |
| | | </style> |