Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
factory_front
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
qinjianhui
factory_front
Commits
6a561044
Commit
6a561044
authored
Jul 08, 2025
by
linjinhong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改物流方式添加问题
parent
c14583b0
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
960 additions
and
124 deletions
+960
-124
src/router/index.ts
+7
-78
src/router/menu.ts
+5
-0
src/views/logistics/logisticsMethod.vue
+30
-13
src/views/order/orderTracking/index.vue
+824
-0
src/views/order/podUs/index.vue
+94
-33
No files found.
src/router/index.ts
View file @
6a561044
...
...
@@ -74,6 +74,13 @@ const router = createRouter({
component
:
PodUsOrderList
,
},
{
path
:
'/pod-us-order/orderTracking'
,
meta
:
{
title
:
'POD(US)订单跟踪'
,
},
component
:
()
=>
import
(
'@/views/order/orderTracking/index.vue'
),
},
{
path
:
'/pod-delivery-note/list'
,
meta
:
{
title
:
'POD发货单'
,
...
...
@@ -227,84 +234,6 @@ const router = createRouter({
},
component
:
WarehousePosition
,
},
{
path
:
'/logistics/logisticsMethod'
,
meta
:
{
title
:
'物流方式'
,
},
component
:
()
=>
import
(
'@/views/logistics/logisticsMethod.vue'
),
},
{
path
:
'/logistics/shippingAddress'
,
meta
:
{
title
:
'发货地址'
,
},
component
:
()
=>
import
(
'@/views/logistics/shippingAddress.vue'
),
},
{
path
:
'/logistics/logisticsQuotation'
,
meta
:
{
title
:
'物流报价'
,
},
component
:
()
=>
import
(
'@/views/logistics/logisticsQuotation.vue'
),
},
{
path
:
'/logistics/declarationRule'
,
meta
:
{
title
:
'申报规则'
,
},
component
:
()
=>
import
(
'@/views/logistics/declarationRule.vue'
),
},
{
path
:
'/logistics/logisticsPartition'
,
meta
:
{
title
:
'物流分区'
,
},
component
:
()
=>
import
(
'@/views/logistics/logisticsPartition.vue'
),
},
{
path
:
'/logistics/logisticsCalculate'
,
meta
:
{
title
:
'运费试算'
,
},
component
:
()
=>
import
(
'@/views/logistics/logisticsCalculate.vue'
),
},
{
path
:
'/warehouse/manage'
,
meta
:
{
title
:
'仓库管理'
,
},
component
:
WarehouseManage
,
},
{
path
:
'/warehouse/receipt-doc'
,
meta
:
{
title
:
'入库单'
,
},
component
:
receiptDoc
,
},
// {
// path: '/warehouse/issue-doc',
// meta: {
// title: '出库单',
// },
// component: issueDoc,
// },
{
path
:
'/warehouse/warning'
,
meta
:
{
title
:
'仓库预警'
,
},
component
:
WarehouseWarning
,
},
{
path
:
'/warehouse/position'
,
meta
:
{
title
:
'库位管理'
,
},
component
:
WarehousePosition
,
},
],
},
// 登录
...
...
src/router/menu.ts
View file @
6a561044
...
...
@@ -117,6 +117,11 @@ const menu: MenuItem[] = [
id
:
8
,
label
:
'POD订单(US)'
,
},
// {
// index: '/pod-us-order/orderTracking',
// id: 8,
// label: 'POD(US)订单跟踪',
// },
],
},
...
...
src/views/logistics/logisticsMethod.vue
View file @
6a561044
...
...
@@ -76,16 +76,17 @@ import {
updateLogisticsWay
,
updateStatusLogisticsWay
,
deleteLogisticsWay
,
getWarehouseList
,
getRuleList
,
getPlatformList
,
getLogisticsLog
,
getLogisticsCompanyList
,
getUniuniList
,
}
from
'@/api/logistics'
import
{
WarehouseListData
}
from
'@/types/api/podUsOrder'
import
{
ISeachFormConfig
}
from
'@/types/searchType'
import
{
TableColumn
}
from
'@/components/VxeTable'
// import type { PromiseSettledResult } from 'types
'
import
{
loadWarehouseListApi
}
from
'@/api/podUsOrder
'
import
type
{
LogisticsMethod
,
platformObj
,
...
...
@@ -103,7 +104,9 @@ import { debounce } from 'lodash-es'
import
UPARCELImage
from
'@/assets/images/UPARCEL物流编码.png'
const
[
searchForm
]
=
useValue
({})
const
[
editForm
,
resetEditForm
]
=
useValue
<
LogisticsMethod
>
({
platformList
:
[{
platform
:
''
,
logisticsName
:
''
,
showPlatform
:
[]
}],
platformList
:
[
{
platform
:
''
,
logisticsName
:
''
,
showPlatform
:
[
'default'
]
},
],
ruleRef
:
{
ruleId
:
''
,
ruleName
:
''
},
status
:
1
,
})
...
...
@@ -131,6 +134,7 @@ const dialogVisible = ref(false)
const
logDialogVisible
=
ref
(
false
)
const
editFormRef
=
ref
<
InstanceType
<
typeof
CustomizeForm
>
|
null
>
(
null
)
const
selection
=
ref
([])
const
warehouseList
=
ref
<
WarehouseListData
[]
>
([])
interface
ImageList
{
[
key
:
string
]:
string
...
...
@@ -173,7 +177,7 @@ const searchConfig = ref<ISeachFormConfig[]>([
},
])
const
platformList
=
ref
([])
const
warehouseList
=
ref
([])
const
ruleNameList
=
ref
([])
const
uniuniList
=
ref
([])
const
logisticsCompanyList
=
ref
([])
...
...
@@ -323,11 +327,17 @@ const formConfig = computed<IFormConfig[]>(() => [
},
{
prop
:
'warehouseId'
,
type
:
'
inpu
t'
,
type
:
'
selec
t'
,
label
:
'仓库名称'
,
fixed
:
'last'
,
attrs
:
{
placeholder
:
'请输入仓库名称'
,
placeholder
:
'请选择仓库名称'
,
label
:
'name'
,
value
:
'id'
,
options
:
[...(
warehouseList
.
value
||
[])],
onChange
:
(
item
:
WarehouseListData
)
=>
{
editForm
.
value
.
warehouseName
=
item
.
name
},
},
},
...
...
@@ -384,6 +394,7 @@ const formConfig = computed<IFormConfig[]>(() => [
collapse
-
tags
collapse
-
tags
-
tooltip
v
-
model
=
{
item
[
'showPlatform'
]}
disabled
=
{
index
===
0
}
>
{
platformList
.
value
?.
map
((
el
,
idx
)
=>
(
<
el
-
option
label
=
{
el
}
value
=
{
el
}
key
=
{
idx
}
><
/el-option
>
...
...
@@ -707,7 +718,7 @@ const save = debounce(async () => {
return
}
}
},
4
00
)
},
2
00
)
/**
* @description: 新增按钮打开弹窗
...
...
@@ -784,14 +795,20 @@ function deleteCol(index: number) {
async
function
getAllList
()
{
try
{
const
res
=
await
Promise
.
allSettled
([
getWarehouseList
(),
loadWarehouseListApi
(),
getRuleList
(),
getPlatformList
(),
getLogisticsCompanyList
(),
getUniuniList
(),
])
res
.
forEach
(
(
item
:
PromiseSettledResult
<
{
code
:
number
;
data
:
never
[]
}
>
,
index
)
=>
{
(
item
:
PromiseSettledResult
<
{
code
:
number
data
:
WarehouseListData
[]
|
never
[]
}
>
,
index
,
)
=>
{
if
(
item
.
status
===
'fulfilled'
)
{
if
(
item
.
value
.
code
===
200
)
{
if
(
index
==
0
)
{
...
...
@@ -799,13 +816,13 @@ async function getAllList() {
}
else
if
(
index
==
1
)
{
console
.
log
(
758
,
item
.
value
.
data
)
ruleNameList
.
value
=
item
.
value
.
data
||
[]
ruleNameList
.
value
=
(
item
.
value
.
data
as
never
[])
||
[]
}
else
if
(
index
==
2
)
{
platformList
.
value
=
item
.
value
.
data
||
[]
platformList
.
value
=
(
item
.
value
.
data
as
never
[])
||
[]
}
else
if
(
index
==
3
)
{
logisticsCompanyList
.
value
=
item
.
value
.
data
||
[]
logisticsCompanyList
.
value
=
(
item
.
value
.
data
as
never
[])
||
[]
}
else
if
(
index
==
4
)
{
uniuniList
.
value
=
item
.
value
.
data
||
[]
uniuniList
.
value
=
(
item
.
value
.
data
as
never
[])
||
[]
}
}
}
...
...
src/views/order/orderTracking/index.vue
0 → 100644
View file @
6a561044
<
script
setup
lang=
"ts"
>
import
{
factoryWarehouseInfo
,
warehouseInfo
,
warehouseInfoGetAll
,
}
from
'@/api/warehouse.ts'
import
{
getListCraftApi
,
getProductionClientApi
}
from
'@/api/podUsOrder'
import
{
SearchForm
,
CraftListData
,
ProductionClient
,
}
from
'@/types/api/podUsOrder'
import
platformJson
from
'../../../json/platform.json'
import
dayjs
from
'dayjs'
import
{
getUserMarkList
}
from
'@/api/common'
import
{
CaretBottom
,
CaretTop
,
DocumentCopy
}
from
'@element-plus/icons-vue'
import
SplitDiv
from
'@/components/splitDiv/splitDiv.vue'
import
{
useValue
}
from
'@/utils/hooks/useValue'
const
[
searchForm
,
resetSearchForm
]
=
useValue
<
SearchForm
>
({
timeType
:
1
,
shopNumber
:
''
,
shipmentType
:
''
,
userMark
:
''
,
logisticsTracking
:
''
,
baseSku
:
''
,
factoryOrderNumber
:
''
,
sku
:
''
,
factorySubOrderNumber
:
''
,
status
:
''
,
customizedQuantity
:
''
,
multi
:
null
,
startTime
:
null
,
endTime
:
null
,
exceptionHandling
:
undefined
,
platform
:
''
,
productionClient
:
''
,
warehouseId
:
''
,
thirdSkuCode
:
''
,
supplierProductNo
:
''
,
batchArrangeNumber
:
''
,
craftCode
:
''
,
thirdStockSku
:
''
,
})
const
tableColumns
=
computed
(()
=>
{
return
[
{
label
:
'商品'
,
prop
:
'goods'
,
slot
:
'goods'
,
minWidth
:
920
,
},
{
label
:
'订单详情'
,
prop
:
'orderDetail'
,
slot
:
'orderDetail'
,
width
:
300
,
},
{
label
:
'单价'
,
slot
:
'price'
,
width
:
160
,
prop
:
'price'
,
align
:
'left'
,
},
{
label
:
'时间'
,
slot
:
'time'
,
width
:
180
,
prop
:
'time'
,
align
:
'left'
,
},
{
label
:
'异常原因'
,
width
:
300
,
prop
:
'exceptionReason'
,
slot
:
'exceptionReason'
,
align
:
'left'
,
},
]
})
const
tableData
=
ref
([])
const
searchVisible
=
ref
(
false
)
const
warehouseList
=
ref
<
warehouseInfo
[]
>
([])
const
timeRange
=
ref
<
string
[]
>
([])
const
pickerOptions
=
{
shortcuts
:
[
{
text
:
'今日'
,
value
:
()
=>
getDateRange
(
0
),
},
{
text
:
'昨天'
,
value
:
()
=>
getDateRange
(
1
),
},
{
text
:
'最近7天'
,
value
:
()
=>
getDateRange
(
6
),
},
{
text
:
'最近14天'
,
value
:
()
=>
getDateRange
(
13
),
},
{
text
:
'最近30天'
,
value
:
()
=>
getDateRange
(
29
),
},
{
text
:
'本周'
,
value
:
()
=>
getWeekRange
(
0
),
},
{
text
:
'上周'
,
value
:
()
=>
getWeekRange
(
1
),
},
{
text
:
'本月'
,
value
:
()
=>
getMonthRange
(
0
),
},
{
text
:
'上月'
,
value
:
()
=>
getMonthRange
(
1
),
},
{
text
:
'历史'
,
value
:
()
=>
{
const
end
=
dayjs
().
endOf
(
'day'
).
toDate
()
const
start
=
dayjs
(
'2000-01-01'
).
startOf
(
'day'
).
toDate
()
return
[
start
,
end
]
},
},
],
}
const
pagination
=
ref
<
factoryWarehouseInfo
>
({
pageSize
:
50
,
currentPage
:
1
,
total
:
0
,
})
const
search
=
()
=>
{}
const
getDateRange
=
(
days
=
0
,
type
:
'past'
|
'future'
=
'past'
)
=>
{
const
end
=
dayjs
()
const
start
=
type
===
'past'
?
end
.
subtract
(
days
,
'day'
)
:
end
.
add
(
days
,
'day'
)
return
[
start
.
startOf
(
'day'
).
toDate
(),
end
.
endOf
(
'day'
).
toDate
()]
}
const
getMonthRange
=
(
months
=
0
,
type
:
'past'
|
'future'
=
'past'
)
=>
{
const
now
=
dayjs
()
const
start
=
type
===
'past'
?
now
.
subtract
(
months
,
'month'
)
:
now
.
add
(
months
,
'month'
)
return
[
start
.
startOf
(
'month'
).
toDate
(),
start
.
endOf
(
'month'
).
toDate
()]
}
const
getWeekRange
=
(
weeks
=
0
,
type
:
'past'
|
'future'
=
'past'
)
=>
{
const
now
=
dayjs
()
const
start
=
type
===
'past'
?
now
.
subtract
(
weeks
,
'week'
)
:
now
.
add
(
weeks
,
'week'
)
return
[
start
.
startOf
(
'week'
).
toDate
(),
start
.
endOf
(
'week'
).
toDate
()]
}
async
function
getData
()
{}
const
copy
=
(
text
:
string
)
=>
{
navigator
.
clipboard
.
writeText
(
text
)
ElMessage
.
success
(
'复制成功'
)
}
const
handleSizeChange
=
(
pageSize
:
number
)
=>
{
pagination
.
value
.
pageSize
=
pageSize
getData
()
}
const
handleCurrentChange
=
(
currentPage
:
number
)
=>
{
pagination
.
value
.
currentPage
=
currentPage
getData
()
}
const
productionClient
=
ref
<
ProductionClient
[]
>
()
const
loadProductionClient
=
async
()
=>
{
try
{
const
res
=
await
getProductionClientApi
()
if
(
res
.
code
!==
200
)
return
productionClient
.
value
=
res
.
data
}
catch
(
e
)
{
console
.
error
(
e
)
}
}
const
getWarehouse
=
async
()
=>
{
const
{
data
}
=
await
warehouseInfoGetAll
()
warehouseList
.
value
=
data
}
const
userMarkList
=
ref
<
string
[]
>
([])
const
getUserMark
=
async
()
=>
{
try
{
const
res
=
await
getUserMarkList
()
userMarkList
.
value
=
res
.
data
}
catch
(
error
)
{
//showError(error)
}
}
const
craftList
=
ref
<
CraftListData
[]
>
([])
const
loadCraftList
=
async
()
=>
{
try
{
const
res
=
await
getListCraftApi
()
if
(
res
.
code
!==
200
)
return
craftList
.
value
=
res
.
data
}
catch
(
e
)
{
console
.
error
(
e
)
}
}
loadProductionClient
()
getUserMark
()
loadCraftList
()
getData
()
getWarehouse
()
</
script
>
<
template
>
<split-div>
<template
#
top
>
<el-card>
<ElForm
:model=
"searchForm"
size=
"default"
inline
class=
"search-form"
>
<div>
<ElFormItem
label=
"仓库"
>
<ElSelect
v-model=
"searchForm.warehouseId"
clearable
filterable
placeholder=
"请输入"
style=
"width: 150px"
>
<el-option
v-for=
"item in warehouseList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</ElSelect>
</ElFormItem>
<ElFormItem
label=
"平台"
>
<ElSelect
v-model=
"searchForm.platform"
value-key=
""
placeholder=
"请选择"
clearable
filterable
popper-class=
"customize-select-style"
style=
"width: 150px"
>
<ElOption
v-for=
"(item, index) in platformJson"
:key=
"index"
:label=
"item.type"
:value=
"item.type"
style=
"width: 160px"
>
<img
:src=
"`/images/icon/$
{item.icon.split('/').pop()}`"
style="height: 20px; margin: 5px 10px 0 0"
/>
<span
:title=
"item.type"
>
{{
item
.
type
}}
</span>
</ElOption>
</ElSelect>
</ElFormItem>
<ElFormItem
label=
"工艺"
>
<ElSelect
v-model=
"searchForm.craftCode"
clearable
filterable
placeholder=
"请输入工艺"
style=
"width: 150px"
>
<el-option
v-for=
"item in craftList"
:key=
"item.craftCode"
:label=
"item.craftName"
:value=
"item.craftCode"
></el-option>
</ElSelect>
</ElFormItem>
<ElFormItem
label=
"库存SKU"
>
<ElInput
v-model
.
trim=
"searchForm.thirdSkuCode"
placeholder=
"库存SKU"
clearable
style=
"width: 150px"
></ElInput>
</ElFormItem>
<ElFormItem
label=
"款号"
>
<ElInput
v-model=
"searchForm.supplierProductNo"
placeholder=
"款号"
clearable
style=
"width: 150px"
/>
</ElFormItem>
<ElFormItem
label=
"批次号"
>
<ElInput
v-model=
"searchForm.batchArrangeNumber"
placeholder=
"批次号"
clearable
style=
"width: 150px"
/>
</ElFormItem>
<ElFormItem
label=
"生产单号"
>
<ElInput
v-model=
"searchForm.factorySubOrderNumber"
placeholder=
"生产单号"
clearable
style=
"width: 150px"
/>
</ElFormItem>
<ElFormItem
label=
"店铺单号"
>
<ElInput
v-model=
"searchForm.shopNumber"
placeholder=
"店铺单号"
clearable
style=
"width: 150px"
/>
</ElFormItem>
</div>
<ElFormItem
label=
"类型"
>
<el-radio-group
v-model=
"searchForm.customizedQuantity"
>
<el-radio-button
label=
"single"
>
单面
</el-radio-button>
<el-radio-button
label=
"multiple"
>
多面
</el-radio-button>
</el-radio-group>
</ElFormItem>
<ElFormItem
label=
"数量"
>
<el-radio-group
v-model=
"searchForm.multi"
>
<el-radio-button
:label=
"false"
>
单件
</el-radio-button>
<el-radio-button
:label=
"true"
>
多件
</el-radio-button>
</el-radio-group>
</ElFormItem>
<ElFormItem>
<ElPopover
placement=
"bottom"
width=
"600"
trigger=
"click"
>
<ElForm
:model=
"searchForm"
size=
"default"
inline
label-width=
"100px"
>
<ElFormItem
style=
"width: 100%; padding-right: 40px"
>
<div
style=
"width: 100%; display: flex; flex-wrap: nowrap"
>
<el-select
v-model=
"searchForm.timeType"
clearable
:teleported=
"false"
placeholder=
"时间类型"
style=
"flex: 1; margin-right: 10px"
>
<el-option
:value=
"1"
label=
"创建时间"
></el-option>
<el-option
:value=
"2"
label=
"确认时间"
></el-option>
<el-option
:value=
"3"
label=
"完成时间"
></el-option>
</el-select>
<el-date-picker
v-model=
"timeRange"
:teleported=
"false"
:default-time=
"[
new Date(0, 0, 0, 0, 0, 0),
new Date(0, 0, 0, 23, 59, 59),
]"
placeholder=
"收货人"
value-format=
"YYYY-MM-DD HH:mm:ss"
type=
"datetimerange"
style=
"width: 280px"
:shortcuts=
"pickerOptions.shortcuts"
start-placeholder=
"开始时间"
end-placeholder=
"结束时间"
clearable
>
</el-date-picker>
</div>
</ElFormItem>
<ElFormItem
label=
"订单号"
>
<ElInput
v-model=
"searchForm.factoryOrderNumber"
placeholder=
"订单号"
clearable
style=
"width: 150px"
/>
</ElFormItem>
<ElFormItem
label=
"客户"
>
<el-select
v-model=
"searchForm.userMark"
clearable
filterable
:teleported=
"false"
style=
"width: 150px"
placeholder=
"客户"
>
<el-option
v-for=
"item in userMarkList"
:key=
"item"
:value=
"item"
:label=
"item"
></el-option>
</el-select>
</ElFormItem>
<ElFormItem
label=
"生产端"
>
<ElSelect
v-model=
"searchForm.productionClient"
placeholder=
"生产端"
clearable
:teleported=
"false"
style=
"width: 150px"
>
<ElOption
v-for=
"(item, index) in productionClient"
:key=
"index"
:value=
"item.code || ''"
:label=
"`$
{item.remark}(${item.code})`"
>
</ElOption>
</ElSelect>
</ElFormItem>
<ElFormItem
label=
"Variant SKU"
>
<ElInput
v-model
.
trim=
"searchForm.sku"
placeholder=
"Variant SKU"
clearable
style=
"width: 150px"
></ElInput>
</ElFormItem>
<!--
<ElFormItem
label=
"Base SKU"
>
<ElInput
v-model
.
trim=
"searchForm.baseSku"
placeholder=
" Base SKU"
clearable
style=
"width: 150px"
></ElInput>
</ElFormItem>
-->
<ElFormItem
label=
"物流跟踪号"
>
<ElInput
v-model
.
trim=
"searchForm.logisticsTracking"
placeholder=
"物流跟踪号"
clearable
style=
"width: 150px"
></ElInput>
</ElFormItem>
<ElFormItem
label=
"物流类型"
>
<ElSelect
v-model=
"searchForm.shipmentType"
placeholder=
"物流类型"
clearable
:teleported=
"false"
style=
"width: 150px"
>
<ElOption
v-for=
"(item, index) in ['自有物流', '工厂物流']"
:key=
"index"
:value=
"index"
:label=
"item"
></ElOption>
</ElSelect>
</ElFormItem>
</ElForm>
<template
#
reference
>
<el-button
type=
"warning"
@
click=
"searchVisible = !searchVisible"
>
<el-icon
v-if=
"searchVisible"
>
<CaretTop
/>
</el-icon>
<el-icon
v-else
>
<CaretBottom
/>
</el-icon>
</el-button>
</
template
>
</ElPopover>
</ElFormItem>
<ElFormItem>
<span>
<ElButton
link
@
click=
"resetSearchForm"
style=
"font-size: 12px"
><span
title=
"重置查询条件"
>
重置
</span></ElButton
>
</span>
</ElFormItem>
<ElFormItem>
<span>
<ElButton
type=
"primary"
@
click=
"search"
>
查询
</ElButton>
</span>
</ElFormItem>
</ElForm>
</el-card>
</template>
<
template
#
bottom
>
<el-card
style=
"height: 100%"
>
<div
class=
"manage"
>
<div
class=
"table-flex"
>
<div
class=
"top-table"
>
<div
class=
"table-container"
>
<TableView
ref=
"tableRef"
:columns=
"tableColumns"
:serial-numberable=
"true"
:selectionable=
"true"
:paginated-data=
"tableData"
>
<template
#
goods=
"
{ row }">
<div
class=
"goods-info-box"
>
<div
class=
"goods-list"
>
<div
v-for=
"item in row.productList"
:key=
"item"
class=
"goods-item"
>
<div
class=
"goods-item-img"
>
<img
:src=
"item.variantImage"
alt=
"商品图片"
/>
</div>
<div
class=
"goods-item-info"
>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
商品名称:
</span
>
<span
class=
"goods-item-info-item-value"
>
{{
item
.
productName
}}
</span>
</div>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
变体SKU:
</span
>
<span
class=
"goods-item-info-item-value"
>
{{
item
.
variantSku
}}
</span>
<el-icon
class=
"icon"
@
click=
"copy(item.variantSku || '')"
>
<DocumentCopy
/>
</el-icon>
</div>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
库存SKU:
</span
>
<span
class=
"goods-item-info-item-value"
>
{{
item
.
thirdSkuCode
}}
</span>
<el-icon
class=
"icon"
@
click=
"copy(item.thirdSkuCode || '')"
>
<DocumentCopy
/>
</el-icon>
</div>
<div
v-if=
"item.thirdStockSku"
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
货号:
</span
>
<span
class=
"goods-item-info-item-value"
>
{{
item
.
thirdStockSku
}}
</span>
<el-icon
class=
"icon"
@
click=
"copy(item.thirdStockSku || '')"
>
<DocumentCopy
/>
</el-icon>
</div>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
工艺:
</span
>
<span
class=
"goods-item-info-item-value"
>
{{
item
.
craftName
}}
</span>
</div>
</div>
<div
class=
"goods-item-info"
>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
生产单号:
</span
>
<span
class=
"goods-item-info-item-value"
:title=
"item.factorySubOrderNumber"
>
{{
item
.
factorySubOrderNumber
}}
</span>
<el-icon
class=
"icon"
@
click=
"copy(item.factorySubOrderNumber || '')"
>
<DocumentCopy
/>
</el-icon>
</div>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
第三方生产单号:
</span
>
<span
class=
"goods-item-info-item-value"
:title=
"item.thirdSubOrderNumber"
>
{{
item
.
thirdSubOrderNumber
}}
</span>
<el-icon
class=
"icon"
@
click=
"copy(item.thirdSubOrderNumber || '')"
>
<DocumentCopy
/>
</el-icon>
</div>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
工厂:
</span
>
<span
class=
"goods-item-info-item-value"
>
{{
item
.
factoryCode
}}
</span>
</div>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
款号:
</span
>
<span
class=
"goods-item-info-item-value"
>
{{
item
.
supplierProductNo
}}
</span>
</div>
<div
v-if=
"item.isReplenishment"
class=
"goods-item-info-item"
>
<!--
<span
class=
"goods-item-info-item-label"
>
补胚状态:
</span>
-->
<el-tag
size=
"small"
effect=
"dark"
type=
"danger"
>
补胚中
</el-tag>
</div>
</div>
<div
class=
"goods-item-info"
>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
价格:
</span
>
<span
class=
"goods-item-info-item-value"
>
{{
item
.
productPrice
}}
($)
</span>
</div>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
模板金额:
</span
>
<span
class=
"goods-item-info-item-value"
>
{{
item
.
templatePrice
}}
($)
</span>
</div>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
工艺金额:
</span
>
<span
class=
"goods-item-info-item-value"
>
{{
item
.
craftPrice
}}
($)
</span>
</div>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
付款金额:
</span
>
<span
class=
"goods-item-info-item-value"
>
{{
item
.
payAmount
}}
($)
</span>
</div>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
{{
'已生产数量:'
}}
</span>
<span
class=
"goods-item-info-item-value"
>
{{
item
.
passNum
}}
</span>
</div>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
补胚数量:
</span
>
<span
class=
"goods-item-info-item-value"
:title=
"item.replenishmentSumNum"
>
{{
item
.
replenishmentSumNum
||
0
}}
</span>
</div>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
克重:
</span
>
<span
v-if=
"item.weight"
class=
"goods-item-info-item-value"
>
{{
item
.
weight
}}
g
</span>
</div>
</div>
</div>
</div>
</div>
</
template
>
</TableView>
</div>
<div
class=
"pagination"
>
<el-pagination
size=
"small"
v-model:current-page=
"pagination.currentPage"
v-model:page-size=
"pagination.pageSize"
:page-sizes=
"[50, 100, 150, 200]"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"pagination.total"
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
/>
</div>
</div>
</div>
</div>
</el-card>
</template>
<
template
#
other
>
<div
class=
"bottom-table"
>
<el-tabs>
<el-tab-pane
label=
"库存操作明细"
>
</el-tab-pane>
</el-tabs>
</div>
</
template
>
</split-div>
</template>
<
style
scoped
lang=
"scss"
>
::v-deep
(
.search-form
)
{
.el-form-item
{
margin-bottom
:
10px
;
margin-right
:
14px
;
}
}
.el-card
{
::v-deep(.el-card__body)
{
padding
:
10px
;
padding-bottom
:
0
;
height
:
100%
;
}
}
.manage
{
height
:
100%
;
display
:
flex
;
flex-direction
:
column
;
.header
{
margin-bottom
:
10px
;
}
.table-flex
{
flex
:
1
;
flex-shrink
:
0
;
overflow
:
hidden
;
display
:
flex
;
flex-direction
:
column
;
}
.right-table
{
flex
:
1
;
margin-left
:
10px
;
flex-shrink
:
0
;
}
.top-table
{
height
:
100%
;
display
:
flex
;
width
:
100%
;
flex-direction
:
column
;
.pagination
{
display
:
flex
;
margin
:
10px
0
;
justify-content
:
center
;
}
.table-container
{
flex
:
1
;
flex-shrink
:
0
;
overflow
:
hidden
;
}
}
}
.bottom-table
{
height
:
100%
;
background
:
white
;
box-sizing
:
border-box
;
padding
:
10px
;
::v-deep(.el-tabs)
{
height
:
100%
;
display
:
flex
;
.el-tabs__content
{
flex
:
1
;
flex-shrink
:
0
;
.el-tab-pane
{
height
:
100%
;
ul
{
height
:
100%
;
}
}
}
}
}
</
style
>
src/views/order/podUs/index.vue
View file @
6a561044
...
...
@@ -93,6 +93,14 @@
style=
"width: 150px"
/>
</ElFormItem>
<ElFormItem
label=
"店铺单号"
>
<ElInput
v-model=
"searchForm.shopNumber"
placeholder=
"店铺单号"
clearable
style=
"width: 150px"
/>
</ElFormItem>
</div>
<ElFormItem
label=
"类型"
>
<el-radio-group
v-model=
"searchForm.customizedQuantity"
>
...
...
@@ -155,14 +163,6 @@
/>
</ElFormItem>
<ElFormItem
label=
"店铺单号"
>
<ElInput
v-model=
"searchForm.shopNumber"
placeholder=
"店铺单号"
clearable
style=
"width: 150px"
/>
</ElFormItem>
<ElFormItem
label=
"客户"
>
<el-select
v-model=
"searchForm.userMark"
...
...
@@ -1190,7 +1190,7 @@
<
template
#
bottom_left
>
<
span
v
-
if
=
"cardItem?.factorySubOrderNumber"
title
=
"生产单号
"
:
title
=
"`生产单号:${cardItem?.factorySubOrderNumber || ''
}
`
"
class
=
"factory-sub-order-number"
@
click
.
stop
=
"
copy(String(cardItem?.factorySubOrderNumber || ''))
...
...
@@ -1198,6 +1198,14 @@
>
{{
cardItem
?.
factorySubOrderNumber
}}
<
/span
>
<
el
-
icon
class
=
"icon"
style
=
"margin-left: 3px"
size
=
"14"
@
click
=
"copy(cardItem?.factorySubOrderNumber || '')"
>
<
DocumentCopy
/>
<
/el-icon
>
<
/template
>
<
template
#
operations
>
<
div
...
...
@@ -1243,7 +1251,10 @@
<
/template
>
<
template
#
info
>
<
div
class
=
"grid-container"
>
<
div
class
=
"grid-item"
title
=
"商品名称"
>
<
div
class
=
"grid-item"
:
title
=
"`商品名称:${cardItem?.productName || ''
}
`"
>
<
span
class
=
"grid-item-value"
>
{{
cardItem
?.
productName
}}
<
/span
>
...
...
@@ -1270,9 +1281,20 @@
<
/span
>
<
/div
>
<
div
class
=
"grid-item"
>
<
span
title
=
"Base SKU"
class
=
"grid-item-value"
>
<
div
:
title
=
"`Base SKU:${cardItem?.baseSku || ''
}
`"
class
=
"grid-item-value orderNumber"
>
{{
cardItem
?.
baseSku
}}
<
/span
>
<
el
-
icon
class
=
"icon"
style
=
"margin-left: 3px"
size
=
"14"
@
click
=
"copy(cardItem?.baseSku || '')"
>
<
DocumentCopy
/>
<
/el-icon
>
<
/div
>
<
/div
>
<
div
v
-
if
=
"status !== 'TO_BE_ARRANGE'"
class
=
"grid-item"
>
<
span
class
=
"grid-item-label"
>
补胚数量:
<
/span
>
...
...
@@ -1286,16 +1308,30 @@
{{
cardItem
?.
variantSku
}}
<
/span
>
<
/div> --
>
<
div
class
=
"grid-item"
title
=
"工艺"
>
<
div
class
=
"grid-item"
:
title
=
"`工艺:${cardItem?.craftName || ''
}
`"
>
<
span
class
=
"grid-item-label"
>
工艺:
<
/span
>
<
span
class
=
"grid-item-value"
>
{{
cardItem
?.
craftName
}}
<
/span
>
<
/div
>
<
div
class
=
"grid-item"
>
<
span
title
=
"库存SKU"
class
=
"grid-item-value"
>
<
div
:
title
=
"`库存SKU:${cardItem?.thirdSkuCode || ''
}
`"
class
=
"grid-item-value orderNumber"
>
{{
cardItem
?.
thirdSkuCode
}}
<
/span
>
<
el
-
icon
class
=
"icon"
style
=
"margin-left: 3px"
size
=
"14"
@
click
=
"copy(cardItem?.thirdSkuCode || '')"
>
<
DocumentCopy
/>
<
/el-icon
>
<
/div
>
<
/div
>
<
div
class
=
"grid-item"
>
<
span
class
=
"grid-item-label"
>
款号:
<
/span
>
...
...
@@ -1307,13 +1343,21 @@
<
/span
>
<
/div
>
<
div
class
=
"grid-item"
title
=
"店铺单号"
>
<
span
class
=
"grid-item-value
"
@
click
=
"copy(cardItem?.shopNumber || '')"
>
<
div
class
=
"grid-item"
:
title
=
"`店铺单号:${cardItem?.shopNumber || ''
}
`
"
>
<
div
class
=
"grid-item-value orderNumber"
>
{{
cardItem
?.
shopNumber
}}
<
/span
>
<
el
-
icon
class
=
"icon"
style
=
"margin-left: 3px"
size
=
"14"
@
click
=
"copy(cardItem?.shopNumber || '')"
>
<
DocumentCopy
/>
<
/el-icon
>
<
/div
>
<
/div
>
<!--
<
div
class
=
"grid-item"
title
=
"订单号"
>
<
span
...
...
@@ -1325,27 +1369,39 @@
<
/div> --
>
<
div
class
=
"grid-item"
>
<
span
<
div
:
title
=
"`第三方生产单号:${cardItem?.thirdSubOrderNumber
}
`"
class
=
"grid-item-value"
@
click
.
stop
=
"
copy(String(cardItem?.thirdSubOrderNumber || ''))
"
class
=
"grid-item-value orderNumber"
>
{{
cardItem
?.
thirdSubOrderNumber
}}
<
/span
>
<
el
-
icon
class
=
"icon"
style
=
"margin-left: 3px"
size
=
"14"
@
click
.
stop
=
"
copy(String(cardItem?.thirdSubOrderNumber || ''))
"
>
<
DocumentCopy
/>
<
/el-icon
>
<
/div
>
<
/div
>
<
div
v
-
if
=
"cardItem.batchArrangeNumber"
class
=
"grid-item"
title
=
"批次号
"
:
title
=
"`批次号:${cardItem?.batchArrangeNumber || ''
}
`
"
>
<
span
class
=
"grid-item-value"
@
click
=
"copy(cardItem?.batchArrangeNumber || '')"
>
<
div
class
=
"grid-item-value orderNumber"
>
{{
cardItem
?.
batchArrangeNumber
}}
<
/span
>
<
el
-
icon
class
=
"icon"
style
=
"margin-left: 3px"
size
=
"14"
@
click
=
"copy(cardItem?.batchArrangeNumber || '')"
>
<
DocumentCopy
/>
<
/el-icon
>
<
/div
>
<
/div
>
<
div
v
-
if
=
"cardItem.isReplenishment"
class
=
"grid-item"
>
<
el
-
tag
size
=
"small"
type
=
"danger"
effect
=
"dark"
...
...
@@ -4177,6 +4233,11 @@ function getPlatformImg(code: string) {
font
-
size
:
15
px
;
}
}
.
orderNumber
{
display
:
flex
;
align
-
items
:
center
;
justify
-
content
:
flex
-
start
;
}
<
/style
>
<
style
lang
=
"scss"
>
.
customize
-
select
-
style
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment