<template>
	<!-- <u-navbar title="签收订单扫描" placeholder border=true :autoBack="true" leftIconSize='35'></u-navbar> -->
	<u-navbar title="签收订单扫描" bgColor='#D3832A' leftIconColor='#ffffff' titleStyle='color:#ffffff' placeholder
		:autoBack="true" leftIconSize='35'></u-navbar>
	<view class="hdstop">
		<view class="khxb">
			<view>客户：{{items.consignee}}</view>
			<view>地址：{{items.deliveryAddress}}</view>
			<view>电话：{{items.deliveryPhone}}</view>
			<view class="butlur" @click="showsdqs">
				录入包条码
			</view>
		</view>
		<view class="tps">
			<view>
				<view>订单总数</view>
				<view>{{ordNub}}</view>
			</view>
			<view>
				<view>计划件数</view>
				<view>{{details.Plannednub}}</view>
			</view>
			<view>
				<view>配送件数</view>
				<view>{{items.reservationNum}}</view>
			</view>
			<view>
				<view>签收件数</view>
				<view>{{details.signNub}}</view>
			</view>
		</view>
	</view>
	<view class="scinp">
		<view>齐套状态</view>
		<view>
			<cusSelects @change='checktype' :data='typearr' :value="schanvalue" placeholder='全部' :arrLeft='5' size='145'
				:clearable='true'></cusSelects>
		</view>
		<view class="inputs">
			<input placeholder="请输入查询的订单号" v-model="inputtxt" />
		</view>
		<view class="btscan" @click="initpage">查询</view>
	</view>
	<view class="tabtip">
		<view @click="setorderStatus(1)">
			<view :class="orderStatus==1?'xz':''">定制品</view>
		</view>
		<view @click="setorderStatus(2)">
			<view :class="orderStatus==2?'xz':''">零担</view>
		</view>
		<view @click="setorderStatus(3)">
			<view :class="orderStatus==3?'xz':''">库存品</view>
		</view>
	</view>
	<scroll-view class="scve" @touchmove.stop :style="{height: details.scrollHeight}" scroll-y="true">
		<view class="mabx">
			<block v-for="(item,index) in datalist">
				<!-- 定制品 -->
				<template v-if="orderStatus===1">
					<view class="itec" @click="setcheckindex(index)">
						<view class="contenbx1">
							<view><text style="color: #90A0AF;"
									@click.stop="goorderdetail(item)">订单编号：</text>{{item.orderCode}}
							</view>
						</view>

						<view class="contenbx1">
							<view><text style="color: #90A0AF;"
									@click.stop="goorderdetail(item)">运单号：</text>{{item.waybillNumber}}
							</view>
						</view>

						<view class="contenbx1">
							<view><text style="color: #90A0AF;">计划：</text>{{item.reservationNum}}</view>
							<view><text style="color: #90A0AF;">装车：</text>{{item.loadingNub}}</view>
							<view><text style="color: #90A0AF;">签收：</text>{{item.signforNub}}</view>
						</view>

						<view class="contenbx1">
							<view><text style="color: #90A0AF;">异常装车：</text>{{item.abnormalLoading}}</view>
							<view><text style="color: #90A0AF;">异常签收：</text>{{item.abnormalSignature}}</view>
						</view>

						<view class="xialaxz" v-if="listcheckindex==index">
							<uni-table ref="uniTable1" border emptyText="暂无更多数据" style="max-height: 30vh;" @touchmove.stop>
								<uni-tr>
									<uni-th align="left">包条码</uni-th>
									<uni-th align="left">货物品类</uni-th>
									<uni-th align="left">签收状态</uni-th>
									<uni-th align="center">异常状态</uni-th>
								</uni-tr>
								<block v-for="ite in item.distributionAppParcelListVOS">
									<uni-tr
										:class="{'active': Number(ite.isAbnormalLoading) === 1 || Number(ite.isAbnnormalSigning) === 1}">
										<uni-td
											:class="{'isScan': ite.orderPackageStatus !== '70'}">{{ite.orderPackageCode}}</uni-td>
										<uni-td>{{ite.thirdProduct}}</uni-td>
										<uni-td>{{ite.orderPackageStatus === '70'?'已签':'未签'}}</uni-td>
										<uni-td
											align="center">{{ite.isAbnnormalSigningName ||ite.isAbnormalLoadingName|| '/'}}</uni-td>
									</uni-tr>
								</block>

							</uni-table>

						</view>
						<view :class="item.signforNub==0?'tip tp2':item.signforNub==item.reservationNum?'tip tp1':'tip tp3'">
							{{item.signforNub==0?'未扫':item.signforNub==item.reservationNum?'齐套':'部分扫'}}
						</view>
					</view>
				</template>
				<!-- 零担 -->
				<template v-if="orderStatus===2">
					<view class="itec" @click="checkphon(item,index)">
						<view class="contenbx1">
							<view><text style="color: #90A0AF;"
									@click.stop="goorderdetail(item)">订单编号：</text>{{item.orderCode}}
							</view>
						</view>
						<view class="contenbx1">
							<view><text style="color: #90A0AF;"
									@click.stop="goorderdetail(item)">产品名称：</text>{{item.descriptionGoods}}
							</view>
						</view>
						<view class="contenbx1">
							<view><text style="color: #90A0AF;">计划签收：</text>{{item.reservationNum}}</view>
							<view><text
									style="color: #90A0AF;">实际签收：</text>{{item.distributionParcelNumberVOS.reduce((cur, item)=>cur += item.signingNum || 0 ,0)}}
							</view>
						</view>

						<view v-if="item.complete"
							:class="item.completecode==3?'tip tp1':item.completecode==1?'tip tp2':'tip tp3'">
							{{item.complete}}
						</view>
					</view>
				</template>
				<!-- 库存品 -->
				<template v-if="orderStatus===3">
					<view class="itec" @click="setcheckindex(index)">
						<view class="contenbx1">
							<view><text style="color: #90A0AF;">SKU：</text>{{item.sku}}</view>
						</view>
						<view class="contenbx1">
							<view><text style="color: #90A0AF;">包条码：</text>{{item.orderPackageCode}}</view>
						</view>
						<view class="contenbx1">
							<view><text style="color: #90A0AF;">物品：</text>{{item.descriptionGoods}}</view>
							<view><text style="color: #90A0AF;">规格：</text>{{item.specification}}</view>
						</view>
						<view class="contenbx1">
							<view><text style="color: #90A0AF;">单位：</text>{{item.logpmUnit}}</view>
							<!-- <view><text style="color: #90A0AF;">签收：</text>{{item.signforNub}}</view> -->
						</view>
						<!-- <view :class="item.signforNub==0?'tip tp2':item.signforNub==item.reservationNum?'tip tp1':'tip tp3'">
							{{item.signforNub==0?'未扫':item.signforNub==item.reservationNum?'齐套':'部分扫'}}
						</view> -->
						<view :class="item.signforNub==0?'tip tp2':'tip tp1'">
							{{item.signforNub==0?'未扫':'已扫'}}
						</view>
					</view>
				</template>
			</block>

			<!-- 底部占位元素 -->
			<view class="footer_container">

			</view>
		</view>
	</scroll-view>

	<view class="jumpBtn" @click="handlePackageScan">
		详情扫描
	</view>

	<tips ref="tip"></tips>
	<tiplist ref="tiplists"></tiplist>
	<!-- #ifdef APP -->
	<saomiao2 :ishidestop="scanState !== 0"></saomiao2>
	<!-- #endif -->
