소스 정보
- 저장소
- yyw-code/MallBase
- 최근 소스 활동
- 2026년 7월 15일 02:33
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 108
- 포크
- 4
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/yyw-code/MallBase --skill upload-component-first명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
MallBase 数据库真相源、正式字段与升级 SQL 规则;修改 backend/install/data/schema 或 demo seed、新增/改名字段、移除运行时字段探测,或用户明确要求已有库升级、本地 upgrade SQL、发布迁移和 SimpleSqlMigrationService 时使用。
MallBase ThinkPHP 后端规则导航;仅在后端任务涉及多个场景、需要查找项目规则,或无法确定应读取哪个更具体的 ThinkPHP skill 时使用。
MallBase 文档放置与导航规范;新增、移动、删除 docs、模块文档、根 README 或 docs/index.md 导航时使用。
SOC 직업 분류 기준
SKILL.md 표시 중
| name | upload-component-first |
| description | MallBase Vben Admin 上传组件与字段契约规则;实现图片、视频或文件上传,以及处理 FileInfo 回填和提交值时使用。 |
frontend/admin/apps/web-antd 中的图片、视频和文件上传交互,以及编辑回填、预览和提交转换。
#/components/upload/index.vue,禁止在业务页面重复实现上传或素材选择逻辑。FileInfo;url 保存可提交值,full_url 仅用于预览,asset_id 保存素材 ID。asset_id;只有真实后端接口明确接受存储路径时,才回退提交 url 字符串。GoodsApi.MediaValue = number | string,其他模块不得未经核对直接照搬。full_url、*_full_url 和前端拼接的完整地址不得作为持久化提交值。FileInfo,不在页面硬编码域名。import type { FileInfo } from '#/components/upload';
import Upload from '#/components/upload/index.vue';
<!-- 单图上传 -->
<Upload v-model:value="formData.image" type="image" module="goods" />
<!-- 多图上传 -->
<Upload v-model:value="formData.images" type="images" module="goods" :max-count="10" />
<!-- 文件上传 -->
<Upload v-model:value="formData.file" type="file" module="setting" />
v-model:value 单文件绑定类型通常为 FileInfo | string | undefinedv-model:value 多文件绑定类型通常为 FileInfo[]module 指定上传模块(如 "goods"、"user" 等)function toMediaValue(file?: FileInfo | string): number | string {
if (!file) return '';
if (typeof file === 'string') {
return /^\d+$/.test(file) ? Number(file) : file;
}
if (file.asset_id) return file.asset_id;
return /^\d+$/.test(file.url) ? Number(file.url) : file.url;
}
该示例只适用于后端接受 number | string 的媒体字段。提交前仍需核对对应的 backend/route/api/admin/*.php、Controller/Service 校验和前端 API 类型。
<a-input> 让用户手动输入图片 URLfull_url 提交到只接受素材 ID 或存储路径的字段FileInfo.url 就假设它一定是文件路径frontend/admin/apps/web-antd/src/components/upload/index.vuefrontend/admin/apps/web-antd/src/components/upload/index.tsfrontend/admin/apps/web-antd/src/views/goods/goods/composables/useGoodsEdit.tsfrontend/admin/apps/web-antd/src/api/goods/goods.tsfull_url,保存后二次进入仍能稳定回显。