<template>
	<view class="warp">
		<view class="topInfo">
			<view class="topInfo-item">
				<view class="flex info">
					<view class="logo">
						<image src="../../../static/img/reject.png" mode="" v-if="status == '已驳回'"
							style="height: 40rpx;"></image><!-- 驳回 -->
						<image src="../../../static/img/tongguo.png" mode="" v-if="status == '已通过'"
							style="height: 40rpx;"></image><!-- 通过 -->
						<image src="../../../static/img/daishenhe.png" mode=""
							v-if="status == '审核中' || status == '待决策人审核'" style="height: 40rpx;"></image><!-- 待审核 -->
					</view>
					<view class="infoText">{{status}}</view>
				</view>
				<view class="infoData">{{updateDate}}</view>
			</view>
		</view>
		<view class='content1'>
			<view class='row content-item'>
				<view class="left" style="color: #878C9C ;">仓库</view>
				<view class="right">{{warehouseName}}</view>
			</view>
			<view class="content-item">
				<view v-for="(item,index) in List">
					<view class='row row1'>
						<view class="left title">{{item.paymentNo}}</view>
						<view class="right title">{{item.carNo}}</view>
					</view>
					<view class='row'>
						<view class="left goodsInfoCss">{{item.goodsName}}({{item.netWeight}}kg -
							￥{{item.tidalGrainPrice}})</view>
						<view class="right priceCss">￥{{item.amountIngPayable}}</view>
					</view>
				</view>
			</view>
		</view>
		<view v-if='show' class="shade">
			<view class="wrap">
				<view class="alert-top">
					<view class="title">
						{{title}}
					</view>
					<u-icon name="close" class="close" color="#8890B1" @click="close()"></u-icon>
				</view>
				<view class="u-textarea-style">
					<view class="right-bottom">
						{{auditMind.length}}/100个字
					</view>
					<u-input class="" v-model='auditMind' placeholder="请在此输入审核意见" type="textarea" height="414"
						maxlength="100" />
				</view>
				<view @click='close()' class="cancel">取消</view>
				<view @click='passSubmit()' class="confirm">确定</view>
			</view>
		</view>
		<u-toast ref="uToast" />
		<view style='padding:10px;' class='flex bottom-btn'>
			<!-- getRoles("acquisitionQuality.initial") -->
			<u-button v-if='isSHowBtn' @click='reject' type="error" class="btn1" hover-class='none'>驳回</u-button>
			<u-button v-if='isSHowBtn' @click='pass' type="success" class="btn2">通过</u-button>
		</view>
	</view>
</template>

<script>
	import helper from '@/common/helper.js';
	import {
		mapState
	} from 'vuex';
	export default {
		data() {
			return {
				isSHowBtn: true,
				height: 200,
				autoHeight: true,
				border: false,
				title: '',
				show: false,
				auditMind:'',
				id: "",
				currentPage: 1,
				pageSize: 100,
				List: [],
				status: "",
				updateDate: "",
				warehouseName: "",
				everyCheck: ''
			}
		},
		onBackPress(e) {
			if(this.everyCheck){
				uni.navigateTo({
					url: "/pages/task/my_task"
				})
				return true;
			}
		},
		onLoad(options) {
			this.id = options.id
			this.everyCheck = uni.getStorageSync("everyTask")
			this.isSHowBtn = options.isShowbtn
		},
		onShow(options) {
			this.getList()
		},
		computed: {
			...mapState(['hasLogin', 'userInfo']),
		},
		methods: {
			getList() {
				//查仓库名
				this.$api.doRequest('get', '/paymentManagement/getInfo', {
					id: this.id
				}).then(res => {
					if (res.data.code == 200) {
						this.status = res.data.data.approveStatus
						this.updateDate = res.data.data.updateDate
						this.warehouseName = res.data.data.warehouseName
						this.$api.doRequest('get', '/paymentManagement/selectPaymentManagement', {
							currentPage: this.currentPage,
							pageSize: this.pageSize,
							searchType: '1',//searchType:1待审核
							warehouseName: res.data.data.warehouseName,
							managementType: 1
						}).then(res1 => {
							if (res1.data.code == 200) {
								this.List = res1.data.data.records
							}
						})
					}
				})
			},
			close() {
				this.show = false
			},
			pass() {
				this.show = true
				this.title = '审核意见（通过）'
			},
			reject() {
				this.show = true
				this.title = '驳回原因（驳回）'
			},
			//驳回
			rejectSubmit() {
				if (!this.auditMind) {
					this.$api.msg('驳回原因不能为空！')
				} else {
					var that = this
					that.show = false
					if (this.List.length > 0) {
						uni.showModal({
							content: "确定驳回付款申请？",
							showCancel: true,
							confirmText: '确定',
							success: function(res) {
								if (res.confirm) {
									that.audit(that.List[0], 0, false, '', '')
								}
							}
						})
					}
				}
			},
			//通過
			passSubmit() {
				var that = this
				if (this.title == '驳回原因（驳回）') {
					this.rejectSubmit()
				} else {
					var that = this
					this.show = false
					uni.showModal({
						content: "确定通过付款申请？",
						showCancel: true,
						confirmText: '确定',
						success: function(res) {
							if (res.confirm) {
								that.audit(that.List[0], 0, true)
							}
						}
					})
				}
			},
			audit(item, index, status, status2, reason) {
				uni.showLoading({
					title: "审核中"
				})
				if (this.List.length > 0) {
					if (status == true && item.status == "已驳回") {
						this.$api.doRequest('get', '/paymentManagement/api/openAuditFlow', {
							compId: "2710b21efc1e4393930c5dc800010dc4",
							id: item.id
						}).then(res => {
							if (res.data.code == 200) {
								this.audit(this.List[index + 1], index + 1, status, status2, reason)
							}
						})
					} else {
						this.$api.doRequest('post', '/workflow/api/handle', {
							taskId: item.taskId,
							approved: status,
							auditMind: this.auditMind ? this.auditMind : "",
							needReapply: status2 ? true : false
						}).then(res => {
							if (res.data.code == 200) {
								this.audit(this.List[index + 1], index + 1, status, status2, reason)
							}
						})
					}
				} else {
					if (status == true) {
						this.$api.msg('通过成功')
					} else if (status == false) {
						this.$api.msg('驳回成功')
					}
					let that = this
					setTimeout(function() {

						if (that.everyCheck) {
							helper.setAudit(that.list)
						} else {
							uni.navigateBack()
						}
						uni.hideLoading()
					}, 1000);
				}
			},
		}
	}
