Merge branch 'dev_vite' of http://18.167.251.121:10003/aidlab/aida_front into dev_vite
This commit is contained in:
@@ -1831,5 +1831,27 @@ export default {
|
|||||||
stopSellingTitle: "停用卖家账户",
|
stopSellingTitle: "停用卖家账户",
|
||||||
stopSellingTip: "永久停用您的卖家账户。所有商品列表和发票记录将被删除。您以后可以重新注册为卖家,但您的先前销售数据无法恢复。",
|
stopSellingTip: "永久停用您的卖家账户。所有商品列表和发票记录将被删除。您以后可以重新注册为卖家,但您的先前销售数据无法恢复。",
|
||||||
deactivate: "停用卖家账户",
|
deactivate: "停用卖家账户",
|
||||||
|
newListing: "新建商品",
|
||||||
|
draftMessage: '商品已保存为草稿。您可以继续编辑,或稍后在“我的商品”中发布。',
|
||||||
|
publishMessage: '商品现已上架。买家可以浏览并购买您的设计。',
|
||||||
|
ActiveListings: '已发布商品',
|
||||||
|
Drafts: '草稿',
|
||||||
|
Cancel: '取消',
|
||||||
|
Delete: '删除',
|
||||||
|
DeleteConfirm: '确认删除吗?',
|
||||||
|
DeleteDesc: '删除后,商品将无法恢复。',
|
||||||
|
Edit: '编辑',
|
||||||
|
Draft: '草稿',
|
||||||
|
Publish: '发布',
|
||||||
|
sketchesSelected: '已选择的线稿图',
|
||||||
|
Next: '下一步',
|
||||||
|
All: '全部',
|
||||||
|
SeriesDesign: '系列设计',
|
||||||
|
SingleDesign: '单设计商品',
|
||||||
|
sketchs: '线稿图',
|
||||||
|
MyListings: '我的商品',
|
||||||
|
MyListingsInfo: '已发布商品和未发布库存',
|
||||||
|
SelectCollection: '选择商品',
|
||||||
|
SelectSketch: '选择线稿图',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1885,5 +1885,27 @@ export default {
|
|||||||
stopSellingTitle: "Deactivate seller account",
|
stopSellingTitle: "Deactivate seller account",
|
||||||
stopSellingTip: "Permanently deactivate your seller account. All listings and invoice records will be deleted. You may re-register as a seller in the future, but your previous sales data cannot be recovered.",
|
stopSellingTip: "Permanently deactivate your seller account. All listings and invoice records will be deleted. You may re-register as a seller in the future, but your previous sales data cannot be recovered.",
|
||||||
deactivate: "Deactivate",
|
deactivate: "Deactivate",
|
||||||
|
newListing: "New Listing",
|
||||||
|
draftMessage: 'Product moved to drafts and stats reset.',
|
||||||
|
publishMessage: 'Item is now live on the Marketplace.',
|
||||||
|
ActiveListings: 'Active Listings',
|
||||||
|
Drafts: 'Drafts',
|
||||||
|
Cancel: 'Cancel',
|
||||||
|
Delete: 'Delete',
|
||||||
|
DeleteConfirm: 'Delete this listing?',
|
||||||
|
DeleteDesc: 'Your listing and its details will be permanently removed.',
|
||||||
|
Edit: 'Edit',
|
||||||
|
Draft: 'Draft',
|
||||||
|
Publish: 'Publish',
|
||||||
|
sketchesSelected: 'Sketches selected',
|
||||||
|
Next: 'Next',
|
||||||
|
All: 'All',
|
||||||
|
SeriesDesign: 'Series Design',
|
||||||
|
SingleDesign: 'Single Design',
|
||||||
|
sketchs: 'sketches',
|
||||||
|
MyListings: 'My Listings',
|
||||||
|
MyListingsInfo: 'Active listings and unpublished inventory',
|
||||||
|
SelectCollection: 'Select Collection',
|
||||||
|
SelectSketch: 'Select Sketch',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,15 +13,15 @@ type SellerBreadcrumbItem = {
|
|||||||
type SellerBreadcrumbList = SellerRouteMetaValue<SellerBreadcrumbItem[]>
|
type SellerBreadcrumbList = SellerRouteMetaValue<SellerBreadcrumbItem[]>
|
||||||
|
|
||||||
const myListingsBreadcrumb: SellerBreadcrumbItem = {
|
const myListingsBreadcrumb: SellerBreadcrumbItem = {
|
||||||
title: "My Listings",
|
title: "Seller.MyListings",
|
||||||
to: { name: "myListingsIndex" }
|
to: { name: "myListingsIndex" }
|
||||||
}
|
}
|
||||||
const selectCollectionBreadcrumb: SellerBreadcrumbItem = {
|
const selectCollectionBreadcrumb: SellerBreadcrumbItem = {
|
||||||
title: "Select Collection",
|
title: "Seller.SelectCollection",
|
||||||
to: { name: "myListingsSelect" }
|
to: { name: "myListingsSelect" }
|
||||||
}
|
}
|
||||||
const selectSketchBreadcrumb: SellerBreadcrumbItem = {
|
const selectSketchBreadcrumb: SellerBreadcrumbItem = {
|
||||||
title: "Select Sketch",
|
title: "Seller.SelectSketch",
|
||||||
to: (route) => {
|
to: (route) => {
|
||||||
const collectionId =
|
const collectionId =
|
||||||
route.params.collectionId ||
|
route.params.collectionId ||
|
||||||
@@ -257,8 +257,8 @@ const routes: Array<RouteRecordRaw> = [
|
|||||||
name: "myListingsIndex",
|
name: "myListingsIndex",
|
||||||
meta: {
|
meta: {
|
||||||
enter: "all",
|
enter: "all",
|
||||||
sellerHeaderTitle: "My Listings",
|
sellerHeaderTitle: "Seller.MyListings",
|
||||||
sellerHeaderTip: "Active listings and unpublished inventory.",
|
sellerHeaderTip: "Seller.MyListingsInfo",
|
||||||
sellerBreadcrumbs: [myListingsBreadcrumb]
|
sellerBreadcrumbs: [myListingsBreadcrumb]
|
||||||
},
|
},
|
||||||
component: () =>
|
component: () =>
|
||||||
@@ -269,7 +269,7 @@ const routes: Array<RouteRecordRaw> = [
|
|||||||
name: "myListingsSelect",
|
name: "myListingsSelect",
|
||||||
meta: {
|
meta: {
|
||||||
enter: "all",
|
enter: "all",
|
||||||
sellerHeaderTitle: "Select Collection",
|
sellerHeaderTitle: "Seller.SelectCollection",
|
||||||
sellerBreadcrumbs: [
|
sellerBreadcrumbs: [
|
||||||
myListingsBreadcrumb,
|
myListingsBreadcrumb,
|
||||||
selectCollectionBreadcrumb
|
selectCollectionBreadcrumb
|
||||||
@@ -284,7 +284,7 @@ const routes: Array<RouteRecordRaw> = [
|
|||||||
meta: {
|
meta: {
|
||||||
enter: "all",
|
enter: "all",
|
||||||
cache: true,
|
cache: true,
|
||||||
sellerHeaderTitle: "Select Collection",
|
sellerHeaderTitle: "Seller.SelectCollection",
|
||||||
sellerBreadcrumbs: [
|
sellerBreadcrumbs: [
|
||||||
myListingsBreadcrumb,
|
myListingsBreadcrumb,
|
||||||
selectCollectionBreadcrumb,
|
selectCollectionBreadcrumb,
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ defineExpose({getCreateList})
|
|||||||
<div class="detail">
|
<div class="detail">
|
||||||
<div class="name">{{item.name}}</div>
|
<div class="name">{{item.name}}</div>
|
||||||
<div class="bottom">
|
<div class="bottom">
|
||||||
<div>{{item.userLikeGroupVO?.groupDetails?.length || 0}} sketchs</div>
|
<div>{{item.userLikeGroupVO?.groupDetails?.length || 0}} {{ $t('Seller.sketchs') }}</div>
|
||||||
<div>{{setPubDate(item.updateTime,t)}}</div>
|
<div>{{setPubDate(item.updateTime,t)}}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -44,9 +44,9 @@ defineExpose({})
|
|||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<div :class="{active:!getCollectionListData.process?.[0]}" @click="setProcess('')">All</div>
|
<div :class="{active:!getCollectionListData.process?.[0]}" @click="setProcess('')">{{$t('Seller.All')}}</div>
|
||||||
<div :class="{active:getCollectionListData.process[0] == 'SERIES_DESIGN'}" @click="setProcess('SERIES_DESIGN')">Series Design</div>
|
<div :class="{active:getCollectionListData.process[0] == 'SERIES_DESIGN'}" @click="setProcess('SERIES_DESIGN')">{{$t('Seller.SeriesDesign')}}</div>
|
||||||
<div :class="{active:getCollectionListData.process[0] == 'SINGLE_DESIGN'}" @click="setProcess('SINGLE_DESIGN')">Single Design</div>
|
<div :class="{active:getCollectionListData.process[0] == 'SINGLE_DESIGN'}" @click="setProcess('SINGLE_DESIGN')">{{$t('Seller.SingleDesign')}}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<div class="search_input flex flex-align-center">
|
<div class="search_input flex flex-align-center">
|
||||||
|
|||||||
@@ -6,11 +6,13 @@ import selectMenu from '@/component/modules/selectMenu.vue'
|
|||||||
import { Https } from '@/tool/https'
|
import { Https } from '@/tool/https'
|
||||||
import { useRoute } from 'vue-router'
|
import { useRoute } from 'vue-router'
|
||||||
import { useStore } from 'vuex'
|
import { useStore } from 'vuex'
|
||||||
|
import { useI18n } from 'vue-i18n'
|
||||||
|
|
||||||
// 定义组件名称
|
// 定义组件名称
|
||||||
defineOptions({
|
defineOptions({
|
||||||
name: 'myListingsSelectItem'
|
name: 'myListingsSelectItem'
|
||||||
})
|
})
|
||||||
|
const { t } = useI18n()
|
||||||
//const props = defineProps({
|
//const props = defineProps({
|
||||||
//})
|
//})
|
||||||
//const emit = defineEmits([
|
//const emit = defineEmits([
|
||||||
@@ -22,15 +24,15 @@ const route = useRoute()
|
|||||||
const domSize = ref('Small')
|
const domSize = ref('Small')
|
||||||
const domSizeList = ref([
|
const domSizeList = ref([
|
||||||
{
|
{
|
||||||
label:'Small',
|
label:t('Header.Small'),
|
||||||
value:'Small',
|
value:'Small',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label:'Medium',
|
label:t('Header.Medium'),
|
||||||
value:'Medium',
|
value:'Medium',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label:'Large',
|
label:t('Header.Large'),
|
||||||
value:'Large',
|
value:'Large',
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
@@ -158,10 +160,10 @@ const {} = toRefs(data);
|
|||||||
<template #right>
|
<template #right>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="chooseNum">
|
<div class="chooseNum">
|
||||||
{{ chooseList.length }} sketches selected
|
{{ chooseList.length }} {{ t('Seller.sketchesSelected') }}
|
||||||
</div>
|
</div>
|
||||||
<div class="button" @click="next">
|
<div class="button" @click="next">
|
||||||
<span>Next</span>
|
<span>{{ $t('Seller.Next') }}</span>
|
||||||
<div class="icon">
|
<div class="icon">
|
||||||
<i class="fi fi-rr-arrow-small-right"></i>
|
<i class="fi fi-rr-arrow-small-right"></i>
|
||||||
</div>
|
</div>
|
||||||
@@ -173,7 +175,7 @@ const {} = toRefs(data);
|
|||||||
<div class="title">
|
<div class="title">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<i class="fi fi-rs-comments"></i>
|
<i class="fi fi-rs-comments"></i>
|
||||||
<span>Active Listings</span>
|
<span>{{ $t('Seller.ActiveListings') }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<div class="generalModel_state">
|
<div class="generalModel_state">
|
||||||
|
|||||||
@@ -7,11 +7,13 @@ import deleteDrafts from './deleteDrafts.vue'
|
|||||||
import { Https } from '@/tool/https'
|
import { Https } from '@/tool/https'
|
||||||
import { message } from 'ant-design-vue'
|
import { message } from 'ant-design-vue'
|
||||||
import { useRouter } from 'vue-router'
|
import { useRouter } from 'vue-router'
|
||||||
|
import { useI18n } from 'vue-i18n'
|
||||||
|
|
||||||
//const props = defineProps({
|
//const props = defineProps({
|
||||||
//})
|
//})
|
||||||
//const emit = defineEmits([
|
//const emit = defineEmits([
|
||||||
//])
|
//])
|
||||||
|
const { t:$t } = useI18n()
|
||||||
let data = reactive({
|
let data = reactive({
|
||||||
showDrafts: false,
|
showDrafts: false,
|
||||||
})
|
})
|
||||||
@@ -50,15 +52,15 @@ const config = ref({
|
|||||||
const domSize = ref('Small')
|
const domSize = ref('Small')
|
||||||
const domSizeList = ref([
|
const domSizeList = ref([
|
||||||
{
|
{
|
||||||
label:'Small',
|
label:$t('Header.Small'),
|
||||||
value:'Small',
|
value:'Small',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label:'Medium',
|
label:$t('Header.Medium'),
|
||||||
value:'Medium',
|
value:'Medium',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label:'Large',
|
label:$t('Header.Large'),
|
||||||
value:'Large',
|
value:'Large',
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
@@ -155,7 +157,7 @@ const draftListing = async (item: any)=>{
|
|||||||
list2.value.unshift(item)
|
list2.value.unshift(item)
|
||||||
list.value = list.value.filter((v: any)=>v.id != item.id)
|
list.value = list.value.filter((v: any)=>v.id != item.id)
|
||||||
})
|
})
|
||||||
message.success('Product moved to drafts and stats reset.')
|
message.success(t('Seller.draftMessage'))
|
||||||
}
|
}
|
||||||
|
|
||||||
const publishListing = async (item: any)=>{
|
const publishListing = async (item: any)=>{
|
||||||
@@ -163,7 +165,7 @@ const publishListing = async (item: any)=>{
|
|||||||
list.value.unshift(item)
|
list.value.unshift(item)
|
||||||
list2.value = list2.value.filter((v: any)=>v.id != item.id)
|
list2.value = list2.value.filter((v: any)=>v.id != item.id)
|
||||||
})
|
})
|
||||||
message.success('Item is now live on the Marketplace.')
|
message.success(t('Seller.publishMessage'))
|
||||||
}
|
}
|
||||||
|
|
||||||
const editListing = (item: any)=>{
|
const editListing = (item: any)=>{
|
||||||
@@ -237,7 +239,7 @@ const { showDrafts } = toRefs(data);
|
|||||||
<div class="title">
|
<div class="title">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<i class="fi fi-rs-comments"></i>
|
<i class="fi fi-rs-comments"></i>
|
||||||
<span>Active Listings</span>
|
<span>{{ $t('Seller.ActiveListings') }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<div class="generalModel_state">
|
<div class="generalModel_state">
|
||||||
@@ -302,7 +304,7 @@ const { showDrafts } = toRefs(data);
|
|||||||
<div class="title">
|
<div class="title">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<i class="fi fi-rs-comments"></i>
|
<i class="fi fi-rs-comments"></i>
|
||||||
<span>Drafts</span>
|
<span>{{ $t('Seller.Drafts') }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<VueDraggable
|
<VueDraggable
|
||||||
|
|||||||
@@ -36,15 +36,15 @@ const {} = toRefs(data);
|
|||||||
<div class="maskBtn">
|
<div class="maskBtn">
|
||||||
<div @click="$emit('editListing',item)">
|
<div @click="$emit('editListing',item)">
|
||||||
<svgIcon name="seller-edit" :size="domSize == 'Small'?32:domSize == 'Medium'?40:48" />
|
<svgIcon name="seller-edit" :size="domSize == 'Small'?32:domSize == 'Medium'?40:48" />
|
||||||
<div>Edit</div>
|
<div>{{ $t('Seller.Edit') }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="type == 'listings'" @click="$emit('draftListing',item)">
|
<div v-if="type == 'listings'" @click="$emit('draftListing',item)">
|
||||||
<svgIcon name="seller-draft" :size="domSize == 'Small'?32:domSize == 'Medium'?40:48" />
|
<svgIcon name="seller-draft" :size="domSize == 'Small'?32:domSize == 'Medium'?40:48" />
|
||||||
<div>Draft</div>
|
<div>{{ $t('Seller.Draft') }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="type == 'drafts'" @click="$emit('publishListing',item)">
|
<div v-else-if="type == 'drafts'" @click="$emit('publishListing',item)">
|
||||||
<svgIcon name="seller-share" :size="domSize == 'Small'?32:domSize == 'Medium'?40:48" />
|
<svgIcon name="seller-share" :size="domSize == 'Small'?32:domSize == 'Medium'?40:48" />
|
||||||
<div>Publish</div>
|
<div>{{ $t('Seller.Publish') }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -75,8 +75,8 @@ const { showAgain } = toRefs(data);
|
|||||||
<i class="fi fi-rr-trash"></i>
|
<i class="fi fi-rr-trash"></i>
|
||||||
</div>
|
</div>
|
||||||
<div class="titleText">
|
<div class="titleText">
|
||||||
<h1>Delete this listing?</h1>
|
<h1>{{ $t('Seller.DeleteConfirm') }}</h1>
|
||||||
<p>Your listing and its details will be permanently removed.</p>
|
<p>{{ $t('Seller.DeleteDesc') }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="deleteContent">
|
<div class="deleteContent">
|
||||||
@@ -85,12 +85,12 @@ const { showAgain } = toRefs(data);
|
|||||||
</div>
|
</div>
|
||||||
<div class="detail">
|
<div class="detail">
|
||||||
<div class="name">{{ item?.title }}</div>
|
<div class="name">{{ item?.title }}</div>
|
||||||
<div class="price">HK${{ item?.price }} · Draft</div>
|
<div class="price">HK${{ item?.price }} · {{ $t('Seller.Drafts') }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btnBox">
|
<div class="btnBox">
|
||||||
<div class="btn" @click.stop="cleardata()">Cancel</div>
|
<div class="btn" @click.stop="cleardata()">{{ $t('Seller.Cancel') }}</div>
|
||||||
<div class="btn" @click.stop="deleteDrafts()">Delete</div>
|
<div class="btn" @click.stop="deleteDrafts()">{{ $t('Seller.Delete') }}</div>
|
||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ const {} = toRefs(data);
|
|||||||
<seller-header>
|
<seller-header>
|
||||||
<template #right>
|
<template #right>
|
||||||
<div class="button" @click="newListing">
|
<div class="button" @click="newListing">
|
||||||
<span>New Listing</span>
|
<span>{{ $t('Seller.newListing') }}</span>
|
||||||
<div class="icon">
|
<div class="icon">
|
||||||
<i class="fi fi-br-plus"></i>
|
<i class="fi fi-br-plus"></i>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
clickable: i < breadcrumbList.length - 1
|
clickable: i < breadcrumbList.length - 1
|
||||||
}"
|
}"
|
||||||
@click="onBreadcrumbClick(v, i)"
|
@click="onBreadcrumbClick(v, i)"
|
||||||
>{{ v.title }}</span
|
>{{ $t(v.title) }}</span
|
||||||
>
|
>
|
||||||
<span class="icon" v-show="i < breadcrumbList.length - 1">
|
<span class="icon" v-show="i < breadcrumbList.length - 1">
|
||||||
<svg-icon name="seller-arrow_right_solid" size="10" />
|
<svg-icon name="seller-arrow_right_solid" size="10" />
|
||||||
@@ -109,7 +109,7 @@
|
|||||||
|
|
||||||
const resolveTitle = (title?: RouteMetaValue<string>, titleKey?: RouteMetaValue<string>) => {
|
const resolveTitle = (title?: RouteMetaValue<string>, titleKey?: RouteMetaValue<string>) => {
|
||||||
const key = resolveMetaValue(titleKey)
|
const key = resolveMetaValue(titleKey)
|
||||||
return key ? t(key) : resolveMetaValue(title) || ""
|
return title ? t(title) || "" : ""
|
||||||
}
|
}
|
||||||
|
|
||||||
const autoBreadcrumbs = computed(() => {
|
const autoBreadcrumbs = computed(() => {
|
||||||
|
|||||||
Reference in New Issue
Block a user