<template>
	<view @tap="onTap">
		<scroll-view scroll-y="true" class="itembox" scroll-with-animation @scrolltolower="scrolltolower()"
			enable-back-to-top enable-flex :scroll-top="scrolltop" @scroll="scroll">
			<defaultr cont="暂无数据" v-if="pddlist.length==0 && listflag"
				style="position: absolute;width: 10vw;height: 10vw;"></defaultr>
			<view class="items guodu" v-for="(v,i) in pddlist" :key='i'
				:style="isbottom&&v.zk?{top: `-390rpx !important`,transition: `.4s !important`}:{transition: `.4s !important`}"
				:class="{'itembord0':v.zk==true,'itembord1':v.zk==false,'dczk':v.dczk==true&&v.zk==true,'dczks':v.dczk==true&&v.zk==false}">
				<view class="speitem guodu">
					<view class="imgs">
						<image :src="v?.materialImg?serverUrl+v?.materialImg:'/static/index/procurement/k.png'"
							mode="aspectFill">
						</image>
					</view>

					<view class="cardp">
						<view v-if="v.categoryName">{{v.categoryName}}</view>
						<view v-if="v.typeName">{{v.typeName}}</view>
						<view v-if="v.medicationName">{{v.medicationName}}</view>
					</view>
				</view>
				<view class="wuli">
					<view class="tite">{{v?.materialName}}</view>
					<view class="cot">
						<text>物料编码：</text>
						{{v?.materialNo}}
					</view>
					<view class="cot">
						<text>物料单位：</text>
						{{v?.materialUnits}}
					</view>
					<view class="cot"
						style="white-space: nowrap;display: block;overflow: hidden;text-overflow: ellipsis;height: 1.7vw;">
						<text style="display: inline-block;">规格型号：</text>
						<!-- <text style="margin-left: 10rpx;color: black;"> -->
						{{v?.specificationModel}}
						<!-- </text> -->

					</view>
					<view class="wltwo">
						<view>
							<view>{{v?.dqkcsl}}</view>
							<text>库存数量</text>
						</view>
						<view class="dot">
							<view style="text-align: right;">{{v?.pdsl?v?.pdsl:'--'}}</view>
							<text style="text-align: right;">盘点数量</text>
						</view>
					</view>
				</view>
				<view class="chae">
					<!-- pdType 1:b/ 2:r -->
					<view :class="{b:v?.pdType==1,r:v?.pdType==2&&v?.cesl>0}">
						{{v?.pdType==2&&v?.cesl>0?'-':''}}{{v?.cesl!=null?v?.cesl:'--'}}
					</view>
					<text>差额</text>
				</view>
				<view class="pandian" @click="zhankai(v,i)">
					<image :src="v.zk?'/static/index/procurement/pd1.png':'/static/index/procurement/pd0.png'"
						mode="aspectFill" v-if="v.pdType==null||v.pdType==''||v.pdType == 3"></image>
					<image :src="v.zk?'/static/index/procurement/pd5.png':'/static/index/procurement/pd2.png'"
						mode="aspectFill" v-if="v.pdType == 1"></image>
					<image :src="v.zk?'/static/index/procurement/pd4.png':'/static/index/procurement/pd3.png'"
						mode="aspectFill" v-if="v.pdType == 2"></image>
				</view>
				<view class="tan guodu" :class="v.zk?'':'itemhei0'">
					<view class="tbox guodu" :class="v.zk?'':'itemhei0'" :style="v.zk?'':'overflow: hidden'">
						<torytor :show="v.yczk" :tb="v.dqkcsl" @pddjjnum="pddjjnum" :pdsl="v.pdsl" :idex="i"
							:pddType='pddType'></torytor>
						<view class="bpq" v-show="v.yczk">
							<view class="bp b" @click="v.bz = !v.bz;v.pz = false">
								<image src="/static/index/procurement/th.png" mode="aspectFill"></image>
								备注
								<text :class="{r:v.pdType == 2&&v?.cesl>0,g:v.pdType == 1}" v-if="v.content">1</text>
							</view>
							<view class="bp p" @click="v.pz = !v.pz;v.bz = false">

								<image src="/static/index/procurement/xj.png" mode="aspectFill"></image>
								拍照
								<text :class="{r:v.pdType == 2&&v?.cesl>0,g:v.pdType == 1}"
									v-if="v.picPatharr?.length>0">{{v?.picPatharr?.length}}</text>
							</view>
							<view class="qued" @click="config(v,i)" v-if="pddType=='1'">
								确定
							</view>
							<view class="triangle-leftbz" v-if="v.bz">
								<image src="/static/index/procurement/jb.png" mode="aspectFill"></image>
							</view>
							<view class="triangle-leftpz" v-if="v.pz">
								<image src="/static/index/procurement/jb.png" mode="aspectFill"></image>
							</view>
							<view class="gray-bgc guodu" :class="v.bz?'':'itemhei0'">
								<view class="textare" v-if="v.bz">
									<textarea v-model="v.content" placeholder="请输入备注" maxlength="200"
										:disabled="pddType!='1'"></textarea>
								</view>
								<view class="submit" v-if="v.bz">
									<view @click="v.bz = false">{{pddType=='1'?'取消':'关闭'}}</view>
									<view @click="v.bz = false" v-if="pddType=='1'">确定</view>
								</view>
							</view>
							<view class="gray-pgc guodu" :class="v.pz?'':'itemhei0'">
								<view class="pztit" v-if="v.pz">拍照：</view>
								<scroll-view scroll-x class="scrollbgc">
									<view class="zpj" v-if="v.pz">
										<view class="zpk" v-for="(p,o) in v?.picPatharr" :key="o"
											@click="previewImage(v,p,o)">
											<image :src="serverUrl+p" mode="aspectFill"></image>
											<view @click.stop="open=1;del(v,o)">
									
												<image src="/static/index/keyimg/deletebutton.png" mode="aspectFill"
													style="width: 75%;height: 70%;"></image>
											</view>
										</view>
										<view class="clkpz" @click="uplod(v,i)" v-if="v.picPatharr?.length<6&&pddType == 1">
											<image src="/static/index/procurement/xjpz.png" mode="aspectFill"></image>
											<text>点击拍照上传 </text>
										</view>
										<defaultr cont="暂无图片" v-if="v?.picPatharr.length==0&&pddType!='1'"
											style="position: absolute;width: 10vw;height: 10vw;"></defaultr>
									</view>
								</scroll-view>
								
								<view class="submit" v-if="v.pz" style="height: 3vw;">
									<view @click="v.pz = false">{{pddType=='1'?'取消':'关闭'}}</view>
									<view v-if="pddType=='1'" @click="v.pz = false">确定</view>
								</view>

							</view>
						</view>
					</view>
				</view>
				<!-- <view class="mengban"  v-if="v.zk" @click="v.zk = false"></view> -->
			</view>
			<view style="height:3vw;width: 100%;display: flex;align-items: center;justify-content: center;">
				<u-loadmore :status="status" :loadText="{nomore:'暂无更多数据'}" v-if="pddlist.length>6" />
			</view>
		</scroll-view>
		<tanchuang :show="open==1" font="是否删除此图片" @back="open = 0" @right="del1()"> </tanchuang>
	</view>
</template>

<script setup lang="ts">
	import { ref, onMounted, onBeforeUnmount, computed, nextTick, watch, reactive } from 'vue';
	import { onShow, onLoad, onHide, onPageScroll } from "@dcloudio/uni-app"
	import { queryQld } from '../api/lunpan.js'
	import torytor from './torytor.vue'
	import defaultr from '../components/default.vue'
	const open = ref(0)
	const scrolltop = ref(0)
	const serverUrl = ref(uni.getStorageSync('serverUrl') + '/sys/common/static/')
	const emit = defineEmits(['scrolltolower', 'tabitem', 'right'])
	const props = defineProps({
		pddlist: {
			type: Array
		},
		status: {
			type: String
		},
		pddType: {
			type: String
		}
	})
	const listflag = ref(false)
	onMounted(() => {
		setTimeout(() => {
			listflag.value = true;
		}, 1000)
	})
	const valitem = ref({});
	const valindex = ref(-1);

	const havezk = ref(false)
	const zhankai = (v, i) => {

		let s = Math.ceil((i + 1) / 3);
		if (valindex.value != i && valindex.value > -1 && uni.getStorageSync('valitem') && props.pddType == '1') {
			emit('tabitem', valindex.value, uni.getStorageSync('valitem'))
		}
		valindex.value = i;
		scrolltop.value = top.value;
		// scrolltop.value = Math.ceil(i / 2) * 195;
		// console.log("啥啊",i)
		v.zk = !v.zk;
		havezk.value = v.zk
		if (v.zk) {
			if (props.pddType == '1') { uni.setStorageSync('valitem', v); }
			setTimeout(() => {
				v.yczk = v.zk;
			}, 200)
		} else {
			v.yczk = v.zk;
			v.bz = false;
			v.pz = false;
		}
		if (v.dczk == true) {

		} else {
			nextTick(() => {
				// scrolltop.value = (top.value > (s - 2) * 182) ? top.value : (s - 2) * 182;
				// scrolltop.value = (Math.ceil(i / 2) -1) * 200;
			})
		}

		gb(i)
	}
	const gb = (i) => {
		props.pddlist.forEach((item, k) => {
			if (i != k) {
				item.zk = false;
				item.bz = false;
				item.pz = false;
				item.yczk = false;
			}
		})
	}
	const top = ref(0)
	const scroll = (e) => {
		// console.log(e.detail.scrollTop)
		top.value = e.detail.scrollTop;
	}
	const pddjjnum = (e, i) => {
		let ce = 0;
		props.pddlist[i].pdsl = e;
		ce = e - props.pddlist[i].dqkcsl;
		props.pddlist[i].cesl = Math.abs(ce);
		props.pddlist[i].pdType = ce == 0 ? '' : (ce > 0 ? 1 : 2)
	}
	const config = (e, i) => {
		if ((e.content == '' || e.content == null) && e.cesl != 0) {
			uni.showToast({
				icon: 'error',
				title: "请填写备注！"
			})
			return
		}
		emit('right', e, i)
	}
	const scrolltolower = () => {
		emit('scrolltolower')
	}
	// 上传
	const albumlist = ref([])
	const uplod = (v, i) => {
		uni.chooseImage({
			count: 1, //默认9
			sizeType: ['compressed'], //可以指定是原图还是压缩图，默认二者都有
			sourceType: ['camera'], //从相册选择
			success: (e) => {
				let ar = JSON.stringify(e.tempFilePaths)
				uni.compressImage({
					src: JSON.parse(ar)[0],
					quality: 60,
					success: res => {
						sxdupld(res.tempFilePath, v)
						// v.picPatharr.push(res.tempFilePath);
						// console.log(v.picPatharr)
					}
				})
			}
		});
	}
	const sxdupld = (e, v) => {
		let now = new Date();
		let year = now.getFullYear();
		let month = now.getMonth() + 1;
		uni.uploadFile({
			url: uni.getStorageSync('serverUrl') + '/sys/common/upload',
			filePath: e,
			name: 'file',
			formData: {
				biz: year + '/' + month + '/pddPic'
			},
			header: {
				'X-Access-Token': uni.getStorageSync('token')
			},
			success: res => {
				const data = JSON.parse(res.data);
				console.log(v)
				v.picPatharr.push(data.message);
				shuzhi(v)
			},
			fail: () => {
				uni.showToast({ title: '上传失败', icon: 'none' })
			}
		})
	}
	const previewImage = (arr, p, i) => {
		let u = []
		arr.picPatharr.forEach(e => {
			u.push(serverUrl.value + e)
		})
		uni.previewImage({
			current: i,
			urls: u,
			showmenu: false,
			longPressActions: {
				itemList: [],
			}
		})
	}
	const shuzhi = (v) => {
		v.picPath = '';
		v.picPatharr.forEach((e, i) => {
			v.picPath += e + ','
		})
	}
	const picv = ref({});
	const pici = ref(0);
	const del = (v, o) => {
		picv.value = v;
		pici.value = o;
	}
	const del1 = () => {
		picv.value.picPatharr.splice(pici.value, 1);
		open.value = 0
	}
	/** 只针对 UniApp 原生 App 的最简判断函数（true = 上半，false = 下半，null = 无法判断） */
	function isTopHalfApp(e) {
		if (!e) return null;
		// 原生 app 常见：changedTouches 或 touches
		const touch = (e.changedTouches && e.changedTouches[0]) || (e.touches && e.touches[0]) || null;
		const y = touch
			? (typeof touch.clientY === 'number' ? touch.clientY : (typeof touch.pageY === 'number' ? touch.pageY : null))
			: (e.detail && typeof e.detail.y === 'number' ? e.detail.y : null);

		let h = null;
		try {
			h = uni.getSystemInfoSync().windowHeight; // UniApp 原生 App 推荐使用
		} catch (err) {
			h = null;
		}

		if (y == null || !h) return null;
		return y <= (h * 2 / 3);
	}
	const isbottom = ref(false);
	const clicklock = ref(false)
	/** 事件处理示例 */
	function onTap(e) {
		const top = isTopHalfApp(e);
		if (top === null) {
			// uni.showToast({ title: '无法判断坐标', icon: 'none' });
			return;
		}
		if (havezk.value) {

			if (!clicklock.value) {
				if (!top) {
					isbottom.value = true
					// console.log("开启了")
				} else {
					isbottom.value = false
				}
				clicklock.value = true
			}

		} else {
			clicklock.value = false
		}

		// uni.showToast({ title: top ? '上半部分' : '下半部分', icon: 'none' });
	}
