<template>
	<a-table
		ref="table"
		:columns="columns"
		:data-source="dataSources"
		:row-key="(record) => record.courseId"
		bordered
		:expand-row-by-click="true"
		:pagination="false"
		size="small"
	>
		<template #bodyCell="{ column, text, record }">
<!--			<template v-if="column.dataIndex === 'publishTime'">{{ formatTimestamp(text) }}</template>-->
			<template v-if="column.dataIndex === 'action'">
<!--				<a-button size="small" @click="handleDetail(record)" style="margin-right: 5px">详情</a-button>-->
				<a-button size="small" @click="handleEdit(record)" style="margin-right: 5px">编辑</a-button>
				<a-popover v-model:visible="popoverVisibles[record.id]" title="确定删除?" trigger="click">
					<template #content>
						<a-button style="margin-right: 10px" type="primary" @click="handleDelete(record)">确定
						</a-button>
						<a-button @click="()=>{	popoverVisibles[record.id] = false}">取消</a-button>
					</template>
					<!--					<a-button size="small" style="margin-right: 5px">选择</a-button>-->
					<a-button size="small" style="margin-right: 5px">删除</a-button>
				</a-popover>



			</template>
		</template>
	</a-table>
	<div style="display: flex; width: 100%; justify-content: flex-end; margin-top: 10px">
		<a-pagination
			v-model:current="pagination.current"
			v-model:pageSize="pagination.size"
			:total="total"
			show-less-items
			@change="handlerChange"
		/>
	</div>
</template>

<script setup>
import tool from '@/utils/tool'
import {ref, onMounted} from 'vue'
import {list,deletess} from '@/api/courseopen/index.js'
import {useRouter} from 'vue-router'

const router = useRouter()

const emit = defineEmits(['handleEdit'])
//发布按钮状态
const releaseVisible = ref(false)
const loading = ref(false) // 列表loading
const dataSources = ref([])
const popoverVisible = ref({})
const popoverVisibles = ref({})
const formState = ref({
	name: '',
	loacl: ''
}) // 列表loading
const columns = [
	{
		title: '班级',
		dataIndex: 'room',
		width: '12%'
	},
	{
		title: '班级名称',
		dataIndex: 'gradesIdName',
		width: '12%'
	},
	{
		title: '学期',
		dataIndex: 'semesterIdName',
		width: '10%'
	},
	{
		title: '开始节次',
		dataIndex: 'startPeriod',
		width: '10%'
	},
	{
		title: '结束节次',
		dataIndex: 'endPeriod',
		width: '10%'
	},
	{
		title: '上课周期',
		dataIndex: 'scheduleTimeName',
		width: '10%'
	},
	{
		title: '单双周',
		dataIndex: 'weekTypeName',
		width: '10%'
	},
	{
		title: '老师',
		dataIndex: 'teacherIdName',
		width: '8%'
	},
	{
		title: '状态',
		dataIndex: 'statusName',
		width: '8%'
	},
	// {
	// 	title: '发布时间',
	// 	dataIndex: 'createTime',
	// 	sorter: true,
	// 	width: '10%'
	// },
	{
		title: '操作',
		dataIndex: 'action',
		width: '12%'
	}
]
// tool.formatTimestamp()

const formatTimestamp = (time) => {
	return tool.formatTimestamp(time)
}
const total = ref(0)
const pagination = ref({
	size: 10,
	current: 1,
})
const onChangeCurrent = (current) => {
	router.push({
		path: '/' + current
	})
}
const handlerChange = (page, pageSize) => {
	console.log('分页参数', page, pageSize)
	// pagination.value.size = pageSize
	// pagination.value.current = page

	getList()
}
const handleDetail = (record) => {
	console.log('查看详情', record)
	router.push({
		path: '/portal/courseDetails',
		query: {
			id: record.courseId
		}
	})
	// 在这里添加查看详情的逻辑
}

// 编辑按钮点击事件
const handleEdit = (record) => {
	console.log('编辑记录', record)
	// 在这里添加编辑记录的逻辑

	emit('handleEdit', record)
}

// 上架按钮点击事件
const handleShelf = (record,num) => {
	console.log('上架记录', record)
	popoverVisible.value[record.collegeId] = false
	// 在这里添加上架记录的逻辑
	// {
	// 	"courseId": "1948183431150227458",
	// 	"putawayStatus": 1
	// }
	// updateCourseStatus({courseId : record.courseId,putawayStatus : num}).then((res)=>{
	// 	getList()
	// })

}

// 删除按钮点击事件
const handleDelete = (record) => {
	console.log('删除记录', record)
	popoverVisibles[record.id] = false
	deletess([{id : record.id}]).then((res)=>{
		getList()
	})
	// 在这里添加删除记录的逻辑
}
const getList = () => {
	console.log('获取列表 getList')

	list({...pagination.value}).then((data) => {
		if (data.code == 200) {
			console.log('获取列表 新数组', data.data.records)
			dataSources.value = []
			dataSources.value = data.data.records
			console.log('获取列表 最新数组', dataSources.value)
			pagination.value.current = data.data.current
			pagination.value.size = data.data.size
			total.value = data.data.total
		}
		// data.records
	})
}
const setList = (search) => {
	console.log('获取列表 setList',search)
	// courseName: '',
	// 	collegeId: '',
	// 	majorId: '',
	// 	courseType: '',
	// 	loacl: []
	formState.value = search
	pagination.value.current = 1
	list({...pagination.value, ...formState.value}).then((data) => {
		if (data.code == 200) {
			dataSources.value = data.data.records
			pagination.value.current = data.data.current
			pagination.value.size = data.data.size
			total.value = data.data.total
		}
		// data.records
	})
}

// 重置按钮点击事件
onMounted(() => {
	// getListData()
	getList()
})


// watch(
// 	() => dataSources.value,
// 	(newVal, oldVal) => {
// 		console.log('数据源变化了 ', ' 新的 ',newVal, '  旧的 ',oldVal)
// 	},
// 	{ deep: true, immediate: true }
// )
defineExpose({
	setList,getList
})
</script>

<style scoped>
.desc p {
	margin-bottom: 1em;
}
</style>
