| | |
| | | <view class="weighingDevice"> |
| | | <view class="one"> |
| | | <view class="top"> |
| | | <view class="top_left"><text>41.5</text></view> |
| | | <view class="top_left"> |
| | | <text>{{ realTimeWeigh }}</text> |
| | | </view> |
| | | <view class="top_right"> |
| | | <view class=""> |
| | | 称重: |
| | | <u--text type="success" text="正常" size="34"></u--text> |
| | | <u--text :type="realTimeWeigh == 0 ? 'error' : 'success'" :text="realTimeWeigh == 0 ? '异常' : '正常'" size="34"></u--text> |
| | | </view> |
| | | <view class=""> |
| | | 红外: |
| | | <u--text type="success" text="正常" size="34"></u--text> |
| | | <u--text :type="globalinfraredStatus ? 'error' : 'success'" :text="globalinfraredStatus ? '异常' : '正常'" size="34"></u--text> |
| | | </view> |
| | | <view class=""> |
| | | <!-- <view class=""> |
| | | 雷达: |
| | | <u--text type="success" text="正常" size="34"></u--text> |
| | | </view> |
| | | </view> --> |
| | | </view> |
| | | </view> |
| | | <view class="bottom"><text>TIP:当前状态正常可以称重</text></view> |
| | | <view class="bottom" v-if="weighList.orderType == '内购' || weighList.orderType == '转出'"> |
| | | <view> |
| | | <view style="font-weight: 600;">原发信息</view> |
| | | <text>皮重{{ primarySkin || '' }}毛重{{ primaryHair || '' }}净重{{ primaryClean || '' }}</text> |
| | | </view> |
| | | </view> |
| | | <view class="bottom"><text>TIP:当前状态为正常时可以称重</text></view> |
| | | </view> |
| | | <view class="two"> |
| | | <p>订单编号:{{ weighList.code || '' }}</p> |
| | | <p>订单类型:{{ weighList.orderTye || '' }}</p> |
| | | <p>订单余量:{{ weighList.allowance }}</p> |
| | | <p>皮重:{{ weighList.skin || '' }}</p> |
| | | <p>毛重:{{ weighList.hair || '' }}</p> |
| | | <p>净重:{{ weighList.clean || '' }}</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> |
| | | <view class="three"> |
| | | <!-- 外销订单成皮时,返回加减吨按钮置灰。称毛时可用.外购订单,不出现返回加减吨的按钮 --> |
| | | <u-button type="primary" text="确定称重" @click="confirmWeigh"></u-button> |
| | | <u-button type="primary" text="返回加减吨"></u-button> |
| | | <!-- 放空 --> |
| | | <u-button type="primary" text="放空" plain @click="evacuation" throttleTime="500" :disabled="isEvacuation"></u-button> |
| | | <!-- 外销订单称皮时,返回加减吨按钮置灰。称毛时可用.外购订单,不出现返回加减吨的按钮 --> |
| | | <u-button |
| | | type="primary" |
| | | text="确定称重" |
| | | :disabled="realTimeWeigh == 0 || globalinfraredStatus" |
| | | :loading="isConfirmWeighLoading" |
| | | loadingText="确认" |
| | | @click="confirmWeigh" |
| | | ></u-button> |
| | | <u-button type="primary" text="返回加减吨" :disabled="addAndSubtractCoalDisabled" @click="addAndSubtractCoal" class="jiajian"></u-button> |
| | | </view> |
| | | <view class="four">如您需要调整装载货品吨数,请点击返回加减吨</view> |
| | | <view class="four" v-if="weighList.orderType !== '外购'">如您需要调整装载货品吨数,请点击返回加减吨</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 } from '@/api/request.js'; |
| | | import { mapState, mapMutations } from 'vuex'; |
| | | export default { |
| | | onLoad(params) { |
| | | console.log('称重页面', 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; |
| | | this.changeweighHouseCode(params.weighHouseCode); |
| | | }, |
| | | data() { |
| | | return { |
| | | weighData: { |
| | | //确认称重接口参数 |
| | | deptId: '', |
| | | tmId: '', |
| | | sceneId: '', |
| | | carNo: '', |
| | | gateCameraId: '', |
| | | equipmentCode: '', |
| | | weigh: 0, |
| | | tmCode: '', |
| | | sceneInOut: '' |
| | | }, |
| | | takeCoalId: null, |
| | | weighHouseCode: '', |
| | | isConfirmWeighLoading: false, //确定称重按钮 |
| | | realTimeWeigh: '', |
| | | weighList: {}, |
| | | webSocket: null // webSocket实例 |
| | | webSocket: null, // webSocket实例 |
| | | // lockReconnect: false, // 重连锁,避免多次重连 |
| | | // maxReconnect: 6, // 最大重连次数, -1 标识无限重连 |
| | | // reconnectTime: 0, // 重连尝试次数 |
| | |
| | | // pongTimeoutObj: null, // 接收心跳响应的定时器 |
| | | // pingMessage: JSON.stringify({ type: 'ping' }) // 心跳请求信息 |
| | | // } |
| | | // 临时称重对象 |
| | | temporaryWeighObj: { |
| | | skin: 0, |
| | | hair: 0, |
| | | clean: 0 |
| | | }, |
| | | infraredStatus: false, // 红外状态, |
| | | // 放空控制 |
| | | evacuationModalShow: false, |
| | | evacuationTitle: '放空确认', |
| | | evacuationContent: '是否确认放空', |
| | | // 获取原发信息 |
| | | primarySkin: null, |
| | | primaryHair: null, |
| | | primaryClean: null |
| | | }; |
| | | }, |
| | | watch: { |
| | | realTimeWeigh(newV, oldV) { |
| | | if (this.weighList.orderType == '外销' || this.weighList.orderType == '内销' || this.weighList.orderType == '转出') { |
| | | if (this.weighList.skin == 0) { |
| | | // this.temporaryWeighObj.skin = this.realTimeWeigh; |
| | | this.temporaryWeighObj.skin = newV; |
| | | } else { |
| | | // this.temporaryWeighObj.hair = this.realTimeWeigh; |
| | | this.temporaryWeighObj.hair = newV; |
| | | this.temporaryWeighObj.clean = (this.temporaryWeighObj.hair - this.weighList.skin).toFixed(2); |
| | | } |
| | | } else if (this.weighList.orderType == '外购' || this.weighList.orderType == '内购' || this.weighList.orderType == '转入') { |
| | | if (this.weighList.hair == 0) { |
| | | // this.temporaryWeighObj.hair = this.realTimeWeigh; |
| | | this.temporaryWeighObj.hair = newV; |
| | | } else { |
| | | // this.temporaryWeighObj.skin = this.realTimeWeigh; |
| | | this.temporaryWeighObj.skin = newV; |
| | | this.temporaryWeighObj.clean = (this.weighList.hair - this.temporaryWeighObj.skin).toFixed(2); |
| | | } |
| | | } |
| | | }, |
| | | // 监听重量变化 |
| | | globalweigh: { |
| | | handler(v) { |
| | | this.weighData.weigh = this.realTimeWeigh = v; |
| | | console.log(this.realTimeWeigh, '真实重量改变了'); |
| | | }, |
| | | immediate: true, |
| | | deep: true |
| | | } |
| | | }, |
| | | onShow() { |
| | | this.init(); |
| | | this.initWebSocket(); |
| | | // this.initWebSocket(); |
| | | }, |
| | | computed: { |
| | | ...mapState(['globalweigh', 'globalinfraredStatus']), |
| | | token() { |
| | | return uni.getStorageSync('token'); |
| | | }, |
| | | // 加减煤按钮禁用与否 |
| | | addAndSubtractCoalDisabled() { |
| | | if (this.weighList.orderType == '外销' || this.weighList.orderType == '内销' || this.weighList.orderType == '转出') { |
| | | if (this.weighList.hair == 0) { |
| | | return true; |
| | | } else if (this.weighList.hair != 0) { |
| | | return false; |
| | | } |
| | | } |
| | | }, |
| | | // 是否放空按钮禁用 |
| | | isEvacuation() { |
| | | if (this.weighList.hair == this.weighList.skin || this.temporaryWeighObj.skin == this.temporaryWeighObj.hair) { |
| | | return false; |
| | | } else { |
| | | return true; |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | ...mapMutations(['changeweighHouseCode']), |
| | | init() { |
| | | // 获取称重信息 |
| | | this.$reqGet('weighList', { id: this.takeCoalId }).then(res => { |
| | | console.log(res, '获取称重信息'); |
| | | 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; |
| | | } |
| | | }); |
| | | }, |
| | |
| | | * @确认称重等待后端提供实时称重接口,获取皮重,毛重 |
| | | */ |
| | | confirmWeigh() { |
| | | // this.$reqPost('saveWeigh',{id:this.takeCoalId,skin:'',hair:''}).then(res=>{ |
| | | // console.log(res,"确认称重"); |
| | | // }) |
| | | 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.$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 }, 'json').then(res => { |
| | | if (res.code == 0) { |
| | | this.$u.toast('操作成功,即将返回上一页'); |
| | | setTimeout(() => { |
| | | uni.navigateBack({ |
| | | delta: 1 |
| | | }); |
| | | this.isConfirmWeighLoading = false; |
| | | }, 1000); |
| | | console.log(res, '加减煤'); |
| | | } |
| | | }); |
| | | }, |
| | | /** |
| | | * 初始化 weoSocket |
| | | */ |
| | | initWebSocket() { |
| | | // let wsUrl = `wss://192.168.0.120:9997/wrzs/ws/info?access_token=${this.token}`; |
| | | let wsUrl = `${webSocketUrl}?access_token=c954c7f5-f34b-453e-8c9d-e291747b401f`; |
| | | socket = uni.connectSocket({ |
| | | url: wsUrl, |
| | | header: { |
| | | CLIENT_TOC: 'Y' |
| | | }, |
| | | complete: res => { |
| | | console.log(res, 'socket结果'); |
| | | } |
| | | // 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; |
| | | }, |
| | | // 放空弹窗确认 |
| | | evacuationConfirm() { |
| | | this.$reqPost('getTwoEvacuation', this.weighData, 'json').then(res => { |
| | | console.log(res, '第二次放空'); |
| | | this.evacuationModalShow = false; |
| | | }); |
| | | socket.onOpen(() => { |
| | | console.log('onOpen'); |
| | | }); |
| | | socket.onMessage(res => { |
| | | console.log(res, '服务器返回的数据'); |
| | | }); // 获取服务器传来的数据,做相应处理 |
| | | socket.onClose(() => { |
| | | console.log('close'); |
| | | }); |
| | | socket.onError(err => { |
| | | console.log('socket报错', err); |
| | | }); |
| | | }, |
| | | // 放空弹窗取消 |
| | | evacuationCancel() { |
| | | this.evacuationModalShow = false; |
| | | } |
| | | } |
| | | }; |
| | |
| | | flex-direction: column; |
| | | .one { |
| | | flex: 2; |
| | | border: vww(1) solid #dddddd; |
| | | border: vww(2) solid #dddddd; |
| | | margin: vww(20) vww(20) 0 vww(20); |
| | | border-radius: vww(15); |
| | | .top { |
| | |
| | | } |
| | | .bottom { |
| | | text-align: center; |
| | | position: relative; |
| | | top: vww(-30); |
| | | } |
| | | } |
| | | .two { |
| | | flex: 4; |
| | | border: vww(1) solid #dddddd; |
| | | border: vww(2) solid #dddddd; |
| | | margin: vww(20); |
| | | border-radius: vww(10); |
| | | padding: vww(20); |
| | |
| | | &:nth-of-type(2) { |
| | | margin-left: vww(10); |
| | | } |
| | | &:nth-of-type(3) { |
| | | margin-left: vww(10); |
| | | } |
| | | } |
| | | } |
| | | .four { |