From fa9d6d873f252894b668aae8525a3d83b7175ca5 Mon Sep 17 00:00:00 2001
From: qingyiay <2386314947@qq.com>
Date: 星期五, 28 七月 2023 15:56:33 +0800
Subject: [PATCH] 修改验质

---
 pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail.vue |  388 ++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 336 insertions(+), 52 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 09c87ff..f81c044 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
@@ -42,42 +42,130 @@
 						<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.discount }}%
+						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">
-				<view class=""
-					style="width: 70rpx;">
-					<u--text text="钃濇湰"
+				<view style="width: 140rpx;">
+					<u--text text="鐗╄祫鏄庣粏"
 						size='32'></u--text>
 				</view>
-				<u-tag :text="MaterialList[i].breed+MaterialList[i].spec||'鏆傛棤'"
-					plain
-					@click="productNamePopoverShow(i)"
-					v-if='MaterialList[i].breed&&MaterialList[i].spec||roleType===4'></u-tag>
+				<view class="tag-select"
+					@click="goodsPopoverShow(i)"
+					v-if='roleType===4'>
+					<text>
+						{{item.breed+"/"+item.spec||item.modifygoodsName||'鏆傛棤'}}
+					</text>
+				</view>
 			</view>
 			<view class="level"
-				v-if='modifyMaterialList[i].modifyProductName'>
-				<view style="width: 70rpx;">
-					<u--text text="淇"
+				v-if='item.modifygoodsName||globalShowWeigh[i].modifyProductName'>
+				<view style="width: 180rpx;">
+					<u--text text="鍝佸悕涓庤鏍�"
 						size='32'></u--text>
 				</view>
-				<view>
-					<u-tag :text="modifyMaterialList[i].modifyProductName"
-						plain></u-tag>
+				<view class="tag-select"
+					@click="productNamePopoverShow(i)">
+					<text>
+						{{!flag?(globalShowWeigh[i].modifyProductName?globalShowWeigh[i].modifyProductName:item.modifygoodsName):(item.breed+'/'+item.spec)}}
+					</text>
 				</view>
 			</view>
+			<view class="unqualifiedBreed">
+				<view style="width: 180rpx;">
+					<u--text text="涓嶅悎鏍煎搧鍚�"
+						size='32'></u--text>
+				</view>
+				<view class="tag-select"
+					@click="selectunqualifiedBreed(i)">
+					<text>
+						{{!flag?(globalShowWeigh[i].unqualifiedBreed?globalShowWeigh[i].unqualifiedBreed:item.unqualifiedBreed):(item.unqualifiedBreed||"璇烽�夋嫨")}}
+					</text>
+				</view>
+			</view>
+			<view class="notice-num">
+				<view class="num-text">
+					<u--text text="涓嶅悎鏍奸噸閲�"
+						size='32'></u--text>
+				</view>
+				<view class="num-input"
+					v-if='roleType===4&&!flag'>
+					<u--input placeholder="璇疯緭鍏ヤ笉鍚堟牸閲嶉噺"
+						border="bottom"
+						clearable
+						v-model="item.unqualifiedWeight"
+						@input='v=>unqualifiedWeightInputHandle(v,i,item.clean)'></u--input>
+				</view>
+				<view class="num-show"
+					v-else-if="flag">
+					{{item.unqualifiedWeight}}
+				</view>
+			</view>
+			<view class="notice-num">
+				<view class="num-text"
+					style="margin-left: 10rpx;">
+					<u--text text="閫氱煡鏁伴噺"
+						size='32'></u--text>
+				</view>
+				<view class="num-input"
+					v-if='roleType===4&&!flag'>
+					<u--input placeholder="璇疯緭鍏ラ�氱煡鏁伴噺"
+						border="bottom"
+						clearable
+						v-model="item.num"></u--input>
+				</view>
+				<view class="num-show"
+					v-else-if="flag">
+					{{item.num}}
+				</view>
+			</view>
+			<view style="display: flex;margin-top: 20rpx;margin-left: 20rpx;"
+				v-if="item.isImage">
+				<view style="width: 100px;"
+					v-for="(val,index) in item.inspectionJpg"
+					:key="index">
+					<u--image :showLoading="true"
+						:src="`${BaseUrl}${val}`"
+						width="80px"
+						height="80px">
+						<view slot="error"
+							style="font-size: 24rpx;">鍔犺浇澶辫触</view>
+					</u--image>
+				</view>
+			</view>
+			<view v-else-if='!item.isImage&&!flag'
+				style="margin: 30rpx 80rpx;">
+				<u-upload :fileList="item.fileList"
+					deletable
+					@afterRead="afterRead"
+					@delete="deletePic"
+					:name="i"
+					multiple
+					:maxCount="4"
+					width="250"
+					height="150"
+					:previewFullImage="true">
+				</u-upload>
+			</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"
@@ -85,6 +173,15 @@
 					:closeOnClickOverlay='true'
 					@close='productNameClose'
 					@select="selectClick"></u-action-sheet>
