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
ade84e89
Commit
ade84e89
authored
Oct 30, 2025
by
wuqian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:工艺筛选和工艺价格优化#ID:1000435
parent
a73a0a57
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
130 additions
and
47 deletions
+130
-47
src/types/api/podCnOrder.ts
+2
-1
src/types/api/podUsOrder.ts
+7
-1
src/views/logistics/components/LogisticsWaySelect.tsx
+27
-4
src/views/order/podCN/index.vue
+45
-18
src/views/order/podUs/index.vue
+49
-23
No files found.
src/types/api/podCnOrder.ts
View file @
ade84e89
...
@@ -38,7 +38,7 @@ export interface SearchForm {
...
@@ -38,7 +38,7 @@ export interface SearchForm {
thirdSkuCode
?:
string
thirdSkuCode
?:
string
supplierProductNo
?:
string
supplierProductNo
?:
string
batchArrangeNumber
?:
string
batchArrangeNumber
?:
string
craftCode
?:
string
craftCode
?:
string
[]
|
string
thirdStockSku
?:
string
thirdStockSku
?:
string
exceptionHandling
?:
number
|
undefined
exceptionHandling
?:
number
|
undefined
interceptStatus
?:
number
|
string
interceptStatus
?:
number
|
string
...
@@ -221,6 +221,7 @@ export interface LogisticsFormData {
...
@@ -221,6 +221,7 @@ export interface LogisticsFormData {
export
interface
CraftListData
{
export
interface
CraftListData
{
craftName
:
string
craftName
:
string
craftCode
:
string
craftCode
:
string
craftType
:
string
}
}
export
interface
PackingData
{
export
interface
PackingData
{
podProductionNo
?:
string
// 生产单号(PSCD 开头)
podProductionNo
?:
string
// 生产单号(PSCD 开头)
...
...
src/types/api/podUsOrder.ts
View file @
ade84e89
...
@@ -34,7 +34,7 @@ export interface SearchForm {
...
@@ -34,7 +34,7 @@ export interface SearchForm {
thirdSkuCode
?:
string
thirdSkuCode
?:
string
supplierProductNo
?:
string
supplierProductNo
?:
string
batchArrangeNumber
?:
string
batchArrangeNumber
?:
string
craftCode
?:
string
craftCode
?:
string
|
string
[]
craftCodeArr
?:
string
[]
craftCodeArr
?:
string
[]
thirdStockSku
?:
string
thirdStockSku
?:
string
interceptStatus
?:
number
|
string
interceptStatus
?:
number
|
string
...
@@ -215,6 +215,7 @@ export interface LogisticsFormData {
...
@@ -215,6 +215,7 @@ export interface LogisticsFormData {
export
interface
CraftListData
{
export
interface
CraftListData
{
craftName
:
string
craftName
:
string
craftCode
:
string
craftCode
:
string
craftType
:
string
}
}
export
interface
InterceptStateGroupData
{
export
interface
InterceptStateGroupData
{
...
@@ -225,3 +226,8 @@ export interface InterceptStateGroupData {
...
@@ -225,3 +226,8 @@ export interface InterceptStateGroupData {
[
key
:
string
]:
number
[
key
:
string
]:
number
}
}
}
}
export
interface
IAllList
{
id
:
string
name
:
string
warehouseName
?:
string
}
src/views/logistics/components/LogisticsWaySelect.tsx
View file @
ade84e89
...
@@ -43,7 +43,7 @@ interface IwayList {
...
@@ -43,7 +43,7 @@ interface IwayList {
}
}
interface
IAllList
{
interface
IAllList
{
factoryId
?:
number
factoryId
?:
number
id
:
number
id
:
number
|
string
name
:
string
name
:
string
serviceCode
?:
string
serviceCode
?:
string
siteUrl
?:
string
siteUrl
?:
string
...
@@ -79,6 +79,14 @@ export default defineComponent({
...
@@ -79,6 +79,14 @@ export default defineComponent({
type
:
Boolean
,
type
:
Boolean
,
default
:
false
,
default
:
false
,
},
},
searchPlaceholder
:
{
type
:
String
,
default
:
'请搜索承运商'
,
},
startPlaceholder
:
{
type
:
String
,
default
:
'请选择物流方式'
,
},
},
},
emits
:
[
'update:modelValue'
],
emits
:
[
'update:modelValue'
],
setup
(
props
,
{
emit
})
{
setup
(
props
,
{
emit
})
{
...
@@ -146,7 +154,20 @@ export default defineComponent({
...
@@ -146,7 +154,20 @@ export default defineComponent({
},
},
{
deep
:
true
,
immediate
:
true
},
{
deep
:
true
,
immediate
:
true
},
)
)
const
handleClearSelection
=
()
=>
{
/* 1. 清空显示文本 */
waysName
.
value
=
''
/* 2. 清空双向绑定结果 */
if
(
props
.
isRadio
)
{
selectedRadioList
.
value
=
''
// 单选
emit
(
'update:modelValue'
,
''
)
}
else
{
selectedList
.
value
=
[]
// 多选
emit
(
'update:modelValue'
,
[])
}
/* 3. 可选:把搜索框也重置 */
searchName
.
value
=
''
}
function
setCheckAll
(
company
:
ICompanyList
,
event
:
boolean
)
{
function
setCheckAll
(
company
:
ICompanyList
,
event
:
boolean
)
{
if
(
event
)
{
if
(
event
)
{
selectedList
.
value
=
[
selectedList
.
value
=
[
...
@@ -238,7 +259,9 @@ export default defineComponent({
...
@@ -238,7 +259,9 @@ export default defineComponent({
<
ElInput
<
ElInput
modelValue=
{
waysName
.
value
}
modelValue=
{
waysName
.
value
}
style=
{
{
width
:
'100%'
}
}
style=
{
{
width
:
'100%'
}
}
placeholder=
"请选择物流方式"
placeholder=
{
props
.
startPlaceholder
}
clearable
onClear=
{
handleClearSelection
}
/>
/>
),
),
}
}
}
}
...
@@ -256,7 +279,7 @@ export default defineComponent({
...
@@ -256,7 +279,7 @@ export default defineComponent({
}
}
}
}
clearable
clearable
style=
{
{
width
:
'200px'
,
padding
:
'10px'
}
}
style=
{
{
width
:
'200px'
,
padding
:
'10px'
}
}
placeholder=
"请搜索承运商"
placeholder=
{
props
.
searchPlaceholder
}
/>
/>
<
ElScrollbar
<
ElScrollbar
class=
"scroll-container"
class=
"scroll-container"
...
...
src/views/order/podCN/index.vue
View file @
ade84e89
...
@@ -52,20 +52,12 @@
...
@@ -52,20 +52,12 @@
</ElFormItem>
</ElFormItem>
<ElFormItem
label=
"工艺"
>
<ElFormItem
label=
"工艺"
>
<
El
Select
<
LogisticsWay
Select
v-model=
"searchForm.craftCode"
v-model=
"searchForm.craftCode"
clearable
:company-list=
"craftList"
filterable
search-placeholder=
"搜索工艺名称"
placeholder=
"请选择工艺"
start-placeholder=
"请选择工艺名称"
style=
"width: 150px"
></LogisticsWaySelect>
>
<el-option
v-for=
"item in craftList"
:key=
"item.craftCode"
:label=
"item.craftName"
:value=
"item.craftCode"
></el-option>
</ElSelect>
</ElFormItem>
</ElFormItem>
<ElFormItem
label=
"库存SKU"
>
<ElFormItem
label=
"库存SKU"
>
<ElInput
<ElInput
...
@@ -2476,6 +2468,7 @@
...
@@ -2476,6 +2468,7 @@
<
/template
>
<
/template
>
<
script
setup
lang
=
"ts"
>
<
script
setup
lang
=
"ts"
>
import
{
getUserMarkList
}
from
'@/api/common'
import
{
getUserMarkList
}
from
'@/api/common'
import
LogisticsWaySelect
from
'../../logistics/components/LogisticsWaySelect.tsx'
// import
{
AnyObject
}
from
'@/types/api/warehouse'
// import
{
AnyObject
}
from
'@/types/api/warehouse'
import
{
import
{
InfoFilled
,
InfoFilled
,
...
@@ -2544,7 +2537,7 @@ import { BaseRespData } from '@/types/api'
...
@@ -2544,7 +2537,7 @@ import { BaseRespData } from '@/types/api'
import
UpdateAddress
from
'./components/updateAddress.vue'
import
UpdateAddress
from
'./components/updateAddress.vue'
import
{
getAllCountryApi
}
from
'@/api/logistics.ts'
import
{
getAllCountryApi
}
from
'@/api/logistics.ts'
import
{
InterceptStateGroupData
}
from
'@/types/api/podUsOrder'
import
{
InterceptStateGroupData
,
IAllList
}
from
'@/types/api/podUsOrder'
import
TableView
from
'@/components/TableView.vue'
import
TableView
from
'@/components/TableView.vue'
import
{
import
{
LogListData
,
LogListData
,
...
@@ -2776,7 +2769,7 @@ const [searchForm, resetSearchForm] = useValue<SearchForm>({
...
@@ -2776,7 +2769,7 @@ const [searchForm, resetSearchForm] = useValue<SearchForm>({
thirdSkuCode
:
''
,
thirdSkuCode
:
''
,
supplierProductNo
:
''
,
supplierProductNo
:
''
,
batchArrangeNumber
:
''
,
batchArrangeNumber
:
''
,
craftCode
:
''
,
craftCode
:
[]
,
thirdStockSku
:
''
,
thirdStockSku
:
''
,
}
)
}
)
const
shipmentArea
=
ref
(
0
)
const
shipmentArea
=
ref
(
0
)
...
@@ -4982,14 +4975,48 @@ const loadWarehouseList = async () => {
...
@@ -4982,14 +4975,48 @@ const loadWarehouseList = async () => {
console
.
error
(
e
)
console
.
error
(
e
)
}
}
}
}
const
processType
=
ref
([
{
label
:
'烫画'
,
value
:
'TH'
,
}
,
{
label
:
'直喷'
,
value
:
'ZP'
,
}
,
{
label
:
'刺绣'
,
value
:
'CX'
,
}
,
{
label
:
'雕刻'
,
value
:
'DK'
,
}
,
{
label
:
'白胚'
,
value
:
'BP'
,
}
,
{
label
:
'其他'
,
value
:
'QT'
,
}
,
])
// 获取工艺列表
// 获取工艺列表
const
craftList
=
ref
<
CraftListData
[]
>
([])
const
craftList
=
ref
<
IAllList
[]
>
([])
const
processTypeMap
=
processType
.
value
.
reduce
((
acc
,
cur
)
=>
{
acc
[
cur
.
value
]
=
cur
.
label
return
acc
}
,
{
}
as
Record
<
string
,
string
>
)
const
loadCraftList
=
async
()
=>
{
const
loadCraftList
=
async
()
=>
{
try
{
try
{
const
res
=
await
getListCraftApi
()
const
res
=
await
getListCraftApi
()
if
(
res
.
code
!==
200
)
return
if
(
res
.
code
!==
200
)
return
craftList
.
value
=
res
.
data
const
data
:
CraftListData
[]
=
res
.
data
craftList
.
value
=
data
.
map
((
item
)
=>
({
id
:
item
.
craftCode
,
name
:
item
.
craftName
,
warehouseName
:
processTypeMap
[
item
.
craftType
]
??
'其他'
,
// craftType 对应中文
}
))
as
IAllList
[]
}
catch
(
e
)
{
}
catch
(
e
)
{
console
.
error
(
e
)
console
.
error
(
e
)
}
}
...
...
src/views/order/podUs/index.vue
View file @
ade84e89
...
@@ -53,23 +53,12 @@
...
@@ -53,23 +53,12 @@
</ElFormItem>
</ElFormItem>
<ElFormItem
label=
"工艺"
>
<ElFormItem
label=
"工艺"
>
<ElSelect
<LogisticsWaySelect
v-model=
"searchForm.craftCodeArr"
v-model=
"searchForm.craftCode"
clearable
:company-list=
"craftList"
filterable
search-placeholder=
"搜索工艺名称"
multiple
start-placeholder=
"请选择工艺名称"
collapse-tags
></LogisticsWaySelect>
collapse-tags-tooltip
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>
<ElFormItem
label=
"库存SKU"
>
<ElFormItem
label=
"库存SKU"
>
<ElInput
<ElInput
...
@@ -2835,6 +2824,7 @@
...
@@ -2835,6 +2824,7 @@
<
/ElDialog
>
<
/ElDialog
>
<
/template
>
<
/template
>
<
script
setup
lang
=
"ts"
>
<
script
setup
lang
=
"ts"
>
import
LogisticsWaySelect
from
'../../logistics/components/LogisticsWaySelect.tsx'
import
{
getUserMarkList
}
from
'@/api/common'
import
{
getUserMarkList
}
from
'@/api/common'
// import
{
AnyObject
}
from
'@/types/api/warehouse'
// import
{
AnyObject
}
from
'@/types/api/warehouse'
import
{
convertToChinaTime
}
from
'@/utils/index'
import
{
convertToChinaTime
}
from
'@/utils/index'
...
@@ -2932,6 +2922,7 @@ import {
...
@@ -2932,6 +2922,7 @@ import {
CraftListData
,
CraftListData
,
ExportParams
,
ExportParams
,
InterceptStateGroupData
,
InterceptStateGroupData
,
IAllList
}
from
'@/types/api/podUsOrder'
}
from
'@/types/api/podUsOrder'
import
usePageList
from
'@/utils/hooks/usePageList'
import
usePageList
from
'@/utils/hooks/usePageList'
import
{
useValue
}
from
'@/utils/hooks/useValue'
import
{
useValue
}
from
'@/utils/hooks/useValue'
...
@@ -3166,8 +3157,8 @@ const [searchForm, resetSearchForm] = useValue<SearchForm>({
...
@@ -3166,8 +3157,8 @@ const [searchForm, resetSearchForm] = useValue<SearchForm>({
thirdSkuCode
:
''
,
thirdSkuCode
:
''
,
supplierProductNo
:
''
,
supplierProductNo
:
''
,
batchArrangeNumber
:
''
,
batchArrangeNumber
:
''
,
craftCode
:
''
,
craftCode
:
[]
,
craftCodeArr
:
[],
//
craftCodeArr: [],
thirdStockSku
:
''
,
thirdStockSku
:
''
,
}
)
}
)
const
exceptionStatus
=
ref
(
1
)
const
exceptionStatus
=
ref
(
1
)
...
@@ -3805,10 +3796,10 @@ const {
...
@@ -3805,10 +3796,10 @@ const {
factorySubOrderNumber
,
factorySubOrderNumber
,
startTime
:
timeRange
.
value
?.[
0
]
||
null
,
startTime
:
timeRange
.
value
?.[
0
]
||
null
,
endTime
:
timeRange
.
value
?.[
1
]
||
null
,
endTime
:
timeRange
.
value
?.[
1
]
||
null
,
craftCode
:
searchForm
.
value
?.
craftCodeArr
?.
join
(
','
)
||
''
,
//
craftCode: searchForm.value?.craftCodeArr?.join(',') || '',
tagsId
:
searchForm
.
value
?.
tagsIdArr
?.
join
(
','
)
||
''
,
tagsId
:
searchForm
.
value
?.
tagsIdArr
?.
join
(
','
)
||
''
,
}
}
baseparams
.
craftCodeArr
&&
delete
baseparams
.
craftCodeArr
//
baseparams.craftCodeArr && delete baseparams.craftCodeArr
baseparams
.
tagsIdArr
&&
delete
baseparams
.
tagsIdArr
baseparams
.
tagsIdArr
&&
delete
baseparams
.
tagsIdArr
// 批量下载
// 批量下载
if
(
status
.
value
===
'BATCH_DOWNLOAD'
)
{
if
(
status
.
value
===
'BATCH_DOWNLOAD'
)
{
...
@@ -5630,14 +5621,49 @@ const loadWarehouseList = async () => {
...
@@ -5630,14 +5621,49 @@ const loadWarehouseList = async () => {
console
.
error
(
e
)
console
.
error
(
e
)
}
}
}
}
const
processType
=
ref
([
{
label
:
'烫画'
,
value
:
'TH'
,
}
,
{
label
:
'直喷'
,
value
:
'ZP'
,
}
,
{
label
:
'刺绣'
,
value
:
'CX'
,
}
,
{
label
:
'雕刻'
,
value
:
'DK'
,
}
,
{
label
:
'白胚'
,
value
:
'BP'
,
}
,
{
label
:
'其他'
,
value
:
'QT'
,
}
,
])
// 获取工艺列表
// 获取工艺列表
const
craftList
=
ref
<
CraftListData
[]
>
([])
const
craftList
=
ref
<
IAllList
[]
>
([])
const
processTypeMap
=
processType
.
value
.
reduce
((
acc
,
cur
)
=>
{
acc
[
cur
.
value
]
=
cur
.
label
return
acc
}
,
{
}
as
Record
<
string
,
string
>
)
const
loadCraftList
=
async
()
=>
{
const
loadCraftList
=
async
()
=>
{
try
{
try
{
const
res
=
await
getListCraftApi
()
const
res
=
await
getListCraftApi
()
if
(
res
.
code
!==
200
)
return
if
(
res
.
code
!==
200
)
return
craftList
.
value
=
res
.
data
const
data
:
CraftListData
[]
=
res
.
data
craftList
.
value
=
data
.
map
((
item
)
=>
({
id
:
item
.
craftCode
,
name
:
item
.
craftName
,
warehouseName
:
processTypeMap
[
item
.
craftType
]
??
'其他'
,
// craftType 对应中文
}
))
as
IAllList
[]
}
catch
(
e
)
{
}
catch
(
e
)
{
console
.
error
(
e
)
console
.
error
(
e
)
}
}
...
...
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