</script>

<style scoped lang="less">
	.guodu {
		transition: .4s;
		-webkit-transform-style: preserve-3d;
		-webkit-overflow-scrolling: touch;
	}

	.itembox {
		width: 100%;
		height: 56.5vw;
		display: flex;
		margin-top: 0.6vw;
		// background-color: blue;

		.itembord1 {
			border-radius: 1.6vw !important;
			transition: 1s;
		}

		.itembord0 {
			border-radius: 1.6vw 1.6vw 0 0 !important;
			z-index: 25 !important;
			transition: .1s;
		}

		.dczk {
			top: -405rpx !important;
			transition: .4s !important;
		}

		.dczks {
			transition: .4s !important;
		}

		.itemhei0 {
			height: 0vw !important;
			z-index: 27 !important;
		}

		.items {
			width: 44.4vw;
			height: 390rpx;
			background: #FFFFFF;
			border-radius: 1.6vw;
			display: inline-block;
			margin: 0 0.9vw 10rpx 0;
			position: relative;
			// padding-top: 3vw;
			z-index: 20;
			top: 0;

			.tan {
				position: absolute;
				width: 100%;
				height: 18.2vw;
				background: #fff;
				top: 390rpx;
				left: 0;
				z-index: 27;
				border-radius: 0 0 1.6vw 1.6vw;

				.submit {
					width: 100%;
					// height: 3.2vw;
					// margin-top: 0.9vw;
					padding-right: 2vw;
					display: flex;
					justify-content: flex-end;

					view {
						display: flex;
						justify-content: center;
						align-items: center;

						&:nth-child(1) {
							width: 5.7vw;
							height: 2.3vw;
							background: #F8F8F8;
							border-radius: 1.2vw;
							border: 1px solid #E5E5E5;
							font-weight: 400;
							font-size: 1.2vw;
							color: #555555;
						}

						&:nth-child(2) {
							width: 5.7vw;
							height: 2.3vw;
							background: linear-gradient(0deg, #CAE0F9, #E9F4FF);
							border-radius: 1.2vw;
							border: 1px solid rgba(3, 133, 250, 0.34);
							font-weight: 400;
							font-size: 1.2vw;
							color: #1083F8;
							margin-left: 0.7vw;
						}
					}
				}

				.bpq {
					width: 100%;
					height: 2.6vw;
					position: absolute;
					display: flex;
					bottom: 0.5vw;
					left: 1vw;

					.triangle-leftpz {
						width: 2vw;
						height: 1.5vw;
						position: absolute;
						bottom: 2.2vw;
						left: 11vw;
						z-index: 30;

						image {
							width: 100%;
							height: 100%;
						}
					}

					.triangle-leftbz {
						width: 2vw;
						height: 1.5vw;
						position: absolute;
						bottom: 2.2vw;
						left: 4vw;
						z-index: 30;

						image {
							width: 100%;
							height: 100%;
						}
					}

					.gray-pgc {
						background: #fff;
						width: 40vw;
						height: 30vw;
						border-radius: 2vw;
						box-shadow: 0rpx 0rpx 5rpx 0rpx rgba(116, 141, 164, 0.22);
						position: absolute;
						bottom: 3.6vw;
						left: 1vw;
						overflow: hidden;

						>.submit {
							position: absolute;
							bottom: 0;
							right: 0;
						}
						.scrollbgc{
							width: 92%;
							margin-left: 4%;
							height: 22vw;
							.zpj {
								width: 30%;
								display: flex;
								flex-wrap: wrap;
								flex-direction: column;
								// padding: 0 1.6vw;
								height: 22vw;
								// background-color: red;
							
								.zpk {
									width: 17.8vw;
									height: 10vw;
									margin-top: 1vw;
									border-radius: 1.1vw;
									position: relative;
									display: flex;
									justify-content: center;
									align-items: center;
									background: #F9F9F9;
									overflow: hidden;
									margin-right: 1vw;
							
									view {
										width: 2vw;
										height: 2vw;
										z-index: 20;
										position: absolute;
										right: 0.8vw;
										top: 0.8vw;
										border-radius: 0.6vw 1.1vw 0.6vw 0.6vw;
										background: rgba(255, 255, 255, 1);
										display: flex;
										justify-content: center;
										align-items: center;
									}
							
									image {
										width: 100%;
										height: 100%;
									}
								}
							
								.clkpz {
									width: 17.8vw;
									height: 10vw;
									background: #FAFDFF;
									border-radius: 1.1vw;
									border: 1px solid #DDEFFF;
									display: flex;
									justify-content: center;
									align-items: center;
									margin-top: 1vw;
									flex-direction: column;
							
									text {
										font-weight: 400;
										font-size: 0.7vw;
										color: #78B1EB;
									}
							
									image {
										width: 2.3vw;
										height: 2.3vw;
									}
								}
							
							}
						}
						

						.pztit {
							font-weight: 400;
							font-size: 1.5vw;
							color: #888888;
							margin: 1.6vw auto 0;
							width: 100%;
							padding-left: 2.4vw;
						}


					}

					.gray-bgc {
						background: #fff;
						width: 28vw;
						height: 12vw;
						border-radius: 2vw;
						box-shadow: 0rpx 0rpx 5rpx 0rpx rgba(116, 141, 164, 0.22);
						position: absolute;
						bottom: 3.6vw;
						left: 1vw;
						overflow: hidden;

						.triangle-left {
							width: 2vw;
							height: 1.5vw;
							position: absolute;
							top: 99.5%;
							left: 3vw;

							image {
								width: 100%;
								height: 100%;
							}
						}

						.textare {
							width: 24vw;
							height: 6.5vw;
							background: #fff;
							border: 4rpx solid #F5F5F5;
							border-radius: 1vw;
							margin: 1.6vw auto 0;
							padding: 1vw;

							textarea {
								width: 100%;
								height: 100%;
								font-weight: 400;
								font-size: 1.3vw;
								color: #999999;
							}
						}

					}

					.qued {
						width: 6vw;
						height: 2.8vw;
						background: linear-gradient(0deg, #CAE0F9, #E9F4FF);
						border-radius: 1.3vw;
						border: 1px solid rgba(3, 133, 250, 0.34);
						right: 3.2vw;
						top: 0vw;
						position: absolute;
						font-weight: 400;
						font-size: 1.4vw;
						color: #0385FA;
						display: flex;
						align-items: center;
						justify-content: center;
					}

					.bp {
						width: 5vw;
						height: 2.8vw;
						display: flex;
						align-items: flex-end;
						font-weight: 400;
						font-size: 1.2vw;
						color: #555555;
						margin-left: 1.5vw;
						white-space: nowrap;
						position: relative;

						>text {
							min-width: 1vw;
							height: 1vw;
							border-radius: 0.5vw;
							font-weight: 400;
							font-size: 0.8vw;
							color: #FFFFFF;
							display: flex;
							align-items: center;
							justify-content: center;
							padding: 0 0.4vw;
							position: absolute;
							right: -0.5vw;
							top: 0;
							background: #555555;
						}

						.g {
							background: #0385FA;
							border: 1px solid #0385FA;
						}

						.r {
							background: #FF5757;
							border: 1px solid #FF5757;

						}

						image {
							width: 1.8vw;
							height: 1.8vw;
							margin-right: 0.4vw;
						}
					}
				}

				.tbox {
					width: 100%;
					height: 16vw;
					position: absolute;
					top: 1vw;
					z-index: 28;
					left: 0;

				}
			}

			.chae {
				width: 6vw;
				height: 8vw;
				position: absolute;
				right: 0;
				top: 0;
				display: flex;
				flex-direction: column;
				align-items: center;
				padding: 1vw 2vw 0 0;

				view {
					font-weight: bold;
					font-size: 1.8vw;
				}

				text {
					font-weight: 400;
					font-size: 1vw;
					color: #888888;
				}

				.r {
					color: #FF5757;
				}

				.b {
					color: rgba(16, 131, 248, 1);
				}
			}

			.pandian {
				// width: 5vw;
				// height: 4.5vw;
				position: absolute;
				right: 2.7vw;
				bottom: 2vw;

				image {
					width: 2.6vw;
					height: 2.6vw;
				}
			}

			.wuli {
				width: 18vw;
				height: 100%;
				overflow: hidden;
				position: absolute;
				left: 18vw;
				top: 0.5vw;

				.wltwo {
					width: 11vw;
					height: 3.7vw;
					display: flex;
					margin-top: 1.5vw;
					justify-content: space-between;
					margin-left: -2vw;

					>view {
						// min-width: 5vw;
						height: 100%;
						display: flex;
						flex-direction: column;
						justify-content: space-around;
						position: relative;
						align-items: left;
						padding: 0 2vw;

						view {
							font-weight: 800;
							font-size: 1.5vw;
							color: #555555;
						}

						text {
							font-weight: 400;
							font-size: 1.2vw;
							color: #999999;
							white-space: nowrap;
							display: block;
						}

					}

					.dot::after {
						content: '';
						width: 1px;
						height: 3.3vw;
						position: absolute;
						left: 0;
						bottom: 0;
						border-right: 1px solid rgba(230, 230, 230, 1);
					}
				}

				.cot {
					width: 18vw;
					font-weight: 400;
					font-size: 1.4vw;
					color: rgba(85, 85, 85, 1);
					// margin-top: 0.1vw;

					text {
						color: rgba(153, 153, 153, 1);
						font-size: 1.3vw;
						font-weight: 300;
						// font-weight: 600;
					}
				}

				.tite {
					width: 13vw;
					font-weight: 800;
					font-size: 1.8vw;
					color: #222222;
					height: 2vw;
					white-space: nowrap;
					text-overflow: ellipsis;
					overflow: hidden;
					margin: 1.5vw 0 1.5vw 0;
				}

			}

			.speitem {
				width: 12vw;
				height: 100%;
				display: flex;
				flex-direction: column;
				position: absolute;
				left: 2vw;
				top: 1.5vw;

				.cardp {
					width: 14vw;
					height: 4vw;
					display: flex;
					flex-wrap: wrap;
					margin: 0 auto;
					align-items: center;

					view {
						min-width: 6.5vw;
						height: 1.8vw;
						border-radius: 0.9vw;
						border: 1px solid #D2D2D2;
						margin: 0.7vw 0 0 0.5vw;
						display: flex;
						justify-content: center;
						align-items: center;
						font-weight: 400;
						font-size: 1.2vw;
						color: #555555;
						padding: 0 0.6vw;

						&:nth-child(1),
						&:nth-child(2) {
							max-width: 5.5vw;
							overflow: hidden;
							text-overflow: ellipsis;
							white-space: nowrap;
							display: block;
							line-height: 1.8vw;
							text-align: center;
						}
					}
				}

				.imgs {
					width: 13vw;
					height: 9vw;
					// background: #F8F8F8;
					border-radius: 1.1vw;
					display: flex;
					justify-content: center;
					align-items: center;
					margin-top: 1.2vw;

					// margin: 0.8vw auto 0;
					// padding: 0.5vw;
					>image {
						width: 9vw;
						height: 9vw;
						margin-left: 1vw;
						border-radius: 0.4vw;
					}
				}

			}
		}
	}

	.mengban {
		width: 100vw;
		height: 100vh;
		position: fixed;
		top: 0;
		left: 0;
		z-index: 21;
		background: RGBA(239, 240, 244, 0);
	}
</style>