From ae1aad66a165ee7253bed2127a3b53baa40c2361 Mon Sep 17 00:00:00 2001 From: qingyiay <2386314947@qq.com> Date: 星期三, 17 五月 2023 08:35:33 +0800 Subject: [PATCH] 修复错误,增加验证 --- pages/driver-page/driver-index/bill-of-lading-details/weighingDevice/weighingDevice.vue | 470 +++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 285 insertions(+), 185 deletions(-) diff --git a/pages/driver-page/driver-index/bill-of-lading-details/weighingDevice/weighingDevice.vue b/pages/driver-page/driver-index/bill-of-lading-details/weighingDevice/weighingDevice.vue index 56c8f25..5ddce20 100644 --- a/pages/driver-page/driver-index/bill-of-lading-details/weighingDevice/weighingDevice.vue +++ b/pages/driver-page/driver-index/bill-of-lading-details/weighingDevice/weighingDevice.vue @@ -1,6 +1,10 @@ <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> @@ -14,10 +18,6 @@ 绾㈠: <u--text :type="globalinfraredStatus ? 'error' : 'success'" :text="globalinfraredStatus ? '寮傚父' : '姝e父'" size="34"></u--text> </view> - <!-- <view class=""> - 闆疯揪: - <u--text type="success" text="姝e父" size="34"></u--text> - </view> --> </view> </view> <view class="bottom" v-if="weighList.orderType == '鍐呰喘' || weighList.orderType == '杞叆'"> @@ -27,61 +27,104 @@ <text>姣涢噸:{{ primaryHair || '' }}鐨噸:{{ primarySkin || '' }}鍑�閲�:{{ primaryClean || '' }}</text> </view> </view> - <view class="bottom" v-else-if="weighList.orderType == '澶栬喘' && weighList.hair == 0"> + <!-- <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> --> <view class="bottom"><text>TIP:褰撳墠鐘舵�佷负姝e父鏃跺彲浠ョО閲�</text></view> </view> - <view class="two"> - <uni-table border stripe emptyText="鏆傛棤鏇村鏁版嵁"> - <uni-tr> - <uni-th align="left">璁㈠崟缂栧彿</uni-th> - <uni-td align="right">{{ weighList.code || '' }}</uni-td> - </uni-tr> - <uni-tr> - <uni-th align="left">璁㈠崟绫诲瀷</uni-th> - <uni-td align="right">{{ weighList.orderType || '' }}</uni-td> - </uni-tr> - <uni-tr> - <uni-th align="left">璁㈠崟浣欓噺</uni-th> - <uni-td align="right">{{ weighList.orderSurplus || 0 }}</uni-td> - </uni-tr> - <uni-tr> - <uni-th align="left">姣涢噸</uni-th> - <uni-td align="right">{{ temporaryWeighObj.hair == 0 ? weighList.hair : temporaryWeighObj.hair }}</uni-td> - </uni-tr> - <uni-tr> - <uni-th align="left">鐨噸</uni-th> - <uni-td align="right">{{ temporaryWeighObj.skin == 0 ? weighList.skin : temporaryWeighObj.skin }}</uni-td> - </uni-tr> - <uni-tr> - <uni-th align="left">鍑�閲�</uni-th> - <uni-td align="right">{{ temporaryWeighObj.clean == 0 ? weighList.clean : temporaryWeighObj.clean }}</uni-td> - </uni-tr> - <uni-tr> - <uni-th align="left">鐓ょ鍚嶇О</uni-th> - <uni-td align="right">{{ weighList.coalName || '' }}</uni-td> - </uni-tr> - <uni-tr> - <uni-th align="left">鐭垮満鍚嶇О</uni-th> - <uni-td align="right">{{ weighList.deptName || '' }}</uni-td> - </uni-tr> - <uni-tr> - <uni-th align="left">鐓ゅ満鍚嶇О</uni-th> - <uni-td align="right">{{ weighList.filedName || '' }}</uni-td> - </uni-tr> - </uni-table> - <!-- <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" v-if="firstHairCustomernameShow || sideline"> + <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" :class="{ focusClass: isfocus1 }">鐨噸</view> + <view class="input-container" :class="{ inputClass: isfocus1, disabledClass: isInputOrigin }"> + <u--input + placeholder="璇疯緭鍏ョ毊閲�" + border="surround" + v-model="weighData.coalContactSkin" + @focus="inputFocus(1)" + @blur="inputBlur" + :disabled="isInputOrigin" + ></u--input> + </view> + <view class="unit" :class="{ focusClass: isfocus1 }">鍚�</view> + </view> + <view class="second-line"> + <view class="label-text" :class="{ focusClass: isfocus2 }">姣涢噸</view> + <view class="input-container" :class="{ inputClass: isfocus2, disabledClass: isInputOrigin }"> + <u--input + placeholder="璇疯緭鍏ユ瘺閲�" + border="surround" + v-model="weighData.coalContactHair" + @focus="inputFocus(2)" + @blur="inputBlur" + :disabled="isInputOrigin" + ></u--input> + </view> + <view class="unit" :class="{ focusClass: isfocus2 }">鍚�</view> + </view> + <view class="second-line"> + <view class="label-text">鍑�閲�</view> + <view class="input-container"><u--input placeholder="鍑�閲�" border="surround" v-model="coalContactClean" :disabled="isInputOrigin"></u--input></view> + <view class="unit">鍚�</view> + </view> + </view> + <view class="block-sideline" v-if="sideline"> + <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 v-else style="width: 100%;height: 40rpx;"></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"> <!-- 鏀剧┖ --> @@ -90,14 +133,14 @@ <u-button type="primary" text="纭畾绉伴噸" - :disabled="realTimeWeigh == 0 || globalinfraredStatus || isweigh" + :disabled="realTimeWeigh == 0 || globalinfraredStatus || isweigh || isInputOrigin" :loading="isConfirmWeighLoading" loadingText="纭" @click="confirmWeigh" ></u-button> - <u-button type="primary" text="杩斿洖鍔犲噺鍚�" :disabled="addAndSubtractCoalDisabled" @click="addAndSubtractCoal" class="jiajian"></u-button> + <u-button type="primary" text="杩斿洖鍔犲噺鍚�" :disabled="addAndSubtractCoalDisabled" @click="addAndSubtractCoal" class="jiajian" v-if="outBuy"></u-button> </view> - <view class="four" v-if="weighList.orderType !== '澶栬喘'">濡傛偍闇�瑕佽皟鏁磋杞借揣鍝佸惃鏁帮紝璇风偣鍑昏繑鍥炲姞鍑忓惃</view> + <!-- <view class="four" v-if="weighList.orderType !== '澶栬喘'">濡傛偍闇�瑕佽皟鏁磋杞借揣鍝佸惃鏁帮紝璇风偣鍑昏繑鍥炲姞鍑忓惃</view> --> <!-- 鏀剧┖寮圭獥 --> <view class="evacuationModal"> <u-modal @@ -109,27 +152,6 @@ @cancel="evacuationCancel" ></u-modal> </view> - <!-- 澶栬喘绫诲瀷鎵嬪姩杈撳叆寮圭獥 --> - <view class=""> - <u-modal :show="firstHairCustomernameShow" title="濉啓鍘熷彂閲嶉噺" @confirm="OutsourcingConfirm"> - <view class=""> - <text>姣涢噸:</text> - <view class=""><u--input placeholder="璇疯緭鍏ユ瘺閲�" v-model="coalContactHair" type="digit"></u--input></view> - <text>鐨噸:</text> - <view class=""><u--input placeholder="璇疯緭鍏ョ毊閲�" v-model="coalContactSkin" type="digit"></u--input></view> - </view> - </u-modal> - </view> - <!-- 鎵嬪姩杈撳叆涔嬪悗鐨勪簩娆″脊绐� --> - <view class="secondary-confirmation"> - <u-modal :show="secondConfirmShow" title="璇风‘璁ゅ師鍙戦噸閲�" :showCancelButton="true" @confirm="secondConfirm" @cancel="secondCancel"> - <view class="secondary-confirmation__main"> - <view class="secondary-child">姣涢噸:{{ coalContactHair }}</view> - <view class="secondary-child">鐨噸:{{ coalContactSkin }}</view> - <view class="secondary-child">鍑�閲�:{{ (Number(this.coalContactHair) - Number(this.coalContactSkin)).toFixed(2) }}</view> - </view> - </u-modal> - </view> </view> </template> @@ -137,6 +159,7 @@ 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; @@ -149,6 +172,9 @@ this.primaryHair = params.primaryHair; this.primaryClean = params.primaryClean; this.changeweighHouseCode(params.weighHouseCode); + }, + components: { + combinedTitle }, data() { return { @@ -167,6 +193,8 @@ coalContactHair: 0, coalContactSkin: 0 }, + // 鏄惁濉啓鍘熷彂淇℃伅 + isInputOrigin: false, takeCoalId: null, weighHouseCode: '', isConfirmWeighLoading: false, //纭畾绉伴噸鎸夐挳 @@ -189,12 +217,15 @@ primaryClean: null, // 鍒ゆ柇绉伴噸鎸夐挳鏄惁鍙敤 isweigh: false, - // 澶栬喘绫诲瀷绉伴噸鍑虹幇寮圭獥濉啓姣涳紝鐨紝 + // 澶栬喘绫诲瀷绉伴噸濉啓姣涳紝鐨紝 firstHairCustomernameShow: false, coalContactHair: '', coalContactSkin: '', - // 浜屾纭 - secondConfirmShow: false + // 鑱氱劍鏃舵敼鍙樻牱寮� + isfocus1: false, + isfocus2: false, + // 澶栬喘绗竴娆$О姣涢噸涓嶉渶瑕佸姞鍑忓惃 + outBuy: true }; }, watch: { @@ -240,18 +271,22 @@ }, computed: { ...mapState(['globalweigh', 'globalinfraredStatus']), + coalContactClean() { + return (Number(this.weighData.coalContactHair) - Number(this.weighData.coalContactSkin)).toFixed(2); + }, 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; - } - } + return this.realTimeWeigh == 0; + // 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() { @@ -261,6 +296,9 @@ if (this.weighList.orderType == '澶栬喘' || this.weighList.orderType == '鍐呰喘' || this.weighList.orderType == '杞叆') { return this.weighList.hair == this.temporaryWeighObj.skin || this.temporaryWeighObj.skin == this.temporaryWeighObj.hair; } + }, + sideline() { + return this.weighList.orderType == '鍐呰喘' || this.weighList.orderType == '杞嚭'; } }, methods: { @@ -275,31 +313,20 @@ 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; + this.weighData.coalContactHair = res.data.hairTwo ? res.data.hairTwo : 0; + this.weighData.coalContactSkin = res.data.skinTwo ? res.data.skinTwo : 0; + if (this.weighList.orderType == '澶栬喘') { this.firstHairCustomernameShow = true; + if (this.weighList.hair == 0) { + this.outBuy = false; + } + } + if (this.weighData.coalContactHair > 0 && this.weighData.coalContactSkin > 0) { + this.isInputOrigin = true; } } }); - }, - // 澶栬喘绫诲瀷杈撳叆鐐瑰嚮纭涔嬪悗浜屾纭 - OutsourcingConfirm() { - this.weighData.coalContactSkin = Number(this.coalContactSkin); - this.weighData.coalContactHair = Number(this.coalContactHair); - this.weighData.coalContactClean = Number((Number(this.coalContactHair) - Number(this.coalContactSkin)).toFixed(2)); - if (Number(this.coalContactSkin) == 0 || Number(this.coalContactHair) == 0) { - this.$u.toast('閲嶉噺涓嶈兘涓�0,璇烽噸鏂板~鍐�'); - } else { - this.secondConfirmShow = true; - } - }, - // 浜屾纭寮圭獥 鐐瑰嚮纭畾 - secondConfirm() { - this.secondConfirmShow = false; - this.firstHairCustomernameShow = false; - }, - // 浜屾寮圭獥鐐瑰嚮鍙栨秷 - secondCancel() { - this.secondConfirmShow = false; }, /** * @纭绉伴噸绛夊緟鍚庣鎻愪緵瀹炴椂绉伴噸鎺ュ彛锛岃幏鍙栫毊閲嶏紝姣涢噸 @@ -326,6 +353,7 @@ }, // 纭绉伴噸鎺ュ彛 saveWeigh() { + this.weighData.coalContactClean = this.coalContactClean; this.$reqPost('saveWeigh', this.weighData, 'json') .then(res => { console.log(res, '绉伴噸鎺ュ彛'); @@ -361,47 +389,6 @@ } }); }, - /** - * 鍒濆鍖� 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; @@ -422,20 +409,38 @@ // 鏀剧┖寮圭獥鍙栨秷 evacuationCancel() { this.evacuationModalShow = false; + }, + // input鑱氱劍 + inputFocus(v) { + if (v == 1) { + this.isfocus1 = true; + } else { + this.isfocus2 = true; + } + }, + // input澶辩劍 + inputBlur() { + this.isfocus1 = false; + this.isfocus2 = false; } } }; </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: 3; - border: vww(2) solid #dddddd; + // flex: 3; + height: 290rpx; margin: vww(20) vww(20) 0 vww(20); border-radius: vww(15); .top { @@ -447,14 +452,26 @@ 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; } } } @@ -465,44 +482,126 @@ justify-content: space-between; align-items: center; flex-direction: column; - // position: relative; - // top: vww(-10); + font-size: 28rpx; + font-weight: 300; + color: #d9e1fe; } } - .two { - flex: 4; - border: vww(2) solid #dddddd; - margin: vww(20); - border-radius: vww(10); - padding: vww(20); - .uni-table { - .uni-table-tr { - padding: 0; - border: vww(1) solid #c6c6c6; - .uni-table-th { - font-size: vww(14); - height: vww(30); - line-height: vww(30); - padding: vww(5) vww(10); - color: #111111; - font-weight: 500; - background: #e2e2e2; + .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; } - .uni-table-td { - font-size: vww(14); + .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; - height: vww(30); + color: #ffffff; + text-align: center; line-height: vww(30); - padding: vww(5) vww(10); - color: #111111; + @include flex; + .concrete { + width: vww(36); + height: vww(36); + } + .num { + font-size: 40rpx; + font-weight: 300; + color: #303030; + } } } } - p { - text-align: center; - font-size: vww(20); - font-weight: 500; - margin-top: vww(5); + } + .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: 100%; + height: 28rpx; + font-size: 28rpx; + font-weight: 300; + color: #303030; + @include flex; + justify-content: flex-start; + .prefix { + min-width: vww(60); + } + .suffix { + flex: 1; + margin-left: vww(12); + text-align: left; + } + } } } .three { @@ -520,8 +619,9 @@ } } .four { - margin: vww(10) auto; - flex: 0.5; + width: 100%; + margin-top: vww(5); + text-align: center; } } .secondary-confirmation__main { -- Gitblit v1.9.1