<template>
	<div class="app-container">
		<el-row type="flex" justify="space-between" style="margin-bottom: 20px">
			<div class="grid-content bg-purple">
				<div class="grid-content bg-purple" style="margin-left: 30px">
					<el-input placeholder="请输入出票人名称" v-model="search" @change="Search" clearable style="width: 100%">
						<i slot="prefix" class="el-input__icon el-icon-search"></i>
					</el-input>
				</div>
			</div>
			<div class="grid-content bg-purple">
				<el-dropdown @command="handleCommand">
					<div class="pulldown">
						<span class="el-dropdown-link" v-if="!status"> 出票人状态 </span>
						<span class="el-dropdown-link" v-if="status">
							{{ status }}
						</span>
						<i class="el-icon-arrow-down el-icon--right"></i>
					</div>
					<el-dropdown-menu slot="dropdown">
						<el-dropdown-item command="出票人状态">出票人状态</el-dropdown-item>
						<el-dropdown-item command="正常">正常</el-dropdown-item>
						<el-dropdown-item command="删除">删除</el-dropdown-item>
					</el-dropdown-menu>
				</el-dropdown>
			</div>
			

			<!-- <el-col :xs="24" :sm="11" :md="9" :lg="7" :xl="5" >
        <div class="grid-content bg-purple">
          <div class="block">
            <el-date-picker v-model="value2" type="daterange" align="right" unlink-panels range-separator="至"
              start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions">
            </el-date-picker>
          </div>

        </div>
      </el-col> -->

			<!-- <el-col :span="1">
        <div class="grid-content bg-purple"></div>
      </el-col> -->
			<div class="grid-content bg-purple" style="display: flex; justify-content: flex-end">
				<el-button type="primary" @click="addTicketdrawer">新增出票人</el-button>
				<el-button type="primary" @click="Exports">批量导出</el-button>
				<!--         <el-button type="success">复原</el-button>
          <el-button type="danger">删除</el-button> -->
			</div>
		</el-row>
		<el-table v-loading="listLoading" :data="temporaryList" element-loading-text="Loading" border fit
			highlight-current-row @select="handleSelectionChange" @select-all="handleAll">
			<el-table-column align="center" type="selection"> </el-table-column>
			<el-table-column label="出票人名称" align="center" prop="name">
				<!-- <template slot-scope="scope" >

        </template> -->
			</el-table-column>
			<el-table-column label="账号" align="center" prop="bankAccount">
				<!-- <template slot-scope="scope">
          XXXXXXXXXXX
        </template> -->
			</el-table-column>
			<el-table-column align="center" prop="bankName" label="开户行名称">
				<!-- <template slot-scope="scope">
          <span>XXX</span>
        </template> -->
			</el-table-column>

			<el-table-column align="center" prop="statusText" label="状态">
			</el-table-column>
			<el-table-column align="center" prop="createdAt" label="时间">
				<!-- <template slot-scope="scope">
          <i class="el-icon-time" />
          <span>{{ scope.row.display_time }}</span>
        </template> -->
			</el-table-column>
			<el-table-column align="center" prop="created_at" label="操作" width="250">
				<template slot-scope="scope">
					<el-tag type="primary" style="cursor: pointer; margin-right: 15px" @click="todetail(scope.row.id)">
						详情</el-tag>
					<el-tag type="success" style="cursor: pointer; margin-right: 15px" @click="recover(scope.row.id)">恢复
					</el-tag>
					<el-tag type="danger" style="cursor: pointer; margin-right: 15px"
						@click="deletestatus(scope.row.id)">删除</el-tag>
				</template>
			</el-table-column>
		</el-table>
		<div class="pagesip">
			<el-button type="primary" size="small"
				style="background-color: #d8ab5a; border-color: #d8ab5a; margin: 0 20px" @click="jumpFirstPage">首页
			</el-button>
			<el-pagination background @current-change="handleCurrentChange" layout="prev, pager, next"
				:total="list.length" :page-size="10" prev-text="上一页" next-text="下一页" :hide-on-single-page="false"
				ref="pagination">
			</el-pagination>
			<el-button type="primary" size="small"
				style="background-color: #d8ab5a; border-color: #d8ab5a; margin: 0 20px" @click="jumpLastPage">尾页
			</el-button>
		</div>
	</div>
</template>

