<template>
	<view>
		<!-- 吸顶搜索框 start -->
		<key-word-search-input
			:inputSearchValue="searchForm.HIDDENDESCR"
			@search="resetList"
			is-has-filter
			@showPicker="showPicker"
		/>
		<!-- 吸顶搜索框 end -->

		<!-- 筛选器 start -->
		<u-picker
			:show="show"
			:columns="columns"
			keyName="name"
			@cancel="show = false"
			@confirm="confirmPicker"
		/>
		<!-- 筛选器 end -->

		<!-- 列表渲染 start -->
		<list :list="list" @scrollToLower="scrollToLower">
			<template #default="{ item }">
				<view class="flex-between main-title">
					<text>被检查单位：{{ item.INSPECTED_CORPINFO_ID_NAME }}</text>
				</view>
				<view class="flex-between mt-10 subtitle">
					<text>检查发起人：{{ item.INSPECTION_ORIGINATOR_NAME }}</text>
					<text>检查类型：{{ item.INSPECTION_TYPE_NAME }}</text>
				</view>
				<view class="flex-between mt-10 subtitle">
					<text
						>检查时间：自 {{ item.INSPECTION_TIME_START }} 至
						{{ item.INSPECTION_TIME_END }} 止</text
					>
				</view>
				<view class="flex-between mt-10 subtitle">
					<text>
						状态：
						<template v-if="item.INSPECTION_STATUS == '0'"
							>待检查人核实</template
						>
						<template v-else-if="item.INSPECTION_STATUS == '1'"
							>检查人核实中</template
						>
						<template v-else-if="item.INSPECTION_STATUS == '2'"
							>待被检查人确认</template
						>
						<template v-else-if="item.INSPECTION_STATUS == '3'"
							>待指派</template
						>
						<template v-else-if="item.INSPECTION_STATUS == '4'"
							>指派中</template
						>
						<template v-else-if="item.INSPECTION_STATUS == '5'"
							>指派完成</template
						>
						<template v-else-if="item.INSPECTION_STATUS == '6'"
							>检查待验收</template
						>
						<template v-else-if="item.INSPECTION_STATUS == '7'"
							>检查已验收</template
						>
						<template v-else-if="item.INSPECTION_STATUS == '8'"
							>已归档</template
						>
						<template v-else-if="item.INSPECTION_STATUS == '-1'"
							>检查人核实打回</template
						>
						<template v-else-if="item.INSPECTION_STATUS == '-2'"
							>被检查人申辩</template
						>
					</text>
				</view>
				<view class="flex-end">
					<view>
						<u-button
							type="primary"
							text="查看"
							size="mini"
							shape="circle"
							@click="fnNavigatorDetail(item.INSPECTION_ID, 'view')"
						/>
					</view>
					<view class="ml-10">
						<u-button
							type="primary"
							text="流程图"
							size="mini"
							shape="circle"
							@click="showFlowChart(item.INSPECTION_ID)"
						/>
					</view>
					<view class="ml-10" v-if="item.INSPECTION_STATUS === '-1'">
						<u-button
							type="primary"
							text="编辑"
							size="mini"
							shape="circle"
							@click="fnNavigatorDetail(item.INSPECTION_ID, 'edit')"
						/>
					</view>
					<view class="ml-10" v-if="item.INSPECTION_STATUS === '-2'">
						<u-button
							type="primary"
							text="申辩处理"
							size="mini"
							shape="circle"
							@click="fnNavigatorPlead(item.INSPECTION_ID)"
						/>
					</view>
				</view>
			</template>
		</list>
		<!-- 列表渲染 end -->
	</view>
</template>

<script>
import { getSafetyenvironmentalList } from "../../api";
import keyWordSearchInput from "@/components/keyWordSearchInput/index.vue";
import List from "@/components/list/list.vue";
import { initiateList } from "../../../Mock/safetyEnvirData";

export default {
	components: { keyWordSearchInput, List },

	data() {
		return {
			show: false,
			columns: [
				[
					{ id: "", name: "请选择" },
					{ id: "0", name: "待检查人核实" },
					{ id: "1", name: "检查人核实中" },
					{ id: "2", name: "待被检查人确认" },
					{ id: "3", name: "已归档" },
					{ id: "4", name: "指派中" },
					{ id: "5", name: "指派完成" },
					{ id: "6", name: "待验收" },
					{ id: "7", name: "已验收" },
					{ id: "-1", name: "检查人核实打回" },
					{ id: "-2", name: "被检查人申辩" },
				],
			],
			searchForm: {
				HIDDENDESCR: "",
			},
			INSPECTION_STATUS: "",
			pageSize: 10,
			currentPage: 1,
			totalPage: 0,
			list: [],
		};
	},
	onNavigationBarButtonTap(e) {
		if (e.index === 0) {
			this.fnNavigatorDetail("", "add");
		}
	},
	computed: {
		userInfo() {
			return this.$store.getters.getUserInfo;
		},
	},
	onShow() {
		this.resetList();
	},
	methods: {
		async getData() {
			uni.showLoading({
				title: "加载中",
			});
			// TODO: 目前因后端资源接口未完成,故注释接口数据接入逻辑
			// let resData = await getSafetyenvironmentalList({
			//   loginUserId: this.userInfo.USER_ID,
			//   supDeparIds: this.userInfo.supDeparIds,
			//   roleLevel: this.userInfo.roleLevel,
			//   KEYWORDS: this.keyword,
			//   INSPECTION_STATUS: this.INSPECTION_STATUS,
			//   showCount: this.pageSize,
			//   currentPage: this.currentPage,
			// });
			// this.list = [...this.list, ...resData.varList];
			// this.totalPage = resData.page.totalPage;

			// 虚拟 mock 数据渲染
			setTimeout(() => {
				this.list = initiateList;
				this.totalPage = initiateList.length;
				uni.hideLoading();
			}, 400);
		},
		resetList() {
			this.pageSize = 10;
			this.currentPage = 1;
			this.list = [];
			this.getData();
		},
		showPicker() {
			this.show = true;
		},
		confirmPicker(e) {
			this.INSPECTION_STATUS = e.value[0].id;
			this.show = false;
			this.resetList();
		},
		fnNavigatorDetail(INSPECTION_ID, type) {
			uni.$u.route({
				url: "/safetyEnvirSubPackages/pages/initiate/detail",
				params: {
					INSPECTION_ID,
					type,
				},
			});
		},
		/**
		 * 申辩处理按钮事件
		 */
		fnNavigatorPlead(INSPECTION_ID) {
			uni.$u.route({
				url: "/safetyEnvirSubPackages/pages/initiate/plead",
				params: {
					INSPECTION_ID,
				},
			});
		},
		/**
		 * 滚动加载数据
		 */
		 scrollToLower() {
			this.currentPage++;
			if (this.totalPage >= this.currentPage) this.getData();
		},
		/**
		 * 查看流程图
		 */
		showFlowChart(id) {
			uni.navigateTo({
				url: "/safetyEnvirSubPackages/pages/initiate/steps?ID=" + id,
			});
		},
	},
};
</script>

<style scoped lang="scss">
.self-time {
	font-size: 14px;
}
</style>
