<template>
  <el-card :style="{ height: height +'px' }">
    <div style="text-align: center;  padding-top: 30px">
      <b>收银台</b>
    </div>
    <div :style=" { height: height - 60 +'px' }">
      <el-scrollbar wrap-class="scrollbar-wrapper">
        <el-steps
          :active="active"
          finish-status="success"
          style="margin-top: 20px; margin-left: auto; margin-right: auto; width: 80%"
          center
        >
          <el-step title="提交订单" />
          <el-step title="完成支付" />
        </el-steps>
        <div style="margin-top: 20px; margin-left: auto; margin-right: auto; width: 80%;">
          <commit-draft
            v-show="active===0"
            ref="commit"
            :order-data="orderData"
            :system-name="systemName"
            @commit="commit"
          />
          <confirm-draft
            v-show="active===1"
            ref="confirm"
            :order-data="orderData"
            :system-name="systemName"
            :order="order"
            @confirm="confirm"
          />
          <finish-draft v-show="active===2" ref="finish" :finish-status="finishStatus" @finish="finish" />
        </div>
      </el-scrollbar>
    </div>
  </el-card>
</template>

<script>
import { getCommodityDetailByParams } from '@/api/management/goods';
import { PermissionType } from '@/scripts/ConstDic';
import { UrlConfig } from '@/router/index';
import CommitDraft from './commit';
import ConfirmDraft from './confirm';
import FinishDraft from './finish';
import WindowResizeHandler from '@/mixin/WindowResizeHandler';

export default {
	name: 'LessonDetail',
	components: {
		CommitDraft,
		ConfirmDraft,
		FinishDraft
	},
	mixins: [WindowResizeHandler],
	data() {
		return {
			height: '',
			active: -1,
			order: {},
			title: '',
			finishStatus: '02',
			orderData: {},
			routeDict: {
				0: 'commit',
				1: 'confirm',
				2: 'finish'
			}
		};
	},
	computed: {
		systemName() {
			switch (this.$route.query.permissionType) {
			case PermissionType.LESSON: return '教学系统';
			case PermissionType.EXAM: return '考试系统';
			case PermissionType.SIMULATION: return '仿真系统';
			case PermissionType.SCREEN: return '大屏系统';
			}
			return '';
		}
	},
	watch: {
		$route(newVal) {
			this.initLoadPage();
		}
	},
	mounted() {
		this.initLoadPage();
	},
	methods: {
		resizeHandler: function () {
			this.height = this._clientHeight - 61;
		},
		// 加载课程信息
		initLoadPage() {
			const data = {
				mapId: this.$route.query.mapId,
				lessonId: this.$route.params.lessonId,
				productType: this.$route.query.permissionType,
				mapProductCode: this.$route.query.prdCode
			};

			getCommodityDetailByParams(data).then(response => {
				this.active = 0;
				this.orderData = response.data;
			}).catch(() => {
				this.$messageBox('获取课程信息失败');
			});
		},
		// 提交订单后处理
		commit(data) {
			this.active = 1;
			this.order = data;
		},
		// 确认支付后处理
		confirm(data) {
			this.active = 2;
			this.finishStatus = data;
			this.$refs.finish.createCountTimer();
		},
		// 完成跳转处理
		finish(data) {
			this.active = 0;
			const type = this.$route.query.permissionType;
			if (type === PermissionType.LESSON) {
				this.$router.replace({ path: `${UrlConfig.teach.detail}/${this.$route.params.lessonId}` });
			} else if (type === PermissionType.EXAM) {
				this.$router.replace({ path: `${UrlConfig.exam.course}/${this.orderData.lessonId}` });
			} else if (type === PermissionType.SCREEN) {
				this.$router.replace({ path: `${UrlConfig.dp.detail}/${this.$route.params.lessonId}` });
			} else if (type === PermissionType.SIMULATION) {
				this.$router.replace({ path: `${UrlConfig.demonstration.detail}/${this.$route.params.lessonId}` });
			} else {
				this.$router.replace({ path: `/` });
			}
		}
	}
};
</script>
