jobsys / medialibrary-module
dev-main
2023-06-21 08:45 UTC
This package is auto-updated.
Last update: 2024-09-21 11:39:31 UTC
README
为了使媒体资源,如图片、视频等内容可以重复利用,该模块提供了一个媒体库组件 MediaLibrary
,并集成了媒体文件上传、展示、选择等操作。默认提供 图片
、视频
、文件
、音频
和其它
五个分类,如果需要添加新分类可以在 系统字典 媒体库资源类型
中添加字典项。
模块安装
composer require jobsys/medialibrary-module
依赖
-
PHP 依赖 (无)
-
JS 依赖 (无)
配置
模块配置
"MediaLibrary" => [ "route_prefix" => "manager", // 路由前缀 ]
模块功能
媒体库功能
媒体库中的资源遵循 权限模板 中的数据权限定义。上传的文件如果是公共读写则存放在 storage/app/public
,私有读写的文件存在放 storage/app/private
,并会以文件的 MIME 类型/日期/
进行分类存储。如
- public
- application
- vnd.openxmlformats-officedocument.wordprocessingml.document
- 20230428
- Test_9fc219c4a2683ad5d96db5d2cf38e7b9.docx
- image
- jpeg
- 20230325
- bg1_286000046dc1b3e0f5cc0be11b043c72.jpeg
- 20230326
- bg1_286000046dc1b3e0f5cc0be11b043c73.jpeg
开发规范
-
在页面引入
MediaLibrary
组件然后使用。import MediaLibrary from "@modules/MediaLibrary/Resources/views/web/components/MediaLibrary.vue"
<MediaLibrary v-model:visible="state.showMediaLibrary" category="courseware" :extra-data="{ department_id: course.department_id }" @select="onSelectMedia" />
由于默认会对资源进行权限管理,所以需要在
extra-data
中传入当前操作的业务department_id
该上传支持
私有读写
,如果需要对资源私有读写
,可以在extra-data
中添加{type: private}
,如无设置则为公共读写。
模块代码
数据表
2014_10_12_000005_create_media_libraries_table.php # 审核模块数据表
数据模型/Scope
Modules\MediaLibrary\Entitie\LibraryMedia # 媒体文件
Controller
Modules\MediaLibrary\Http\Controllers\MediaLibraryController # 提供上传以及 CRUD 功能
UI
PC 组件
web/components/MediaLibrary.vue # 媒体库组件