</template>

<script lang="ts" setup>
	import {
		signfororder,
		signforinventory,
		signforsignfor,
		signforsignforIn,
		signforsignforcontinue,
		signforZeroSignfor
	} from '@/api/user.js'
	import {
		onLoad,
		onShow,
		onPullDownRefresh
	} from '@dcloudio/uni-app'
	import cusSelects from '@/compoment/cus-selects-fan/cus-selects-fan.vue'
	import { computed, inject, nextTick, onMounted, reactive, ref, toRefs, watchEffect } from "vue";
	import useSystemSettingsStore from '@/store/useSystemSettingsStore';
	import { storeToRefs } from 'pinia';
	const { scanState } = storeToRefs(useSystemSettingsStore())
	const utils = inject('utils') as any
	let details = reactive({
		schanvalue: '',
		typearr: [
			{
				value: 3,
				label: '齐套'
			},
			{
				value: 2,
				label: '部分扫'
			},
			{
				value: 1,
				label: '未扫'
			}
		],
		items: {} as any,
		datalist: [] as any,
		orderArr: [],
		zeroArr: [],
		stockArr: [],
		id: '',
		orderStatus: 1,
		scancode: '',
		deliveryId: '',
		orderType: '' as string | number,
		inputtxt: '',
		listcheckindex: -1,
		scrollHeight: '',
		/** 计划件数 */
		Plannednub: 0,

		/** 签收数 */
		signNub: 0,
	})
	const tiplists = ref(null)
	const tip = ref(null)

	const ordNub = computed(() => {
		let num = 0
		num += details.orderArr.length
		num += details.zeroArr.length
		return num
	})

	onLoad(async (op) => {
		// #ifdef APP
		utils.ttsspke('请扫描包条码')
		// #endif

		// 获取路由中传递数据
		details.items = JSON.parse(op.item)
		details.id = JSON.parse(op.item).id
		details.deliveryId = op.deliveryId
	})

	onShow(async () => {
		try {
			// #ifdef APP
			uni.$off('scancodedate')
			uni.$on('scancodedate', function (code) {
				if (code) {
					// 关闭弹窗
					tip.value.setdetails({ isshow: false })

					console.log(code);
					details.scancode = code
					scandata()
				}
			})
			// #endif

			// 初始化请求页面数据
			let data = {
				reservationId: details.items.id,
				completecode: details.orderType,
				orderCode: details.inputtxt
			}
			details.datalist = []

			const promise1 = signfororder(data, { isShowLoading: false })
			const promise2 = signforinventory(data, { isShowLoading: false })

			uni.showLoading()
			const [response, response1] = await Promise.all([promise1, promise2])
			// 零担和定制品
			// let response = null
			// response = await signfororder(data)
			if (response.code !== 200) return
			details.zeroArr = []
			details.orderArr = []
			if (response.data && response.data) response.data.forEach(val => {
				// 零担订单
				if (val.isZero === '1') return details.zeroArr.push(val)

				// 异常签收
				val.abnormalSignature = 0
				// 异常装车
				val.abnormalLoading = 0
				val.distributionAppParcelListVOS.forEach(value => {
					if (Number(value.isAbnnormalSigning) === 1) val.abnormalSignature += 1
					if (Number(value.isAbnormalLoading) === 1) val.abnormalLoading += 1
				})

				details.orderArr.push(val)
			})
			// 库存品
			// let response1 = await signforinventory(data)
			if (response1.code !== 200) return
			if (response1.data) details.stockArr = response1.data || []

			computedNum()

			// 定制品
			if (details.orderStatus === 1) details.datalist = details.orderArr
			// 零担
			else if (details.orderStatus === 2) details.datalist = details.zeroArr
			// 库存品
			else details.datalist = details.stockArr
		} catch (err) {
			console.log('err :>> ', err);
			//TODO handle the exception
		} finally {
			await nextTick()
			uni.hideLoading()
		}
	})

	// onHide(() => {
	// 	uni.$off('scancodedate')
	// })

	onMounted(async () => {
		await nextTick()
		utils.getViewDistanceFormTop('.scve').then(res => {
			console.log('res :>> ', res);
			details.scrollHeight = res
		})
	})

	function goorderdetail(item) {
		uni.navigateTo({
			url: '/pagesHome/pages/orderDetails/orderDetails?orderCode=' + item.orderCode
		})
	}

	/** 根据包件扫描 */
	const handlePackageScan = () => {
		uni.navigateTo({
			url: '/pagesHome/pages/signPackageScan/signPackageScan?item=' + JSON.stringify(details.items) + '&deliveryId=' + details.deliveryId
		})
	}

	/** 计算数据 */
	function computedNum() {
		const _arr = [...details.orderArr, ...details.zeroArr, ...details.stockArr]

		details.Plannednub = 0
		details.signNub = 0

		for (let item of _arr) {
			details.Plannednub += item.reservationNum
			details.signNub += item.signforNub
		}
	}

	// 页面下拉刷新
	onPullDownRefresh(async () => {
		await initpage()
		// 关闭下拉动画
		uni.stopPullDownRefresh()

	})
	async function scandata() {
		let data = {
			barcode: details.scancode,
			deliveryId: details.deliveryId,
			reservationId: details.id,
		}
		// 定制品
		if (Number(details.orderStatus) == 1) {
			let response = await signforsignfor(data)
			console.log(response);
			if (response.code === 200) {
				// const num = details.datalist.reduce((curr, item) => curr + item.signforNub, 0)
				// #ifdef APP
				// utils.ttsspke(num + '件')
				// #endif
			}
			else if (response.code == 3006) {
				// #ifdef APP
				utils.ttsspke('是否异常签收')
				// #endif
				tip.value.setdetails({
					isshow: true,
					content: '请确认是否异常签收',
					success: async () => {
						let data = {
							barcode: details.scancode,
							deliveryId: details.deliveryId,
							reservationId: details.id
						}
						let response = await signforsignforcontinue(data)
						if (response.code !== 200) return
						console.log(response);
						uni.showToast({
							title: response.msg,
							icon: 'none'
						})
						initpage()
						tip.value.setdetails({ isshow: false })
					},
					cancel: () => {
						tip.value.setdetails({ isshow: false })
					},
					close: () => {
						tip.value.setdetails({ isshow: false })
					}
				})

				return
			} else {
				uni.showToast({
					title: response.msg,
					icon: 'none'
				})
			}
		} else if (Number(details.orderStatus) === 3) {
			// data.barcode="23072405915-2"
			let response = await signforsignforIn(data)
			console.log(response);
			if (response.code == 3006) {
				tip.value.setdetails({
					isshow: true,
					content: '请确认是否异常签收',
					success: async () => {
						let data = {
							barcode: details.scancode,
							deliveryId: details.deliveryId,
							reservationId: details.id
						}
						let response = await signforsignforcontinue(data)
						console.log(response);
						if (response.code !== 200) return
						uni.showToast({
							title: response.msg,
							icon: 'none'
						})
						initpage()
						tip.value.setdetails({ isshow: false })
					},
					cancel: () => {
						tip.value.setdetails({ isshow: false })
					},
					close: () => {
						tip.value.setdetails({ isshow: false })
					}
				})
				return
			} else {
				uni.showToast({
					title: response.msg,
					icon: 'none'
				})
			}
		}
		initpage()
	}
	function showsdqs() {
		tiplists.value.setdetails({
			isshow: true,
			tipstate: 1,
			title: '请输入扫描的码',
			placeholder: '请输入扫描的码',
			inputtext: '',
			success: (detail) => {
				details.scancode = detail.inputtext
				scandata()
				tiplists.value.setdetails({ isshow: false })
			},
			cancel: () => {
				tiplists.value.setdetails({ isshow: false })
			},
			close: () => {
				tiplists.value.setdetails({ isshow: false })
			}
		})
	}
	function setorderStatus(state : number) {
		details.orderStatus = state
		// initpage()
		// 定制品
		if (details.orderStatus === 1) {
			details.datalist = details.orderArr
			// #ifdef APP
			utils.ttsspke('请扫描包条码')
			// #endif
		}
		// 零担
		else if (details.orderStatus === 2) {
			details.datalist = details.zeroArr
			// #ifdef APP
			utils.ttsspke('请输入数量')
			// #endif
		}
		// 库存品
		else {
			details.datalist = details.stockArr
			// #ifdef APP
			utils.ttsspke('请输入库存品')
			// #endif
		}
	}
	async function initpage() {
		try {
			uni.showLoading({
				mask: true
			})
			details.listcheckindex = -1

			let data = {
				reservationId: details.id,
				completecode: details.orderType,
				orderCode: details.inputtxt,
			}
			details.datalist = []
			let response = null;
			// 定制品和零担
			if (details.orderStatus == 1 || details.orderStatus === 2) {
				response = await signfororder(data)
				if (response.code !== 200) return
				details.zeroArr = []
				details.orderArr = []
				response.data.forEach(val => {
					// 零担订单
					if (val.isZero === '1') return details.zeroArr.push(val)

					// 异常签收
					val.abnormalSignature = 0
					// 异常装车
					val.abnormalLoading = 0
					val.distributionAppParcelListVOS.forEach(value => {
						if (value.isAbnnormalSigning === 1) val.abnormalSignature += 1
						if (value.isAbnormalLoading === 1) val.abnormalLoading += 1
					})

					console.log('val :>> ', val);

					details.orderArr.push(val)
				})
			}
			// 库存品
			else if (details.orderStatus == 3) {
				response = await signforinventory(data)
				if (response.code !== 200) return
				details.stockArr = response.data || []
			}
			// 定制品
			if (details.orderStatus === 1) details.datalist = details.orderArr
			// 零担
			else if (details.orderStatus === 2) details.datalist = details.zeroArr
			// 库存品
			else details.datalist = details.stockArr
		} catch (err) {
			console.log('err :>> ', err);
			//TODO handle the exception
		} finally {
			computedNum()
			uni.hideLoading()
			return null
		}
	}
	function setcheckindex(index : number) {
		if (details.listcheckindex == index) {
			details.listcheckindex = -1
		} else {
			details.listcheckindex = index
		}

	}
	function checktype(e) {
		if (e == '') {
			details.schanvalue = ''
			details.orderType = ''
			return
		}
		details.typearr.map(item => {
			if (item.value == e) {
				details.schanvalue = item.label
				details.orderType = item.value
			}
		})
	}

	function checkphon(item : object, index : number) {
		console.log('item :>> ', item);
		// 零担订单           
		if (item.isZero === '1') {
			const inpList = item.distributionParcelNumberVOS.map(val => {
				return {
					id: val.parcelListId,
					title: val.firsts,
					value: val.signingNum,
					maxNum: val.reservationNum,
					minNum: 0,
					type: 'Number',
					disabled: (val.signingNum === val.reservationNum),
					allocationId: val.allocationId,
					orderCode: val.orderCode,
					stockArticleId: val.stockArticleId
				}
			})

			// 提交模式
			tiplists.value.setdetails({
				title: '设置零担物料数量',
				isshow: true,
				tipstate: 4,
				inpList,
				inputtext: '',
				confirmTxt: '确认',
				isonecheck: true,
				success: async (deta) => {
					try {
						if (deta.inpList.every(val => val.disabled)) return tiplists.value.setdetails({ isshow: false })

						if (deta.inpList.length === 0 || item.completeStact) return tiplists.value.setdetails({ isshow: false })
						uni.showLoading({
							mask: true,
							title: "提交中"
						})
						let data = {
							reservationId: details.items.id,
							deliveryId: details.deliveryId,
							orderId: deta.inpList[0].stockArticleId,
							loadingId: uni.getStorageSync('checkvehicle').id,
							parcelListDTOS: []
						}
						data.parcelListDTOS = deta.inpList.map(val => {
							console.log('val :>> ', val);
							return {
								parcelListId: val.id,
								stockArticleId: val.stockArticleId,
								signingNum: val.value,
							}
						})

						const res = await signforZeroSignfor(data)
						if (res.code !== 200) return
						if (res.audio) {
							// #ifdef APP
							utils.ttsspke(res.audio)
							// #endif
						}
						initpage()
					} catch (err) {
						console.log('err :>> ', err);
						//TODO handle the exception
					} finally {
						uni.hideLoading()
						tiplists.value.setdetails({ isshow: false })

					}
				},
				cancel: (details) => {
					tiplists.value.setdetails({ isshow: false })
				},
				close: (details) => {
					tiplists.value.setdetails({ isshow: false })
				}
			})



			return
		}
		// details.listcheckindex=index
		if (details.listcheckindex == index) {
			details.listcheckindex = -1
		} else {
			details.listcheckindex = index
		}
	}
	const { listcheckindex, inputtxt, orderStatus, datalist, items, typearr, schanvalue } = toRefs(details)
