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
efe7a90e
Commit
efe7a90e
authored
Jul 19, 2025
by
wuqian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
输入内容判断
parent
dd4dc916
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
87 additions
and
21 deletions
+87
-21
src/types/api/podOrder.ts
+1
-0
src/utils/hooks/useValue.ts
+4
-0
src/views/order/hook/usePodShipment.ts
+7
-1
src/views/order/hook/useQuarantine.ts
+32
-11
src/views/order/hook/useShipment.ts
+16
-9
src/views/order/pod/index.vue
+27
-0
No files found.
src/types/api/podOrder.ts
View file @
efe7a90e
...
...
@@ -22,6 +22,7 @@ export interface SearchForm {
internalMemo
?:
string
productionFileId
?:
string
interceptedStatus
?:
boolean
platform
?:
string
}
export
interface
CardOrderData
{
id
:
number
...
...
src/utils/hooks/useValue.ts
View file @
efe7a90e
...
...
@@ -12,3 +12,7 @@ export function useValue<T extends object>(
return
[
value
,
resetToDefault
]
}
export
function
getLastSegment
(
str
:
string
):
string
{
const
lastIndex
=
str
.
lastIndexOf
(
'_'
)
return
lastIndex
!==
-
1
?
str
.
slice
(
lastIndex
+
1
)
:
str
}
src/views/order/hook/usePodShipment.ts
View file @
efe7a90e
...
...
@@ -30,7 +30,13 @@ export default function useShipment(callback?: () => void) {
const
shipmentLoading
=
ref
(
false
)
const
shipmentOrderRef
=
ref
<
ShipmentType
>
()
const
searchShipmentByOrderNumber
=
async
()
=>
{
const
code
=
productionOrderNumber
.
value
let
code
=
productionOrderNumber
.
value
// AAAB_60527128-9_1_JMSC250121017 新版示例
const
regex
=
/^
[
A-Z
]{4}
_/
//是否以四个大写字母加下划线开头
if
(
regex
.
test
(
code
))
{
code
=
code
.
split
(
'_'
)[
0
]
+
'-'
+
code
.
split
(
'_'
)[
code
.
split
(
'_'
).
length
-
1
]
}
shipmentVisible
.
value
=
true
if
(
!
code
)
{
isLock
.
value
=
false
...
...
src/views/order/hook/useQuarantine.ts
View file @
efe7a90e
import
{
getQaOrderBySubOrderNumber
,
qaFinishedApi
}
from
'@/api/order'
import
{
InspectionData
,
QaData
,
shopRemark
}
from
'@/types/api/order'
import
{
useValue
}
from
'@/utils/hooks/useValue'
import
{
useValue
,
getLastSegment
}
from
'@/utils/hooks/useValue'
import
{
showConfirm
}
from
'@/utils/ui'
import
{
computed
,
ref
}
from
'vue'
...
...
@@ -45,9 +45,8 @@ export default function useQuarantine() {
return
indexList
}
const
searchQaByOrderNumber
=
()
=>
{
const
uid
=
shipmentUid
.
value
const
code
=
qaCode
.
value
const
code
=
getLastSegment
(
qaCode
.
value
)
if
(
!
code
)
{
isLock
.
value
=
false
playAudio
(
'picking_warning'
)
...
...
@@ -83,7 +82,12 @@ export default function useQuarantine() {
// 查找是否已经存在
const
row
=
sourceData
.
value
.
find
(
(
item
)
=>
(
uid
===
item
.
shipmentUid
&&
(
code1
===
item
.
subOrderNumber
||
item
.
factorySubOrderNumber
==
code1
))
||
(
!
uid
&&
(
item
.
factorySubOrderNumber
==
code1
||
item
.
subOrderNumber
==
code1
)),
(
uid
===
item
.
shipmentUid
&&
(
code1
===
item
.
subOrderNumber
||
item
.
factorySubOrderNumber
==
code1
))
||
(
!
uid
&&
(
item
.
factorySubOrderNumber
==
code1
||
item
.
subOrderNumber
==
code1
)),
)
if
(
row
)
{
// 质检数量不能大于发货数量
...
...
@@ -100,7 +104,10 @@ export default function useQuarantine() {
offset
:
window
.
innerHeight
/
2
,
})
}
const
len
=
sourceData
.
value
.
filter
(
el
=>
el
.
factorySubOrderNumber
==
code1
||
code1
===
el
.
subOrderNumber
)
const
len
=
sourceData
.
value
.
filter
(
(
el
)
=>
el
.
factorySubOrderNumber
==
code1
||
code1
===
el
.
subOrderNumber
,
)
const
scansNum
=
sourceData
.
value
[
index
].
scansNum
||
0
const
indexList
=
findAllIndex
(
code1
)
...
...
@@ -111,7 +118,6 @@ export default function useQuarantine() {
sourceData
.
value
[
i
][
'scansNum'
]
=
scansNum
+
1
}
})
}
else
{
if
(
row
.
shipmentNum
!==
scansNum
)
{
sourceData
.
value
[
index
][
'scansNum'
]
=
scansNum
+
1
...
...
@@ -163,17 +169,32 @@ export default function useQuarantine() {
Number
(
e
.
shipmentNum
||
0
)
===
Number
(
e
.
passNum
||
0
)
+
Number
(
e
.
notPassNum
||
0
),
).
length
const
row
=
sourceData
.
value
.
find
(
item
=>
{
return
(
uid
===
item
.
shipmentUid
&&
(
code1
===
item
.
subOrderNumber
||
item
.
factorySubOrderNumber
==
code1
))
||
(
!
uid
&&
(
item
.
factorySubOrderNumber
==
code1
||
item
.
subOrderNumber
==
code1
))
const
row
=
sourceData
.
value
.
find
((
item
)
=>
{
return
(
(
uid
===
item
.
shipmentUid
&&
(
code1
===
item
.
subOrderNumber
||
item
.
factorySubOrderNumber
==
code1
))
||
(
!
uid
&&
(
item
.
factorySubOrderNumber
==
code1
||
item
.
subOrderNumber
==
code1
))
)
})
const
index
=
sourceData
.
value
.
findIndex
(
item
=>
{
return
(
uid
===
item
.
shipmentUid
&&
(
code1
===
item
.
subOrderNumber
||
item
.
factorySubOrderNumber
==
code1
))
||
(
!
uid
&&
(
item
.
factorySubOrderNumber
==
code1
||
item
.
subOrderNumber
==
code1
))
const
index
=
sourceData
.
value
.
findIndex
((
item
)
=>
{
return
(
(
uid
===
item
.
shipmentUid
&&
(
code1
===
item
.
subOrderNumber
||
item
.
factorySubOrderNumber
==
code1
))
||
(
!
uid
&&
(
item
.
factorySubOrderNumber
==
code1
||
item
.
subOrderNumber
==
code1
))
)
})
if
(
row
)
{
// row.passNum += 1
currentRow
.
value
=
row
cloneRow
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
currentRow
.
value
))
if
(
!
row
.
inspectionStatus
&&
!
sourceData
.
value
[
index
].
scansNum
)
sourceData
.
value
[
index
].
scansNum
=
1
if
(
!
row
.
inspectionStatus
&&
!
sourceData
.
value
[
index
].
scansNum
)
sourceData
.
value
[
index
].
scansNum
=
1
}
qaInputRef
.
value
.
focus
()
isLock
.
value
=
false
...
...
src/views/order/hook/useShipment.ts
View file @
efe7a90e
import
{
getOrderBySubOrderNumber
,
saveOrder
}
from
'@/api/order'
import
{
ICompareObjects
,
OrderData
,
ProductList
,
ShipmentForm
,
ShipmentOrderRes
}
from
'@/types/api/order'
import
{
useValue
}
from
'@/utils/hooks/useValue'
import
{
ICompareObjects
,
OrderData
,
ProductList
,
ShipmentForm
,
ShipmentOrderRes
,
}
from
'@/types/api/order'
import
{
useValue
,
getLastSegment
}
from
'@/utils/hooks/useValue'
import
{
nextTick
,
ref
}
from
'vue'
import
{
ShipmentType
}
from
'../Shipment.vue'
...
...
@@ -24,7 +30,7 @@ export default function useShipment(callback?: () => void) {
const
shipmentLoading
=
ref
(
false
)
const
shipmentOrderRef
=
ref
<
ShipmentType
>
()
const
searchShipmentByOrderNumber
=
async
()
=>
{
const
code
=
productionOrderNumber
.
value
const
code
=
getLastSegment
(
productionOrderNumber
.
value
)
shipmentVisible
.
value
=
true
if
(
!
code
)
{
isLock
.
value
=
false
...
...
@@ -98,8 +104,7 @@ export default function useShipment(callback?: () => void) {
ElMessageBox
.
confirm
(
'不能加入,地址信息不一致!'
,
'重要提示'
,
{
confirmButtonText
:
'确定'
,
type
:
'warning'
,
}).
catch
(()
=>
{
})
}).
catch
(()
=>
{})
}
else
{
canJoin
(
res
.
data
,
code
)
}
...
...
@@ -213,7 +218,7 @@ export default function useShipment(callback?: () => void) {
try {
const res = await saveOrder(data, shipmentForm.value)
fetch(res.message || '')
.then(
response
=> {
.then(
(response)
=> {
// 确保响应是 OK
if (!response.ok) {
throw new Error('网络响应错误')
...
...
@@ -221,14 +226,16 @@ export default function useShipment(callback?: () => void) {
// 返回图片的二进制数据(Blob)
return response.blob()
})
.then(
blob
=> {
.then(
(blob)
=> {
const a = document.createElement('a')
a.href = window.URL.createObjectURL(blob)
a.target = '_blank'
a.download = (res.message as string).split('/')[ (res.message as string).split('/').length - 1]
a.download = (res.message as string).split('/')[
(res.message as string).split('/').length - 1
]
a.click()
})
.catch(
error
=> {
.catch(
(error)
=> {
console.error('下载图片时出错:', error)
})
ElMessage.success('发货成功')
...
...
src/views/order/pod/index.vue
View file @
efe7a90e
...
...
@@ -47,6 +47,31 @@
></el-option>
</el-select>
</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=
"SKU"
>
<ElInput
v-model
.
trim=
"searchForm.sku"
...
...
@@ -1214,6 +1239,7 @@ import { CustomColumn } from '@/types/table'
import
LogList
from
'@/components/LogList.vue'
import
CommonCard
from
'@/components/CommonCard.vue'
import
RightClickMenu
from
'@/components/RightClickMenu.vue'
import
platformJson
from
'../../../json/platform.json'
const
tableRef
=
ref
()
const
loading
=
ref
(
false
)
const
currentPage
=
ref
(
1
)
...
...
@@ -1665,6 +1691,7 @@ const [searchForm] = useValue<SearchForm>({
userMark
:
''
,
customizedQuantity
:
''
,
order
:
'desc'
,
platform
:
''
}
)
const
tableColumns
=
computed
<
CustomColumn
<
CardOrderData
[]
>>
(()
=>
{
return
[
...
...
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