用 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,保存后二次进入仍能稳定回显。