+			</view>
+			<!-- 涓嶅悎鏍煎搧鍚� -->
+			<view class="">
+				<u-action-sheet :actions="actionsList"
+					:show="unqualifiedShow"
+					cancelText='鍙栨秷'
+					:closeOnClickOverlay='true'
+					@close='unqualifiedClose'
+					@select="selectUnqualifiedClick"></u-action-sheet>
 			</view>
 		</view>
 		<view class="confirm-button"
@@ -100,17 +197,25 @@
 </template>
 
 <script>
+	import BigNumber from "bignumber.js"
+	import { BaseUrl } from '@/api/publicInterface.js';
 	import { onlineurl } from '@/api/request.js'
+	import { mapState, mapMutations } from "vuex"
 	export default {
 		data() {
 			return {
 				orderPlanId: "",
 				coalDetailsData: {},
 				showWeigh: [],
+				showWeighCopy: [],
 				discountrate: "",
 				loading: false,
 				show: false,
 				selectIndex: null,
+				// 鐗╄祫鏄庣粏
+				goodsList: [],
+				goodsShow: false,
+				goodsIndex: null,
 				// 浜у搧鍒楄〃
 				actionsList: [],
 				actionShow: false,
@@ -119,52 +224,87 @@
 				havedInput: false,
 				flag: false,
 				orderCode: null,
-				// 鐗╄祫鏄庣粏list
-				MaterialList: [],
-				// 淇敼涔嬪悗鐨勭墿璧勬槑缁唋ist
-				modifyMaterialList: [],
-				// 淇敼涔嬪悗鐨勪骇鍝佸悕绉�
 				modifyProductName: null,
 				// 鏄惁淇敼
-				isModify: false
+				isModify: false,
+				// 涓婁紶鍥剧墖
+				fileList1: [],
+				BaseUrl,
+				// 涓嶅悎鏍煎搧鍚�
+				unqualifiedShow: false,
+				unqualifiedIndex: null,
+				dataForm: {},
+				// // 鍒ゆ柇鏄慨鏀瑰搧鍚嶄笌瑙勬牸杩樻槸涓嶅悎鏍煎搧鍚�
+				ModifiedOrderIndex: null,
+				willProductName: true,
+				willUnqualified: true,
+				alterProductName: false,
+				alterUnqualified: false,
+				// 瀛樺偍涓棿鎬�
+				showWeighCopyStorge: [],
+				havedSubmit: false
 			};
 		},
 		computed: {
+			...mapState(["globalShowWeigh"]),
 			roleType() {
 				return uni.getStorageSync('roleType')
+			},
+			showWeighCopyStorgeOther() {
+				return uni.getStorageSync('showWeighCopyStorgeOther')
 			}
 		},
 		onLoad(params) {
-			this.orderPlanId = params.orderPlanId ? params.orderPlanId : ''
-			this.flag = params.flag ? params.flag : false
-		},
-		onShow() {
+			this.orderPlanId = params.orderPlanId ? params.orderPlanId : '';
+			this.flag = params.flag ? params.flag : false;
 			this.roleType === 1 ? this.GetOrderPlan() : this.getTakeCoal()
-			if (this.orderCode) {
-				this.getMaterialDetailByOrderCode()
-			}
-			this.getJcProductList()
+			this.ModifiedOrderIndex = params.index
+			this.alterProductName = params.productName === "true" || false
+			this.alterUnqualified = params.unqualified === "true" || false
+			this.havedSubmit = params.havedSubmit === "true" || false
 		},
 		methods: {
+			...mapMutations(['changeglobalShowWeigh']),
 			getTakeCoal() {
 				uni.showLoading({
 					title: '鍔犺浇涓�'
 				});
 				this.$reqGet('getTakeCoal', { takeCoalId: this.orderPlanId }).then(res => {
 					if (res.code == 0) {
+						uni.hideLoading()
 						this.coalDetailsData = res.data;
 						this.orderCode = res.data.orderCode
 						this.showWeigh = this.coalDetailsData.tmTaskCoalItems ? this.coalDetailsData
 							.tmTaskCoalItems : [];
-						uni.hideLoading()
+						this.showWeigh = this.showWeigh.map(v => {
+							return {
+								...v,
+								modifyProductName: '',
+								modifygoodsName: '',
+								fileList: [],
+								inspectionJpg: v.inspectionJpg.split(','),
+								isImage: v.inspectionJpg
+							}
+						})
+						this.showWeighCopy = JSON.parse(JSON.stringify(this.showWeigh))
+						uni.setStorageSync("showWeighCopyStorge", this.showWeighCopy)
+						if (this.havedSubmit) {
+							this.changeglobalShowWeigh(uni.getStorageSync('showWeighCopyStorgeOther'))
+						} else {
+							this.changeglobalShowWeigh(uni.getStorageSync('showWeighCopyStorge'))
+						}
 					} else {
 						this.$u.toast('鍔犺浇澶辫触')
 						uni.hideLoading()
 					}
 				}).then(() => {
 					this.$reqGet('getMaterialDetailByOrderCode', { orderCode: this.orderCode }).then(r => {
-						this.MaterialList = r.data
-						this.modifyMaterialList = JSON.parse(JSON.stringify(this.MaterialList))
+						this.goodsList = r.data.map(v => {
+							return {
+								...v,
+								name: v.breed + '/' + v.spec
+							}
+						})
 						uni.hideLoading()
 					})
 				})
@@ -196,20 +336,18 @@
 					}
 				})
 			},
