|
|
@@ -0,0 +1,212 @@
|
|
|
+<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 === 'createTime'">
|
|
|
+ <span>{{ formatDateTime(record.createTime) }}</span>
|
|
|
+ </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.collegeId]" title="确定删除?" trigger="click">
|
|
|
+ <template #content>
|
|
|
+ <a-button style="margin-right: 10px" type="primary" @click="handleShelf(record,1)">确定
|
|
|
+ </a-button>
|
|
|
+ <a-button @click="()=>{ popoverVisibles[record.collegeId] = false}">取消</a-button>
|
|
|
+ </template>
|
|
|
+ <!-- <a-button size="small" style="margin-right: 5px">选择</a-button>-->
|
|
|
+ <a-button size="small" @click="handleDelete(record)" 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} from '@/api/userfileconvert'
|
|
|
+import {useRouter} from 'vue-router'
|
|
|
+import {parseTime} from "@/utils/exam";
|
|
|
+
|
|
|
+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: 'fileName',
|
|
|
+ sorter: true,
|
|
|
+ width: '15%'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '文件后缀',
|
|
|
+ dataIndex: 'extendName',
|
|
|
+ sorter: true,
|
|
|
+ width: '15%'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '发布时间',
|
|
|
+ dataIndex: 'createTime',
|
|
|
+ sorter: true,
|
|
|
+ width: '12%'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '操作',
|
|
|
+ dataIndex: 'action',
|
|
|
+ sorter: true,
|
|
|
+ width: '2%'
|
|
|
+ }
|
|
|
+]
|
|
|
+// tool.formatTimestamp()
|
|
|
+const formatDateTime = (val) => {
|
|
|
+ if (!val) return ''
|
|
|
+ return parseTime(val, '{y}-{m}-{d} {h}:{i}:{s}')
|
|
|
+}
|
|
|
+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)
|
|
|
+ // 在这里添加删除记录的逻辑
|
|
|
+}
|
|
|
+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>
|