feat(media-supply): add media resource supply marketplace
Desktop Client Build / Resolve Build Metadata (push) Successful in 43s
Frontend CI / Frontend (push) Successful in 3m49s
Backend CI / Backend (push) Failing after 7m10s
Desktop Client Build / Build Desktop Client (push) Successful in 23m4s
Desktop Client Build / Publish Client Artifacts to NAS (push) Successful in 28s
Desktop Client Build / Resolve Build Metadata (push) Successful in 43s
Frontend CI / Frontend (push) Successful in 3m49s
Backend CI / Backend (push) Failing after 7m10s
Desktop Client Build / Build Desktop Client (push) Successful in 23m4s
Desktop Client Build / Publish Client Artifacts to NAS (push) Successful in 28s
Introduce an end-to-end media-supply feature: tenant-side resource sync service/worker backed by a Meijiequan supplier client, ops-side management APIs, and admin/ops web views for resources, orders, favorites and submission. Adds a shared digitocr helper, MediaSupply config blocks for tenant and ops, shared types, and migrations for supplier media resources, price overrides, customer visibility and order refunds. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -169,6 +169,46 @@ const router = createRouter({
|
||||
navKey: '/publish-management',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'media-supply/resources',
|
||||
name: 'media-supply-resources',
|
||||
component: () => import('@/views/MediaSupplyResourcesView.vue'),
|
||||
meta: {
|
||||
titleKey: 'route.mediaSupplyResources.title',
|
||||
descriptionKey: 'route.mediaSupplyResources.description',
|
||||
navKey: '/media-supply/resources',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'media-supply/submit',
|
||||
name: 'media-supply-submit',
|
||||
component: () => import('@/views/MediaSupplySubmitView.vue'),
|
||||
meta: {
|
||||
titleKey: 'route.mediaSupplySubmit.title',
|
||||
descriptionKey: 'route.mediaSupplySubmit.description',
|
||||
navKey: '/media-supply/resources',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'media-supply/orders',
|
||||
name: 'media-supply-orders',
|
||||
component: () => import('@/views/MediaSupplyOrdersView.vue'),
|
||||
meta: {
|
||||
titleKey: 'route.mediaSupplyOrders.title',
|
||||
descriptionKey: 'route.mediaSupplyOrders.description',
|
||||
navKey: '/media-supply/orders',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'media-supply/favorites',
|
||||
name: 'media-supply-favorites',
|
||||
component: () => import('@/views/MediaSupplyFavoritesView.vue'),
|
||||
meta: {
|
||||
titleKey: 'route.mediaSupplyFavorites.title',
|
||||
descriptionKey: 'route.mediaSupplyFavorites.description',
|
||||
navKey: '/media-supply/favorites',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'brands',
|
||||
name: 'brands',
|
||||
|
||||
Reference in New Issue
Block a user