-			// 杈撳叆鎶樻墸鐜囧悗鐐瑰嚮纭
+			// 鐐瑰嚮纭
 			confirmInput() {
 				this.loading = true
 				this.showWeigh = this.showWeigh.map((v, i) => {
 					return {
 						...v,
-						itemId: this.MaterialList[i].itemId,
-						Num: this.MaterialList[i].Num,
-						NumUnit: this.MaterialList[i].NumUnit,
-						Remark: this.MaterialList[i].Remark,
-						spec: this.modifyMaterialList[i].modifyProductName ? this.actionsList[i].spec : this
-							.MaterialList[i].spec,
-						breed: this.modifyMaterialList[i].modifyProductName ? this.actionsList[i]
-							.secondCategoryName : this.MaterialList[i].breed
+						unqualifiedBreed: this.globalShowWeigh[i].unqualifiedBreed ? this.globalShowWeigh[i]
+							.unqualifiedBreed : v.unqualifiedBreed,
+						breed: this.globalShowWeigh[i].modifyProductName ? this.globalShowWeigh[i].breed : v.breed,
+						spec: this.globalShowWeigh[i].modifyProductName ? this.globalShowWeigh[i].spec : v.spec,
+						inspectionJpg: v.fileList.map(v => v.url.replace(BaseUrl, '')).join(',')
+
 					}
 				})
 				this.$reqPost('updateTmTaskCoalItem', this.showWeigh, 'json').then(
@@ -224,25 +362,125 @@
 							}, 800)
 						} else {
 							this.loading = false
-							this.$u.toast('鎿嶄綔澶辫触')
+							this.$u.toast(res.msg ? res.msg : '鎿嶄綔澶辫触')
 						}
 					})
 			},
