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
3357446f
Commit
3357446f
authored
Apr 14, 2026
by
qinjianhui
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 订单问题修改
parent
4bfeb551
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
119 additions
and
26 deletions
+119
-26
src/views/order/factoryOrderNew/component/CardLayout.vue
+6
-4
src/views/order/factoryOrderNew/component/OperateDetailsDialog.vue
+46
-6
src/views/order/factoryOrderNew/index.vue
+52
-14
src/views/order/podUs/PodMakeOrder.vue
+15
-2
No files found.
src/views/order/factoryOrderNew/component/CardLayout.vue
View file @
3357446f
...
...
@@ -216,9 +216,9 @@
<div
class=
"card-info-row full delay-time-row"
>
<span
class=
"delay-time-value"
:title=
"`订单延期:$
{getOrderDelayText(item.
c
reateTime as string)}`"
:title=
"`订单延期:$
{getOrderDelayText(item.
orderC
reateTime as string)}`"
>
{{
getOrderDelayText
(
item
.
c
reateTime
as
string
)
}}
{{
getOrderDelayText
(
item
.
orderC
reateTime
as
string
)
}}
</span>
</div>
</div>
...
...
@@ -423,8 +423,10 @@ const getOrderDelayText = (createTime?: string | null) => {
if
(
!
createTime
)
return
'--'
const
createAt
=
dayjs
(
createTime
)
if
(
!
createAt
.
isValid
())
return
'--'
const
diffSeconds
=
Math
.
max
(
0
,
dayjs
().
diff
(
createAt
,
'second'
))
const
hours
=
Math
.
floor
(
diffSeconds
/
(
60
*
60
))
const
diffMinutes
=
Math
.
max
(
0
,
dayjs
().
diff
(
createAt
,
'minute'
))
const
baseHours
=
Math
.
floor
(
diffMinutes
/
60
)
const
remainMinutes
=
diffMinutes
%
60
const
hours
=
baseHours
+
(
remainMinutes
>
30
?
1
:
0
)
return
`
${
hours
}
h`
}
...
...
src/views/order/factoryOrderNew/component/OperateDetailsDialog.vue
View file @
3357446f
...
...
@@ -211,9 +211,9 @@
<div
class=
"card-info-row full delay-time-row"
>
<span
class=
"delay-time-value"
:title=
"`订单延期:$
{getOrderDelayText(item.
c
reateTime as string)}`"
:title=
"`订单延期:$
{getOrderDelayText(item.
orderC
reateTime as string)}`"
>
{{
getOrderDelayText
(
item
.
c
reateTime
as
string
)
}}
{{
getOrderDelayText
(
item
.
orderC
reateTime
as
string
)
}}
</span>
</div>
</div>
...
...
@@ -327,8 +327,10 @@ const getOrderDelayText = (createTime?: string | null) => {
if
(
!
createTime
)
return
'--'
const
createAt
=
dayjs
(
createTime
)
if
(
!
createAt
.
isValid
())
return
'--'
const
diffSeconds
=
Math
.
max
(
0
,
dayjs
().
diff
(
createAt
,
'second'
))
const
hours
=
Math
.
floor
(
diffSeconds
/
(
60
*
60
))
const
diffMinutes
=
Math
.
max
(
0
,
dayjs
().
diff
(
createAt
,
'minute'
))
const
baseHours
=
Math
.
floor
(
diffMinutes
/
60
)
const
remainMinutes
=
diffMinutes
%
60
const
hours
=
baseHours
+
(
remainMinutes
>
30
?
1
:
0
)
return
`
${
hours
}
h`
}
...
...
@@ -372,6 +374,8 @@ defineExpose({ open })
<
style
scoped
lang=
"scss"
>
.operate-order-details-content
{
height
:
600px
;
display
:
flex
;
flex-direction
:
column
;
}
.operate-order-tip
{
font-size
:
14px
;
...
...
@@ -382,10 +386,10 @@ defineExpose({ open })
.operate-order-card-grid
{
display
:
grid
;
grid-template-columns
:
repeat
(
6
,
1
fr
);
grid-template-rows
:
max-content
;
gap
:
12px
;
max-height
:
500px
;
overflow-y
:
auto
;
min-height
:
200px
;
flex
:
1
;
}
.operate-order-card-item
{
...
...
@@ -486,4 +490,40 @@ defineExpose({ open })
gap
:
20px
;
margin-bottom
:
10px
;
}
.flex-between
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
width
:
100%
;
overflow
:
hidden
;
gap
:
6px
;
.images-position
{
flex
:
1
;
overflow
:
auto
hidden
;
.images-container
{
width
:
100%
;
display
:
flex
;
gap
:
6px
;
}
.item-image
{
width
:
50px
;
min-width
:
50px
;
height
:
50px
;
border
:
1px
solid
#eee
;
cursor
:
pointer
;
img
{
width
:
100%
;
height
:
100%
;
object-fit
:
cover
;
}
}
}
b
{
margin-right
:
5px
;
font-size
:
15px
;
}
}
</
style
>
src/views/order/factoryOrderNew/index.vue
View file @
3357446f
...
...
@@ -547,7 +547,7 @@
<!--
挂起
-->
<
template
v
-
if
=
"status === 'SUSPEND'"
>
<
span
class
=
"item"
>
<
ElButton
type
=
"warning"
@
click
=
"
handleCancelSuspend
"
<
ElButton
type
=
"warning"
@
click
=
"
() => handleCancelSuspend()
"
>
取消挂起
<
/ElButto
n
>
<
/span
>
...
...
@@ -701,7 +701,7 @@
修改地址
<
/ElButton
>
<
ElButton
v
-
if
=
"
row.
status === 'PENDING_CREATE_LOGISTICS'"
v
-
if
=
"status === 'PENDING_CREATE_LOGISTICS'"
type
=
"primary"
link
size
=
"small"
...
...
@@ -709,10 +709,23 @@
>
刷新地址
<
/ElButton
>
<
ElButton
v
-
if
=
"status === 'SUSPEND'"
type
=
"primary"
link
size
=
"small"
@
click
.
stop
=
"handleCancelSuspend(row)"
>
取消挂起
<
/ElButton
>
<
/div
>
<
/template
>
<
/TableView
>
<
/div
>
<
div
class
=
"table-pagination-bar"
>
<
div
class
=
"selected-count-text"
>
已选择
<
strong
style
=
"color: red"
>
{{
selectedRows
.
length
}}
<
/strong> 条数
据
<
/div
>
<
ElPagination
v
-
model
:
current
-
page
=
"currentPage"
v
-
model
:
page
-
size
=
"pageSize"
...
...
@@ -720,10 +733,10 @@
background
layout
=
"total, sizes, prev, pager, next, jumper"
:
total
=
"total"
style
=
"margin: 10px auto 0"
@
size
-
change
=
"onPageSizeChange"
@
current
-
change
=
"onCurrentPageChange"
/>
<
/div
>
<
/template
>
<
template
#
bottom
>
<
el
-
tabs
...
...
@@ -742,7 +755,7 @@
<
/el-tab-pane
>
<
el
-
tab
-
pane
name
=
"log"
label
=
"操作日志"
>
<
div
v
-
loading
=
"subLoading"
class
=
"detail-table-content"
>
<
LogList
style
=
"height: 100%
;
"
:
log
-
list
=
"logList"
/>
<
LogList
style
=
"height: 100%"
:
log
-
list
=
"logList"
/>
<
div
v
-
if
=
"!logList.length"
class
=
"empty-content"
>
暂无数据
<
/div
>
...
...
@@ -1082,7 +1095,7 @@ const receiverAddressForm = ref<AddressInfo>({
}
)
const
showPendingLogisticsUpdateAddress
=
(
row
:
FactoryOrderNewListData
)
=>
row
.
status
===
'PENDING_CREATE_LOGISTICS'
&&
row
.
shipmentType
===
1
status
.
value
===
'PENDING_CREATE_LOGISTICS'
&&
row
.
shipmentType
===
1
const
submitFactoryOrderReceiverAddress
=
(
data
:
AddressInfo
)
=>
updateReceiverAddressApi
(
data
)
...
...
@@ -1152,7 +1165,7 @@ const handleSuspendTabClick = (value: number) => {
statusCurrentPageRef
.
value
=
1
refreshTableList
()
}
const
mainColumns
=
[
const
mainColumns
=
computed
(()
=>
[
{
prop
:
'factoryOrderNumber'
,
label
:
'订单编号'
,
...
...
@@ -1172,7 +1185,7 @@ const mainColumns = [
}
,
{
prop
:
'statusName'
,
label
:
'订单
状态'
,
label
:
status
.
value
!==
'SUSPEND'
?
'订单状态'
:
'挂起前
状态'
,
minWidth
:
120
,
align
:
'center'
,
}
,
...
...
@@ -1278,7 +1291,7 @@ const mainColumns = [
slot
:
'operation'
,
fixed
:
'right'
,
}
,
]
]
)
const
showProductInventoryColumns
=
computed
(
()
=>
...
...
@@ -1555,6 +1568,7 @@ const openResultInfoDialog = (data: ResultInfoDataItem[]) => {
resultInfo
.
value
=
data
.
filter
((
item
)
=>
!
item
.
status
)
resultRefs
.
value
?.
showDialog
()
}
else
{
ElMessage
.
success
(
'操作成功'
)
refreshCurrentView
({
isRefreshTree
:
true
}
)
}
}
)
...
...
@@ -1641,6 +1655,7 @@ const handleLogisticsCommand = async (command: string) => {
resultRefs
.
value
?.
showDialog
()
}
else
{
ElMessage
.
success
(
'操作成功'
)
refreshCurrentView
()
}
}
else
if
(
typeof
res
.
data
===
'string'
)
{
...
...
@@ -1699,13 +1714,14 @@ const handleTransferToArrange = async () => {
(
item
:
{
status
?:
boolean
}
)
=>
!
item
.
status
,
)
resultRefs
.
value
?.
showDialog
()
return
}
refreshCurrentView
({
isRefreshTree
:
true
}
)
}
else
{
ElMessage
.
success
(
'操作成功'
)
refreshCurrentView
({
isRefreshTree
:
true
}
)
}
}
else
{
ElMessage
.
success
(
'操作成功'
)
refreshCurrentView
({
isRefreshTree
:
true
}
)
}
}
catch
(
e
:
unknown
)
{
resultInfo
.
value
=
[]
console
.
error
(
e
)
...
...
@@ -1936,6 +1952,9 @@ const handleProductionComplete = async () => {
if
(
hasFailed
)
{
resultInfo
.
value
=
data
.
filter
((
item
)
=>
!
item
.
status
)
resultRefs
.
value
?.
showDialog
()
}
else
{
ElMessage
.
success
(
'操作成功'
)
refreshCurrentView
({
isRefreshTree
:
true
}
)
}
}
,
}
)
...
...
@@ -1952,10 +1971,16 @@ const handleArchiveOrder = async () => {
refreshTree
:
true
,
}
)
}
const
handleCancelSuspend
=
async
()
=>
{
const
handleCancelSuspend
=
async
(
row
?:
FactoryOrderNewListData
)
=>
{
let
ids
:
(
number
|
string
)[]
if
(
row
)
{
ids
=
[
row
.
id
]
}
else
{
ids
=
getSelectedIds
()
}
await
executeBatchAction
({
getIds
:
getSelectedI
ds
,
api
:
cancelSuspendApi
,
getIds
:
()
=>
i
ds
,
api
:
(
ids
)
=>
cancelSuspendApi
(
ids
as
number
[])
,
confirmText
:
'确定取消挂起吗?'
,
successText
:
'取消挂起成功'
,
refreshTree
:
true
,
...
...
@@ -2179,6 +2204,19 @@ onMounted(() => {
}
}
.
table
-
pagination
-
bar
{
margin
-
top
:
10
px
;
display
:
flex
;
align
-
items
:
center
;
justify
-
content
:
space
-
between
;
}
.
selected
-
count
-
text
{
font
-
size
:
14
px
;
color
:
#
606266
;
white
-
space
:
nowrap
;
}
.
card
-
content
{
flex
:
1
;
margin
-
top
:
10
px
;
...
...
src/views/order/podUs/PodMakeOrder.vue
View file @
3357446f
...
...
@@ -197,7 +197,9 @@
@
click=
"podOrderDetailsData && print(podOrderDetailsData, true)"
>
手动打印
</ElButton
>
<ElButton
v-if=
"isNewOrder"
type=
"primary"
@
click=
"printNormal"
>
普货拣货
</ElButton>
<ElButton
v-if=
"isNewOrder"
type=
"primary"
@
click=
"printNormal"
>
普货拣货
</ElButton>
<ElButton
type=
"success"
@
click=
"handlePrintFinish"
>
打单完成
</ElButton
>
...
...
@@ -261,7 +263,7 @@
</ElDialog>
</template>
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts
x
"
>
import
{
computed
,
nextTick
,
ref
,
watch
}
from
'vue'
import
useLodop
from
'@/utils/hooks/useLodop'
import
TableView
from
'@/components/TableView.vue'
...
...
@@ -339,6 +341,17 @@ const podOrderDetailsColumns = computed(() => [
prop
:
props
.
isNewOrder
?
'operationNos'
:
'podJomallUsNo'
,
width
:
150
,
align
:
'center'
,
render
:
(
row
:
ProductList
)
=>
{
return
(
<
div
>
{
props
.
isNewOrder
&&
row
.
operationNos
?.
split
(
','
).
map
((
item
)
=>
{
return
<
div
>
{
item
}
<
/div
>
})}
{
!
props
.
isNewOrder
&&
row
.
podJomallUsNo
}
<
/div
>
)
},
},
{
label
:
'库存 SKU'
,
...
...
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