<template>
	<div class="table-container">
		<vab-query-form>
			<div class="title">
				<div class="left">
					<div class="left-item">
						<div style="width: 70px;">名称：</div>
						<el-input v-model="fuzzyQuery_name" placeholder="请输入" clearable />
					</div>
					<el-button icon="el-icon-search" type="primary" native-type="submit" @click="fetchData">
						查询
					</el-button>
				</div>
				<div class="right">
					<el-button icon="el-icon-plus" type="primary" @click="handleAdd">
						添加成功
					</el-button>
					<el-button icon="el-icon-delete" type="danger" @click="handleDelete">
						删除
					</el-button>
					<UploadExcel style="margin-left: 10px;" @getResult="getMyExcelData"></UploadExcel>
					<ExportExcel :exportList="exportExcel" :useType="'export'" partsName="变电所"></ExportExcel>
					<ExportExcel :exportList="templateExcel" :useType="'template'" partsName="变电所模板"></ExportExcel>
				</div>
			</div>
			<el-table ref="tableSort" v-loading="listLoading" :data="list" :element-loading-text="elementLoadingText"
				:height="height" @selection-change="setSelectRows">
				<el-table-column show-overflow-tooltip type="selection" width="40"></el-table-column>
				<el-table-column show-overflow-tooltip label="id" prop="id" align="center" sortable></el-table-column>
				<el-table-column show-overflow-tooltip label="编码" prop="code" align="center" sortable></el-table-column>
				<el-table-column show-overflow-tooltip label="名称" prop="name" align="center" sortable></el-table-column>
				<el-table-column show-overflow-tooltip label="别名" prop="aname" align="center" sortable>
				</el-table-column>
				<el-table-column show-overflow-tooltip label="风场编号" prop="windpowerstationid" align="center" sortable>
				</el-table-column>
				<el-table-column show-overflow-tooltip label="顺序" prop="ordernum" align="center" sortable></el-table-column>
				<el-table-column show-overflow-tooltip label="操作" width="100px" fixed="right">
					<template #default="{ row }">
						<el-button type="text" @click="handleEdit(row)">编辑</el-button>
						<el-button type="text" @click="handleDelete(row)">删除</el-button>
					</template>
				</el-table-column>
			</el-table>
			<el-pagination :background="background" :current-page="queryForm.pageNo" :layout="layout"
				:page-size="queryForm.pageSize" :total="total" @current-change="handleCurrentChange"
				@size-change="handleSizeChange"></el-pagination>
			<table-edit ref="edit" :options="options" :stationList="stationList" @save-success="fetchData"></table-edit>
		</vab-query-form>
	</div>
</template>
<script>
import UploadExcel from '@/components/UploadExcel/index'
import ExportExcel from '@/components/ExportExcel/index'
import api from '@/api/realtimeDatabaseConfiguration'
import stationApi from '@/api/station'
import TableEdit from './components/TableEdit'
export default {
	components: {
		UploadExcel,
		ExportExcel,
		TableEdit,
	},
	data() {
		return {
			fuzzyQuery_name: '',
			listLoading: true,
			list: [],
			options: [],
			exportExcel: [],
			templateExcel: [],
			elementLoadingText: '正在加载...',
			selectRows: '',
			layout: 'total, sizes, prev, pager, next, jumper',
			total: 0,
			background: true,
			exportList: [],
			queryForm: {
				pageNo: 1,
				pageSize: 20,
			},
			stationList: [],
			selectValue: ''
		};
	},
	computed: {
		height() {
			return this.$baseTableHeight() + 50
		},
	},
	created() {
		this.getStation()
		this.fetchData()
	},
	methods: {
		getMyExcelData(val) {
			val.forEach(item => {
				api.addWindsubstation(item).then(res => {
					if (res.code == 200) {
						this.$message({
							type: 'success',
							message: '添加成功!'
						});
						this.fetchData()
					}
				})
			})
		},
		getStation() {
			stationApi.windpowerstationList({
				id: '',
				name: '',
				companyid: '',
				pageNum: 1,
				pageSize: 1000,
			}).then(res => {
				if (res.data) {
					this.listLoading = false
					this.stationList = res.data.records
				}
			})
		},
		fetchData() {
			api.windsubstation({
				name: this.fuzzyQuery_name,
				pageNum: this.queryForm.pageNo,
				pageSize: this.queryForm.pageSize,
			}).then(res => {
				if (res.data) {
					this.listLoading = false
					this.total = res.data.total
					this.list = res.data.records
					this.templateExcel = [
						{
							id: '',
							code: '',
							name: '',
							aname: '',
							windpowerstationid: '',
							ordernum: ''
						}
					]
					// 导出
					let exportExcel = []
					res.data.records.forEach(item => {
						exportExcel.push({
							id: item.id,
							code: item.code,
							name: item.name,
							aname: item.aname,
							windpowerstationid: item.windpowerstationid,
							ordernum: item.ordernum
						})
					})
					this.exportExcel = exportExcel
				}
			})
		},
		handleSizeChange(val) {
			this.queryForm.pageSize = val
			this.fetchData()
		},
		handleCurrentChange(val) {
			this.queryForm.pageNo = val
			this.fetchData()
		},
		handleAdd() {
			this.$refs['edit'].showEdit()
		},
		handleEdit(row) {
			this.$refs['edit'].showEdit(row)
		},
		handleDelete(row) {
			if (row.id || this.selectRows.length > 0) {
				this.$baseConfirm('你确定要删除吗', null, async () => {
					let ids = ''
					if (this.selectRows.length > 0) {
						ids = this.selectRows.map((item) => item.id).join()
					}
					api.deleteWindsubstation({
						id: row.id || ids
					}).then(res => {
						if (res.data) {
							this.$baseMessage('删除成功', 'success')
							this.fetchData()
						}
					})
				})
			} else {
				this.$baseMessage('未选中任何行', 'error')
				return false
			}
		},
		setSelectRows(val) {
			this.selectRows = val
		},
	},
}
</script>
<style lang="less" scoped>
.title {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 20px;
}

.left {
	display: flex;
	flex-direction: row;
	align-items: center;

	.left-item {
		display: flex;
		flex-direction: row;
		align-items: center;
		margin-right: 10px;
	}
}
</style>