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