diff --git a/src/api/assets/asset/index.ts b/src/api/assets/asset/index.ts index f0ef671..8932121 100644 --- a/src/api/assets/asset/index.ts +++ b/src/api/assets/asset/index.ts @@ -84,3 +84,73 @@ export function uploadAssetImage(file: File) { }, }); } + +// SKU 列表查询参数 +export interface SkuQueryParams { + assetId: string; + status?: number; + keyword?: string; + minPrice?: number; + maxPrice?: number; + page?: number; + pageSize?: number; +} + +// SKU 创建参数 +export interface CreateSkuParams { + assetId: string; + assetName: string; + skuName: string; + imageUrl?: string; + specValues?: Record; + price: number; + unlimitedStock: boolean; + stock: number; + sort?: number; + status?: number; +} + +// 获取 SKU 列表 +export function listAssetSkus(params: SkuQueryParams) { + return newService({ + url: '/assets/asset/sku/listAssetSkus', + method: 'get', + params, + }); +} + +// 创建 SKU +export function createAssetSku(data: CreateSkuParams) { + return newService({ + url: '/assets/asset/sku/createAssetSku', + method: 'post', + data, + }); +} + +// 获取 SKU 详情 +export function getAssetSku(id: string) { + return newService({ + url: '/assets/asset/sku/getAssetSku', + method: 'get', + params: { id }, + }); +} + +// 修改 SKU +export function updateAssetSku(data: CreateSkuParams & { id: string }) { + return newService({ + url: '/assets/asset/sku/updateAssetSku', + method: 'put', + data, + }); +} + +// 删除 SKU +export function deleteAssetSku(id: string) { + return newService({ + url: '/assets/asset/sku/deleteAssetSku', + method: 'delete', + params: { id }, + }); +} diff --git a/src/views/assets/asset/component/skuDialog.vue b/src/views/assets/asset/component/skuDialog.vue new file mode 100644 index 0000000..8d1c1e1 --- /dev/null +++ b/src/views/assets/asset/component/skuDialog.vue @@ -0,0 +1,554 @@ + + + + + diff --git a/src/views/assets/asset/index.vue b/src/views/assets/asset/index.vue index 22e2aaa..55e1bf9 100644 --- a/src/views/assets/asset/index.vue +++ b/src/views/assets/asset/index.vue @@ -84,6 +84,7 @@ + @@ -98,6 +99,7 @@ import { ref, reactive, onMounted } from 'vue'; import { ElMessageBox, ElMessage } from 'element-plus'; import { listAssets, updateAssetStatus, deleteAsset } from '/@/api/assets/asset'; import EditAsset from './component/editAsset.vue'; +import SkuDialog from './component/skuDialog.vue'; interface AssetRow { id: string; @@ -115,6 +117,7 @@ interface AssetRow { } const editAssetRef = ref(); +const skuDialogRef = ref(); const tableData = reactive({ data: [] as AssetRow[], @@ -217,10 +220,9 @@ const onEdit = (row: AssetRow) => { editAssetRef.value.openDialog(row, true); }; -// 添加SKU(待定) +// 管理SKU const onAddSku = (row: AssetRow) => { - ElMessage.info('添加SKU功能待开发'); - console.log('添加SKU:', row); + skuDialogRef.value.openDialog(row); }; // 分页大小改变