From 837c21ced9ed0aafe17a7c0c16975a1b6731eb9d Mon Sep 17 00:00:00 2001
From: qingyiay <2386314947@qq.com>
Date: 星期五, 07 七月 2023 11:30:37 +0800
Subject: [PATCH] 验质功能修改,websocket优化

---
 pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail.vue |  230 ++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 154 insertions(+), 76 deletions(-)

diff --git a/pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail.vue b/pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail.vue
index cdd4203..dcb00fb 100644
--- a/pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail.vue
+++ b/pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail.vue
@@ -8,25 +8,25 @@
 			v-if="showWeigh.length===0"></u-empty>
 		<view class="main-block"
 			v-for="(item,i) in showWeigh"
-			:key="i">
+			:key="item.id">
 			<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;">
+						:style="{ backgroundImage: `url(${onlineurl}/appimg/image/banner/skin.png)`, backgroundSize: 'cover', backgroundRepeat: 'no-repeat' }">
 						鐨�
 					</view>
 					<view class="num">{{ item.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;">
+						:style="{ backgroundImage: `url(${onlineurl}/appimg/image/banner/hair.png)`, backgroundSize: 'cover', backgroundRepeat: 'no-repeat' }">
 						姣�
 					</view>
 					<view class="num">{{ item.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;">
+						:style="{ backgroundImage: `url(${onlineurl}/appimg/image/banner/clean.png)`, backgroundSize: 'cover', backgroundRepeat: 'no-repeat' }">
 						鍑�
 					</view>
 					<view class="num">{{ item.clean }}</view>
@@ -35,43 +35,59 @@
 			<view class="discount">
 				<view class="rate">
 					<view class="label-text">
-						鎶樻墸鐜�
+						鎵f福
 					</view>
-					<view v-if='roleType!==1'
-						class="count">{{ item.discount }}%
-					</view>
-					<view v-else
+					<view v-if='roleType===4&&!flag'
 						class="count-input">
-						<u--input placeholder="璇疯緭鍏ユ姌鎵g巼"
+						<u--input placeholder="璇疯緭鍏ユ墸娓�"
 							border="bottom"
 							clearable
-							v-model="item.discount"
+							v-model="item.cinderWeight"
 							@input='v=>discountInputHandle(v,i,item.clean)'></u--input>
+					</view>
+					<view v-else-if='flag'
+						class="count">{{ item.cinderWeight }}
 					</view>
 				</view>
 				<view class="weigh">
 					<view class="label-text">
-						鎶樻墸鍚庨噸閲�
+						鎵f福鍚庡噣閲�
 					</view>
-					<view class="count">{{ item.discountWeight }}</view>
+					<view class="count">{{ item.weight }}</view>
 				</view>
 			</view>
-			<view class="level">
-				<u-tag :text="item.level||'璇烽�夋嫨'"
+			<view class="level"
+				v-if='!flag'>
+				<view class=""
+					style="width: 140rpx;">
+					<u--text text="鐗╄祫鏄庣粏"
+						size='32'></u--text>
+				</view>
+				<u-tag :text="item.breed+item.spec||item.modifygoodsName||'鏆傛棤'"
 					plain
-					@click="popoverShow(i)"
-					v-if='item.level||roleType===1'></u-tag>
-				<u-tag :text="item.productName||'璇烽�夋嫨'"
-					plain
-					@click="productNamePopoverShow(i)"
-					v-if='item.level||roleType===1'></u-tag>
+					@click="goodsPopoverShow(i)"
+					v-if='item.breed&&item.spec||roleType===4'></u-tag>
 			</view>
-			<view v-if='roleType===1'>
-				<u-picker :show="show"
-					:columns="columns"
-					@cancel='cancel'
-					@confirm='confirm'></u-picker>
+			<view class="level"
+				v-if='item.modifygoodsName||flag'>
+				<view style="width: 140rpx;">
+					<u--text text="浜у搧鍚嶇О"
+						size='32'></u--text>
+				</view>
+				<view v-if="showWeighCopy[i].modifyProductName||item.breed&&item.spec">
+					<u-tag :text="!flag?showWeighCopy[i].modifyProductName:item.breed+item.spec"
+						plain
+						@click="productNamePopoverShow(i)"></u-tag>
+				</view>
 			</view>
+			<!-- 鐗╄祫鏄庣粏 -->
+			<u-action-sheet :actions="goodsList"
+				:show="goodsShow"
+				cancelText='鍙栨秷'
+				:closeOnClickOverlay='true'
+				@close='goodsNameClose'
+				@select="goodsselectClick"></u-action-sheet>
+			<!-- 浜у搧鍒楄〃 -->
 			<view class="">
 				<u-action-sheet :actions="actionsList"
 					:show="actionShow"
@@ -82,7 +98,7 @@
 			</view>
 		</view>
 		<view class="confirm-button"
-			v-if='roleType===1'>
+			v-if='roleType===4&&!flag'>
 			<u-button type="primary"
 				shape="circle"
 				text="纭"
@@ -94,25 +110,34 @@
 </template>
 
 <script>
+	import { onlineurl } from '@/api/request.js'
 	export default {
 		data() {
 			return {
 				orderPlanId: "",
-				index: null,
 				coalDetailsData: {},
 				showWeigh: [],
+				showWeighCopy: [],
 				discountrate: "",
 				loading: false,
 				show: false,
-				columns: [
-					['杞昏川', '涓川', '閲嶈川']
-				],
-				level: '璇烽�夋嫨',
 				selectIndex: null,
+				// 鐗╄祫鏄庣粏
+				goodsList: [],
+				goodsShow: false,
+				goodsIndex: null,
 				// 浜у搧鍒楄〃
 				actionsList: [],
 				actionShow: false,
-				actionIndex: null
+				actionIndex: null,
+				onlineurl,
+				havedInput: false,
+				flag: false,
+				orderCode: null,
+
+				modifyProductName: null,
+				// 鏄惁淇敼
+				isModify: false
 			};
 		},
 		computed: {
@@ -122,10 +147,13 @@
 		},
 		onLoad(params) {
 			this.orderPlanId = params.orderPlanId ? params.orderPlanId : ''
-			this.index = params.index ? params.index : ''
+			this.flag = params.flag ? params.flag : false
 		},
 		onShow() {
 			this.roleType === 1 ? this.GetOrderPlan() : this.getTakeCoal()
+			if (this.orderCode) {
+				this.getMaterialDetailByOrderCode()
+			}
 			this.getJcProductList()
 		},
 		methods: {
@@ -136,13 +164,33 @@
 				this.$reqGet('getTakeCoal', { takeCoalId: this.orderPlanId }).then(res => {
 					if (res.code == 0) {
 						this.coalDetailsData = res.data;
+						this.orderCode = res.data.orderCode
 						this.showWeigh = this.coalDetailsData.tmTaskCoalItems ? this.coalDetailsData
-							.tmTaskCoalItems : [],
-							uni.hideLoading()
+							.tmTaskCoalItems : [];
+						this.showWeigh = this.showWeigh.map(v => {
+							return {
+								...v,
+								modifyProductName: '',
+								modifygoodsName: ''
+
+							}
+						})
+						this.showWeighCopy = JSON.parse(JSON.stringify(this.showWeigh))
+						uni.hideLoading()
 					} else {
 						this.$u.toast('鍔犺浇澶辫触')
 						uni.hideLoading()
 					}
+				}).then(() => {
+					this.$reqGet('getMaterialDetailByOrderCode', { orderCode: this.orderCode }).then(r => {
+						this.goodsList = r.data.map(v => {
+							return {
+								...v,
+								name: v.breed + v.spec
+							}
+						})
+						uni.hideLoading()
+					})
 				})
 			},
 			GetOrderPlan() {
@@ -150,8 +198,9 @@
 				this.$reqGet('GetOrderPlan').then(res => {
 					if (res.data) {
 						this.coalDetailsData = res.data;
-						this.showWeigh = this.coalDetailsData[this.index].tmTaskCoalItems ? this.coalDetailsData[
-								this.index].tmTaskCoalItems : [],
+						this.orderCode = res.data.orderCode
+						this.showWeigh = this.coalDetailsData[this.index].tmTaskCoals ? this.coalDetailsData[
+								this.index].tmTaskCoals : [],
 							uni.hideLoading();
 					} else {
 						this.$u.toast('鍔犺浇澶辫触')
@@ -165,7 +214,7 @@
 						this.actionsList = res.data.map(v => {
 							return {
 								...v,
-								name: v.productName
+								name: v.secondCategoryName + v.spec
 							}
 						})
 					}
@@ -174,49 +223,65 @@
 			// 杈撳叆鎶樻墸鐜囧悗鐐瑰嚮纭
 			confirmInput() {
 				this.loading = true
+				this.showWeigh = this.showWeigh.map((v, i) => {
+					return {
+						...v,
+						breed: this.showWeighCopy[i].modifyProductName ? this.showWeighCopy[i].breed : v.breed,
+						spec: this.showWeighCopy[i].modifyProductName ? this.showWeighCopy[i].spec : v.spec
+					}
+				})
 				this.$reqPost('updateTmTaskCoalItem', this.showWeigh, 'json').then(
 					res => {
 						if (res.code == 0) {
 							this.loading = false
-							this.$u.toast('鎿嶄綔鎴愬姛')
+							this.$u.toast('鎿嶄綔鎴愬姛,鍗冲皢杩斿洖涓婁竴椤�')
+							setTimeout(() => {
+								uni.navigateBack({
+									delta: 1
+								})
+							}, 800)
 						} else {
 							this.loading = false
 							this.$u.toast('鎿嶄綔澶辫触')
 						}
 					})
 			},
-			// 閫夋嫨璐ㄩ噺
-			popoverShow(i) {
-				if (this.roleType === 1) {
-					this.show = true
-					this.selectIndex = i
-				}
+			// 鐗╄祫鏄庣粏
+			goodsPopoverShow(index) {
+				this.goodsShow = true
+				this.goodsIndex = index
 			},
-			// 閫夋嫨浜у搧
-			productNamePopoverShow(i) {
-				if (this.roleType === 1) {
+			goodsNameClose() {
+				this.goodsShow = false
+			},
+			goodsselectClick(val) {
+				this.showWeigh[this.goodsIndex].modifygoodsName = val.name
+				this.showWeigh[this.goodsIndex].itemId = val.itemId
+				this.showWeigh[this.goodsIndex].num = val.num
+				this.showWeigh[this.goodsIndex].numUnit = val.numUnit
+				this.showWeigh[this.goodsIndex].remark = val.remark
+				this.showWeigh[this.goodsIndex].breed = val.breed
+				this.showWeigh[this.goodsIndex].spec = val.spec
+			},
+			// 浜у搧鍒楄〃
+			productNamePopoverShow(index) {
+				if (this.roleType === 4 && !this.flag) {
 					this.actionShow = true
-					this.actionIndex = i
+					this.actionIndex = index
 				}
-			},
-			confirm(e) {
-				this.show = false
-				this.showWeigh[this.selectIndex].level = e.value[0]
-			},
-			cancel() {
-				this.show = false
 			},
 			productNameClose() {
 				this.actionShow = false
 			},
 			selectClick(val) {
-				console.log(this.showWeigh);
-				this.showWeigh[this.actionIndex].productName = val.productName
-				this.showWeigh[this.actionIndex].productId = val.id
+				this.showWeighCopy[this.actionIndex].modifyProductName = val.name
+				this.showWeighCopy[this.actionIndex].breed = val.secondCategoryName
+				this.showWeighCopy[this.actionIndex].spec = val.spec
 			},
 			// 鎶樻墸鐜囪緭鍏�
 			discountInputHandle(value, index, clean) {
-				this.showWeigh[index].discountWeight = (Number(value) * clean) / 100
+				this.showWeigh[index].cinderWeight = Number(value)
+				this.showWeigh[index].weight = (clean - (Number(value)).toFixed(2));
 			}
 		},
 	}
@@ -235,16 +300,17 @@
 	}
 
 	.main {
-		width: 100%;
-		height: 100vh;
+		width: 96%;
+		height: 100%;
+		min-height: 400rpx;
 		background-color: #fff;
-		margin: 0 auto;
+		margin: 10rpx auto;
 		display: flex;
 		flex-direction: column;
 
 		.main-block {
 			width: 690rpx;
-			height: 360rpx;
+			min-height: 360rpx;
 			margin: vww(20) auto;
 			padding: vww(5);
 			background: #ffffff;
@@ -292,6 +358,7 @@
 				.rate,
 				.weigh {
 					width: 50%;
+					height: vww(80);
 					display: flex;
 					align-items: center;
 					justify-content: space-around;
@@ -300,8 +367,11 @@
 					.count-input {
 						width: 70%;
 						border-bottom: 1px solid rgb(218, 219, 222);
-
 					}
+				}
+
+				.weigh {
+					justify-content: space-between;
 				}
 
 				.count {
@@ -312,26 +382,34 @@
 			}
 
 			.level {
-				width: 40%;
-				margin-top: 30 rpx;
-				margin-left: 80 rpx;
+				width: 60%;
+				margin-top: 30rpx;
+				margin-left: 80rpx;
 				display: flex;
 				justify-content: space-between;
+			}
+
+			.select-button {
+				width: 100%;
+				@include flex;
+				justify-content: flex-end;
+				margin-bottom: 40rpx;
+				position: absolute;
+				right: vww(-120);
+				bottom: vww(-10);
+
+				/deep/ .u-button {
+					width: 180rpx !important;
+				}
 			}
 
 		}
 
 		.confirm-button {
-			// position: relative;
-			// bottom: 10rpx;
-			// right: 10rpx;
 			width: 100%;
 			@include flex;
 			justify-content: center;
-
-			/deep/ .u-button {
-				width: 180 rpx !important;
-			}
+			margin-bottom: 40rpx;
 		}
 	}
 </style>
\ No newline at end of file

--
Gitblit v1.9.1