前端开发
XYGo Admin 2026-04-22 2 次阅读
扩展前端目录、组件加载、菜单配置
API 接口
在 web/src/addons/{name}/api/ 下创建 TypeScript 接口文件:
typescript
import { adminRequest } from '@/utils/http'
const prefix = '/admin/shop/order'
/** 列表 */
export function fetchShopOrderList(params: any) {
return adminRequest.get<Record<string, any>>({
url: `${prefix}/list`,
params
})
}
/** 保存 */
export function fetchShopOrderEdit(params: any) {
return adminRequest.post<any>({
url: `${prefix}/edit`,
params
})
}
/** 删除 */
export function fetchShopOrderDelete(id: number) {
return adminRequest.post<any>({
url: `${prefix}/delete`,
params: { id }
})
}
页面组件
页面放在 web/src/addons/{name}/views/ 下,使用框架提供的 ArtTableHeader 等公共组件:
vue
<!-- web/src/addons/shop/views/order/index.vue -->
<template>
<div class="shop-order-page art-full-height">
<ElCard class="art-table-card" shadow="never">
<ArtTableHeader v-model:columns="columnChecks" :loading="loading" @refresh="refreshData">
<template #left>
<ElButton type="primary" @click="openDialog()">新增</ElButton>
</template>
</ArtTableHeader>
<ArtTable :data="tableData" :columns="columns" :loading="loading" />
<ArtPagination :total="total" v-model:page="page" @change="loadData" />
</ElCard>
<OrderDialog ref="dialogRef" @success="loadData" />
</div>
</template>
组件路径映射
菜单中配置的 component: "@addons/shop/views/order" 会被 ComponentLoader 自动解析为:
web/src/addons/shop/views/order/index.vue
支持两种路径格式:
@addons/shop/views/order→order/index.vue@addons/shop/views/order.vue→order.vue(单文件)