<template>
	<view class="content">
		<com-navbar :leftIcon="false" bgColor="#fff" title="需求" :titleStyle="{ color: '#000000', fontSize: '34rpx' }" />
		<view></view>
		<view class="content-tabs" :style="{ top: `calc(${globalData.statusBarHeight}rpx + 122rpx)` }">
			<view class="content-tabs-text" v-for="(v,index) in list" @click="jump(index)" :key="index">
				<view class="" :style="subscript == index?'color: #000000;' : 'color: #444444;'">
					{{v.name}}
				</view>
				<view v-show="subscript == index" class="content-tabs-text-area"></view>
			</view>
		</view>
		<template v-if="statusNeedList && statusNeedList.length">
			<comindex :list="statusNeedList" class="content-mindex" :subscript='subscript' @getVal="handleStatus">
			</comindex>
		</template>
		<view v-else class="diagram">
			<image src="@/static/icon/qst.png" mode=""></image>
			<view class="">
				暂无数据
			</view>
		</view>
		<com-tabbar :list=" [{
					name: '首页',
					icon: '/static/tabbar/tb1.png', 
					selectIcon:'/static/tabbar/td1.png', 
					url: '/pages/home/index',
					type: 'type'
				}, {
					name: '我的需求', 
					icon: '/static/tabbar/tb2.png',
					selectIcon: '/static/tabbar/td2.png', 
					url: '/pages/demand/index',
					type: 'demand'
				}, {
					name: '发布', 
					icon: '/static/tabbar/fb.png',
					selectIcon:'/static/tabbar/fb.png', 
					url: '/pages/release/index', 
					type: 'type'
				}, {
					name: '动态',
					icon: '/static/tabbar/tb3.png', 
					selectIcon: '/static/tabbar/td3.png', 
					url: '/pages/order/index',
					type: 'type'
				}, {
					name:'我的' ,
					icon:'/static/tabbar/tb4.png' ,
					selectIcon:'/static/tabbar/td4.png', 
					url: '/pages/my/index',
					type: 'type'
				}]"></com-tabbar>
	</view>
</template>

<script>
	import {
		myNeedList,
		orderDetailList,
		removeOrderFunction,
		refundFunction,
		applyRefund
	} from '../../api/system/index.js'
	import apiBaseConfig from '@/config/index.js';
	import uniGo from '@/utils/unIGO.js';
	import comindex from '@/pages/demand/components/index.vue'
	export default {
		data() {
			return {
				imgBgUrl: apiBaseConfig.imgBgUrl,
				globalData: getApp().globalData,
				title: 'Hello',
				arr: [],
				list: [{
					name: '已发布'
				}, {
					name: '已驳回'
				}, {
					name: '待支付'
				}, {
					name: '已接单'
				}],
				subscript: '0', //状态
				needInfo: {
					pageSize: 10,
					pageNum: 1,
					status: 0,
					deleteStatus: 0,
					orderByColumn: 'modifyTime',
					isAsc: 'desc'
				},
				statusNeedList: []
			}
		},
		components: {
			comindex
		},
		onLoad(option) {
			if (option.id) {
				this.subscript = option.id
			}
		},
		onShow() {
			this.getMyNeedList()
		},
		methods: {
			async getMyNeedList() {
				let that = this
				that.needInfo.status = that.subscript
				that.statusNeedList = []
				if (that.subscript == 3) {
					that.$delete(that.needInfo, "status")
					that.$set(that.needInfo, 'statusList', '3,5,6')
				} else {
					that.$delete(that.needInfo, "statusList")
				}
				const data_back = await orderDetailList(that.needInfo)
				const {
					code,
					total,
					rows
				} = data_back
				if (code == 200) {
					if (total > 0) {
						that.statusNeedList = rows
					} else {
						that.statusNeedList = []
					}
				}

			},
			jump(ind) {
				let that = this
				this.subscript = ind
				that.getMyNeedList()
			},
			// 取消订单接口
			async handleCancle(id) {
				let that = this
				const back_data = await removeOrderFunction({
					id: id
				})
				console.log(back_data, '取消')
				const {
					code
				} = back_data
				if (code == 200) {
					uni.showToast({
						title: '取消成功!',
						icon: 'none',
						duration: 2000,
						success() {
							setTimeout(() => {
								that.getMyNeedList()
							}, 1000)
						}
					})
				}
			},
			// 立即退款接口
			async handleRefund(id, price) {
				const data_back = await refundFunction({
					refundeAmount: price,
					orderId: id
				})
				console.log(data_back, '退款')
				const {
					code
				} = data_back
				if (code == 200) {
					uni.showToast({
						title: '退款成功!',
						icon: 'none',
						duration: 2000,
						success() {
							setTimeout(() => {
								that.getMyNeedList()
							}, 1000)
						}
					})
				}
			},
			//申请退款接口
			async applyRefundFun(id){
				let that = this
				const data_back = await applyRefund({id:id,status:'5'})
				const {code} = data_back
				if(code === 200){
					uni.showToast({
						title: '提交申请成功!',
						icon: 'none',
						duration: 2000,
						success() {
							setTimeout(() => {
								that.getMyNeedList()
							}, 1000)
						}
					})
				}
			},
			// 取消订单2 立即退款3
			handleStatus(val, id, price) {
				let that = this
				if (val == 2) {
					that.handleCancle(id)
				} else if (val == 3) {
					// that.handleRefund(id, price)
					that.applyRefundFun(id)
				}
			}
		}
	}
</script>

<style lang="scss" scoped>
	.content {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;

		&-tabs {
			display: flex;
			justify-content: space-around;
			width: 100%;
			position: fixed;
			padding-top: 20rpx;
			padding-bottom: 20rpx;
			top: -1rpx;
			z-index: 999;
			background-color: #f3f4f6;

			&-text {
				>view:nth-child(1) {
					font-size: 24rpx;
				}

				&-area {
					width: 75rpx;
					height: 6rpx;
					background: #2C66FF;
				}
			}
		}

		&-mindex {
			margin-top: 60rpx;
			width: 100%;
			margin-bottom: 150rpx;
		}
	}

	.diagram {
		text-align: center;
		margin-top: 335rpx;

		>image {
			width: 396rpx;
			height: 243rpx;
		}

		>view {
			margin-top: 20rpx;
			font-size: 24rpx;
			font-weight: 400;
			color: #444444;
		}
	}
</style>