jobsys / medialibrary-module
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:laravel-module
This package is auto-updated.
Last update: 2024-12-21 12:09:47 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 # 媒体库组件