main
parent
ff25185517
commit
9e9c7b27b0
@ -0,0 +1,21 @@ |
||||
import request from '@/config/axios' |
||||
|
||||
// 创建
|
||||
export const createCourse = (data) => { |
||||
return request.post({ url: '/admin-api/applet/sinology/lesson/create', data, isSubmitForm: true }) |
||||
} |
||||
|
||||
// 修改
|
||||
export const updateCourse = (data) => { |
||||
return request.put({ url: '/admin-api/applet/sinology/lesson/update', data }) |
||||
} |
||||
|
||||
// 分页
|
||||
export const getCoursePage = (params) => { |
||||
return request.get({ url: '/admin-api/applet/sinology/lesson/page', params }) |
||||
} |
||||
|
||||
// 删除
|
||||
export const deleteCourse = (lessonId) => { |
||||
return request.delete({ url: '/admin-api/applet/sinology/lesson/delete', params: { lessonId } }) |
||||
} |
@ -0,0 +1,133 @@ |
||||
<template> |
||||
<div> |
||||
<el-form :inline="true" label-width="0" @submit.prevent> |
||||
<el-form-item> |
||||
<el-input |
||||
v-model="queryParams.lessonName" |
||||
placeholder="请输入课程标题" |
||||
clearable |
||||
style="width: 400px" |
||||
@keyup.enter="handleQuery" |
||||
/> |
||||
</el-form-item> |
||||
<el-form-item> |
||||
<el-input |
||||
v-model="queryParams.author" |
||||
placeholder="请输入作者" |
||||
clearable |
||||
style="width: 400px" |
||||
@keyup.enter="handleQuery" |
||||
/> |
||||
</el-form-item> |
||||
<el-form-item> |
||||
<el-button type="primary" @click="handleQuery" v-hasPermi="['GDS:course:search']"> |
||||
搜索 |
||||
</el-button> |
||||
<el-button type="primary" @click="handleAdd" v-hasPermi="['GDS:course:add']"> |
||||
新增 |
||||
</el-button> |
||||
</el-form-item> |
||||
</el-form> |
||||
<el-table |
||||
v-loading="loading" |
||||
:data="tableList" |
||||
highlight-current-row |
||||
max-height="calc(100vh - 320px)" |
||||
> |
||||
<el-table-column type="index" width="55" align="center" /> |
||||
<el-table-column label="课程标题" align="left" prop="lessonName" min-width="140" /> |
||||
<el-table-column label="章节简介" align="center" prop="introduction" width="100" /> |
||||
<el-table-column label="图片" align="center" width="100"> |
||||
<template #default="{ row }"> |
||||
<el-image |
||||
v-if="row.image" |
||||
:src="getShowImg(row)" |
||||
:preview-src-list="[getShowImg(row)]" |
||||
:lazy="true" |
||||
style="width: 90px" |
||||
preview-teleported |
||||
/> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column label="作者" align="center" prop="author" min-width="100" /> |
||||
<el-table-column label="创建时间" align="center" prop="createTime" min-width="100" /> |
||||
<el-table-column label="发布时间" align="center" prop="publicTime" min-width="100" /> |
||||
<el-table-column label="浏览数" align="center" prop="chapterName" min-width="100" /> |
||||
<el-table-column label="点赞数" align="center" prop="chapterName" min-width="100" /> |
||||
<el-table-column label="收藏数" align="center" prop="chapterName" min-width="100" /> |
||||
<el-table-column label="操作" align="center" width="140"> |
||||
<template #default="scope"> |
||||
<el-button |
||||
type="primary" |
||||
link |
||||
@click="handleEdit(scope.row)" |
||||
v-hasPermi="['GDS:course:edit']" |
||||
> |
||||
修改 |
||||
</el-button> |
||||
<el-button |
||||
type="primary" |
||||
link |
||||
@click="handleDelete(scope.row)" |
||||
v-hasPermi="['GDS:course:delete']" |
||||
> |
||||
删除 |
||||
</el-button> |
||||
</template> |
||||
</el-table-column> |
||||
</el-table> |
||||
|
||||
<pagination |
||||
style="margin-bottom: 0" |
||||
v-show="total > 0" |
||||
:total="total" |
||||
v-model:page="queryParams.pageNo" |
||||
v-model:limit="queryParams.pageSize" |
||||
@pagination="getList" |
||||
/> |
||||
</div> |
||||
</template> |
||||
|
||||
<script setup> |
||||
import * as CourseApi from '@/api/gds/course' |
||||
|
||||
const tableList = ref([]) |
||||
const total = ref(0) |
||||
const loading = ref(false) |
||||
|
||||
const queryParams = ref({ |
||||
pageNo: 1, |
||||
pageSize: 20, |
||||
lessonName: undefined, |
||||
author: undefined |
||||
}) |
||||
|
||||
function handleQuery() { |
||||
queryParams.value.pageNo = 1 |
||||
getList() |
||||
} |
||||
|
||||
async function getList() { |
||||
try { |
||||
loading.value = true |
||||
const data = await CourseApi.getCoursePage(queryParams.value) |
||||
tableList.value = data.list |
||||
total.value = data.total |
||||
loading.value = false |
||||
} finally { |
||||
loading.value = false |
||||
} |
||||
} |
||||
|
||||
function getShowImg(row) { |
||||
return row.image.includes('http') |
||||
? row.image |
||||
: `https://ss-cloud.ahduima.com/sinology/pic/${row.image}` |
||||
} |
||||
|
||||
onMounted(() => { |
||||
getList() |
||||
}) |
||||
</script> |
||||
|
||||
<style lang="scss" scoped></style> |
Loading…
Reference in new issue