</script>

<style lang="scss" scoped>
	.butlur {
		width: 200upx !important;
		height: 64upx !important;
		background: #D3832A;
		border-radius: 8upx;
		display: flex;
		align-items: center;
		justify-content: center;
		font-size: 32upx;
		font-weight: 400;
		color: #FFFFFF;
	}

	.xialaxz {
		zoom: 0.9;
		display: flex;
		flex-direction: column;

		>view {
			display: flex;
			align-items: flex-start;
			justify-content: space-between;
			border-top: 2upx solid #00000010;
			padding: 20upx 0;
			box-sizing: border-box;
			font-size: 28upx;
			color: #092C4D;

			>view {
				word-wrap: break-word;
				word-break: break-all;
				margin-right: 20upx;

				&:nth-last-child(1) {
					margin-right: 0upx;
				}
			}
		}
	}

	.tabtip {
		display: flex;
		align-items: center;
		justify-content: space-between;

		>view {
			width: 50%;
			display: flex;
			align-items: center;
			justify-content: center;
			background-color: #ffffff;
			font-size: 32upx;
			font-weight: 400;
			color: #90A0AF;

			>view {
				height: 70upx;
				border-bottom: 8upx solid #ffffff;
				display: flex;
				align-items: center;
				justify-content: center;
			}
		}

		.xz {
			color: #D3832A;
			border-bottom: 8upx solid #D3832A;
			// border-radius: 5upx;
		}
	}

	.scve {
		width: 100%;
		height: 62.2vh;
		margin-top: 20upx;

		.mabx {
			display: flex;
			flex-direction: column;
			align-items: center;

			>.itec {
				width: 686upx;
				// height: 176upx;
				background: #FFFFFF;
				border-radius: 8upx;
				padding: 20upx;
				box-sizing: border-box;
				position: relative;
				margin-bottom: 20upx;

				&:nth-last-child(1) {
					margin-bottom: 0;
				}

				>.contenbx1 {
					display: flex;
					align-items: center;
					justify-content: space-between;
					font-size: 28upx;
					color: #092C4D;
					margin-bottom: 20upx;

					&:nth-last-child(2) {
						margin-bottom: 0;
					}

					>view {
						flex: 1;
					}
				}

				.tip {
					position: absolute;
					right: 0;
					top: 0;
					width: 96upx;
					height: 48upx;
					border-radius: 0 8upx 0 8upx;
					display: flex;
					align-items: center;
					justify-content: center;
					font-size: 24upx;
				}

				.tp1 {
					background-color: #0086F120;
					color: #0086F1;
				}

				.tp2 {
					background-color: #F8544B20;
					color: #F8544B;
				}

				.tp3 {
					background-color: #FA8C1620;
					color: #FA8C16;
				}
			}
		}
	}

	.hdstop {
		width: 100%;
		padding: 20upx;
		background-color: #fff;
		box-sizing: border-box;
		font-size: 28upx;
		font-weight: 400;
		color: #092C4D;

		>.khxb {
			display: flex;
			align-items: flex-start;
			margin-bottom: 10upx;
			flex-wrap: wrap;

			>view {
				width: 50%;
				margin-bottom: 20upx;
			}
		}

		>.tps {
			display: flex;
			align-items: center;
			justify-content: space-around;

			>view {
				display: flex;
				align-items: center;
				flex-direction: column;

				&:nth-of-type(1) {
					>view:nth-of-type(2) {
						color: #092C4D;
					}
				}

				&:nth-of-type(2) {
					>view:nth-of-type(2) {
						color: #0086F1;
					}
				}

				&:nth-of-type(3) {
					>view:nth-of-type(2) {
						color: #3AD8BC;
					}
				}

				&:nth-of-type(4) {
					>view:nth-of-type(2) {
						color: #FA8C16;
					}
				}

				>view:nth-of-type(2) {
					font-size: 36upx;
					font-weight: 400;
					margin-top: 10upx;
				}
			}
		}
	}

	.scinp {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 12upx 32upx;
		box-sizing: border-box;
		background-color: #ffffff;
		border-top: 3upx solid #EEEEEE;

		>view:nth-of-type(1) {
			font-size: 28upx;
			font-weight: 400;
			color: #092C4D;
		}

		.inputs {
			width: 276upx;
			height: 64upx;
			background: #F5F5F6;
			border-radius: 8upx;
			opacity: 1;
			border: 2upx solid #EEEEEE;
			padding: 10upx;
			box-sizing: border-box;
			font-size: 24upx;
			font-weight: 400;
			color: #AFB4BA;

			>input {
				flex: 1;
				font-size: 24upx;
				color: #092C4D;
			}
		}

		.btscan {
			width: 128upx;
			height: 64upx;
			background: #D3832A;
			border-radius: 8upx;
			display: flex;
			align-items: center;
			justify-content: center;
			font-size: 32upx;
			font-weight: 400;
			color: #FFFFFF;
		}
	}

	.uni-table-scroll {
		zoom: 0.9;
	}

	.uni-table-td,
	.uni-table-th {
		padding: 10upx;
	}

	.active {
		background-color: #ff4344;

		// h5 和 app兼容不一样
		// app
		view {
			color: #fff;
		}

		// h5
		td {
			color: #fff;
		}
	}

	.isScan {
		background: var(--subjectColor);
		color: #fff;
	}

	.uni-table .active:hover {
		background: #ff4344 !important;
	}

	// 跳转详情按钮
	.jumpBtn {
		position: fixed;
		bottom: 10upx;
		padding: 20upx 60upx;
		border-radius: 5upx;
		background: var(--subjectColor);
		color: #fff;
		left: 50%;
		transform: translateX(-50%);
	}

	// 底部占位元素
	.footer_container {
		height: 150upx;
	}
</style>