提交 97263a6e authored 作者: lihuihui's avatar lihuihui

修改bug

上级 91f76947
......@@ -8,7 +8,7 @@ import 'video.js/dist/video-js.css'
const DEFAULT_OPTIONS = {
controls: true,
autoplay: true,
autoplay: false,
fluid: true
}
......
......@@ -11,7 +11,7 @@ const props: any = defineProps<{ data: object, path: string, permission?: { edit
<!-- <img src="http://iph.href.lu/265x170" /> -->
<div class="title">{{ props.data.name }}</div>
<div class="item-info">
<div class="info">文件大小:{{ props.data.size }}{{ props.data.size_name[1] }}</div>
<div class="info">文件大小:{{ props.data.size }}.M</div>
<div class="info">关联次数:{{ props.data.relation_count }}</div>
<div class="info">学习人次:{{ props.data.learn_count }}人次</div>
</div>
......
......@@ -63,9 +63,10 @@ const props = defineProps({
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon8.png" class="icons" />
<div class="text-box">
<div class="name">知识点</div>
<div class="textarea-box" style="min-width:500px;">
<div class="value">{{ props.data?.knowledge_points || '暂无' }}</div>
<!-- <div class="textarea-box" style="min-width:500px;">
{{ props.data?.knowledge_points || '暂无' }}
</div>
</div> -->
</div>
</div>
</div>
......
......@@ -50,7 +50,14 @@ const listOptions = $computed(() => {
}
],
columns: [
{ label: '课件标题', prop: 'name' },
{
label: '课件标题',
prop: 'name',
align: 'center',
computed: (row: any) => {
return row.row.name.length > 10 ? `${row.row.name.slice(0, 10)}...` : row.row.name
}
},
{ label: '课件分类', prop: 'classification_name', align: 'center' },
{ label: '知识点', prop: 'knowledge_points', align: 'center' },
{ label: '资源状态', prop: 'status_name', align: 'center' },
......
......@@ -136,7 +136,7 @@ const protocol = ref(false)
</div>
</el-form-item>
<el-form-item label="课件名称:" prop="name">
<el-input v-model="form.name" />
<el-input maxlength="40" v-model="form.name" />
</el-form-item>
<el-form-item label="课件分类:" prop="classification">
<el-tree-select
......@@ -148,7 +148,7 @@ const protocol = ref(false)
/>
</el-form-item>
<el-form-item label="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;知识点:">
<el-input v-model="form.knowledge_points" :rows="2" type="textarea" />
<el-input maxlength="100" v-model="form.knowledge_points" :rows="2" type="textarea" />
</el-form-item>
</el-form>
<div class="protocol-box">
......
<script setup lang="ts">
const prop = defineProps(['data'])
import { checkPermission } from '@/utils/permission'
import { ElMessage } from 'element-plus'
const prop = defineProps({
data: {
type: Array,
default: () => []
}
})
const router = useRouter()
const listOptions = {
columns: [
{ label: '排名', slots: 'table-ranking', align: 'center' },
......@@ -10,28 +21,51 @@ const listOptions = {
{ label: '更新人', prop: 'created_operator_name', align: 'center' },
{ label: '操作', slots: 'table-operate', align: 'center' }
],
data: prop.data
data: prop.data.map((item: any) => {
item.name = `${item.name.slice(0, 10)}...`
return item
})
}
const resourceType = (name: string, isGetPath: boolean) => {
const resourceType = (name: string, isGetPath: number) => {
let path = {}
if (isGetPath) {
if (isGetPath === 1) {
path = {
'视频': '/resource/video/view',
'课件': '/resource/courseware/view',
'教案': '/resource/lessonplan/view',
'其他资料': '/resource/other/view'
}
} else {
} else if (isGetPath === 2) {
path = {
'视频': 1,
'课件': 2,
'教案': 3,
'其他资料': 4
}
} else {
path = {
'视频': 'v1-resource-video-view',
'课件': 'v1-resource-courseware-view',
'教案': 'v1-resource-lesson-plan-view',
'其他资料': 'v1-resource-other-information-view'
}
}
return path[name]
}
const viewDetails = (row: { id: string, resource_type: string }) => {
if (checkPermission(resourceType(row.resource_type, 3))) {
router.push({
path: resourceType(row.resource_type, 1),
query: {
id: row.id
}
})
} else {
ElMessage('暂无权限查阅')
}
}
</script>
<template>
<AppList v-bind="listOptions" ref="appList" border stripe>
......@@ -42,18 +76,17 @@ const resourceType = (name: string, isGetPath: boolean) => {
<div :class="`table-relation active${row.index}`">{{ row.relation }}<span></span></div>
</template>
<template #table-type="{ row }">
<div :class="`table-type active${resourceType(row.resource_type, false)}`">{{ row.resource_type }}</div>
<div :class="`table-type active${resourceType(row.resource_type, 2)}`">{{ row.resource_type }}</div>
</template>
<template #table-operate="{ row }">
<el-space>
<router-link :to="`${resourceType(row.resource_type, true)}?id=${row.id}`">
<el-button
@click="viewDetails(row)"
style="color: #399EE8;"
type="primary"
link
>查阅</el-button
>
</router-link>
</el-space>
</template>
</AppList>
......
<script setup lang="ts">
const prop = defineProps(['data'])
import { checkPermission } from '@/utils/permission'
import { ElMessage } from 'element-plus'
const router = useRouter()
const prop = defineProps({
data: {
type: Array,
default: () => []
}
})
const listOptions = {
columns: [
{ label: '排名', slots: 'table-ranking', align: 'center' },
......@@ -10,28 +21,51 @@ const listOptions = {
{ label: '更新时间', prop: 'updated_time', align: 'center' },
{ label: '操作', slots: 'table-operate', align: 'center' }
],
data: prop.data
data: prop.data.map((item: any) => {
item.name = item.name.length > 10 ? `${item.name.slice(0, 10)}...` : item.name
return item
})
}
const resourceType = (name: string, isGetPath: boolean) => {
const resourceType = (name: string, isGetPath: number) => {
let path = {}
if (isGetPath) {
if (isGetPath === 1) {
path = {
'视频': '/resource/video/view',
'课件': '/resource/courseware/view',
'教案': '/resource/lessonplan/view',
'其他资料': '/resource/other/view'
}
} else {
} else if (isGetPath === 2) {
path = {
'视频': 1,
'课件': 2,
'教案': 3,
'其他资料': 4
}
} else {
path = {
'视频': 'v1-resource-video-view',
'课件': 'v1-resource-courseware-view',
'教案': 'v1-resource-lesson-plan-view',
'其他资料': 'v1-resource-other-information-view'
}
}
return path[name]
}
const viewDetails = (row: { id: string, resource_type: string }) => {
if (checkPermission(resourceType(row.resource_type, 3))) {
router.push({
path: resourceType(row.resource_type, 1),
query: {
id: row.id
}
})
} else {
ElMessage('暂无权限查阅')
}
}
</script>
<template>
<AppList v-bind="listOptions" ref="appList" border stripe>
......@@ -39,18 +73,19 @@ const resourceType = (name: string, isGetPath: boolean) => {
<div :class="`table-ranking active${row.index}`">{{ row.index <= 3 ? '' : row.index }}</div>
</template>
<template #table-type="{ row }">
<div :class="`table-type active${resourceType(row.resource_type, false)}`">{{ row.resource_type }}</div>
<div :class="`table-type active${resourceType(row.resource_type, 2)}`">{{ row.resource_type }}</div>
</template>
<template #table-operate="{ row }">
<el-space>
<router-link :to="`${resourceType(row.resource_type, true)}?id=${row.id}`">
<!-- <router-link :to="`${resourceType(row.resource_type, true)}?id=${row.id}`"> -->
<el-button
@click="viewDetails(row)"
style="color: #399EE8;"
type="primary"
link
>查阅</el-button
>
</router-link>
<!-- </router-link> -->
</el-space>
</template>
</AppList>
......
<script setup lang="ts">
const prop = defineProps(['data'])
import { checkPermission } from '@/utils/permission'
import { ElMessage } from 'element-plus'
const router = useRouter()
const prop = defineProps({
data: {
type: Array,
default: () => []
}
})
const listOptions = {
columns: [
{ label: '排名', slots: 'table-ranking', align: 'center' },
......@@ -10,28 +21,51 @@ const listOptions = {
{ label: '更新时间', prop: 'updated_time', align: 'center' },
{ label: '操作', slots: 'table-operate', align: 'center' }
],
data: prop.data
data: prop.data.map((item: any) => {
item.name = `${item.name.slice(0, 10)}...`
return item
})
}
const resourceType = (name: string, isGetPath: boolean) => {
const resourceType = (name: string, isGetPath: number) => {
let path = {}
if (isGetPath) {
if (isGetPath === 1) {
path = {
'视频': '/resource/video/view',
'课件': '/resource/courseware/view',
'教案': '/resource/lessonplan/view',
'其他资料': '/resource/other/view'
}
} else {
} else if (isGetPath === 2) {
path = {
'视频': 1,
'课件': 2,
'教案': 3,
'其他资料': 4
}
} else {
path = {
'视频': 'v1-resource-video-view',
'课件': 'v1-resource-courseware-view',
'教案': 'v1-resource-lesson-plan-view',
'其他资料': 'v1-resource-other-information-view'
}
}
return path[name]
}
const viewDetails = (row: { id: string, resource_type: string }) => {
if (checkPermission(resourceType(row.resource_type, 3))) {
router.push({
path: resourceType(row.resource_type, 1),
query: {
id: row.id
}
})
} else {
ElMessage('暂无权限查阅')
}
}
</script>
<template>
<AppList v-bind="listOptions" ref="appList" border stripe>
......@@ -39,18 +73,17 @@ const resourceType = (name: string, isGetPath: boolean) => {
<div :class="`table-ranking active${row.index}`">{{ row.index <= 3 ? '' : row.index }}</div>
</template>
<template #table-type="{ row }">
<div :class="`table-type active${resourceType(row.resource_type, false)}`">{{ row.resource_type }}</div>
<div :class="`table-type active${resourceType(row.resource_type, 2)}`">{{ row.resource_type }}</div>
</template>
<template #table-operate="{ row }">
<el-space>
<router-link :to="`${resourceType(row.resource_type, true)}?id=${row.id}`">
<el-button
@click="viewDetails(row)"
style="color: #399EE8;"
type="primary"
link
>查阅</el-button
>
</router-link>
</el-space>
</template>
</AppList>
......
......@@ -5,7 +5,7 @@ import Hottest from '../components/Hottest.vue'
import RecentLearning from '../components/RecentLearning.vue'
import { getUtilData } from '../api'
let flag = $ref(false)
const data = reactive<{statistics: object[], latest: object[], hot: object[], learn: object[] }>({
const data = reactive<{ statistics: object[]; latest: object[]; hot: object[]; learn: object[] }>({
statistics: [],
latest: [],
hot: [],
......@@ -14,7 +14,7 @@ const data = reactive<{statistics: object[], latest: object[], hot: object[], le
// 所有数据
getUtilData().then(res => {
flag = true
let { latest = [], hot = [], learn = [] }: { latest: object[], hot: object[], learn: object[] } = res.data
let { latest = [], hot = [], learn = [] }: { latest: object[]; hot: object[]; learn: object[] } = res.data
if (learn === null) learn = []
// 统计资源数据整合
const statisticsData = [
......@@ -36,16 +36,18 @@ getUtilData().then(res => {
data.latest = latest.map((item: any, index: number) => {
item.index = index + 1
return item
})
}) || []
// 最热资源
data.hot = hot.map((item: any, index: number) => {
data.hot =
hot.map((item: any, index: number) => {
item.index = index + 1
return item
})
data.learn = learn.map((item: any, index: number) => {
}) || []
data.learn =
learn.map((item: any, index: number) => {
item.index = index + 1
return item
})
}) || []
})
</script>
<template>
......
......@@ -63,9 +63,10 @@ const props = defineProps({
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon8.png" class="icons" />
<div class="text-box">
<div class="name">知识点</div>
<div class="textarea-box" style="min-width:500px;">
<div class="value">{{ props.data?.knowledge_points || '暂无' }}</div>
<!-- <div class="textarea-box" style="min-width:500px;">
{{ props.data?.knowledge_points || '暂无' }}
</div>
</div> -->
</div>
</div>
</div>
......
......@@ -50,7 +50,14 @@ const listOptions = $computed(() => {
}
],
columns: [
{ label: '教案标题', prop: 'name' },
{
label: '教案标题',
prop: 'name',
align: 'center',
computed: (row: any) => {
return row.row.name.length > 10 ? `${row.row.name.slice(0, 10)}...` : row.row.name
}
},
{ label: '教案分类', prop: 'classification_name', align: 'center' },
{ label: '知识点', prop: 'knowledge_points', align: 'center' },
{ label: '资源状态', prop: 'status_name', align: 'center' },
......
......@@ -136,13 +136,13 @@ const protocol = ref(false)
</div>
</el-form-item>
<el-form-item label="教案名称:" prop="name">
<el-input v-model="form.name" />
<el-input maxlength="40" v-model="form.name" />
</el-form-item>
<el-form-item label="教案分类:" prop="classification">
<el-tree-select :props="defaultProps" style="width: 100%" v-model="form.classification" :data="selectTree" />
</el-form-item>
<el-form-item label="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;知识点:">
<el-input v-model="form.knowledge_points" :rows="2" type="textarea" />
<el-input maxlength="100" v-model="form.knowledge_points" :rows="2" type="textarea" />
</el-form-item>
</el-form>
<div class="protocol-box">
......
......@@ -63,9 +63,10 @@ const props = defineProps({
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon8.png" class="icons" />
<div class="text-box">
<div class="name">知识点</div>
<div class="textarea-box" style="min-width:500px;">
<div class="value">{{ props.data?.knowledge_points || '暂无' }}</div>
<!-- <div class="textarea-box" style="min-width:500px;">
{{ props.data?.knowledge_points || '暂无' }}
</div>
</div> -->
</div>
</div>
</div>
......
......@@ -51,7 +51,14 @@ const listOptions = $computed(() => {
}
],
columns: [
{ label: '课件标题', prop: 'name' },
{
label: '其他标题',
prop: 'name',
align: 'center',
computed: (row: any) => {
return row.row.name.length > 10 ? `${row.row.name.slice(0, 10)}...` : row.row.name
}
},
{ label: '课件分类', prop: 'classification_name', align: 'center' },
{ label: '知识点', prop: 'knowledge_points', align: 'center' },
{ label: '资源状态', prop: 'status_name', align: 'center' },
......
......@@ -136,13 +136,13 @@ const protocol = ref(false)
</div>
</el-form-item>
<el-form-item label="其他名称:" prop="name">
<el-input v-model="form.name" />
<el-input maxlength="40" v-model="form.name" />
</el-form-item>
<el-form-item label="其他分类:" prop="classification">
<el-tree-select :props="defaultProps" style="width: 100%" v-model="form.classification" :data="selectTree" />
</el-form-item>
<el-form-item label="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;知识点:">
<el-input v-model="form.knowledge_points" :rows="2" type="textarea" />
<el-input maxlength="100" v-model="form.knowledge_points" :rows="2" type="textarea" />
</el-form-item>
</el-form>
<div class="protocol-box">
......
......@@ -8,7 +8,7 @@ const videoOptions = $computed(() => {
<template>
<div class="center-video-box">
<div style=" width:812px; height:433px;padding-bottom: 20px;">
<AppVideoPlayer :options="videoOptions"></AppVideoPlayer>
<AppVideoPlayer style="width:812px; height:433px;" :options="videoOptions"></AppVideoPlayer>
</div>
<div class="right-statistics">
<div class="stat-item">
......
......@@ -62,9 +62,7 @@
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon8.png" class="icons">
<div class="text-box">
<div class="name">知识点</div>
<div class="textarea-box">
{{ props.data.knowledge_points }}
</div>
<div class="value">{{ props.data?.knowledge_points || '暂无' }}</div>
</div>
</div>
</div>
......
......@@ -51,7 +51,14 @@ const listOptions = $computed(() => {
}
],
columns: [
{ label: '视频标题', prop: 'name', align: 'center' },
{
label: '视频标题',
prop: 'name',
align: 'center',
computed: (row: any) => {
return row.row.name.length > 10 ? `${row.row.name.slice(0, 10)}...` : row.row.name
}
},
{ label: '视频分类', prop: 'classification_name', align: 'center' },
{ label: '知识点', prop: 'knowledge_points', align: 'center' },
{ label: '封面', slots: 'table-cover', width: 150, align: 'center' },
......
......@@ -38,27 +38,17 @@ const defaultProps = {
let swiperCovers: [{ id: string; url: string }[]] = $ref([[]])
// 获取封面
getCoverList().then(res => {
let arr: object[] = []
const filtersData = res.data.list.filter((i:any) => i.type === '1')
swiperCovers = filtersData.reduce((a: any, b: any, index: number) => {
if (index === 0) {
arr.push(b)
a.push(arr)
} else {
if (index % 8 === 0) {
arr = []
a.push(arr)
} else {
arr.push(b)
}
let index = 0
while(index < filtersData.length) {
swiperCovers.push(filtersData.slice(index, index += 8));
}
return a
}, [])
swiperCovers.forEach((item: any, index: number) => {
if (item.length === 0) {
swiperCovers.splice(index, 1)
}
})
console.log(swiperCovers, '123')
})
// 获取swiper 自定义左右切换按钮
let swiper = ref()
......@@ -145,7 +135,7 @@ const uploadVideo = (data: any) => {
<UploadVideo @upload="uploadVideo"></UploadVideo>
</el-form-item>
<el-form-item label="视频名称:" prop="name">
<el-input v-model="form.data.name" />
<el-input v-model="form.data.name" maxlength="40" />
</el-form-item>
<el-form-item label="视频分类:" prop="classification">
<el-tree-select
......@@ -156,7 +146,7 @@ const uploadVideo = (data: any) => {
/>
</el-form-item>
<el-form-item label="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;知识点:">
<el-input v-model="form.data.knowledge_points" :rows="2" type="textarea" />
<el-input v-model="form.data.knowledge_points" :rows="2" type="textarea" maxlength="100" />
</el-form-item>
<el-form-item label="&nbsp;&nbsp;视频封面:">
<div class="video-cover">
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论