优化
This commit is contained in:
@@ -160,6 +160,7 @@ let loadSequence = 0
|
||||
|
||||
interface WarehouseRow extends Warehouse {
|
||||
warehouseType: WarehouseType
|
||||
internalCode: string
|
||||
countryCode: string
|
||||
timezone: string
|
||||
postalCode: string
|
||||
@@ -171,6 +172,7 @@ const warehouseColumns: DataTableColumn[] = [
|
||||
{ key: 'actions', label: '操作', width: 180, fixed: 'left', slotName: 'actions' },
|
||||
{ key: 'warehouse', label: '仓库名称', minWidth: 190, slotName: 'warehouse' },
|
||||
{ key: 'code', prop: 'code', label: '仓库编码', minWidth: 145 },
|
||||
{ key: 'internalCode', prop: 'internalCode', label: '内部编号', minWidth: 120 },
|
||||
{ key: 'warehouseType', label: '仓库类型', width: 120, slotName: 'warehouseType' },
|
||||
{ key: 'countryCode', label: '国家/地区', width: 140, slotName: 'countryCode' },
|
||||
{ key: 'timezone', prop: 'timezone', label: '时区', width: 110, defaultVisible: false },
|
||||
@@ -184,6 +186,7 @@ const warehouseColumns: DataTableColumn[] = [
|
||||
|
||||
type WarehouseForm = Omit<Warehouse, 'updatedAt'> & {
|
||||
warehouseType: WarehouseType
|
||||
internalCode: string
|
||||
countryCode: string
|
||||
timezone: string
|
||||
postalCode: string
|
||||
@@ -198,6 +201,7 @@ function generatedCode(type: WarehouseType) {
|
||||
const emptyForm = (type: WarehouseType = 'FBA'): WarehouseForm => ({
|
||||
id: '',
|
||||
code: type === 'FBA' ? '' : generatedCode(type),
|
||||
internalCode: '',
|
||||
name: '',
|
||||
province: '',
|
||||
city: '',
|
||||
@@ -291,6 +295,7 @@ watch(activeWarehouseType, (type) => {
|
||||
form.province = ''
|
||||
form.timezone = ''
|
||||
}
|
||||
if (type !== 'FBA') form.internalCode = ''
|
||||
clearFieldError('countryCode')
|
||||
clearFieldError('timezone')
|
||||
})
|
||||
@@ -302,6 +307,7 @@ function toRow(warehouse: PlatformWarehouseSummaryResource): WarehouseRow {
|
||||
return {
|
||||
id: String(warehouse.id),
|
||||
code: warehouse.warehouseCode,
|
||||
internalCode: warehouse.internalCode || '',
|
||||
name: warehouse.warehouseName,
|
||||
warehouseType: warehouse.warehouseType,
|
||||
countryCode: warehouse.countryCode,
|
||||
@@ -457,6 +463,7 @@ async function openEdit(warehouse: WarehouseRow) {
|
||||
Object.assign(form, {
|
||||
id: String(detail.warehouse.id),
|
||||
code: detail.warehouse.warehouseCode,
|
||||
internalCode: detail.warehouse.internalCode || '',
|
||||
name: detail.warehouse.warehouseName,
|
||||
warehouseType: detail.warehouse.warehouseType,
|
||||
countryCode: detail.warehouse.countryCode,
|
||||
@@ -508,6 +515,7 @@ function buildSaveRequest(): SavePlatformWarehouseRequest {
|
||||
}
|
||||
return {
|
||||
warehouseCode: form.code.trim().toUpperCase(),
|
||||
internalCode: form.warehouseType === 'FBA' ? nullable(form.internalCode)?.toUpperCase() || null : null,
|
||||
warehouseName: form.name.trim(),
|
||||
warehouseType: form.warehouseType,
|
||||
countryCode,
|
||||
@@ -540,6 +548,7 @@ async function saveWarehouse() {
|
||||
if (isFbaCreate.value) {
|
||||
await createFbaWarehouse({
|
||||
warehouseCode: form.code.trim().toUpperCase(),
|
||||
internalCode: nullable(form.internalCode)?.toUpperCase() || null,
|
||||
stateProvince: form.province.trim().toUpperCase(),
|
||||
city: form.city.trim(),
|
||||
postalCode: form.postalCode.trim(),
|
||||
@@ -735,7 +744,7 @@ onMounted(() => void loadWarehouses())
|
||||
</div>
|
||||
<span v-else class="warehouse-subline">仅查看</span>
|
||||
</template>
|
||||
<template #warehouse="{ row }"><div class="warehouse-cell"><span><WarehouseIcon :size="18" /></span><div><strong>{{ (row as WarehouseRow).name }}</strong></div></div></template>
|
||||
<template #warehouse="{ row }"><div class="warehouse-cell"><div><strong>{{ (row as WarehouseRow).name }}</strong></div></div></template>
|
||||
<template #warehouseType="{ row }"><el-tag effect="plain">{{ warehouseTypeLabels[(row as WarehouseRow).warehouseType] }}</el-tag></template>
|
||||
<template #countryCode="{ row }">{{ formatCountryDisplay((row as WarehouseRow).countryCode) }}</template>
|
||||
<template #address="{ row }"><div class="warehouse-address"><MapPin :size="15" /><span>{{ (row as WarehouseRow).address || '-' }}</span></div></template>
|
||||
@@ -770,6 +779,7 @@ onMounted(() => void loadWarehouses())
|
||||
<p v-if="formErrors.timezone" class="field-error" role="alert">{{ formErrors.timezone }}</p>
|
||||
</el-form-item>
|
||||
</template>
|
||||
<el-form-item v-if="activeWarehouseType === 'FBA'" label="内部编号"><el-input v-model="form.internalCode" maxlength="16" placeholder="例如 154 或 CADF" @input="form.internalCode = String($event ?? '').replace(/[^a-zA-Z0-9]/g, '').toUpperCase().slice(0, 16)" /></el-form-item>
|
||||
</div>
|
||||
</FormSection>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user