提交 86ffa6ca authored 作者: matian's avatar matian

updates:资源列表详情回显

上级 9751639e
...@@ -17,8 +17,10 @@ const props = withDefaults( ...@@ -17,8 +17,10 @@ const props = withDefaults(
data?: any[] data?: any[]
hasPagination?: boolean hasPagination?: boolean
limit?: number limit?: number
isLimit?: boolean
}>(), }>(),
{ {
isLimit: false,
hasPagination: true, hasPagination: true,
limit: 10, limit: 10,
data() { data() {
...@@ -58,8 +60,12 @@ const fetchList = (isReset = false) => { ...@@ -58,8 +60,12 @@ const fetchList = (isReset = false) => {
// 翻页参数设置 // 翻页参数设置
if (props.hasPagination) { if (props.hasPagination) {
requestParams.page = page.currentPage requestParams.page = page.currentPage
if (props.isLimit === true) {
requestParams.limit = page.size
} else {
requestParams['per-page'] = page.size requestParams['per-page'] = page.size
} }
}
// 接口请求之前 // 接口请求之前
if (beforeRequest) { if (beforeRequest) {
requestParams = beforeRequest(requestParams, isReset) requestParams = beforeRequest(requestParams, isReset)
......
...@@ -20,8 +20,8 @@ export function searchExam(params: { ...@@ -20,8 +20,8 @@ export function searchExam(params: {
paper_labels?: string paper_labels?: string
paper_category?: string paper_category?: string
paper_categories?: string paper_categories?: string
page?: string page?: number
limit?: string limit?: number
}) { }) {
return httpRequest.get(`/api/qbs/admin/v2/question-papers/resourse_ci`, { params }) return httpRequest.get(`/api/qbs/admin/v2/question-papers/resourse_ci`, { params })
} }
......
...@@ -14,11 +14,6 @@ const props = defineProps({ ...@@ -14,11 +14,6 @@ const props = defineProps({
}) })
const examList: any = ref([]) const examList: any = ref([])
console.log(props.data.length, 'length') console.log(props.data.length, 'length')
// if (props.data.length > 0) {
// examList.value = [...props.data]
// } else {
// examList.value = []
// }
watch( watch(
() => props.data, () => props.data,
value => { value => {
...@@ -108,6 +103,7 @@ const handleAddExam = (val: any) => { ...@@ -108,6 +103,7 @@ const handleAddExam = (val: any) => {
v-if="isShowExamDialog === true" v-if="isShowExamDialog === true"
v-model:isShowExamDialog="isShowExamDialog" v-model:isShowExamDialog="isShowExamDialog"
@create="handleAddExam" @create="handleAddExam"
:examList="examList"
/> />
</div> </div>
</template> </template>
...@@ -6,11 +6,16 @@ const appList = ref() ...@@ -6,11 +6,16 @@ const appList = ref()
let { list: selectTree } = useQuestionList() let { list: selectTree } = useQuestionList()
const tabValue = ref('1') const tabValue = ref('1')
const multipleSelection: any = ref([]) const multipleSelection: any = ref([])
const examData = ref([])
const emit = defineEmits<Emits>() const emit = defineEmits<Emits>()
defineProps({ defineProps({
isShowExamDialog: { isShowExamDialog: {
type: Boolean, type: Boolean,
required: true required: true
},
examList: {
type: Array,
required: true
} }
}) })
interface Emits { interface Emits {
...@@ -18,6 +23,7 @@ interface Emits { ...@@ -18,6 +23,7 @@ interface Emits {
(e: 'create', multipleSelection: any): void (e: 'create', multipleSelection: any): void
} }
const listOptions = { const listOptions = {
isLimit: true,
remote: { remote: {
httpRequest: searchExam, httpRequest: searchExam,
beforeRequest(params: any) { beforeRequest(params: any) {
...@@ -25,7 +31,8 @@ const listOptions = { ...@@ -25,7 +31,8 @@ const listOptions = {
return params return params
}, },
callback(data: any) { callback(data: any) {
return { list: data.data } examData.value = data.data.forEach((item: any) => (item.check_status = true))
return { list: data.data, total: data.total }
}, },
params: { params: {
project_tag: 'resourse_ci', project_tag: 'resourse_ci',
...@@ -37,8 +44,8 @@ const listOptions = { ...@@ -37,8 +44,8 @@ const listOptions = {
{ type: 'input', prop: 'paper_title', label: '标题:' } { type: 'input', prop: 'paper_title', label: '标题:' }
], ],
columns: [ columns: [
{ type: 'selection', fixed: 'left' }, { fixed: 'left', type: 'selection' },
{ type: 'index', label: '序号', fixed: 'left' },
{ {
label: '组卷模式', label: '组卷模式',
prop: 'paper_type', prop: 'paper_type',
...@@ -54,14 +61,17 @@ const listOptions = { ...@@ -54,14 +61,17 @@ const listOptions = {
return map[row.row.paper_uses] || row.row.paper_uses return map[row.row.paper_uses] || row.row.paper_uses
} }
}, },
{ label: '试卷分类', prop: 'paper_category.name', minWidth: 200 }, { label: '试卷分类', prop: 'paper_category.name' },
{ label: '试卷名称', prop: 'paper_title', minWidth: 200 }, { label: '试卷名称', prop: 'paper_title' },
{ label: '总分', prop: 'paper_total_score' }, { label: '总分', prop: 'paper_total_score' },
{ label: '及格分数', prop: 'pass_score' }, { label: '及格分数', prop: 'pass_score' },
{ label: '更新时间', prop: 'updated_at' } { label: '更新时间', prop: 'updated_at' }
] ],
data: examData.value
} }
examData.value.forEach((item: any) => {
item.check_status = false
})
// 资源出处 tab触发 // 资源出处 tab触发
const tabChange = () => { const tabChange = () => {
appList.value?.refetch() appList.value?.refetch()
......
...@@ -33,6 +33,8 @@ interface Emits { ...@@ -33,6 +33,8 @@ interface Emits {
(e: 'create'): void (e: 'create'): void
} }
const listOptions = { const listOptions = {
isLimit: true,
remote: { remote: {
httpRequest: searchExam, httpRequest: searchExam,
beforeRequest(params: any) { beforeRequest(params: any) {
...@@ -87,7 +89,7 @@ const handleCancel = () => { ...@@ -87,7 +89,7 @@ const handleCancel = () => {
} }
// 保存 // 保存
const handleSave = () => { const handleSave = () => {
const name = multipleSelection.value.map((item: any) => item.paper_category.name)[0] const name = multipleSelection.value.map((item: any) => item.paper_title)[0]
const resource_id = multipleSelection.value.map((item: any) => item.id)[0] const resource_id = multipleSelection.value.map((item: any) => item.id)[0]
const params: any = { const params: any = {
name: name, name: name,
......
...@@ -68,6 +68,7 @@ const listOptions = computed(() => { ...@@ -68,6 +68,7 @@ const listOptions = computed(() => {
httpRequest: getHttpRequest, httpRequest: getHttpRequest,
callback(data: any) { callback(data: any) {
tableData = data tableData = data
tableData.list.forEach((item: any) => (item.check_status = false))
return data return data
}, },
params: { tab: tabValue, status: '', authorized: '', name: '', course_id: props.course_id } params: { tab: tabValue, status: '', authorized: '', name: '', course_id: props.course_id }
...@@ -99,6 +100,7 @@ const handleSave = () => { ...@@ -99,6 +100,7 @@ const handleSave = () => {
parent_id: props.chapterID, parent_id: props.chapterID,
resource_id: resource_id resource_id: resource_id
} }
createCharacter(params).then(() => { createCharacter(params).then(() => {
emit('update:isShowAddDialog', false) emit('update:isShowAddDialog', false)
emit('create') emit('create')
...@@ -135,6 +137,7 @@ const handleSave = () => { ...@@ -135,6 +137,7 @@ const handleSave = () => {
<div class="card-list" v-if="data.length"> <div class="card-list" v-if="data.length">
<div class="card-list-con"> <div class="card-list-con">
<div style="position: relative" v-for="(item, index) in data" :key="index"> <div style="position: relative" v-for="(item, index) in data" :key="index">
{{ item.check_status }}
<el-checkbox <el-checkbox
v-model="item.check_status" v-model="item.check_status"
style="position: absolute; right: 40px; bottom: 22px" style="position: absolute; right: 40px; bottom: 22px"
...@@ -151,3 +154,29 @@ const handleSave = () => { ...@@ -151,3 +154,29 @@ const handleSave = () => {
</div> </div>
</el-drawer> </el-drawer>
</template> </template>
<style lang="scss" scoped>
.card-list {
display: flex;
flex-direction: column;
}
.card-list-con {
background: #fafafa;
padding: 20px;
display: flex;
flex-wrap: wrap;
}
.video-head {
position: relative;
.video-head-icon {
position: absolute;
top: 0;
right: 0;
font-size: 30px;
color: #666;
cursor: pointer;
}
}
.video-tool-btn {
padding: 10px 0 30px 0;
}
</style>
...@@ -7,30 +7,27 @@ import { getCourseDetails } from '../api' ...@@ -7,30 +7,27 @@ import { getCourseDetails } from '../api'
const route = useRoute() const route = useRoute()
const id = route.query.id as string const id = route.query.id as string
let courseDetails: any = ref({})
const listOptions = { const listOptions = computed(() => {
return {
columns: [ columns: [
{ label: '课程图片', slots: 'table-img', align: 'center' }, { label: '课程图片', slots: 'table-img', align: 'center' },
{ label: '课程名称', prop: 'cursor_name', align: 'center' }, { label: '课程名称', prop: 'name', align: 'center' },
{ label: '分类名称', prop: 'type_name', align: 'center' }, { label: '分类名称', prop: 'classification_name', align: 'center' },
{ label: '所在章', prop: 'zhang', align: 'center' }, { label: '所在章', prop: 'big', align: 'center' },
{ label: '所在小结', prop: 'jie', align: 'center' }, { label: '所在小节', prop: 'small', align: 'center' },
{ label: '创建日期', prop: 'update', align: 'center' }, { label: '创建日期', prop: 'created_time', align: 'center' },
{ label: '操作', slots: 'table-operate', align: 'center' } { label: '操作', slots: 'table-operate', align: 'center' }
], ],
data: [ data: courseDetails.value.course_list
{ img: 'https://webapp-pub.ezijing.com/upload/admin/527caa9260ce1d6f9b2477902337e9e4.jpeg', cursor_name: '宏观经济学', type_name: '产业学院', zhang: '第一章', jie: '第三小节', update: '2020-01-01' }, }
{ img: 'https://webapp-pub.ezijing.com/upload/admin/527caa9260ce1d6f9b2477902337e9e4.jpeg', cursor_name: '宏观经济学', type_name: '产业学院', zhang: '第一章', jie: '第三小节', update: '2020-01-01' }, })
{ img: 'https://webapp-pub.ezijing.com/upload/admin/527caa9260ce1d6f9b2477902337e9e4.jpeg', cursor_name: '宏观经济学', type_name: '产业学院', zhang: '第一章', jie: '第三小节', update: '2020-01-01' },
{ img: 'https://webapp-pub.ezijing.com/upload/admin/527caa9260ce1d6f9b2477902337e9e4.jpeg', cursor_name: '宏观经济学', type_name: '产业学院', zhang: '第一章', jie: '第三小节', update: '2020-01-01' },
{ img: 'https://webapp-pub.ezijing.com/upload/admin/527caa9260ce1d6f9b2477902337e9e4.jpeg', cursor_name: '宏观经济学', type_name: '产业学院', zhang: '第一章', jie: '第三小节', update: '2020-01-01' }
]
}
// 获取详情 // 获取详情
let courseDetails: any = ref({})
getCourseDetails({ id: id }).then(res => { getCourseDetails({ id: id }).then(res => {
courseDetails.value = res.data courseDetails.value = res.data
console.log(courseDetails.value.course_list, 'courseDetails.value.course_list')
}) })
</script> </script>
...@@ -44,11 +41,11 @@ getCourseDetails({ id: id }).then(res => { ...@@ -44,11 +41,11 @@ getCourseDetails({ id: id }).then(res => {
<AppCard title="课件资源关联使用课程"> <AppCard title="课件资源关联使用课程">
<AppList v-bind="listOptions" ref="appList" stripe> <AppList v-bind="listOptions" ref="appList" stripe>
<template #table-img="{ row }"> <template #table-img="{ row }">
<img :src="row.img" style="width: 100px;display:block;"> <img :src="row.cover" style="width: 100px; display: block" />
</template> </template>
<template #table-operate="{ row }"> <template #table-operate="{ row }">
<el-space> <el-space>
<router-link :to="`/resource/courseware/update/?id=${row.id}`"> <router-link :to="`/course/my/view?id=${row.id}`">
<el-button style="color: #399ee8" type="primary" link>查看</el-button> <el-button style="color: #399ee8" type="primary" link>查看</el-button>
</router-link> </router-link>
</el-space> </el-space>
......
...@@ -34,7 +34,8 @@ getUtilData().then(res => { ...@@ -34,7 +34,8 @@ getUtilData().then(res => {
return item return item
}) })
// 最近数据 // 最近数据
data.latest = latest.map((item: any, index: number) => { data.latest =
latest.map((item: any, index: number) => {
item.index = index + 1 item.index = index + 1
return item return item
}) || [] }) || []
...@@ -60,7 +61,7 @@ getUtilData().then(res => { ...@@ -60,7 +61,7 @@ getUtilData().then(res => {
<Newest :data="data.latest"></Newest> <Newest :data="data.latest"></Newest>
</AppCard> </AppCard>
<AppCard :data="data.hot" title="最热资源"> <AppCard :data="data.hot" title="最热资源">
<Hottest></Hottest> <Hottest :data="data.hot"></Hottest>
</AppCard> </AppCard>
<AppCard title="最近学习"> <AppCard title="最近学习">
<RecentLearning :data="data.learn"></RecentLearning> <RecentLearning :data="data.learn"></RecentLearning>
......
...@@ -6,63 +6,24 @@ import Operation from '../components/Operation.vue' ...@@ -6,63 +6,24 @@ import Operation from '../components/Operation.vue'
import { getLessonDetails } from '../api' import { getLessonDetails } from '../api'
const route = useRoute() const route = useRoute()
let lessonDetails: any = ref({})
const listOptions = { const listOptions = computed(() => {
return {
columns: [ columns: [
{ label: '课程图片', slots: 'table-img', align: 'center' }, { label: '课程图片', slots: 'table-img', align: 'center' },
{ label: '课程名称', prop: 'cursor_name', align: 'center' }, { label: '课程名称', prop: 'name', align: 'center' },
{ label: '分类名称', prop: 'type_name', align: 'center' }, { label: '分类名称', prop: 'classification_name', align: 'center' },
{ label: '所在章', prop: 'zhang', align: 'center' }, { label: '所在章', prop: 'big', align: 'center' },
{ label: '所在小结', prop: 'jie', align: 'center' }, { label: '所在小节', prop: 'small', align: 'center' },
{ label: '创建日期', prop: 'update', align: 'center' }, { label: '创建日期', prop: 'created_time', align: 'center' },
{ label: '操作', slots: 'table-operate', align: 'center' } { label: '操作', slots: 'table-operate', align: 'center' }
], ],
data: [ data: lessonDetails.value.course_list
{
img: 'https://webapp-pub.ezijing.com/upload/admin/527caa9260ce1d6f9b2477902337e9e4.jpeg',
cursor_name: '宏观经济学',
type_name: '产业学院',
zhang: '第一章',
jie: '第三小节',
update: '2020-01-01'
},
{
img: 'https://webapp-pub.ezijing.com/upload/admin/527caa9260ce1d6f9b2477902337e9e4.jpeg',
cursor_name: '宏观经济学',
type_name: '产业学院',
zhang: '第一章',
jie: '第三小节',
update: '2020-01-01'
},
{
img: 'https://webapp-pub.ezijing.com/upload/admin/527caa9260ce1d6f9b2477902337e9e4.jpeg',
cursor_name: '宏观经济学',
type_name: '产业学院',
zhang: '第一章',
jie: '第三小节',
update: '2020-01-01'
},
{
img: 'https://webapp-pub.ezijing.com/upload/admin/527caa9260ce1d6f9b2477902337e9e4.jpeg',
cursor_name: '宏观经济学',
type_name: '产业学院',
zhang: '第一章',
jie: '第三小节',
update: '2020-01-01'
},
{
img: 'https://webapp-pub.ezijing.com/upload/admin/527caa9260ce1d6f9b2477902337e9e4.jpeg',
cursor_name: '宏观经济学',
type_name: '产业学院',
zhang: '第一章',
jie: '第三小节',
update: '2020-01-01'
} }
] })
}
const id = route.query.id as string const id = route.query.id as string
// 获取详情 // 获取详情
let lessonDetails: any = ref({})
getLessonDetails({ id: id }).then((res: any) => { getLessonDetails({ id: id }).then((res: any) => {
lessonDetails.value = res.data lessonDetails.value = res.data
}) })
...@@ -78,11 +39,11 @@ getLessonDetails({ id: id }).then((res: any) => { ...@@ -78,11 +39,11 @@ getLessonDetails({ id: id }).then((res: any) => {
<AppCard title="教案资源关联使用课程"> <AppCard title="教案资源关联使用课程">
<AppList v-bind="listOptions" ref="appList" stripe> <AppList v-bind="listOptions" ref="appList" stripe>
<template #table-img="{ row }"> <template #table-img="{ row }">
<img :src="row.img" style="width: 100px; display: block" /> <img :src="row.cover" style="width: 100px; display: block" />
</template> </template>
<template #table-operate="{ row }"> <template #table-operate="{ row }">
<el-space> <el-space>
<router-link :to="`/video/update/?id=${row.id}`"> <router-link :to="`/course/my/view?id=${row.id}`">
<el-button style="color: #399ee8" type="primary" link>查看</el-button> <el-button style="color: #399ee8" type="primary" link>查看</el-button>
</router-link> </router-link>
</el-space> </el-space>
......
...@@ -9,24 +9,20 @@ const route = useRoute() ...@@ -9,24 +9,20 @@ const route = useRoute()
const id = route.query.id as string const id = route.query.id as string
const listOptions = { const listOptions = computed(() => {
return {
columns: [ columns: [
{ label: '课程图片', slots: 'table-img', align: 'center' }, { label: '课程图片', slots: 'table-img', align: 'center' },
{ label: '课程名称', prop: 'cursor_name', align: 'center' }, { label: '课程名称', prop: 'name', align: 'center' },
{ label: '分类名称', prop: 'type_name', align: 'center' }, { label: '分类名称', prop: 'classification_name', align: 'center' },
{ label: '所在章', prop: 'zhang', align: 'center' }, { label: '所在章', prop: 'big', align: 'center' },
{ label: '所在小结', prop: 'jie', align: 'center' }, { label: '所在小节', prop: 'small', align: 'center' },
{ label: '创建日期', prop: 'update', align: 'center' }, { label: '创建日期', prop: 'created_time', align: 'center' },
{ label: '操作', slots: 'table-operate', align: 'center' } { label: '操作', slots: 'table-operate', align: 'center' }
], ],
data: [ data: otherDetails.value.course_list
{ img: 'https://webapp-pub.ezijing.com/upload/admin/527caa9260ce1d6f9b2477902337e9e4.jpeg', cursor_name: '宏观经济学', type_name: '产业学院', zhang: '第一章', jie: '第三小节', update: '2020-01-01' }, }
{ img: 'https://webapp-pub.ezijing.com/upload/admin/527caa9260ce1d6f9b2477902337e9e4.jpeg', cursor_name: '宏观经济学', type_name: '产业学院', zhang: '第一章', jie: '第三小节', update: '2020-01-01' }, })
{ img: 'https://webapp-pub.ezijing.com/upload/admin/527caa9260ce1d6f9b2477902337e9e4.jpeg', cursor_name: '宏观经济学', type_name: '产业学院', zhang: '第一章', jie: '第三小节', update: '2020-01-01' },
{ img: 'https://webapp-pub.ezijing.com/upload/admin/527caa9260ce1d6f9b2477902337e9e4.jpeg', cursor_name: '宏观经济学', type_name: '产业学院', zhang: '第一章', jie: '第三小节', update: '2020-01-01' },
{ img: 'https://webapp-pub.ezijing.com/upload/admin/527caa9260ce1d6f9b2477902337e9e4.jpeg', cursor_name: '宏观经济学', type_name: '产业学院', zhang: '第一章', jie: '第三小节', update: '2020-01-01' }
]
}
// 获取详情 // 获取详情
let otherDetails: any = ref({}) let otherDetails: any = ref({})
...@@ -45,11 +41,11 @@ getOtherDetails({ id: id }).then((res: any) => { ...@@ -45,11 +41,11 @@ getOtherDetails({ id: id }).then((res: any) => {
<AppCard title="其他资源关联使用课程"> <AppCard title="其他资源关联使用课程">
<AppList v-bind="listOptions" ref="appList" stripe> <AppList v-bind="listOptions" ref="appList" stripe>
<template #table-img="{ row }"> <template #table-img="{ row }">
<img :src="row.img" style="width: 100px;display:block;"> <img :src="row.cover" style="width: 100px; display: block" />
</template> </template>
<template #table-operate="{ row }"> <template #table-operate="{ row }">
<el-space> <el-space>
<router-link :to="`/other/update/?id=${row.id}`"> <router-link :to="`/course/my/view?id=${row.id}`">
<el-button style="color: #399ee8" type="primary" link>查看</el-button> <el-button style="color: #399ee8" type="primary" link>查看</el-button>
</router-link> </router-link>
</el-space> </el-space>
......
...@@ -8,28 +8,24 @@ import { getVideoDetails } from '../api' ...@@ -8,28 +8,24 @@ import { getVideoDetails } from '../api'
// 路由 // 路由
const route = useRoute() const route = useRoute()
const id = route.query.id as string const id = route.query.id as string
let videoDetails: any = ref({})
const listOptions = { const listOptions = computed(() => {
return {
columns: [ columns: [
{ label: '课程图片', slots: 'table-img', align: 'center' }, { label: '课程图片', slots: 'table-img', align: 'center' },
{ label: '课程名称', prop: 'cursor_name', align: 'center' }, { label: '课程名称', prop: 'name', align: 'center' },
{ label: '分类名称', prop: 'type_name', align: 'center' }, { label: '分类名称', prop: 'classification_name', align: 'center' },
{ label: '所在章', prop: 'zhang', align: 'center' }, { label: '所在章', prop: 'big', align: 'center' },
{ label: '所在小结', prop: 'jie', align: 'center' }, { label: '所在小节', prop: 'small', align: 'center' },
{ label: '创建日期', prop: 'update', align: 'center' }, { label: '创建日期', prop: 'created_time', align: 'center' },
{ label: '操作', slots: 'table-operate', align: 'center' } { label: '操作', slots: 'table-operate', align: 'center' }
], ],
data: [ data: videoDetails.value.course_list
{ img: 'https://webapp-pub.ezijing.com/upload/admin/527caa9260ce1d6f9b2477902337e9e4.jpeg', cursor_name: '宏观经济学', type_name: '产业学院', zhang: '第一章', jie: '第三小节', update: '2020-01-01' }, }
{ img: 'https://webapp-pub.ezijing.com/upload/admin/527caa9260ce1d6f9b2477902337e9e4.jpeg', cursor_name: '宏观经济学', type_name: '产业学院', zhang: '第一章', jie: '第三小节', update: '2020-01-01' }, })
{ img: 'https://webapp-pub.ezijing.com/upload/admin/527caa9260ce1d6f9b2477902337e9e4.jpeg', cursor_name: '宏观经济学', type_name: '产业学院', zhang: '第一章', jie: '第三小节', update: '2020-01-01' },
{ img: 'https://webapp-pub.ezijing.com/upload/admin/527caa9260ce1d6f9b2477902337e9e4.jpeg', cursor_name: '宏观经济学', type_name: '产业学院', zhang: '第一章', jie: '第三小节', update: '2020-01-01' },
{ img: 'https://webapp-pub.ezijing.com/upload/admin/527caa9260ce1d6f9b2477902337e9e4.jpeg', cursor_name: '宏观经济学', type_name: '产业学院', zhang: '第一章', jie: '第三小节', update: '2020-01-01' }
]
}
// 获取详情 // 获取详情
let videoDetails: any = ref({})
getVideoDetails({ id: id }).then(res => { getVideoDetails({ id: id }).then(res => {
videoDetails.value = res.data videoDetails.value = res.data
}) })
...@@ -45,11 +41,11 @@ getVideoDetails({ id: id }).then(res => { ...@@ -45,11 +41,11 @@ getVideoDetails({ id: id }).then(res => {
<AppCard title="视频资源关联使用课程"> <AppCard title="视频资源关联使用课程">
<AppList v-bind="listOptions" ref="appList" stripe> <AppList v-bind="listOptions" ref="appList" stripe>
<template #table-img="{ row }"> <template #table-img="{ row }">
<img :src="row.img" style="width: 100px;display:block;"> <img :src="row.cover" style="width: 100px; display: block" />
</template> </template>
<template #table-operate="{ row }"> <template #table-operate="{ row }">
<el-space> <el-space>
<router-link :to="`/video/update/${row.id}`"> <router-link :to="`/course/my/view?id=${row.id}`">
<el-button style="color: #399ee8" type="primary" link>查看</el-button> <el-button style="color: #399ee8" type="primary" link>查看</el-button>
</router-link> </router-link>
</el-space> </el-space>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论