提交 edf416e8 authored 作者: 王鹏飞's avatar 王鹏飞
上级 391bf525
...@@ -6,9 +6,9 @@ ...@@ -6,9 +6,9 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>统一资源管理平台</title> <title>统一资源管理平台</title>
<script src="https://webapp-pub.ezijing.com/plugins/tinymce@6/tinymce.min.js"></script> <script src="https://webapp-pub.ezijing.com/plugins/tinymce@6/tinymce.min.js"></script>
<script src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/lib/aliyun-upload-sdk/lib/es6-promise.min.js"></script> <script src="https://webapp-pub.ezijing.com/center_resource/lib/aliyun-upload-sdk/lib/es6-promise.min.js"></script>
<script src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/lib/aliyun-upload-sdk/lib/aliyun-oss-sdk-6.17.1.min.js"></script> <script src="https://webapp-pub.ezijing.com/center_resource/lib/aliyun-upload-sdk/lib/aliyun-oss-sdk-6.17.1.min.js"></script>
<script src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/lib/aliyun-upload-sdk/aliyun-upload-sdk-1.5.3.min.js"></script> <script src="https://webapp-pub.ezijing.com/center_resource/lib/aliyun-upload-sdk/aliyun-upload-sdk-1.5.3.min.js"></script>
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>
......
...@@ -23,7 +23,7 @@ export function getSignature() { ...@@ -23,7 +23,7 @@ export function getSignature() {
// 图片上传 // 图片上传
export function uploadFile(data: Record<string, any>) { export function uploadFile(data: Record<string, any>) {
return httpRequest return httpRequest
.post('https://webapp-pub.oss-cn-beijing.aliyuncs.com', data, { .post('https://webapp-pub.ezijing.com', data, {
withCredentials: false, withCredentials: false,
headers: { 'Content-Type': 'multipart/form-data' } headers: { 'Content-Type': 'multipart/form-data' }
}) })
......
...@@ -101,7 +101,7 @@ const handlePreview: UploadProps['onPreview'] = uploadFile => { ...@@ -101,7 +101,7 @@ const handlePreview: UploadProps['onPreview'] = uploadFile => {
<template> <template>
<el-upload <el-upload
action="https://webapp-pub.oss-cn-beijing.aliyuncs.com" action="https://webapp-pub.ezijing.com"
:data="uploadData" :data="uploadData"
:show-file-list="showFileList" :show-file-list="showFileList"
:before-upload="handleBeforeUpload" :before-upload="handleBeforeUpload"
...@@ -110,8 +110,7 @@ const handlePreview: UploadProps['onPreview'] = uploadFile => { ...@@ -110,8 +110,7 @@ const handlePreview: UploadProps['onPreview'] = uploadFile => {
:on-preview="handlePreview" :on-preview="handlePreview"
:on-success="handleSuccess" :on-success="handleSuccess"
:file-list="fileList" :file-list="fileList"
class="uploader" class="uploader">
>
<template v-if="showFileList"> <template v-if="showFileList">
<template v-if="$attrs['list-type'] === 'picture-card'"> <template v-if="$attrs['list-type'] === 'picture-card'">
<el-icon><Plus /></el-icon> <el-icon><Plus /></el-icon>
......
...@@ -9,7 +9,7 @@ const prop = defineProps({ ...@@ -9,7 +9,7 @@ const prop = defineProps({
}) })
const item = { const item = {
url: 'https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/%E7%B4%AB%E8%8D%86%E6%95%99%E8%82%B2%E7%94%A8%E6%88%B7%E5%85%A5%E9%A9%BB%E5%8F%8A%E7%BD%91%E7%BB%9C%E6%95%99%E5%AD%A6%E8%B5%84%E6%BA%90%E5%8D%8F%E8%AE%AE(1).docx' url: 'https://webapp-pub.ezijing.com/center_resource/%E7%B4%AB%E8%8D%86%E6%95%99%E8%82%B2%E7%94%A8%E6%88%B7%E5%85%A5%E9%A9%BB%E5%8F%8A%E7%BD%91%E7%BB%9C%E6%95%99%E5%AD%A6%E8%B5%84%E6%BA%90%E5%8D%8F%E8%AE%AE(1).docx'
} }
const emit = defineEmits(['change']) const emit = defineEmits(['change'])
......
...@@ -24,7 +24,7 @@ const dialogVisible = ref(false) ...@@ -24,7 +24,7 @@ const dialogVisible = ref(false)
</div> </div>
</section> </section>
<div class="manual-btn" @click="dialogVisible = true"> <div class="manual-btn" @click="dialogVisible = true">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/course.png" /> <img src="https://webapp-pub.ezijing.com/center_resource/course.png" />
</div> </div>
<el-dialog v-model="dialogVisible" title="使用手册" width="852px"> <el-dialog v-model="dialogVisible" title="使用手册" width="852px">
<PreviewFiles url="https://webapp-pub.ezijing.com/upload/admin/05e3fa93d5760e6909a1a0244f545133.doc"></PreviewFiles> <PreviewFiles url="https://webapp-pub.ezijing.com/upload/admin/05e3fa93d5760e6909a1a0244f545133.doc"></PreviewFiles>
......
...@@ -77,31 +77,19 @@ const swiperItemHandle = (url: string) => { ...@@ -77,31 +77,19 @@ const swiperItemHandle = (url: string) => {
<UploadImg accept=".jpg,.jpeg,.gif,.png" v-model="courseCover"></UploadImg> <UploadImg accept=".jpg,.jpeg,.gif,.png" v-model="courseCover"></UploadImg>
<div class="list"> <div class="list">
<div class="item"> <div class="item">
<img <img src="https://webapp-pub.ezijing.com/center_resource/upload-video-icon.png" class="icon" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/upload-video-icon.png"
class="icon"
/>
<div class="text">该图片作为课程的封面图,用于课程封面显示</div> <div class="text">该图片作为课程的封面图,用于课程封面显示</div>
</div> </div>
<div class="item"> <div class="item">
<img <img src="https://webapp-pub.ezijing.com/center_resource/upload-video-icon.png" class="icon" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/upload-video-icon.png"
class="icon"
/>
<div class="text">支持jpg/jpeg/gif/png格式</div> <div class="text">支持jpg/jpeg/gif/png格式</div>
</div> </div>
<div class="item"> <div class="item">
<img <img src="https://webapp-pub.ezijing.com/center_resource/upload-video-icon.png" class="icon" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/upload-video-icon.png"
class="icon"
/>
<div class="text">支持小于4M,最好宽240*高175*及以上尺寸</div> <div class="text">支持小于4M,最好宽240*高175*及以上尺寸</div>
</div> </div>
<div class="item"> <div class="item">
<img <img src="https://webapp-pub.ezijing.com/center_resource/upload-video-icon.png" class="icon" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/upload-video-icon.png"
class="icon"
/>
<div class="text">可以自己上传图片,也可以从下面这些图片中选择使用</div> <div class="text">可以自己上传图片,也可以从下面这些图片中选择使用</div>
</div> </div>
</div> </div>
...@@ -115,16 +103,14 @@ const swiperItemHandle = (url: string) => { ...@@ -115,16 +103,14 @@ const swiperItemHandle = (url: string) => {
:autoplay="false" :autoplay="false"
arrow="never" arrow="never"
trigger="click" trigger="click"
ref="swiper" ref="swiper">
>
<el-carousel-item v-for="(item, index) in swiperCovers" :key="index" class="cover-list"> <el-carousel-item v-for="(item, index) in swiperCovers" :key="index" class="cover-list">
<div <div
@click="swiperItemHandle(cItem.url)" @click="swiperItemHandle(cItem.url)"
:key="cItem.id" :key="cItem.id"
v-for="cItem in item" v-for="cItem in item"
:style="`background-image:url(${cItem.url})`" :style="`background-image:url(${cItem.url})`"
class="cover-list_item" class="cover-list_item"></div>
></div>
</el-carousel-item> </el-carousel-item>
</el-carousel> </el-carousel>
</div> </div>
......
...@@ -79,7 +79,7 @@ const handlePreview: UploadProps['onPreview'] = uploadFile => { ...@@ -79,7 +79,7 @@ const handlePreview: UploadProps['onPreview'] = uploadFile => {
<template> <template>
<el-upload <el-upload
action="https://webapp-pub.oss-cn-beijing.aliyuncs.com" action="https://webapp-pub.ezijing.com"
:data="uploadData" :data="uploadData"
:show-file-list="false" :show-file-list="false"
:before-upload="handleBeforeUpload" :before-upload="handleBeforeUpload"
...@@ -88,8 +88,7 @@ const handlePreview: UploadProps['onPreview'] = uploadFile => { ...@@ -88,8 +88,7 @@ const handlePreview: UploadProps['onPreview'] = uploadFile => {
:on-preview="handlePreview" :on-preview="handlePreview"
:on-success="handleSuccess" :on-success="handleSuccess"
:file-list="fileList" :file-list="fileList"
class="uploader" class="uploader">
>
<el-button type="primary">选择本地图片</el-button> <el-button type="primary">选择本地图片</el-button>
</el-upload> </el-upload>
</template> </template>
......
...@@ -223,8 +223,7 @@ const addVideoList = function () { ...@@ -223,8 +223,7 @@ const addVideoList = function () {
draggable draggable
:before-close="handleCancel" :before-close="handleCancel"
size="60%" size="60%"
:title="`添加${props.btnInfo.btn_name}`" :title="`添加${props.btnInfo.btn_name}`">
>
<div class="video-head"> <div class="video-head">
<el-tabs @tab-change="tabChange" v-model="tabValue"> <el-tabs @tab-change="tabChange" v-model="tabValue">
<el-tab-pane label="我的资源" name="1"></el-tab-pane> <el-tab-pane label="我的资源" name="1"></el-tab-pane>
...@@ -232,12 +231,8 @@ const addVideoList = function () { ...@@ -232,12 +231,8 @@ const addVideoList = function () {
<el-tab-pane label="公开资源" name="3"></el-tab-pane> <el-tab-pane label="公开资源" name="3"></el-tab-pane>
</el-tabs> </el-tabs>
<div class="video-head-icon" @click="changeCard"> <div class="video-head-icon" @click="changeCard">
<img <img v-if="!isCard" src="https://webapp-pub.ezijing.com/center_resource/change_card.png" alt="" />
v-if="!isCard" <img v-else src="https://webapp-pub.ezijing.com/center_resource/change_list.png" alt="" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/change_card.png"
alt=""
/>
<img v-else src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/change_list.png" alt="" />
</div> </div>
</div> </div>
<AppList @selection-change="select" v-bind="listOptions" ref="appList"> <AppList @selection-change="select" v-bind="listOptions" ref="appList">
...@@ -253,8 +248,7 @@ const addVideoList = function () { ...@@ -253,8 +248,7 @@ const addVideoList = function () {
display: block; display: block;
height: 83px; height: 83px;
background-size: cover; background-size: cover;
background-image: url(${row.cover});`" background-image: url(${row.cover});`"></div>
></div>
</div> </div>
</template> </template>
<template #filter-type="{ params }"> <template #filter-type="{ params }">
...@@ -265,8 +259,7 @@ const addVideoList = function () { ...@@ -265,8 +259,7 @@ const addVideoList = function () {
:props="defaultProps" :props="defaultProps"
v-model="params.classification" v-model="params.classification"
:data="selectTree" :data="selectTree"
:default-expanded-keys="selectTree.length ? [selectTree[0]?.id] : []" :default-expanded-keys="selectTree.length ? [selectTree[0]?.id] : []" />
/>
</template> </template>
<template #body="{ data }" v-if="isCard"> <template #body="{ data }" v-if="isCard">
<div class="card-list" v-if="data.length"> <div class="card-list" v-if="data.length">
...@@ -281,8 +274,7 @@ const addVideoList = function () { ...@@ -281,8 +274,7 @@ const addVideoList = function () {
:tabIndex="tabValue" :tabIndex="tabValue"
:data="item" :data="item"
:path="path" :path="path"
@add="handleAdd" @add="handleAdd">
>
<el-checkbox @change="checkboxSelect" v-model="item.check_status"></el-checkbox> <el-checkbox @change="checkboxSelect" v-model="item.check_status"></el-checkbox>
</CardListItem> </CardListItem>
</div> </div>
......
...@@ -64,7 +64,7 @@ const form = reactive<Record<string, any>>({ ...@@ -64,7 +64,7 @@ const form = reactive<Record<string, any>>({
classification: '', classification: '',
credit: '', credit: '',
source: '2', source: '2',
cover: 'https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/course-cover.png', cover: 'https://webapp-pub.ezijing.com/center_resource/course-cover.png',
lecturer_id: '', lecturer_id: '',
teacher_id: '', teacher_id: '',
represent: '', represent: '',
...@@ -196,7 +196,6 @@ getMajorList({ name: '', 'per-page': '100' }).then((res: any) => { ...@@ -196,7 +196,6 @@ getMajorList({ name: '', 'per-page': '100' }).then((res: any) => {
const handleInformation = (val: any) => { const handleInformation = (val: any) => {
form.information_id = val.map((item: any) => item.id).toString() form.information_id = val.map((item: any) => item.id).toString()
} }
</script> </script>
<template> <template>
...@@ -230,22 +229,26 @@ const handleInformation = (val: any) => { ...@@ -230,22 +229,26 @@ const handleInformation = (val: any) => {
:data="selectTree" :data="selectTree"
node-key="id" node-key="id"
:default-expanded-keys="selectTree.length ? [selectTree[0]?.id] : []" :default-expanded-keys="selectTree.length ? [selectTree[0]?.id] : []"
placeholder="请选择课程分类" placeholder="请选择课程分类" />
/>
</el-form-item> </el-form-item>
<el-form-item label="课程学分" prop="credit"> <el-form-item label="课程学分" prop="credit">
<el-input v-model="form.credit" maxlength="3" /> <el-input v-model="form.credit" maxlength="3" />
</el-form-item> </el-form-item>
<el-form-item label="适用专业" prop="specialty_id"> <el-form-item label="适用专业" prop="specialty_id">
<el-select v-model="form.specialty_id" placeholder="请选择适用专业" style="width: 100%" clearable multiple v-permission="'v1-course-search-specialty'"> <el-select
v-model="form.specialty_id"
placeholder="请选择适用专业"
style="width: 100%"
clearable
multiple
v-permission="'v1-course-search-specialty'">
<!-- :remote-method="handleMajorList" --> <!-- :remote-method="handleMajorList" -->
<el-option <el-option
v-for="(item, index) in majorList" v-for="(item, index) in majorList"
:key="index" :key="index"
:label="item.name" :label="item.name"
:value="item.id" :value="item.id"></el-option>
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -256,8 +259,7 @@ const handleInformation = (val: any) => { ...@@ -256,8 +259,7 @@ const handleInformation = (val: any) => {
:model="form" :model="form"
:rules="rules" :rules="rules"
label-suffix=":" label-suffix=":"
style="width: 100%; margin-top: 30px" style="width: 100%; margin-top: 30px">
>
<el-form-item label="课程助教" prop="teacher_id"> <el-form-item label="课程助教" prop="teacher_id">
<!-- 添加助教 --> <!-- 添加助教 -->
<AddAssistant v-model="form.teachers" style="width: 100%"></AddAssistant> <AddAssistant v-model="form.teachers" style="width: 100%"></AddAssistant>
...@@ -293,8 +295,7 @@ const handleInformation = (val: any) => { ...@@ -293,8 +295,7 @@ const handleInformation = (val: any) => {
:data="information" :data="information"
style="width: 100%" style="width: 100%"
:id="id" :id="id"
@information="handleInformation" @information="handleInformation"></AddCourseData>
></AddCourseData>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
......
...@@ -78,33 +78,33 @@ const bytesToSize = (bytes: number) => { ...@@ -78,33 +78,33 @@ const bytesToSize = (bytes: number) => {
margin-top: 20px; margin-top: 20px;
// &:nth-child(1) { // &:nth-child(1) {
// .icon { // .icon {
// background-image: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-icon1.png); // background-image: url(https://webapp-pub.ezijing.com/center_resource/home-icon1.png);
// } // }
// } // }
&:nth-child(1) { &:nth-child(1) {
.icon { .icon {
background-image: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-icon2.png); background-image: url(https://webapp-pub.ezijing.com/center_resource/home-icon2.png);
} }
} }
&:nth-child(2) { &:nth-child(2) {
.icon { .icon {
background-image: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-icon3.png); background-image: url(https://webapp-pub.ezijing.com/center_resource/home-icon3.png);
} }
} }
&:nth-child(3) { &:nth-child(3) {
.icon { .icon {
background-image: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-icon4.png); background-image: url(https://webapp-pub.ezijing.com/center_resource/home-icon4.png);
} }
} }
&:nth-child(4) { &:nth-child(4) {
.icon { .icon {
background-image: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-icon8.png); background-image: url(https://webapp-pub.ezijing.com/center_resource/home-icon8.png);
} }
} }
&:nth-child(5) { &:nth-child(5) {
.icon { .icon {
background-image: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-icon9.png); background-image: url(https://webapp-pub.ezijing.com/center_resource/home-icon9.png);
} }
} }
.icon { .icon {
......
...@@ -154,14 +154,14 @@ const handleDetail = (row: any) => { ...@@ -154,14 +154,14 @@ const handleDetail = (row: any) => {
<div class="bottom-info"> <div class="bottom-info">
<div class="other-info"> <div class="other-info">
<div class="item"> <div class="item">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/course-view-icon11.png" /> <img src="https://webapp-pub.ezijing.com/center_resource/course-view-icon11.png" />
<div> <div>
<div class="label">课程所属部门</div> <div class="label">课程所属部门</div>
<div class="value">{{ props.data.organ_id_name }}</div> <div class="value">{{ props.data.organ_id_name }}</div>
</div> </div>
</div> </div>
<div class="item"> <div class="item">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/course-view-icon12.png" /> <img src="https://webapp-pub.ezijing.com/center_resource/course-view-icon12.png" />
<div> <div>
<div class="label">课程公开信息</div> <div class="label">课程公开信息</div>
<div class="value"> <div class="value">
...@@ -175,7 +175,7 @@ const handleDetail = (row: any) => { ...@@ -175,7 +175,7 @@ const handleDetail = (row: any) => {
</div> </div>
</div> </div>
<div class="item"> <div class="item">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/course-view-icon15.png" /> <img src="https://webapp-pub.ezijing.com/center_resource/course-view-icon15.png" />
<div> <div>
<div class="label">课程授权信息</div> <div class="label">课程授权信息</div>
<div class="value_list" v-if="props.data.auth_departments && props.data.auth_departments.length > 0"> <div class="value_list" v-if="props.data.auth_departments && props.data.auth_departments.length > 0">
...@@ -234,8 +234,7 @@ const handleDetail = (row: any) => { ...@@ -234,8 +234,7 @@ const handleDetail = (row: any) => {
inline-prompt inline-prompt
style="--el-switch-on-color: #aa1941" style="--el-switch-on-color: #aa1941"
@click="handleChangeStatus(row)" @click="handleChangeStatus(row)"
:disabled="!checkPermission('v1-course-set-course-information-can-download')" :disabled="!checkPermission('v1-course-set-course-information-can-download')">
>
</el-switch> </el-switch>
</template> </template>
<template #table-operate="{ row }"> <template #table-operate="{ row }">
......
...@@ -16,42 +16,42 @@ interface IBasicInfo { ...@@ -16,42 +16,42 @@ interface IBasicInfo {
const basicInfo = computed((): IBasicInfo[] => { const basicInfo = computed((): IBasicInfo[] => {
const basicList = [ const basicList = [
{ {
icon: 'https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/course-view-icon1.png', icon: 'https://webapp-pub.ezijing.com/center_resource/course-view-icon1.png',
label: '课程类型', label: '课程类型',
value: '', value: '',
key: 'online_type_name', key: 'online_type_name',
border: '1' border: '1'
}, },
{ {
icon: 'https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/course-view-icon5.png', icon: 'https://webapp-pub.ezijing.com/center_resource/course-view-icon5.png',
label: '选课类型', label: '选课类型',
value: '', value: '',
key: 'elective_type_name', key: 'elective_type_name',
border: '1' border: '1'
}, },
{ {
icon: 'https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/course-view-icon3.png', icon: 'https://webapp-pub.ezijing.com/center_resource/course-view-icon3.png',
label: '课程学分', label: '课程学分',
value: '', value: '',
key: 'credit', key: 'credit',
border: '1' border: '1'
}, },
{ {
icon: 'https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/course-view-icon13.png', icon: 'https://webapp-pub.ezijing.com/center_resource/course-view-icon13.png',
label: '负责人', label: '负责人',
value: '', value: '',
key: 'belong_operator_name', key: 'belong_operator_name',
border: '1' border: '1'
}, },
{ {
icon: 'https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/course-view-icon8.png', icon: 'https://webapp-pub.ezijing.com/center_resource/course-view-icon8.png',
label: '创建时间', label: '创建时间',
value: '', value: '',
key: 'created_time', key: 'created_time',
border: '0' border: '0'
}, },
{ {
icon: 'https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/course-view-icon2.png', icon: 'https://webapp-pub.ezijing.com/center_resource/course-view-icon2.png',
label: '课程分类', label: '课程分类',
value: '', value: '',
key: 'classification_name', key: 'classification_name',
...@@ -59,28 +59,28 @@ const basicInfo = computed((): IBasicInfo[] => { ...@@ -59,28 +59,28 @@ const basicInfo = computed((): IBasicInfo[] => {
}, },
{ {
icon: 'https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/course-view-icon14.png', icon: 'https://webapp-pub.ezijing.com/center_resource/course-view-icon14.png',
label: '适用专业', label: '适用专业',
value: '', value: '',
key: 'specialty', key: 'specialty',
border: '1' border: '1'
}, },
{ {
icon: 'https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/course-view-icon7.png', icon: 'https://webapp-pub.ezijing.com/center_resource/course-view-icon7.png',
label: '是否有效', label: '是否有效',
value: '', value: '',
key: 'status_name', key: 'status_name',
border: '1' border: '1'
}, },
{ {
icon: 'https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/course-view-icon6.png', icon: 'https://webapp-pub.ezijing.com/center_resource/course-view-icon6.png',
label: '更新人', label: '更新人',
value: '', value: '',
key: 'updated_operator_name', key: 'updated_operator_name',
border: '1' border: '1'
}, },
{ {
icon: 'https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/course-view-icon9.png', icon: 'https://webapp-pub.ezijing.com/center_resource/course-view-icon9.png',
label: '更新时间', label: '更新时间',
value: '', value: '',
key: 'updated_time', key: 'updated_time',
...@@ -113,9 +113,7 @@ const statusStyle = (item: any) => { ...@@ -113,9 +113,7 @@ const statusStyle = (item: any) => {
<template> <template>
<div class="top-info"> <div class="top-info">
<div class="cover"> <div class="cover">
<img <img :src="props.data.cover || 'https://webapp-pub.ezijing.com/center_resource/course_default.png'" />
:src="props.data.cover || 'https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/course_default.png'"
/>
<el-popover trigger="hover" placement="right"> <el-popover trigger="hover" placement="right">
<div v-html="props.data.name"></div> <div v-html="props.data.name"></div>
<template #reference> <template #reference>
...@@ -133,8 +131,7 @@ const statusStyle = (item: any) => { ...@@ -133,8 +131,7 @@ const statusStyle = (item: any) => {
class="item" class="item"
v-for="item in basicInfo" v-for="item in basicInfo"
:key="item.key" :key="item.key"
:style="item.border === '1' ? 'border-right:1px dashed #BFBFBF' : 'border-right:none'" :style="item.border === '1' ? 'border-right:1px dashed #BFBFBF' : 'border-right:none'">
>
<img :src="item.icon" /> <img :src="item.icon" />
<div class="item-right"> <div class="item-right">
<div class="label">{{ item.label }}</div> <div class="label">{{ item.label }}</div>
......
...@@ -88,12 +88,8 @@ const changeCard = () => { ...@@ -88,12 +88,8 @@ const changeCard = () => {
<el-tab-pane label="公开课程" name="3"></el-tab-pane> <el-tab-pane label="公开课程" name="3"></el-tab-pane>
</el-tabs> </el-tabs>
<div class="video-head-icon" @click="changeCard"> <div class="video-head-icon" @click="changeCard">
<img <img v-if="!isCard" src="https://webapp-pub.ezijing.com/center_resource/change_card.png" alt="" />
v-if="!isCard" <img v-else src="https://webapp-pub.ezijing.com/center_resource/change_list.png" alt="" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/change_card.png"
alt=""
/>
<img v-else src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/change_list.png" alt="" />
</div> </div>
</div> </div>
<div class="video-tool-btn"> <div class="video-tool-btn">
...@@ -114,8 +110,7 @@ const changeCard = () => { ...@@ -114,8 +110,7 @@ const changeCard = () => {
display: block; display: block;
height: 83px; height: 83px;
background-size: cover; background-size: cover;
background-image: url(${row.cover});`" background-image: url(${row.cover});`"></div>
></div>
</div> </div>
</template> </template>
<template v-if="tabValue == '3' && isAdmin" #filter-department="{ params }"> <template v-if="tabValue == '3' && isAdmin" #filter-department="{ params }">
......
...@@ -11,28 +11,28 @@ const props = defineProps({ ...@@ -11,28 +11,28 @@ const props = defineProps({
<div class="center-video-box"> <div class="center-video-box">
<div class="right-statistics"> <div class="right-statistics">
<div class="stat-item"> <div class="stat-item">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon1.png" /> <img src="https://webapp-pub.ezijing.com/center_resource/view-vicon1.png" />
<div class="content"> <div class="content">
<div class="unit">{{ props.data?.project_count }}<span></span></div> <div class="unit">{{ props.data?.project_count }}<span></span></div>
<div class="tag">使用项目/学校</div> <div class="tag">使用项目/学校</div>
</div> </div>
</div> </div>
<div class="stat-item"> <div class="stat-item">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon2.png" /> <img src="https://webapp-pub.ezijing.com/center_resource/view-vicon2.png" />
<div class="content"> <div class="content">
<div class="unit">{{ props.data?.course_count }}<span></span></div> <div class="unit">{{ props.data?.course_count }}<span></span></div>
<div class="tag">使用课程</div> <div class="tag">使用课程</div>
</div> </div>
</div> </div>
<div class="stat-item"> <div class="stat-item">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon3.png" /> <img src="https://webapp-pub.ezijing.com/center_resource/view-vicon3.png" />
<div class="content"> <div class="content">
<div class="unit">{{ props.data?.learn_count }}<span>人次</span></div> <div class="unit">{{ props.data?.learn_count }}<span>人次</span></div>
<div class="tag">累计学习人次</div> <div class="tag">累计学习人次</div>
</div> </div>
</div> </div>
<div class="stat-item"> <div class="stat-item">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon4.png" /> <img src="https://webapp-pub.ezijing.com/center_resource/view-vicon4.png" />
<div class="content"> <div class="content">
<div class="unit">{{ props.data?.learn_time_count }}<span>分钟</span></div> <div class="unit">{{ props.data?.learn_time_count }}<span>分钟</span></div>
<div class="tag">累计学习时长</div> <div class="tag">累计学习时长</div>
......
...@@ -14,9 +14,8 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp ...@@ -14,9 +14,8 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp
<div class="video-img"> <div class="video-img">
<img <img
style="width: 80px" style="width: 80px"
:src="`https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/detail-${props.data?.type}.png`" :src="`https://webapp-pub.ezijing.com/center_resource/detail-${props.data?.type}.png`"
v-if="fileType.includes(props.data?.type)" v-if="fileType.includes(props.data?.type)" />
/>
<el-icon class="item-info-icon" v-else> <el-icon class="item-info-icon" v-else>
<Files /> <Files />
</el-icon> </el-icon>
...@@ -24,30 +23,21 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp ...@@ -24,30 +23,21 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp
<div class="info-items"> <div class="info-items">
<div class="flex-box"> <div class="flex-box">
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon5.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon5.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">课件名称</div> <div class="name">课件名称</div>
<div class="value">{{ props.data?.name }}</div> <div class="value">{{ props.data?.name }}</div>
</div> </div>
</div> </div>
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon6.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon6.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">课件分类</div> <div class="name">课件分类</div>
<div class="value">{{ props.data?.classification_name || '暂无' }}</div> <div class="value">{{ props.data?.classification_name || '暂无' }}</div>
</div> </div>
</div> </div>
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon1.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon1.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">状态</div> <div class="name">状态</div>
<div :class="props.data?.status == '1' ? 'value active' : 'value inactive'"> <div :class="props.data?.status == '1' ? 'value active' : 'value inactive'">
...@@ -56,10 +46,7 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp ...@@ -56,10 +46,7 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp
</div> </div>
</div> </div>
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon3.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon3.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">创建时间</div> <div class="name">创建时间</div>
<div class="value">{{ props.data?.created_time }}</div> <div class="value">{{ props.data?.created_time }}</div>
...@@ -68,40 +55,28 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp ...@@ -68,40 +55,28 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp
</div> </div>
<div class="flex-box"> <div class="flex-box">
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon12.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon12.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">创建者</div> <div class="name">创建者</div>
<div class="value">{{ props.data?.created_operator_name }}</div> <div class="value">{{ props.data?.created_operator_name }}</div>
</div> </div>
</div> </div>
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/course-view-icon13.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/course-view-icon13.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">负责人</div> <div class="name">负责人</div>
<div class="value">{{ props.data?.belong_operator_name }}</div> <div class="value">{{ props.data?.belong_operator_name }}</div>
</div> </div>
</div> </div>
<div class="i-items" style="align-items: flex-start"> <div class="i-items" style="align-items: flex-start">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon8.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon8.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">知识点</div> <div class="name">知识点</div>
<div class="value">{{ props.data?.knowledge_points || '暂无' }}</div> <div class="value">{{ props.data?.knowledge_points || '暂无' }}</div>
</div> </div>
</div> </div>
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon4.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon4.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">更新时间</div> <div class="name">更新时间</div>
<div class="value">{{ props.data?.updated_time }}</div> <div class="value">{{ props.data?.updated_time }}</div>
......
...@@ -99,20 +99,15 @@ const typeFilter = () => { ...@@ -99,20 +99,15 @@ const typeFilter = () => {
<el-tab-pane label="公开资源" name="3"></el-tab-pane> <el-tab-pane label="公开资源" name="3"></el-tab-pane>
</el-tabs> </el-tabs>
<div class="video-head-icon" @click="changeCard"> <div class="video-head-icon" @click="changeCard">
<img <img v-if="!isCard" src="https://webapp-pub.ezijing.com/center_resource/change_card.png" alt="" />
v-if="!isCard" <img v-else src="https://webapp-pub.ezijing.com/center_resource/change_list.png" alt="" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/change_card.png"
alt=""
/>
<img v-else src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/change_list.png" alt="" />
</div> </div>
</div> </div>
<div class="video-tool-btn"> <div class="video-tool-btn">
<router-link <router-link
v-if="tabValue === '1'" v-if="tabValue === '1'"
v-permission="'v1-resource-courseware-create'" v-permission="'v1-resource-courseware-create'"
to="/resource/courseware/update" to="/resource/courseware/update">
>
<el-button type="primary" round>新建课件资源</el-button> <el-button type="primary" round>新建课件资源</el-button>
</router-link> </router-link>
</div> </div>
...@@ -126,8 +121,7 @@ const typeFilter = () => { ...@@ -126,8 +121,7 @@ const typeFilter = () => {
:props="defaultProps" :props="defaultProps"
v-model="params.classification" v-model="params.classification"
:data="selectTree" :data="selectTree"
:default-expanded-keys="selectTree.length ? [selectTree[0]?.id] : []" :default-expanded-keys="selectTree.length ? [selectTree[0]?.id] : []" />
/>
</template> </template>
<template v-if="tabValue == '3' && isAdmin" #filter-department="{ params }"> <template v-if="tabValue == '3' && isAdmin" #filter-department="{ params }">
<div class="name" style="font-size: 14px; color: #606266; padding-right: 12px">部门:</div> <div class="name" style="font-size: 14px; color: #606266; padding-right: 12px">部门:</div>
...@@ -155,8 +149,7 @@ const typeFilter = () => { ...@@ -155,8 +149,7 @@ const typeFilter = () => {
v-for="(item, index) in data" v-for="(item, index) in data"
:data="item" :data="item"
:key="index" :key="index"
:tabIndex="tabValue" :tabIndex="tabValue"></CardListItem>
></CardListItem>
</div> </div>
<!-- <el-empty v-else description="暂无数据" /> --> <!-- <el-empty v-else description="暂无数据" /> -->
</template> </template>
......
...@@ -19,7 +19,7 @@ const listOptions = { ...@@ -19,7 +19,7 @@ const listOptions = {
{ label: '资源类型', slots: 'table-type', align: 'center' }, { label: '资源类型', slots: 'table-type', align: 'center' },
{ label: '所在部门', prop: 'organ_id_name', align: 'center' }, { label: '所在部门', prop: 'organ_id_name', align: 'center' },
{ label: '更新人', prop: 'created_operator_name', align: 'center' }, { label: '更新人', prop: 'created_operator_name', align: 'center' },
{ label: '操作', slots: 'table-operate', align: 'center' , fixed: 'right'} { label: '操作', slots: 'table-operate', align: 'center', fixed: 'right' }
], ],
data: prop.data.map((item: any) => { data: prop.data.map((item: any) => {
item.name = `${item.name.slice(0, 10)}...` item.name = `${item.name.slice(0, 10)}...`
...@@ -93,17 +93,17 @@ const viewDetails = (row: { id: string; resource_type: string }) => { ...@@ -93,17 +93,17 @@ const viewDetails = (row: { id: string; resource_type: string }) => {
&.active1 { &.active1 {
width: 20px; width: 20px;
height: 26px; height: 26px;
background: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-ranking1.png); background: url(https://webapp-pub.ezijing.com/center_resource/home-ranking1.png);
} }
&.active2 { &.active2 {
width: 20px; width: 20px;
height: 26px; height: 26px;
background: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-ranking2.png); background: url(https://webapp-pub.ezijing.com/center_resource/home-ranking2.png);
} }
&.active3 { &.active3 {
width: 20px; width: 20px;
height: 26px; height: 26px;
background: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-ranking3.png); background: url(https://webapp-pub.ezijing.com/center_resource/home-ranking3.png);
} }
} }
.table-type { .table-type {
......
...@@ -89,17 +89,17 @@ const viewDetails = (row: { id: string; auth_view: boolean; resource_type: strin ...@@ -89,17 +89,17 @@ const viewDetails = (row: { id: string; auth_view: boolean; resource_type: strin
&.active1 { &.active1 {
width: 20px; width: 20px;
height: 26px; height: 26px;
background: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-ranking1.png); background: url(https://webapp-pub.ezijing.com/center_resource/home-ranking1.png);
} }
&.active2 { &.active2 {
width: 20px; width: 20px;
height: 26px; height: 26px;
background: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-ranking2.png); background: url(https://webapp-pub.ezijing.com/center_resource/home-ranking2.png);
} }
&.active3 { &.active3 {
width: 20px; width: 20px;
height: 26px; height: 26px;
background: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-ranking3.png); background: url(https://webapp-pub.ezijing.com/center_resource/home-ranking3.png);
} }
} }
.table-type { .table-type {
......
...@@ -90,17 +90,17 @@ const viewDetails = (row: { id: string; resource_type: string }) => { ...@@ -90,17 +90,17 @@ const viewDetails = (row: { id: string; resource_type: string }) => {
&.active1 { &.active1 {
width: 20px; width: 20px;
height: 26px; height: 26px;
background: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-ranking1.png); background: url(https://webapp-pub.ezijing.com/center_resource/home-ranking1.png);
} }
&.active2 { &.active2 {
width: 20px; width: 20px;
height: 26px; height: 26px;
background: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-ranking2.png); background: url(https://webapp-pub.ezijing.com/center_resource/home-ranking2.png);
} }
&.active3 { &.active3 {
width: 20px; width: 20px;
height: 26px; height: 26px;
background: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-ranking3.png); background: url(https://webapp-pub.ezijing.com/center_resource/home-ranking3.png);
} }
} }
.table-type { .table-type {
......
...@@ -53,48 +53,48 @@ const bytesToSize = (bytes: number) => { ...@@ -53,48 +53,48 @@ const bytesToSize = (bytes: number) => {
margin-top: 20px; margin-top: 20px;
&:nth-child(1) { &:nth-child(1) {
.icon { .icon {
background-image: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-icon1.png); background-image: url(https://webapp-pub.ezijing.com/center_resource/home-icon1.png);
} }
} }
&:nth-child(2) { &:nth-child(2) {
.icon { .icon {
background-image: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-icon2.png); background-image: url(https://webapp-pub.ezijing.com/center_resource/home-icon2.png);
} }
} }
&:nth-child(3) { &:nth-child(3) {
.icon { .icon {
background-image: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-icon3.png); background-image: url(https://webapp-pub.ezijing.com/center_resource/home-icon3.png);
} }
} }
&:nth-child(4) { &:nth-child(4) {
.icon { .icon {
background-image: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-icon4.png); background-image: url(https://webapp-pub.ezijing.com/center_resource/home-icon4.png);
} }
} }
&:nth-child(5) { &:nth-child(5) {
.icon { .icon {
background-image: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-icon5.png); background-image: url(https://webapp-pub.ezijing.com/center_resource/home-icon5.png);
} }
} }
&:nth-child(6) { &:nth-child(6) {
.icon { .icon {
background-image: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-icon6.png); background-image: url(https://webapp-pub.ezijing.com/center_resource/home-icon6.png);
} }
} }
&:nth-child(7) { &:nth-child(7) {
.icon { .icon {
background-image: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-icon7.png); background-image: url(https://webapp-pub.ezijing.com/center_resource/home-icon7.png);
} }
} }
&:nth-child(8) { &:nth-child(8) {
.icon { .icon {
background-image: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-icon8.png); background-image: url(https://webapp-pub.ezijing.com/center_resource/home-icon8.png);
} }
} }
&:nth-child(9) { &:nth-child(9) {
.icon { .icon {
background-image: url(https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/home-icon9.png); background-image: url(https://webapp-pub.ezijing.com/center_resource/home-icon9.png);
} }
} }
.icon { .icon {
......
...@@ -11,28 +11,28 @@ const props = defineProps({ ...@@ -11,28 +11,28 @@ const props = defineProps({
<div class="center-video-box"> <div class="center-video-box">
<div class="right-statistics"> <div class="right-statistics">
<div class="stat-item"> <div class="stat-item">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon1.png" /> <img src="https://webapp-pub.ezijing.com/center_resource/view-vicon1.png" />
<div class="content"> <div class="content">
<div class="unit">{{ props.data?.project_count }}<span></span></div> <div class="unit">{{ props.data?.project_count }}<span></span></div>
<div class="tag">使用项目/学校</div> <div class="tag">使用项目/学校</div>
</div> </div>
</div> </div>
<div class="stat-item"> <div class="stat-item">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon2.png" /> <img src="https://webapp-pub.ezijing.com/center_resource/view-vicon2.png" />
<div class="content"> <div class="content">
<div class="unit">{{ props.data?.course_count }}<span></span></div> <div class="unit">{{ props.data?.course_count }}<span></span></div>
<div class="tag">使用课程</div> <div class="tag">使用课程</div>
</div> </div>
</div> </div>
<div class="stat-item"> <div class="stat-item">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon3.png" /> <img src="https://webapp-pub.ezijing.com/center_resource/view-vicon3.png" />
<div class="content"> <div class="content">
<div class="unit">{{ props.data?.learn_count }}<span>人次</span></div> <div class="unit">{{ props.data?.learn_count }}<span>人次</span></div>
<div class="tag">累计学习人次</div> <div class="tag">累计学习人次</div>
</div> </div>
</div> </div>
<div class="stat-item"> <div class="stat-item">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon4.png" /> <img src="https://webapp-pub.ezijing.com/center_resource/view-vicon4.png" />
<div class="content"> <div class="content">
<div class="unit">{{ props.data?.learn_time_count }}<span>分钟</span></div> <div class="unit">{{ props.data?.learn_time_count }}<span>分钟</span></div>
<div class="tag">累计学习时长</div> <div class="tag">累计学习时长</div>
......
...@@ -15,9 +15,8 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp ...@@ -15,9 +15,8 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp
<div class="video-img"> <div class="video-img">
<img <img
style="width: 80px" style="width: 80px"
:src="`https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/detail-${props.data?.type}.png`" :src="`https://webapp-pub.ezijing.com/center_resource/detail-${props.data?.type}.png`"
v-if="fileType.includes(props.data?.type)" v-if="fileType.includes(props.data?.type)" />
/>
<el-icon class="item-info-icon" v-else> <el-icon class="item-info-icon" v-else>
<Files /> <Files />
</el-icon> </el-icon>
...@@ -25,30 +24,21 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp ...@@ -25,30 +24,21 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp
<div class="info-items"> <div class="info-items">
<div class="flex-box"> <div class="flex-box">
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon5.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon5.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">教案名称</div> <div class="name">教案名称</div>
<div class="value">{{ props.data?.name }}</div> <div class="value">{{ props.data?.name }}</div>
</div> </div>
</div> </div>
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon6.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon6.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">教案分类</div> <div class="name">教案分类</div>
<div class="value">{{ props.data?.classification_name || '暂无' }}</div> <div class="value">{{ props.data?.classification_name || '暂无' }}</div>
</div> </div>
</div> </div>
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon1.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon1.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">状态</div> <div class="name">状态</div>
<div :class="props.data?.status == '1' ? 'value active' : 'value inactive'"> <div :class="props.data?.status == '1' ? 'value active' : 'value inactive'">
...@@ -57,10 +47,7 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp ...@@ -57,10 +47,7 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp
</div> </div>
</div> </div>
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon3.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon3.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">创建时间</div> <div class="name">创建时间</div>
<div class="value">{{ props.data?.created_time }}</div> <div class="value">{{ props.data?.created_time }}</div>
...@@ -69,40 +56,28 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp ...@@ -69,40 +56,28 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp
</div> </div>
<div class="flex-box"> <div class="flex-box">
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon12.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon12.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">创建者</div> <div class="name">创建者</div>
<div class="value">{{ props.data?.created_operator_name }}</div> <div class="value">{{ props.data?.created_operator_name }}</div>
</div> </div>
</div> </div>
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/course-view-icon13.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/course-view-icon13.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">负责人</div> <div class="name">负责人</div>
<div class="value">{{ props.data?.belong_operator_name }}</div> <div class="value">{{ props.data?.belong_operator_name }}</div>
</div> </div>
</div> </div>
<div class="i-items" style="align-items: flex-start"> <div class="i-items" style="align-items: flex-start">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon8.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon8.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">知识点</div> <div class="name">知识点</div>
<div class="value">{{ props.data?.knowledge_points || '暂无' }}</div> <div class="value">{{ props.data?.knowledge_points || '暂无' }}</div>
</div> </div>
</div> </div>
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon4.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon4.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">更新时间</div> <div class="name">更新时间</div>
<div class="value">{{ props.data?.updated_time }}</div> <div class="value">{{ props.data?.updated_time }}</div>
......
...@@ -99,20 +99,15 @@ const typeFilter = () => { ...@@ -99,20 +99,15 @@ const typeFilter = () => {
<el-tab-pane label="公开资源" name="3"></el-tab-pane> <el-tab-pane label="公开资源" name="3"></el-tab-pane>
</el-tabs> </el-tabs>
<div class="video-head-icon" @click="changeCard"> <div class="video-head-icon" @click="changeCard">
<img <img v-if="!isCard" src="https://webapp-pub.ezijing.com/center_resource/change_card.png" alt="" />
v-if="!isCard" <img v-else src="https://webapp-pub.ezijing.com/center_resource/change_list.png" alt="" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/change_card.png"
alt=""
/>
<img v-else src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/change_list.png" alt="" />
</div> </div>
</div> </div>
<div class="video-tool-btn"> <div class="video-tool-btn">
<router-link <router-link
v-if="tabValue === '1'" v-if="tabValue === '1'"
v-permission="'v1-resource-lesson-plan-create'" v-permission="'v1-resource-lesson-plan-create'"
to="/resource/lessonplan/update" to="/resource/lessonplan/update">
>
<el-button type="primary" round>新建教案资源</el-button> <el-button type="primary" round>新建教案资源</el-button>
</router-link> </router-link>
</div> </div>
...@@ -126,8 +121,7 @@ const typeFilter = () => { ...@@ -126,8 +121,7 @@ const typeFilter = () => {
:props="defaultProps" :props="defaultProps"
v-model="params.classification" v-model="params.classification"
:data="selectTree" :data="selectTree"
:default-expanded-keys="selectTree.length ? [selectTree[0]?.id] : []" :default-expanded-keys="selectTree.length ? [selectTree[0]?.id] : []" />
/>
</template> </template>
<template v-if="tabValue == '3' && isAdmin" #filter-department="{ params }"> <template v-if="tabValue == '3' && isAdmin" #filter-department="{ params }">
<div class="name" style="font-size: 14px; color: #606266; padding-right: 12px">部门:</div> <div class="name" style="font-size: 14px; color: #606266; padding-right: 12px">部门:</div>
...@@ -155,8 +149,7 @@ const typeFilter = () => { ...@@ -155,8 +149,7 @@ const typeFilter = () => {
path="/resource/lessonplan" path="/resource/lessonplan"
v-for="(item, index) in data" v-for="(item, index) in data"
:data="item" :data="item"
:key="index" :key="index"></CardListItem>
></CardListItem>
</div> </div>
<!-- <el-empty v-else description="暂无数据" /> --> <!-- <el-empty v-else description="暂无数据" /> -->
</template> </template>
......
...@@ -11,28 +11,28 @@ const props = defineProps({ ...@@ -11,28 +11,28 @@ const props = defineProps({
<div class="center-video-box"> <div class="center-video-box">
<div class="right-statistics"> <div class="right-statistics">
<div class="stat-item"> <div class="stat-item">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon1.png" /> <img src="https://webapp-pub.ezijing.com/center_resource/view-vicon1.png" />
<div class="content"> <div class="content">
<div class="unit">{{ props.data?.project_count }}<span></span></div> <div class="unit">{{ props.data?.project_count }}<span></span></div>
<div class="tag">使用项目/学校</div> <div class="tag">使用项目/学校</div>
</div> </div>
</div> </div>
<div class="stat-item"> <div class="stat-item">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon2.png" /> <img src="https://webapp-pub.ezijing.com/center_resource/view-vicon2.png" />
<div class="content"> <div class="content">
<div class="unit">{{ props.data?.course_count }}<span></span></div> <div class="unit">{{ props.data?.course_count }}<span></span></div>
<div class="tag">使用课程</div> <div class="tag">使用课程</div>
</div> </div>
</div> </div>
<div class="stat-item"> <div class="stat-item">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon3.png" /> <img src="https://webapp-pub.ezijing.com/center_resource/view-vicon3.png" />
<div class="content"> <div class="content">
<div class="unit">{{ props.data?.learn_count }}<span>人次</span></div> <div class="unit">{{ props.data?.learn_count }}<span>人次</span></div>
<div class="tag">累计学习人次</div> <div class="tag">累计学习人次</div>
</div> </div>
</div> </div>
<div class="stat-item"> <div class="stat-item">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon4.png" /> <img src="https://webapp-pub.ezijing.com/center_resource/view-vicon4.png" />
<div class="content"> <div class="content">
<div class="unit">{{ props.data?.learn_time_count }}<span>分钟</span></div> <div class="unit">{{ props.data?.learn_time_count }}<span>分钟</span></div>
<div class="tag">累计学习时长</div> <div class="tag">累计学习时长</div>
......
...@@ -15,9 +15,8 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp ...@@ -15,9 +15,8 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp
<div class="video-img"> <div class="video-img">
<img <img
style="width: 80px" style="width: 80px"
:src="`https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/detail-${props.data?.type}.png`" :src="`https://webapp-pub.ezijing.com/center_resource/detail-${props.data?.type}.png`"
v-if="fileType.includes(props.data?.type)" v-if="fileType.includes(props.data?.type)" />
/>
<el-icon class="item-info-icon" v-else> <el-icon class="item-info-icon" v-else>
<Files /> <Files />
</el-icon> </el-icon>
...@@ -25,30 +24,21 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp ...@@ -25,30 +24,21 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp
<div class="info-items"> <div class="info-items">
<div class="flex-box"> <div class="flex-box">
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon5.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon5.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">资料名称</div> <div class="name">资料名称</div>
<div class="value">{{ props.data?.name }}</div> <div class="value">{{ props.data?.name }}</div>
</div> </div>
</div> </div>
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon6.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon6.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">资料分类</div> <div class="name">资料分类</div>
<div class="value">{{ props.data?.classification_name || '暂无' }}</div> <div class="value">{{ props.data?.classification_name || '暂无' }}</div>
</div> </div>
</div> </div>
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon1.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon1.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">状态</div> <div class="name">状态</div>
<div :class="props.data?.status == '1' ? 'value active' : 'value inactive'"> <div :class="props.data?.status == '1' ? 'value active' : 'value inactive'">
...@@ -57,10 +47,7 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp ...@@ -57,10 +47,7 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp
</div> </div>
</div> </div>
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon3.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon3.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">创建时间</div> <div class="name">创建时间</div>
<div class="value">{{ props.data?.created_time }}</div> <div class="value">{{ props.data?.created_time }}</div>
...@@ -69,40 +56,28 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp ...@@ -69,40 +56,28 @@ const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp
</div> </div>
<div class="flex-box"> <div class="flex-box">
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon12.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon12.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">创建者</div> <div class="name">创建者</div>
<div class="value">{{ props.data?.created_operator_name }}</div> <div class="value">{{ props.data?.created_operator_name }}</div>
</div> </div>
</div> </div>
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/course-view-icon13.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/course-view-icon13.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">负责人</div> <div class="name">负责人</div>
<div class="value">{{ props.data?.belong_operator_name }}</div> <div class="value">{{ props.data?.belong_operator_name }}</div>
</div> </div>
</div> </div>
<div class="i-items" style="align-items: flex-start"> <div class="i-items" style="align-items: flex-start">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon8.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon8.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">知识点</div> <div class="name">知识点</div>
<div class="value">{{ props.data?.knowledge_points || '暂无' }}</div> <div class="value">{{ props.data?.knowledge_points || '暂无' }}</div>
</div> </div>
</div> </div>
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon4.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon4.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">更新时间</div> <div class="name">更新时间</div>
<div class="value">{{ props.data?.updated_time }}</div> <div class="value">{{ props.data?.updated_time }}</div>
......
...@@ -100,20 +100,15 @@ const typeFilter = () => { ...@@ -100,20 +100,15 @@ const typeFilter = () => {
<el-tab-pane label="公开资源" name="3"></el-tab-pane> <el-tab-pane label="公开资源" name="3"></el-tab-pane>
</el-tabs> </el-tabs>
<div class="video-head-icon" @click="changeCard"> <div class="video-head-icon" @click="changeCard">
<img <img v-if="!isCard" src="https://webapp-pub.ezijing.com/center_resource/change_card.png" alt="" />
v-if="!isCard" <img v-else src="https://webapp-pub.ezijing.com/center_resource/change_list.png" alt="" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/change_card.png"
alt=""
/>
<img v-else src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/change_list.png" alt="" />
</div> </div>
</div> </div>
<div class="video-tool-btn"> <div class="video-tool-btn">
<router-link <router-link
v-if="tabValue === '1'" v-if="tabValue === '1'"
v-permission="'v1-resource-other-information-create'" v-permission="'v1-resource-other-information-create'"
to="/resource/other/update" to="/resource/other/update">
>
<el-button type="primary" round>新建其他资源</el-button> <el-button type="primary" round>新建其他资源</el-button>
</router-link> </router-link>
</div> </div>
...@@ -127,8 +122,7 @@ const typeFilter = () => { ...@@ -127,8 +122,7 @@ const typeFilter = () => {
:props="defaultProps" :props="defaultProps"
v-model="params.classification" v-model="params.classification"
:data="selectTree" :data="selectTree"
:default-expanded-keys="selectTree.length ? [selectTree[0]?.id] : []" :default-expanded-keys="selectTree.length ? [selectTree[0]?.id] : []" />
/>
</template> </template>
<template v-if="tabValue == '3' && isAdmin" #filter-department="{ params }"> <template v-if="tabValue == '3' && isAdmin" #filter-department="{ params }">
<div class="name" style="font-size: 14px; color: #606266; padding-right: 12px">部门:</div> <div class="name" style="font-size: 14px; color: #606266; padding-right: 12px">部门:</div>
...@@ -156,8 +150,7 @@ const typeFilter = () => { ...@@ -156,8 +150,7 @@ const typeFilter = () => {
path="/resource/other" path="/resource/other"
v-for="(item, index) in data" v-for="(item, index) in data"
:data="item" :data="item"
:key="index" :key="index"></CardListItem>
></CardListItem>
</div> </div>
<!-- <el-empty v-else description="暂无数据" /> --> <!-- <el-empty v-else description="暂无数据" /> -->
</template> </template>
......
...@@ -79,7 +79,7 @@ const handlePreview: UploadProps['onPreview'] = uploadFile => { ...@@ -79,7 +79,7 @@ const handlePreview: UploadProps['onPreview'] = uploadFile => {
<template> <template>
<el-upload <el-upload
action="https://webapp-pub.oss-cn-beijing.aliyuncs.com" action="https://webapp-pub.ezijing.com"
:data="uploadData" :data="uploadData"
:show-file-list="false" :show-file-list="false"
:before-upload="handleBeforeUpload" :before-upload="handleBeforeUpload"
...@@ -88,8 +88,7 @@ const handlePreview: UploadProps['onPreview'] = uploadFile => { ...@@ -88,8 +88,7 @@ const handlePreview: UploadProps['onPreview'] = uploadFile => {
:on-preview="handlePreview" :on-preview="handlePreview"
:on-success="handleSuccess" :on-success="handleSuccess"
:file-list="fileList" :file-list="fileList"
class="uploader" class="uploader">
>
<el-button type="primary">选择本地图片</el-button> <el-button type="primary">选择本地图片</el-button>
</el-upload> </el-upload>
</template> </template>
......
...@@ -17,28 +17,28 @@ const videoOptions = $computed(() => { ...@@ -17,28 +17,28 @@ const videoOptions = $computed(() => {
<div class="center-video-box"> <div class="center-video-box">
<div class="right-statistics"> <div class="right-statistics">
<div class="stat-item"> <div class="stat-item">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon1.png" /> <img src="https://webapp-pub.ezijing.com/center_resource/view-vicon1.png" />
<div class="content"> <div class="content">
<div class="unit">{{ data.project_count }}<span></span></div> <div class="unit">{{ data.project_count }}<span></span></div>
<div class="tag">使用项目/学校</div> <div class="tag">使用项目/学校</div>
</div> </div>
</div> </div>
<div class="stat-item"> <div class="stat-item">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon2.png" /> <img src="https://webapp-pub.ezijing.com/center_resource/view-vicon2.png" />
<div class="content"> <div class="content">
<div class="unit">{{ data.course_count }}<span></span></div> <div class="unit">{{ data.course_count }}<span></span></div>
<div class="tag">使用课程</div> <div class="tag">使用课程</div>
</div> </div>
</div> </div>
<div class="stat-item"> <div class="stat-item">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon3.png" /> <img src="https://webapp-pub.ezijing.com/center_resource/view-vicon3.png" />
<div class="content"> <div class="content">
<div class="unit">{{ data.learn_count }}<span>人次</span></div> <div class="unit">{{ data.learn_count }}<span>人次</span></div>
<div class="tag">累计学习人次</div> <div class="tag">累计学习人次</div>
</div> </div>
</div> </div>
<div class="stat-item"> <div class="stat-item">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon4.png" /> <img src="https://webapp-pub.ezijing.com/center_resource/view-vicon4.png" />
<div class="content"> <div class="content">
<div class="unit">{{ data.learn_time_count }}<span>分钟</span></div> <div class="unit">{{ data.learn_time_count }}<span>分钟</span></div>
<div class="tag">累计学习时长</div> <div class="tag">累计学习时长</div>
......
...@@ -9,8 +9,7 @@ const props = defineProps(['data']) ...@@ -9,8 +9,7 @@ const props = defineProps(['data'])
<div <div
v-if="props.data.cover != ''" v-if="props.data.cover != ''"
class="img" class="img"
:style="`width: 210px;height: 140px;background-size: cover;background-image: url(${props.data.cover});`" :style="`width: 210px;height: 140px;background-size: cover;background-image: url(${props.data.cover});`"></div>
></div>
<el-icon v-else :size="200" color="#ccc"> <el-icon v-else :size="200" color="#ccc">
<PictureFilled></PictureFilled> <PictureFilled></PictureFilled>
</el-icon> </el-icon>
...@@ -20,30 +19,21 @@ const props = defineProps(['data']) ...@@ -20,30 +19,21 @@ const props = defineProps(['data'])
<div class="info-items"> <div class="info-items">
<div class="flex-box"> <div class="flex-box">
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon5.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon5.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">视频名称</div> <div class="name">视频名称</div>
<div class="value">{{ props.data.name }}</div> <div class="value">{{ props.data.name }}</div>
</div> </div>
</div> </div>
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon7.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon7.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">视频分类</div> <div class="name">视频分类</div>
<div class="value">{{ props.data.classification_name || '暂无' }}</div> <div class="value">{{ props.data.classification_name || '暂无' }}</div>
</div> </div>
</div> </div>
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon1.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon1.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">状态</div> <div class="name">状态</div>
<div :class="props.data.status == '1' ? 'value active' : 'value inactive'"> <div :class="props.data.status == '1' ? 'value active' : 'value inactive'">
...@@ -52,10 +42,7 @@ const props = defineProps(['data']) ...@@ -52,10 +42,7 @@ const props = defineProps(['data'])
</div> </div>
</div> </div>
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon3.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon3.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">创建时间</div> <div class="name">创建时间</div>
<div class="value">{{ props.data.created_time }}</div> <div class="value">{{ props.data.created_time }}</div>
...@@ -64,40 +51,28 @@ const props = defineProps(['data']) ...@@ -64,40 +51,28 @@ const props = defineProps(['data'])
</div> </div>
<div class="flex-box"> <div class="flex-box">
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon12.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon12.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">创建者</div> <div class="name">创建者</div>
<div class="value">{{ props.data.created_operator_name }}</div> <div class="value">{{ props.data.created_operator_name }}</div>
</div> </div>
</div> </div>
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/course-view-icon13.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/course-view-icon13.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">负责人</div> <div class="name">负责人</div>
<div class="value">{{ props.data.belong_operator_name }}</div> <div class="value">{{ props.data.belong_operator_name }}</div>
</div> </div>
</div> </div>
<div class="i-items" style="align-items: flex-start"> <div class="i-items" style="align-items: flex-start">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon8.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon8.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">知识点</div> <div class="name">知识点</div>
<div class="value">{{ props.data?.knowledge_points || '暂无' }}</div> <div class="value">{{ props.data?.knowledge_points || '暂无' }}</div>
</div> </div>
</div> </div>
<div class="i-items"> <div class="i-items">
<img <img src="https://webapp-pub.ezijing.com/center_resource/video-view-icon4.png" class="icons" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon4.png"
class="icons"
/>
<div class="text-box"> <div class="text-box">
<div class="name">更新时间</div> <div class="name">更新时间</div>
<div class="value">{{ props.data.updated_time }}</div> <div class="value">{{ props.data.updated_time }}</div>
......
...@@ -109,12 +109,8 @@ const handleBatchImport = () => { ...@@ -109,12 +109,8 @@ const handleBatchImport = () => {
<el-tab-pane label="公开资源" name="3"></el-tab-pane> <el-tab-pane label="公开资源" name="3"></el-tab-pane>
</el-tabs> </el-tabs>
<div class="video-head-icon" @click="changeCard"> <div class="video-head-icon" @click="changeCard">
<img <img v-if="!isCard" src="https://webapp-pub.ezijing.com/center_resource/change_card.png" alt="" />
v-if="!isCard" <img v-else src="https://webapp-pub.ezijing.com/center_resource/change_list.png" alt="" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/change_card.png"
alt=""
/>
<img v-else src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/change_list.png" alt="" />
</div> </div>
</div> </div>
<div class="video-tool-btn"> <div class="video-tool-btn">
...@@ -122,8 +118,7 @@ const handleBatchImport = () => { ...@@ -122,8 +118,7 @@ const handleBatchImport = () => {
v-if="tabValue === '1'" v-if="tabValue === '1'"
to="/resource/video/update" to="/resource/video/update"
target="_blank" target="_blank"
v-permission="'v1-resource-video-create'" v-permission="'v1-resource-video-create'">
>
<el-button type="primary" round>新建视频资源</el-button> <el-button type="primary" round>新建视频资源</el-button>
</router-link> </router-link>
<el-button v-if="tabValue === '1'" type="primary" round @click="handleBatchImport" style="margin-left: 20px" <el-button v-if="tabValue === '1'" type="primary" round @click="handleBatchImport" style="margin-left: 20px"
...@@ -143,8 +138,7 @@ const handleBatchImport = () => { ...@@ -143,8 +138,7 @@ const handleBatchImport = () => {
display: block; display: block;
height: 83px; height: 83px;
background-size: cover; background-size: cover;
background-image: url(${row.cover});`" background-image: url(${row.cover});`"></div>
></div>
</div> </div>
</template> </template>
<template #filter-type="{ params }"> <template #filter-type="{ params }">
...@@ -155,8 +149,7 @@ const handleBatchImport = () => { ...@@ -155,8 +149,7 @@ const handleBatchImport = () => {
:props="defaultProps" :props="defaultProps"
v-model="params.classification" v-model="params.classification"
:data="selectTree" :data="selectTree"
:default-expanded-keys="selectTree.length ? [selectTree[0]?.id] : []" :default-expanded-keys="selectTree.length ? [selectTree[0]?.id] : []" />
/>
</template> </template>
<template v-if="tabValue == '3' && isAdmin" #filter-department="{ params }"> <template v-if="tabValue == '3' && isAdmin" #filter-department="{ params }">
<div class="name" style="font-size: 14px; color: #606266; padding-right: 12px">部门:</div> <div class="name" style="font-size: 14px; color: #606266; padding-right: 12px">部门:</div>
......
...@@ -176,8 +176,7 @@ const changeProtocol = (data: any) => { ...@@ -176,8 +176,7 @@ const changeProtocol = (data: any) => {
v-model="form.data.classification" v-model="form.data.classification"
:data="selectTree" :data="selectTree"
node-key="id" node-key="id"
:default-expanded-keys="selectTree.length ? [selectTree[0]?.id] : []" :default-expanded-keys="selectTree.length ? [selectTree[0]?.id] : []" />
/>
</el-form-item> </el-form-item>
<el-form-item label="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;知识点:"> <el-form-item label="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;知识点:">
<el-input <el-input
...@@ -185,8 +184,7 @@ const changeProtocol = (data: any) => { ...@@ -185,8 +184,7 @@ const changeProtocol = (data: any) => {
v-model="form.data.knowledge_points" v-model="form.data.knowledge_points"
:rows="2" :rows="2"
type="textarea" type="textarea"
maxlength="100" maxlength="100" />
/>
</el-form-item> </el-form-item>
<el-form-item label="&nbsp;&nbsp;视频封面:"> <el-form-item label="&nbsp;&nbsp;视频封面:">
<div class="video-cover"> <div class="video-cover">
...@@ -200,31 +198,19 @@ const changeProtocol = (data: any) => { ...@@ -200,31 +198,19 @@ const changeProtocol = (data: any) => {
<UploadImg accept=".jpg,.jpeg,.gif,.png" v-model="form.data.cover"></UploadImg> <UploadImg accept=".jpg,.jpeg,.gif,.png" v-model="form.data.cover"></UploadImg>
<div class="list"> <div class="list">
<div class="item"> <div class="item">
<img <img src="https://webapp-pub.ezijing.com/center_resource/upload-video-icon.png" class="icon" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/upload-video-icon.png"
class="icon"
/>
<div class="text">该图片作为视频的封面图,用于视频封面显示</div> <div class="text">该图片作为视频的封面图,用于视频封面显示</div>
</div> </div>
<div class="item"> <div class="item">
<img <img src="https://webapp-pub.ezijing.com/center_resource/upload-video-icon.png" class="icon" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/upload-video-icon.png"
class="icon"
/>
<div class="text">支持jpg/jpeg/gif/png格式</div> <div class="text">支持jpg/jpeg/gif/png格式</div>
</div> </div>
<div class="item"> <div class="item">
<img <img src="https://webapp-pub.ezijing.com/center_resource/upload-video-icon.png" class="icon" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/upload-video-icon.png"
class="icon"
/>
<div class="text">支持小于4M,最好宽240*高175*及以上尺寸</div> <div class="text">支持小于4M,最好宽240*高175*及以上尺寸</div>
</div> </div>
<div class="item"> <div class="item">
<img <img src="https://webapp-pub.ezijing.com/center_resource/upload-video-icon.png" class="icon" />
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/upload-video-icon.png"
class="icon"
/>
<div class="text">可以自己上传图片,也可以从下面这些图片中选择使用</div> <div class="text">可以自己上传图片,也可以从下面这些图片中选择使用</div>
</div> </div>
</div> </div>
...@@ -238,16 +224,14 @@ const changeProtocol = (data: any) => { ...@@ -238,16 +224,14 @@ const changeProtocol = (data: any) => {
:autoplay="false" :autoplay="false"
arrow="never" arrow="never"
trigger="click" trigger="click"
ref="swiper" ref="swiper">
>
<el-carousel-item v-for="(item, index) in swiperCovers" :key="index" class="cover-list"> <el-carousel-item v-for="(item, index) in swiperCovers" :key="index" class="cover-list">
<div <div
@click="swiperItemHandle(cItem.url)" @click="swiperItemHandle(cItem.url)"
:key="cItem.id" :key="cItem.id"
v-for="cItem in item" v-for="cItem in item"
:style="`background-image:url(${cItem.url})`" :style="`background-image:url(${cItem.url})`"
class="cover-list_item" class="cover-list_item"></div>
></div>
</el-carousel-item> </el-carousel-item>
</el-carousel> </el-carousel>
</div> </div>
......
...@@ -79,13 +79,13 @@ const handleGetItemFloor = (val: any) => { ...@@ -79,13 +79,13 @@ const handleGetItemFloor = (val: any) => {
// 用户标签图片 // 用户标签图片
const imgUrl = computed(() => { const imgUrl = computed(() => {
if (props.firstFloor?.tag === '学者') { if (props.firstFloor?.tag === '学者') {
return 'https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/xz.png' return 'https://webapp-pub.ezijing.com/center_resource/xz.png'
} else if (props.firstFloor?.tag === '大师') { } else if (props.firstFloor?.tag === '大师') {
return 'https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/ds.png' return 'https://webapp-pub.ezijing.com/center_resource/ds.png'
} else if (props.firstFloor?.tag === '智者') { } else if (props.firstFloor?.tag === '智者') {
return 'https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/zz.png' return 'https://webapp-pub.ezijing.com/center_resource/zz.png'
} else if (props.firstFloor?.tag === '学徒') { } else if (props.firstFloor?.tag === '学徒') {
return 'https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/xt.png' return 'https://webapp-pub.ezijing.com/center_resource/xt.png'
} }
}) })
// 图片预览 // 图片预览
...@@ -121,8 +121,7 @@ const getContent = (val: any) => { ...@@ -121,8 +121,7 @@ const getContent = (val: any) => {
<div class="left_logo_txt">楼主</div> <div class="left_logo_txt">楼主</div>
<img <img
:src="props.firstFloor?.avatar || 'https://webapp-pub.ezijing.com/center_resource/avatar.png'" :src="props.firstFloor?.avatar || 'https://webapp-pub.ezijing.com/center_resource/avatar.png'"
class="left_avatar" class="left_avatar" />
/>
<div class="left_floor">{{ props.firstFloor?.floor }}</div> <div class="left_floor">{{ props.firstFloor?.floor }}</div>
<div class="left_name">{{ props.firstFloor?.name }}</div> <div class="left_name">{{ props.firstFloor?.name }}</div>
<div class="left_remark" v-if="props.firstFloor?.tag !== '老师'"> <div class="left_remark" v-if="props.firstFloor?.tag !== '老师'">
...@@ -149,8 +148,7 @@ const getContent = (val: any) => { ...@@ -149,8 +148,7 @@ const getContent = (val: any) => {
<template v-for="(it, index) in props.firstFloor?.files" :key="index"> <template v-for="(it, index) in props.firstFloor?.files" :key="index">
<div <div
class="files_img" class="files_img"
v-if="it?.name.includes('.png') || it?.name.includes('.jpg') || it?.name.includes('.jpeg')" v-if="it?.name.includes('.png') || it?.name.includes('.jpg') || it?.name.includes('.jpeg')">
>
<el-image :src="it?.url" :preview-src-list="previewList" :initial-index="4" fit="cover" /> <el-image :src="it?.url" :preview-src-list="previewList" :initial-index="4" fit="cover" />
<div class="img_txt">查看大图</div> <div class="img_txt">查看大图</div>
</div> </div>
...@@ -171,8 +169,7 @@ const getContent = (val: any) => { ...@@ -171,8 +169,7 @@ const getContent = (val: any) => {
<img <img
:src="item.avatar || 'https://webapp-pub.ezijing.com/center_resource/avatar.png'" :src="item.avatar || 'https://webapp-pub.ezijing.com/center_resource/avatar.png'"
alt="" alt=""
class="top_img" class="top_img" />
/>
<div class="top_name" v-if="item.floor_id !== item.reply_id"> <div class="top_name" v-if="item.floor_id !== item.reply_id">
{{ item.from_name }}&nbsp;回复 &nbsp;<span style="color: #3571e0">{{ item.to_name }}</span> {{ item.from_name }}&nbsp;回复 &nbsp;<span style="color: #3571e0">{{ item.to_name }}</span>
...@@ -210,8 +207,7 @@ const getContent = (val: any) => { ...@@ -210,8 +207,7 @@ const getContent = (val: any) => {
:autosize="{ minRows: 4, maxRows: 6 }" :autosize="{ minRows: 4, maxRows: 6 }"
type="textarea" type="textarea"
style="width: 100%" style="width: 100%"
:placeholder="postItem.to_name ? `回复@${postItem.from_name}:` : ''" :placeholder="postItem.to_name ? `回复@${postItem.from_name}:` : ''" />
/>
<el-button class="input_btn" type="primary" @click="handleReplySubmit">发表回复</el-button> <el-button class="input_btn" type="primary" @click="handleReplySubmit">发表回复</el-button>
</div> </div>
</div> </div>
......
...@@ -83,8 +83,7 @@ const backToTop = () => { ...@@ -83,8 +83,7 @@ const backToTop = () => {
:key="index" :key="index"
:firstFloor="item" :firstFloor="item"
:discussionId="discussionId" :discussionId="discussionId"
@update="handleFresh" @update="handleFresh" />
/>
<el-pagination <el-pagination
class="pagination" class="pagination"
v-model:currentPage="currentPage" v-model:currentPage="currentPage"
...@@ -93,12 +92,11 @@ const backToTop = () => { ...@@ -93,12 +92,11 @@ const backToTop = () => {
:page-sizes="[5, 10, 20, 30, 50]" :page-sizes="[5, 10, 20, 30, 50]"
:total="totalFloor" :total="totalFloor"
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange">
>
</el-pagination> </el-pagination>
</div> </div>
<div class="to_top" @click="backToTop"> <div class="to_top" @click="backToTop">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/to_top.png" alt="" class="top_img" /> <img src="https://webapp-pub.ezijing.com/center_resource/to_top.png" alt="" class="top_img" />
<div class="top_txt"> <div class="top_txt">
<div>返回</div> <div>返回</div>
<div>顶部</div> <div>顶部</div>
...@@ -109,8 +107,7 @@ const backToTop = () => { ...@@ -109,8 +107,7 @@ const backToTop = () => {
v-model:isShowReplyDialog="isShowReplyDialog" v-model:isShowReplyDialog="isShowReplyDialog"
v-if="isShowReplyDialog" v-if="isShowReplyDialog"
:discussionId="discussionId" :discussionId="discussionId"
@create="handleGetFirstFloor" @create="handleGetFirstFloor" />
/>
</template> </template>
<style lang="scss" scoped> <style lang="scss" scoped>
.card { .card {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论