优化后台
This commit is contained in:
@@ -19,7 +19,7 @@ const course_id = ref(0)
|
||||
const active = ref(0)
|
||||
const form = ref({status:1,is_boutique:-1,is_audition:-1})
|
||||
const subjectParams = ref({
|
||||
pageIndex:1,
|
||||
page:1,
|
||||
pageSize:100,
|
||||
})
|
||||
const subjectList = ref([])
|
||||
|
||||
@@ -20,7 +20,7 @@ import { getToken } from '@/utils/auth'
|
||||
const headers = ref({ Authorization: 'Bearer ' + getToken() })
|
||||
const drawer = ref(false)
|
||||
const queryParams =ref({
|
||||
pageIndex:1,
|
||||
page:1,
|
||||
pageSize:10,
|
||||
name:'',
|
||||
subject:''
|
||||
@@ -41,7 +41,7 @@ function onSubmit() {
|
||||
}
|
||||
function onReset() {
|
||||
queryParams.value = {
|
||||
pageIndex:1,
|
||||
page:1,
|
||||
pageSize:10,
|
||||
name:''
|
||||
}
|
||||
|
||||
@@ -38,16 +38,19 @@ onMounted(() => {
|
||||
getSubjectList()
|
||||
})
|
||||
// 方法
|
||||
const origin_list = ref([])
|
||||
async function getSubjectList() {
|
||||
const res = await api.getSubjectList(queryParams.value)
|
||||
subjectList.value = res.data.records
|
||||
if(res.code === 0) {
|
||||
subjectList.value = res.data.records
|
||||
total.value = res.data.total
|
||||
origin_list.value = res.data.records
|
||||
subjectList.value = addTreeFormatSubject(subjectList.value)
|
||||
// console.log(subjectList.value)
|
||||
}
|
||||
}
|
||||
const current_categral_id = ref(0) // 当前编辑id
|
||||
function addTreeFormatSubject(data) {
|
||||
if(!data) {
|
||||
return []
|
||||
@@ -55,6 +58,13 @@ function addTreeFormatSubject(data) {
|
||||
data.map( item => {
|
||||
item.label = item.name
|
||||
item.value = item.id
|
||||
|
||||
if(current_categral_id.value && (item.id === current_categral_id.value || item.parent_id === current_categral_id.value)) {
|
||||
item.disabled = true
|
||||
}
|
||||
else{
|
||||
item.disabled = false
|
||||
}
|
||||
if(item.level === 3) {
|
||||
item.disabled = true
|
||||
}
|
||||
@@ -83,12 +93,15 @@ const handleSelectionChange = (val) => {
|
||||
apis.value = val
|
||||
}
|
||||
function editApiFunc(row) {
|
||||
// 深拷贝?
|
||||
for(let prop in form.value) {
|
||||
if(row[prop]){
|
||||
form.value[prop] = row[prop]
|
||||
}
|
||||
}
|
||||
form.value.id = row.id
|
||||
current_categral_id.value = row.id
|
||||
subjectList.value = addTreeFormatSubject(origin_list.value)
|
||||
// return
|
||||
openDialog('edit')
|
||||
}
|
||||
@@ -119,6 +132,8 @@ function openDialog(key) {
|
||||
switch (key) {
|
||||
case 'add':
|
||||
dialogTitle.value = '新增类型'
|
||||
current_categral_id.value = 0
|
||||
subjectList.value = addTreeFormatSubject(origin_list.value)
|
||||
break
|
||||
case 'edit':
|
||||
dialogTitle.value = '编辑类型'
|
||||
@@ -183,13 +198,13 @@ async function enterDialog() { // 确认创建或修改
|
||||
}
|
||||
const onReset = () => {
|
||||
queryParams.value = {
|
||||
pageIndex:1,
|
||||
page:1,
|
||||
pageSize:10,
|
||||
keyword:''
|
||||
}
|
||||
}
|
||||
function handleCurrentChange(val) {
|
||||
queryParams.value.pageIndex = val
|
||||
queryParams.value.page = val
|
||||
getSubjectList()
|
||||
}
|
||||
function handleSizeChange(val) {
|
||||
@@ -252,7 +267,7 @@ function handleSizeChange(val) {
|
||||
</el-table>
|
||||
<div class="gva-pagination">
|
||||
<el-pagination
|
||||
:current-page="queryParams.pageIndex"
|
||||
:current-page="queryParams.page"
|
||||
:page-size="queryParams.pageSize"
|
||||
:page-sizes="[10, 30, 50, 100]"
|
||||
:total="total"
|
||||
|
||||
@@ -18,7 +18,7 @@ const queryParams = ref({
|
||||
subject:''
|
||||
})
|
||||
const subjectParams = ref({
|
||||
pageIndex:1,
|
||||
page:1,
|
||||
pageSize:100,
|
||||
})
|
||||
const tableData = ref([])
|
||||
@@ -33,6 +33,28 @@ const rules = ref({
|
||||
name: [{ required: true, message: '请输入课程名称', trigger: 'blur' }]
|
||||
})
|
||||
const course_id = ref(0)
|
||||
const statusList = ref([
|
||||
{
|
||||
name:'已上架',
|
||||
value:1
|
||||
},
|
||||
{
|
||||
name:'已下架',
|
||||
value:-1
|
||||
},
|
||||
{
|
||||
name:'待审核',
|
||||
value:2
|
||||
},
|
||||
{
|
||||
name:'已通过',
|
||||
value:3
|
||||
},
|
||||
{
|
||||
name:'已拒绝',
|
||||
value:4
|
||||
}
|
||||
])
|
||||
// 生命周期
|
||||
onMounted(() => {
|
||||
getCourseList()
|
||||
@@ -43,6 +65,7 @@ async function getCourseList() {
|
||||
const res = await api.getCourseList(queryParams.value)
|
||||
if(res.code === 0) {
|
||||
tableData.value = res.data.records
|
||||
total.value = res.data.total
|
||||
}
|
||||
}
|
||||
async function getSubject(){ // 获取课程分类
|
||||
@@ -58,7 +81,7 @@ function onSubmit() {
|
||||
}
|
||||
const onReset = () => {
|
||||
queryParams.value = {
|
||||
pageIndex:1,
|
||||
page:1,
|
||||
pageSize:10,
|
||||
name:'',
|
||||
status:'',
|
||||
@@ -126,7 +149,7 @@ function deleteCourseFunc(row) {
|
||||
})
|
||||
}
|
||||
function handleCurrentChange(val) {
|
||||
queryParams.value.pageIndex = val
|
||||
queryParams.value.page = val
|
||||
getCourseList()
|
||||
}
|
||||
function handleSizeChange(val) {
|
||||
@@ -206,17 +229,20 @@ async function enterVerifyDialog() { // 审核提交
|
||||
<el-form-item label="课程名称">
|
||||
<el-input v-model="queryParams.name" placeholder="根据课程名称进行查询" />
|
||||
</el-form-item>
|
||||
<el-form-item label="课程状态">
|
||||
<el-select v-model="queryParams.status" clearable placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in statusList"
|
||||
:key="item.value"
|
||||
:label="item.name"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="课程分类">
|
||||
<!-- <el-select v-model="queryParams.subject" clearable placeholder="请选择">-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in subjectList"-->
|
||||
<!-- :key="item.id"-->
|
||||
<!-- :label="item.name"-->
|
||||
<!-- :value="item.id"-->
|
||||
<!-- />-->
|
||||
<!-- </el-select>-->
|
||||
<el-tree-select v-model="queryParams.subject" :data="subjectList" :render-after-expand="false" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button size="small" type="primary" icon="search" @click="onSubmit">查询</el-button>
|
||||
<el-button size="small" icon="refresh" @click="onReset">重置</el-button>
|
||||
@@ -248,12 +274,13 @@ async function enterVerifyDialog() { // 审核提交
|
||||
<el-table-column align="left" label="id" min-width="60" prop="course_id" sortable="custom" />
|
||||
<el-table-column align="left" label="名称" min-width="150" prop="name" />
|
||||
<el-table-column align="left" label="科目" min-width="150" prop="subject" />
|
||||
<el-table-column align="left" label="教师" min-width="150" prop="teacher_name" />
|
||||
<el-table-column align="left" label="价格" min-width="150">
|
||||
<template #default="scope">{{scope.row.price/100}}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="left" label="状态" min-width="150" prop="status">
|
||||
<template #default="scope">
|
||||
{{scope.row.status == 1?'上架':scope.row.status == 2?'待审核':scope.row.status == 3?'通过':scope.row.status == 4?'未通过':'下架'}}
|
||||
{{scope.row.status == 1?'上架':scope.row.status == 2?'待审核':scope.row.status == 3?'已通过':scope.row.status == 4?'未通过':'下架'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="left" label="是否精品" min-width="150" prop="is_boutique">
|
||||
@@ -290,7 +317,7 @@ async function enterVerifyDialog() { // 审核提交
|
||||
</el-table>
|
||||
<div class="gva-pagination">
|
||||
<el-pagination
|
||||
:current-page="queryParams.pageIndex"
|
||||
:current-page="queryParams.page"
|
||||
:page-size="queryParams.pageSize"
|
||||
:page-sizes="[10, 30, 50, 100]"
|
||||
:total="total"
|
||||
@@ -324,6 +351,10 @@ async function enterVerifyDialog() { // 审核提交
|
||||
<el-form-item label="是否通过" prop="is_free">
|
||||
<el-switch v-model="verifyForm.is_pass" active-text="通过" inactive-text="拒绝" :active-value="1" :inactive-value="-1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="审核说明" prop="is_free">
|
||||
<!-- <el-switch v-model="verifyForm.is_pass" active-text="通过" inactive-text="拒绝" :active-value="1" :inactive-value="-1" />-->
|
||||
<el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" v-model="verifyForm.desc" autocomplete="off" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
|
||||
@@ -28,6 +28,14 @@ function downloadChapterChildFunc(item) { // 点击下载
|
||||
// console.log(item)
|
||||
window.open(row.url)
|
||||
}
|
||||
function viewFunc(row,type) { // 查看课程课件或者试卷
|
||||
if(type === 1) { // 课件
|
||||
console.log(row.url)
|
||||
}
|
||||
else{ // 试卷
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<template>
|
||||
<div>
|
||||
@@ -83,12 +91,16 @@ function downloadChapterChildFunc(item) { // 点击下载
|
||||
<el-table-column align="left" label="子章节名称" min-width="60" prop="name" />
|
||||
<el-table-column align="left" label="课件名称" min-width="60">
|
||||
<template #default="scope">
|
||||
{{scope.row.url === ''?'未上传课件':scope.row.url}}
|
||||
<!-- {{scope.row.url === ''?'未上传课件':scope.row.url}}-->
|
||||
<div v-if="scope.row.url" @click="viewFunc(scope.row,1)">查看</div>
|
||||
<div v-else>未上传课件</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="left" label="试卷习题" min-width="60" prop="is_contain_exercise">
|
||||
<template #default="scope">
|
||||
{{scope.row.exam_id === 0?'未添加习题':scope.row.exam_id}}
|
||||
<!-- {{scope.row.exam_id === 0?'未添加习题':scope.row.exam_id}}-->
|
||||
<div v-if="scope.row.exam_id" @click="viewFunc(scope.row,2)">查看</div>
|
||||
<div v-else>未添加试卷</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="left" label="是否免费" min-width="60">
|
||||
@@ -96,11 +108,11 @@ function downloadChapterChildFunc(item) { // 点击下载
|
||||
{{scope.row.is_free === 1? '是':'否'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="left" label="是否展示" min-width="60">
|
||||
<template #default="scope">
|
||||
{{scope.row.is_show === 1? '是':'否'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column align="left" label="是否展示" min-width="60">-->
|
||||
<!-- <template #default="scope">-->
|
||||
<!-- {{scope.row.is_show === 1? '是':'否'}}-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column align="left" label="操作" min-width="60">
|
||||
<template #default="scope">
|
||||
<el-button v-if="scope.row.url"
|
||||
|
||||
Reference in New Issue
Block a user