+			// 鐗╄祫鏄庣粏
+			goodsPopoverShow(index) {
+				if (this.roleType === 4 && !this.flag) {
+					this.goodsShow = true
+					this.goodsIndex = index
+				}
+
+			},
+			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
+				this.showWeigh[this.goodsIndex].weightUnit = val.weightUnit
+			},
+			// 鍝佸悕涓庤鏍�
 			productNamePopoverShow(index) {
-				this.actionShow = true
-				this.actionIndex = index
+				if (this.roleType === 4 && !this.flag) {
+					// this.actionShow = true
+					// this.actionIndex = index
+					uni.navigateTo({
+						url: `/pages/public-page/selectSpecifications/selectSpecifications?index=${index}&takeCoalId=${this.orderPlanId}&productName=${this.willProductName}`
+					})
+				}
 			},
 			productNameClose() {
 				this.actionShow = false
 			},
 			selectClick(val) {
-				this.modifyMaterialList[this.actionIndex].modifyProductName = val.name
+				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].cinderWeight = Number(value)
-				this.showWeigh[index].discountWeight = (clean - (Number(value)).toFixed(2));
-			}
+				if (clean) {
+					let x = new BigNumber(clean)
+					let y = new BigNumber(value)
+					this.showWeigh[index].weight = x.minus(y).toFixed(2)
+				}
+			},
+			// 閫夋嫨涓嶅悎鏍煎搧鍚�
+			selectunqualifiedBreed(index) {
+				if (this.roleType === 4 && !this.flag) {
+					// this.unqualifiedShow = true
+					// this.unqualifiedIndex = index
+					uni.navigateTo({
+						url: `/pages/public-page/selectSpecifications/selectSpecifications?index=${index}&takeCoalId=${this.orderPlanId}&unqualified=${this.willUnqualified}`
+					})
+				}
+			},
+			unqualifiedClose() {
+				this.unqualifiedShow = false
+			},
+			selectUnqualifiedClick(val) {
+				this.showWeigh[this.unqualifiedIndex].unqualifiedBreed = val.secondCategoryName + val.spec
+			},
+			// 涓嶅悎鏍奸噸閲忚緭鍏�
+			unqualifiedWeightInputHandle(value, index, clean) {
+				let x = new BigNumber(clean)
+				let y = new BigNumber(value)
+				let z = new BigNumber(this.showWeigh[index].cinderWeight)
+				this.showWeigh[index].weight = x.minus(y).minus(z).toFixed(2) || ''
+			},
+			// 鍒犻櫎鍥剧墖
+			deletePic(event) {
+				this.showWeigh[event.name].fileList.splice(event.index, 1);
+			},
+			// 鏂板鍥剧墖
+			async afterRead(event) {
+				// 褰撹缃� mutiple 涓� true 鏃�, file 涓烘暟缁勬牸寮忥紝鍚﹀垯涓哄璞℃牸寮�
+				let lists = [].concat(event.file);
+				let fileListLen = this.showWeigh[event.name].fileList.length;
+				lists.map(item => {
+					this.showWeigh[event.name].fileList.push({
+						...item,
+						status: 'uploading',
+						message: '涓婁紶涓�'
+					});
+				});
+				for (let i = 0; i < lists.length; i++) {
+					const result = await this.uploadFilePromise(lists[i].url, event.name);
+					let item = this.showWeigh[event.name].fileList[fileListLen];
+					this.showWeigh[event.name].fileList.splice(
+						fileListLen,
+						1,
+						Object.assign(item, {
+							status: 'success',
+							message: '涓婁紶鎴愬姛',
+							url: result
+						})
+					);
+					fileListLen++;
+				}
+			},
+			uploadFilePromise(url, num) {
+				return new Promise((resolve, reject) => {
+					let a = uni.uploadFile({
+						url: BaseUrl + '/admin/sys-file/uploadUnToken',
+						filePath: url,
+						name: 'file',
+						formData: {},
+						success: res => {
+							resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`);
+						}
+					});
+				});
+			},
 		},
 	}
 </script>
@@ -341,12 +579,58 @@
 
 			}
 
-			.level {
-				width: 60%;
+			.notice-num {
+				@extend .discount;
+				align-items: center;
+				justify-content: space-evenly;
+				margin-left: 50rpx;
 				margin-top: 30rpx;
-				margin-left: 80rpx;
+
+				.num-text {
+					width: 30%;
+				}
+
+				.num-input {
+					width: 60%;
+					border-bottom: 1px solid rgb(218, 219, 222);
+				}
+
+				.num-show {
+					width: 60%;
+					color: #303030
+				}
+			}
+
+			.unqualifiedBreed {
+				@extend .level;
+			}
+
+			.level {
+				width: 89%;
+				margin: 30rpx 80rpx;
 				display: flex;
-				justify-content: space-between;
+				justify-content: flex-start;
+
+				.tag-select {
+					flex: 1;
+					margin-left: 14rpx;
+					text-align: center;
+					white-space: nowrap;
+					overflow: hidden;
+					text-overflow: ellipsis;
+					border: 1rpx solid rgb(60, 156, 255);
+					padding: 8rpx 14rpx;
+					color: rgb(60, 156, 255);
+					font-size: 26rpx;
+
+					.tag-select_text {
+						// width: vww(180);
+						// border: 1rpx solid rgb(60, 156, 255);
+						// padding: 8rpx 14rpx;
+						// color: rgb(60, 156, 255);
+						// font-size: 26rpx;
+					}
+				}
 			}
 
 			.select-button {

--
Gitblit v1.9.1