<template>
	<div class="order-wrapper">
		<!-- <breadcrumb :item-name="['订单管理', '订单列表']"></breadcrumb> -->
		<el-card>
			<div class="tj flex">
				<div class="tj-item">
					<div class="tit">代理订单</div>
					<div class="val">{{tj.agent_order||0}}</div>
				</div>
				<div class="tj-item">
					<div class="tit">异常代理订单</div>
					<div class="val">{{tj.agent_order_error|| 0}}</div>
				</div>
				<div class="tj-item">
					<div class="tit">未使用注册码</div>
					<div class="val">{{tj.code_0|| 0}}</div>
				</div>
				<div class="tj-item">
					<div class="tit">已使用注册码</div>
					<div class="val">{{tj.code_1||0}}</div>
				</div>
			</div>

		</el-card>

	</div>
</template>

<script>
	import {
		mapState,
		mapMutations
	} from 'vuex';

	import {
		createCode,
		getUserList,
		getIndex,
		dataCount
	} from '@/request/agent.js'
	import {
		getRechangeList,
		rechange,
		getTokenList,
		createOrder,
		getUserInfo,
		payAuto,

	} from '@/request/user.js'
	import {
		showTime,
		sj
	} from '@/assets/js/tools.js'
	import {
		imgs
	} from '@/assets/js/admun.js'
	import {
		set
	} from 'core-js/library/core/dict';
	export default {
		components: {
			// SlideVerify
		},
		name: 'Order',
		data() {
			return {
				showStop: false,
				dialogVisible: false,
				xdForm: {
					phone: '',
					address: '',
					minPrice: '',
					maxPrice: ''
				},
				imgs: imgs,
				msg: '888',
				loading: false,
				formLabelWidth: '100px',
				form: {
					recharge_num: '',
					image: ''
				},
				dialogTableVisible: false,
				xiadanDia: false, //下单弹窗
				queryInfo: {
					keyword: '',
					page: 1,
					limit: 10
				},
				list: [],
				total: 0,
				dataloading: false,
				headers: {},
				tokenList: [],
				token: {},
				ybToken: {},
				minPriceList: [],
				maxPriceList: [],
				tipList: [],
				auto_order: false, //是否启动自动下单
				tj: {}
			}
		},
		computed: {
			...mapState(['baseInfo', 'userInfo'])
		},
		created() {
			// this.getUserInfo()
			// this.getIndex()
			// this.getList()
			// this.getTokenList()
			this.dataCount()
			this.headers['token'] = window.sessionStorage.getItem('token')
			// console.log(this.imgs, 'imgs');
		},
		methods: {
			...mapMutations(['setBaseInfo', 'setUserInfo', 'jUserMoney']),
			dataCount() {
				dataCount().then(res => {
					console.log(res);
					this.tj = res.data
				})
			},
			stopAuto() {
				this.auto_order = false
				this.showStop = false
			},
			getUserInfo() {
				getUserInfo().then(res => {
					this.setUserInfo(res.data)
				})
			},
			pd(arr, i = 0) {
				let that = this
				let len = arr.length - 1
				if (i <= len) {
					if (i == 0) {
						that.tipList.unshift(arr[i])
						that.pd(arr, ++i)
					} else {
						setTimeout(() => {
							that.tipList.unshift(arr[i])
							if (arr[i].title.indexOf('支付金额：') != -1) {
								// let price = zfInfo.title.replace(/支付金额：/,'')*1
								that.jUserMoney(-1 * arr[i].title.replace(/支付金额：/, ''))
							}
							that.pd(arr, ++i)
						}, arr[i - 1].time * 1000)
					}
				} else {
					that.xdForm.phone = ''
					that.xdForm.address = ''
					that.loading = false
					if (that.auto_order) {
						that.chooseNext()
					} else {
						that.xdForm.minPrice = ''
						that.xdForm.maxPrice = ''
					}
				}
			},
			ktAuto() {
				let that = this
				if (that.userInfo.money * 1 < that.baseInfo.auto_order * 1) {
					return that.$msg.error('您当前余额不足')
				}
				payAuto().then(res => {
					that.getUserInfo()
					that.dialogVisible = false
					that.auto_order = true
					that.chooseNext()
					//自动下单启动
				})
			},
			openZd() {
				let that = this
				if (that.loading) {
					return that.$msg.error('当前处于下单状态，请等待下单完成')
				}
				if (that.userInfo.auto_order == 0) {
					that.dialogVisible = true
				} else {
					//自动下单启动
					if (that.xdForm.minPrice == '') {
						return that.$msg.error('请选择最低价格')
					}
					if (that.xdForm.maxPrice == '') {
						return that.$msg.error('请选择最高价格')
					}
					that.auto_order = true
					that.chooseNext()


				}
			},
			//选择下一个可用token
			chooseNext() {
				let that = this
				that.token = that.tokenList.find(item => item.bl == false)
				if (that.auto_order) {
					if (that.token) {
						if (that.xdForm.minPrice == '') {
							return that.$msg.error('请选择最低价格')
						}
						if (that.xdForm.maxPrice == '') {
							return that.$msg.error('请选择最高价格')
						}
						that.sjAddress()
						that.sjPhone()
						// that.$msg.success('开启自动下单，请勿进行操作')
						// 启动
						that.createOrder()
					} else {
						//停止
						that.auto_order = false
					}

				}
			},
			createOrder() {
				let that = this
				if (that.loading) {
					return
				}
				if (that.token.bl) {
					if (that.auto_order) {

					} else {
						return this.$msg.error('该TOKEN，当天使用次数已满!')
					}
				}
				if (that.xdForm.minPrice == '') {
					return that.$msg.error('请选择最低价格')
				}
				if (that.xdForm.maxPrice == '') {
					return that.$msg.error('请选择最高价格')
				}
				if (that.xdForm.minPrice * 1 > that.xdForm.maxPrice * 1) {
					return that.$msg.error('最高价格需大于最低价格')
				}
				if (that.xdForm.phone == '') {
					return that.$msg.error('请输入手机号码')
				}
				if (!/(^1[2|3|4|5|6|7|8|9][0-9]{9}$)/.test(that.xdForm.phone)) {
					return that.$msg.error('请输入正确的手机号码')
				}
				if (that.xdForm.address == '') {
					return that.$msg.error('请输入收货地址')
				}
				that.loading = true
				createOrder({
					min_price: that.xdForm.minPrice,
					max_price: that.xdForm.maxPrice,
					address: that.xdForm.address,
					phone: that.xdForm.phone,
					token: that.token.token
				}).then(res => {

					//更新token
					that.token.count++
					if (that.token.count == 2) {
						that.token.bl = true
					}
					// 加载tip

					that.pd(res.data, 0)

				}).catch(err => {
					console.log(err);
					that.loading = false
				})
			},
			getIndex() {
				getIndex().then(res => {
					this.setBaseInfo(res.data)
					let arr = [],
						arr2 = []
					res.data.price_min.forEach(item => {
						let a = {
							value: item * 1,
							label: item
						}
						arr.push(a)
					})
					res.data.price_max.forEach(item => {
						let a = {
							value: item * 1,
							label: item
						}
						arr2.push(a)
					})
					this.minPriceList = arr
					this.maxPriceList = arr2
				})
			},
			showTime,
			sjPhone() {
				if (this.loading) {
					return
				}
				this.xdForm.phone = sj(this.baseInfo.sys_phone)
			},
			sjAddress() {
				if (this.loading) {
					return
				}
				this.xdForm.address = sj(this.baseInfo.system_address)
			},
			closeXd() {
				this.xiadanDia = false
				this.xdForm.phone = ''
				this.xdForm.address = ''
			},
			onSuccess() {
				console.log('success');
				this.token = this.ybToken
				this.xdForm.minPrice = ''
				this.xdForm.maxPrice = ''
				this.dialogTableVisible = false
			},
			onFail() {
				console.log('fail');
			},
			onRefresh() {
				console.log('refresh');
			},
			getTokenList() {
				getTokenList().then(res => {
					this.tokenList = res.data.map(item => {
						item.count = item.count * 1
						return item
					})
					// 获取第一次选择的token
					this.chooseNext()
					console.log(this.token, 'this.token');
				})
			},
			chooseToken(item) {
				// console.log(item,'ddddd');
				if (this.loading) {
					return
				}
				if (item.bl) {
					return this.$msg.error('该TOKEN，当天使用次数已满!')
				}
				this.ybToken = item
				this.dialogTableVisible = true
			},
			handleAvatarSuccess(res, file) {
				this.form.image = res.data.fullurl;
			},
			beforeAvatarUpload(file) {
				// const isJPG = file.type === 'image/jpeg/png';
				// const isLt2M = file.size / 1024 / 1024 < 2;

				// if (!isJPG) {
				// 	this.$message.error('上传头像图片只能是 JPG 格式!');
				// }
				// if (!isLt2M) {
				// 	this.$message.error('上传头像图片大小不能超过 2MB!');
				// }
				// return isJPG && isLt2M;
				return true
			},
			handleAvatarError() {

			},
			getList(type) {
				let that = this
				if (type == 'reload') {
					that.queryInfo.page = 1
					that.dataloading = false
				}
				if (that.dataloading) {
					return
				}

				that.dataloading = true
				getRechangeList(that.queryInfo).then(res => {
					that.total = res.data.count
					that.list = res.data.data
					that.dataloading = false
				}).catch(err => {
					that.dataloading = false
				})
			},
			handleSizeChange(newPageSize) {
				this.queryInfo.limit = newPageSize
				this.getList()
			},
			handleCurrentChange(newPageNum) {
				this.queryInfo.page = newPageNum
				this.getList()
			},
		},

	}
</script>

<style lang="scss" scoped>
	.tj {
		width: 500px;
		flex-wrap: wrap;

		.tj-item {
			width: 120px;
			height: 120px;
			border-radius: 20px;
			box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.4);
			display: flex;
			flex-direction: column;
			justify-content: center;
			align-items: center;
			margin: 20px;

			.val {
				margin-top: 20px;
				color: rgb(15, 131, 254);
			}
		}
	}
</style>