提交 9309bb85 authored 作者: lihuihui's avatar lihuihui

修改bug

上级 bd8030d0
<script setup lang="ts">
import { Files } from '@element-plus/icons-vue'
const props: any = defineProps<{ data: object, path: string, permission?: { edit: string, view: string } }>()
const props: any = defineProps<{ data: object; path: string; permission?: { edit: string; view: string } }>()
const fileType = ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'mp3', 'mp4', 'png', 'jpeg', 'jpg']
</script>
<template>
<div class="card-item">
......@@ -15,7 +16,8 @@ const props: any = defineProps<{ data: object, path: string, permission?: { edit
<div class="info">关联次数:{{ props.data.relation_count }}</div>
<div class="info">学习人次:{{ props.data.learn_count }}人次</div>
</div>
<el-icon class="item-info-icon">
<img :src="`https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/${props.data.type}.png`" v-if="fileType.includes(props.data.type)">
<el-icon class="item-info-icon" v-else>
<Files />
</el-icon>
<div class="tool-pop-btn">
......@@ -75,9 +77,7 @@ const props: any = defineProps<{ data: object, path: string, permission?: { edit
color: #aa1941;
}
img {
width: 100%;
height: 100%;
display: block;
width: 40px;
}
.title {
position: absolute;
......
......@@ -3,10 +3,13 @@ export default { name: 'AppMain' }
</script>
<script setup lang="ts">
import PreviewFiles from '@/components/base/PreviewFiles.vue'
import AppBreadcrumb from './Breadcrumb.vue'
withDefaults(defineProps<{ hasBreadcrumb?: boolean }>(), {
hasBreadcrumb: true
})
const dialogVisible = ref(false)
</script>
<template>
......@@ -20,9 +23,29 @@ withDefaults(defineProps<{ hasBreadcrumb?: boolean }>(), {
</div>
</div>
</section>
<div class="manual-btn" @click="dialogVisible = true">
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/course.png" />
</div>
<el-dialog v-model="dialogVisible" title="使用手册" width="852px">
<PreviewFiles url="https://webapp-pub.ezijing.com/upload/admin/05e3fa93d5760e6909a1a0244f545133.doc"></PreviewFiles>
</el-dialog>
</template>
<style>
.manual-btn {
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
position: fixed;
top: 50%;
right: 0;
width: 60px;
height: 60px;
background: rgba(255, 255, 255, 1);
box-shadow: 1px 3px 12px rgba(0, 0, 0, 0.11);
border-radius: 50%;
}
.app-main {
position: relative;
flex: 1;
......
......@@ -21,7 +21,7 @@ const defaultProps = {
const appList = ref()
// 列表切换
const isCard = ref(true)
const isCard = $ref(true)
// 资源出处 tab触发
const tabValue = ref('1')
......
......@@ -51,9 +51,12 @@ let form: any = $ref({
})
// 监听文件上传
watch(() => form.file, value => {
watch(
() => form.file,
value => {
form.name = value[0]?.name || ''
})
}
)
// 表单验证
const rules = {
......@@ -65,15 +68,16 @@ const rules = {
const ruleFormRef = ref<FormInstance>()
const submitForm = async (formEl: FormInstance | undefined) => {
if (!formEl) return
await formEl.validate((valid) => {
await formEl.validate(valid => {
if (valid) {
if (!protocol.value) {
ElMessage('请勾选用户协议')
return
}
const { url, type, size } = form.file[0]
const { url, size } = form.file[0]
const findString = url.lastIndexOf('.') + 1
form.url = url
form.type = type
form.type = url.substring(findString, url.length)
form.size = size
const params = Object.assign({}, form)
delete params.file
......@@ -148,7 +152,13 @@ const protocol = ref(false)
/>
</el-form-item>
<el-form-item label="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;知识点:">
<el-input placeholder="请输入该视频相关知识点,多个知识点请使用“,”分隔" maxlength="100" v-model="form.knowledge_points" :rows="2" type="textarea" />
<el-input
placeholder="请输入该视频相关知识点,多个知识点请使用“,”分隔"
maxlength="100"
v-model="form.knowledge_points"
:rows="2"
type="textarea"
/>
</el-form-item>
</el-form>
<div class="protocol-box">
......@@ -165,7 +175,7 @@ const protocol = ref(false)
<style lang="scss">
.upload-box {
// min-width: 400px;
.el-progress__text{
.el-progress__text {
transform: translate(20px, -5px);
}
position: relative;
......
......@@ -10,7 +10,7 @@ const store = useMapStore()
const appList = ref()
const isCard = ref(true)
const isCard = $ref(true)
// 筛选部门列表
const departmentList: any = useProjectList().departmentList
......@@ -93,17 +93,26 @@ const typeFilter = () => {
<AppList v-bind="listOptions" ref="appList">
<template #header-aside></template>
<template #filter-type="{ params }">
<el-tree-select @change="typeFilter" clearable :props="defaultProps" v-model="params.classification" :data="selectTree" />
<el-tree-select
@change="typeFilter"
clearable
:props="defaultProps"
v-model="params.classification"
:data="selectTree"
/>
</template>
<template v-if="tabValue == '3'" #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>
<el-select @change="typeFilter" clearable v-model="params.authorized">
<el-option v-for="item in departmentList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</template>
<template #table-operate="{ row }">
<el-space>
<router-link v-permission="'v1-resource-lesson-plan-update'" :to="`/resource/lessonplan/update/?id=${row.id}`">
<router-link
v-permission="'v1-resource-lesson-plan-update'"
:to="`/resource/lessonplan/update/?id=${row.id}`"
>
<el-button plain>编辑</el-button>
</router-link>
<router-link v-permission="'v1-resource-lesson-plan-view'" :to="`/resource/lessonplan/view?id=${row.id}`">
......@@ -115,7 +124,13 @@ const typeFilter = () => {
<!-- 卡片 -->
<template #body="{ data }" v-if="isCard">
<div class="card-list" v-if="data.length">
<CardListItem :permission="{ edit: 'v1-resource-lesson-plan-update', view: 'v1-resource-lesson-plan-view' }" path="/resource/lessonplan" v-for="(item, index) in data" :data="item" :key="index"></CardListItem>
<CardListItem
:permission="{ edit: 'v1-resource-lesson-plan-update', view: 'v1-resource-lesson-plan-view' }"
path="/resource/lessonplan"
v-for="(item, index) in data"
:data="item"
:key="index"
></CardListItem>
</div>
<el-empty v-else description="暂无数据" />
</template>
......
......@@ -51,9 +51,12 @@ let form: any = $ref({
})
// 监听文件上传
watch(() => form.file, value => {
watch(
() => form.file,
value => {
form.name = value[0]?.name || ''
})
}
)
// 表单验证
const rules = {
......@@ -65,15 +68,16 @@ const rules = {
const ruleFormRef = ref<FormInstance>()
const submitForm = async (formEl: FormInstance | undefined) => {
if (!formEl) return
await formEl.validate((valid) => {
await formEl.validate(valid => {
if (valid) {
if (!protocol.value) {
ElMessage('请勾选用户协议')
return
}
const { url, type, size } = form.file[0]
const { url, size } = form.file[0]
const findString = url.lastIndexOf('.') + 1
form.url = url
form.type = type
form.type = url.substring(findString, url.length)
form.size = size
const params = Object.assign({}, form)
delete params.file
......@@ -142,7 +146,13 @@ const protocol = ref(false)
<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 placeholder="请输入该视频相关知识点,多个知识点请使用“,”分隔" maxlength="100" v-model="form.knowledge_points" :rows="2" type="textarea" />
<el-input
placeholder="请输入该视频相关知识点,多个知识点请使用“,”分隔"
maxlength="100"
v-model="form.knowledge_points"
:rows="2"
type="textarea"
/>
</el-form-item>
</el-form>
<div class="protocol-box">
......@@ -159,7 +169,7 @@ const protocol = ref(false)
<style lang="scss">
.upload-box {
position: relative;
.el-progress__text{
.el-progress__text {
transform: translate(20px, -5px);
}
.app-upload-btn {
......
......@@ -11,7 +11,7 @@ const store = useMapStore()
const appList = ref()
// 列表切换
const isCard = ref(true)
const isCard = $ref(true)
// 资源出处 tab触发
const tabValue = ref('1')
......@@ -103,7 +103,7 @@ const typeFilter = () => {
/>
</template>
<template v-if="tabValue == '3'" #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>
<el-select @change="typeFilter" clearable v-model="params.authorized">
<el-option v-for="item in departmentList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
......
......@@ -71,9 +71,10 @@ const submitForm = async (formEl: FormInstance | undefined) => {
ElMessage('请勾选用户协议')
return
}
const { url, type, size } = form.file[0]
const { url, size } = form.file[0]
const findString = url.lastIndexOf('.') + 1
form.url = url
form.type = type
form.type = url.substring(findString, url.length)
form.size = size
const params = Object.assign({}, form)
delete params.file
......
......@@ -27,7 +27,7 @@ const tabChange = () => {
}
// 列表切换
const isCard = ref(true)
const isCard = $ref(true)
// table 数据
const listOptions = $computed(() => {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论