<script>
	import {
		getList
	} from "@/api/table";
	import {
		dataConversionUtil
	} from '../../utils/Excel.js'
	export default {
		filters: {
			statusFilter(status) {
				const statusMap = {
					published: "success",
					draft: "gray",
					deleted: "danger",
				};
				return statusMap[status];
			},
		},
		data() {
			return {
				request: {
					pageIndex: 1,
					pageSize: 100,
					// startTime:'',
					// endTime:'',
					// name:'',
					// status:,
				},
				srcList: [],
				list: [],
				temporaryList: [],
				listLoading: false,
				status: "",
				hpstatus: "",
				search: "",
				currentPage: 1,
				pagesize: 11,
				checked: "",
				pickerOptions: {
					shortcuts: [{
							text: "最近一周",
							onClick(picker) {
								const end = new Date();
								const start = new Date();
								start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
								picker.$emit("pick", [start, end]);
							},
						},
						{
							text: "最近一个月",
							onClick(picker) {
								const end = new Date();
								const start = new Date();
								start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
								picker.$emit("pick", [start, end]);
							},
						},
						{
							text: "最近三个月",
							onClick(picker) {
								const end = new Date();
								const start = new Date();
								start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
								picker.$emit("pick", [start, end]);
							},
						},
					],
				},
				value1: "",
				value2: "",
			};
		},
		created() {
			// this.fetchData()
		},
		mounted() {
			this.$request({
				url: "/api/Drawer/search",
				method: "post",
				data: this.request,
			}).then((res) => {
				console.log(res.data.result);
				this.list = res.data.result;
				this.getPageData();
			});
		},
		methods: {
			handleSelectionChange(data) {
				this.multipleSelection = data;
				console.log(this.multipleSelection);
			},
			handleAll(data) {
				this.multipleSelection = data
				console.log(this.multipleSelection)
			},
			handleCommand(command) {
				this.status = command;
				if (this.status == "正常" || this.status == "删除") {
					this.temporaryList = this.srcList.filter(
						(item) => item.statusText == this.status
					);
				} else {
					this.temporaryList = this.srcList;
				}
				console.log(this.srcList, "command");
			},
			handlehpCommand(command) {
				this.hpstatus = command;
			},
			addTicketdrawer() {
				this.$router.push({
					path: "/form/addTicketdrawer",
				});
			},
			todetail(id) {
				console.log(id);
				this.$router.push({
					path: "/form/detail",
					query: {
						id: id,
					},
				});
			},
			recover(id) {
				this.$request({
					url: '/api/Drawer/manager',
					method: 'post',
					data: {
						ids:[id],
						operateType: 2
					}
				}).then((res) => {
					if(res.code==200){
						this.$message({
							type:'success',
							message:'恢复成功'
						})
					}else{
						this.$message({
							type:'danger',
							message:'恢复失败'
						})
					}
				})
			},
			deletestatus(id) {
				this.$request({
					url: '/api/Drawer/manager',
					method: 'post',
					data: {
						ids: [id],
						operateType: 1
					}
				}).then((res) => {
					if(res.code==200){
						this.$message({
							type:'success',
							message:'删除成功'
						})
					}else{
						this.$message({
							type:'danger',
							message:'删除失败'
						})
					}
				})
			},
			handleCurrentChange(val) {
				this.currentPage = val;
				this.getPageData();
			},
			jumpFirstPage() {
				this.$refs.pagination.handleCurrentChange(1);
				this.$emit("handleCurrentChange", 1);
			},
			jumpLastPage() {
				let font = this.$refs.pagination;
				let cpage = Math.ceil(font.total / font.pageSize);
				font.handleCurrentChange(cpage);
			},
			getPageData() {
				let start = (this.currentPage - 1) * this.pagesize;
				let end = start + this.pagesize;
				this.srcList = this.list.slice(start, end);
				this.temporaryList = this.srcList;
			},
			Search() {
				if (this.search == "") {
					this.temporaryList = this.srcList;
				} else {
					this.temporaryList = this.list.filter(
						(item) => item.name == this.search
					);
				}
			},
			Exports() {
				var tableHeader = [
					['序号', '出票人名称', '账号', '开户行名称', '状态', '时间'],
				]
				var dataList = []
				this.multipleSelection.forEach((item, index) => {
					dataList.push([index + 1, item.name, item.bankAccount, item.bankName, item.statusText, item
						.createdAt
					]);
				})
				dataConversionUtil.dataToExcel('出票人列表', tableHeader, dataList)
				this.$message.success('导出成功!');

			}
		},
	};
</script>
<style lang="scss">
	.pulldown {
		width: 185px;
		height: 40px;
		border: 1px solid #e8e8e8;
		border-radius: 10px;
		display: flex;
		justify-content: center;
		align-items: center;
		justify-content: space-between;
		padding: 0 20px;
		color: #999999;
	}

	.pagesip {
		width: 100%;
		margin: 20px auto;
		display: flex;
		// align-items: center;
		justify-content: flex-end;
	}

	.el-pagination.is-background .el-pager li:not(.disabled).active {
		background-color: #d8ab5a;
	}

	.el-col {
		margin-bottom: 20px;
	}
</style>