</script>

<style scoped lang="scss">
	.warp {
		margin: 10rpx;
		padding: 20rpx 20rpx 240rpx 20rpx;
	}

	.content1 {
		margin-top: 30rpx;

		.content-item {
			border-radius: 20rpx;
			background: white;
			padding: 40rpx 20rpx;
			margin-bottom: 30rpx;
		}

		.title {
			font-size: 32rpx;
			font-weight: 600;
			color: #333333;
			margin: 30rpx 0;
		}

		.goodsInfoCss {
			font-size: 28rpx;
			font-weight: 600;
			color: #878C9C;
			margin: 26rpx 10rpx;
		}

		.priceCss {
			font-size: 40rpx;
			margin: 26rpx 10rpx;
			color: #22C572;
			font-weight: 600;
		}

		.row {
			display: flex;
			justify-content: space-between;
			border-bottom: 1px solid #EEEEEE;

			.right,
			input {
				font-size: 28rpx;
				// color: #333333;
			}
		}
	}

	.bottom-btn {
		width: 100%;
		position: fixed;
		bottom: 0;
		display: flex;
		z-index: 2;
		left: 0;
		background-color: #f8f8f8;
		flex-direction: column;

		.btn1,
		.btn2 {
			width: 100%;
			margin-bottom: 26rpx;
			border-radius: 90rpx;
		}

		.btn1 {
			background: white;
			color: #00C265;
		}
	}

	.row1 {
		border-bottom: 0 !important;
	}

	.topInfo {
		height: 210rpx;
		background: linear-gradient(270deg, #22C572 0%, #34DE8A 100%);
		padding: 30rpx;

		.topInfo-item {
			height: 150rpx;
			background-color: #FFFFFF;
			border-radius: 20rpx;
			padding: 40rpx;

			.logo {
				width: 40rpx;
				height: 40rpx;
				margin-top: 8rpx;
			}

			.infoText {
				font-size: 36rpx;
				font-weight: 600;
				margin-left: 20rpx;
			}

			.infoData {
				color: #878C9C;
				font-size: 26rpx;
				margin-top: 10rpx;
			}
		}
	}

	.shade {
		position: fixed;
		top: 0;
		left: 0;
		height: 100%;
		width: 100%;
		background: rgba(0, 0, 0, 0.4);
		z-index: 3;

		.wrap {
			position: absolute;
			left: 0;
			top: 0;
			right: 0;
			bottom: 0;
			margin: auto;
			background: #fff;
			width: calc(100% - 198rpx);
			height: 700rpx;
			border-radius: 20rpx;

			.alert-top {
				padding: 33rpx;
				display: flex;
				justify-content: center;
				align-items: center;
				position: relative;
			}

			.title {
				font-size: 32rpx;
				font-weight: 600;
				color: #333333;
			}

			.close {
				position: absolute;
				right: 33rpx;
			}
		}
	}

	.cancel,
	.confirm {
		position: absolute;
		display: inline-block;
		width: 50%;
		text-align: center;
		bottom: 0;
		padding: 10px;
		border-top: 1px solid #eee;
		font-size: 34rpx;
	}

	.cancel {
		left: 0;
		border-right: 1px solid #eee;
		color: #AFB3BF;
	}

	.confirm {
		right: 0;
		color: #22C572;
	}
	.u-textarea-style {
		margin: 20rpx;
		background: #F9F9FA;
		border-radius: 10px;
		border: 1px solid #EEEEEE;
		padding: 10rpx 20rpx;
		position: relative;
	
		.right-bottom {
			position: absolute;
			right: 20rpx;
			bottom: 20rpx;
			color: #AFB3BF;
		}
	}

	/deep/.u-input__textarea {
		height: 300rpx !important;
	}
</style>
