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
43f9f19b
Commit
43f9f19b
authored
Apr 09, 2026
by
qinjianhui
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 添加订单延期时间
parent
334b94ea
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
83 additions
and
7 deletions
+83
-7
src/api/factoryOrderNew.ts
+1
-1
src/views/order/factoryOrderNew/component/CardLayout.vue
+28
-0
src/views/order/factoryOrderNew/component/OperateDetailsDialog.vue
+28
-0
src/views/order/factoryOrderNew/index.vue
+26
-6
No files found.
src/api/factoryOrderNew.ts
View file @
43f9f19b
...
...
@@ -182,7 +182,7 @@ export function archiveOrderApi(ids: (number | string)) {
export
function
printPickOrderApi
(
ids
:
(
number
|
string
)[])
{
return
axios
.
post
<
never
,
BaseRespData
<
void
>>
(
'factory/podOrderOperation/printPickPdf'
,
{
ids
},
{
ids
:
ids
.
join
(
','
)
},
)
}
...
...
src/views/order/factoryOrderNew/component/CardLayout.vue
View file @
43f9f19b
...
...
@@ -213,6 +213,14 @@
<span
class=
"info-label"
>
状态:
</span>
<span
class=
"info-value"
>
{{
item
.
statusName
}}
</span>
</div>
<div
class=
"card-info-row full delay-time-row"
>
<span
class=
"delay-time-value"
:title=
"`订单延期:$
{getOrderDelayText(item.createTime as string)}`"
>
{{
getOrderDelayText
(
item
.
createTime
as
string
)
}}
</span>
</div>
</div>
</
template
>
</CommonCard>
...
...
@@ -268,6 +276,7 @@
<
script
setup
lang=
"ts"
>
import
{
ref
}
from
'vue'
import
dayjs
from
'dayjs'
import
{
ElMessage
}
from
'element-plus'
import
{
getCardLayoutListApi
,
...
...
@@ -410,6 +419,15 @@ const getPlatformImg = (code: string) => {
return
''
}
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
))
return
`
${
hours
}
h`
}
defineExpose
({
clearSelection
,
getSelectedIds
,
refresh
})
</
script
>
...
...
@@ -498,6 +516,16 @@ defineExpose({ clearSelection, getSelectedIds, refresh })
overflow
:
hidden
;
}
.delay-time-row
{
justify-content
:
flex-end
;
margin-top
:
2px
;
}
.delay-time-value
{
color
:
red
;
font-weight
:
600
;
}
.info-label
{
flex-shrink
:
0
;
color
:
#909399
;
...
...
src/views/order/factoryOrderNew/component/OperateDetailsDialog.vue
View file @
43f9f19b
...
...
@@ -208,6 +208,14 @@
<span
class=
"info-label"
>
状态:
</span>
<span
class=
"info-value ellipsis"
>
{{
item
.
statusName
}}
</span>
</div>
<div
class=
"card-info-row full delay-time-row"
>
<span
class=
"delay-time-value"
:title=
"`订单延期:$
{getOrderDelayText(item.createTime as string)}`"
>
{{
getOrderDelayText
(
item
.
createTime
as
string
)
}}
</span>
</div>
</div>
</
template
>
</CommonCard>
...
...
@@ -230,6 +238,7 @@
<
script
setup
lang=
"ts"
>
import
{
ref
}
from
'vue'
import
dayjs
from
'dayjs'
import
{
ElMessage
}
from
'element-plus'
import
CommonCard
from
'@/components/CommonCard.vue'
import
{
...
...
@@ -314,6 +323,15 @@ const getPlatformImg = (code: string) => {
return
''
}
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
))
return
`
${
hours
}
h`
}
const
handleConfirm
=
async
()
=>
{
if
(
!
selectedItems
.
value
.
length
)
{
return
ElMessage
.
warning
(
'请选择操作单'
)
...
...
@@ -405,6 +423,16 @@ defineExpose({ open })
overflow
:
hidden
;
}
.delay-time-row
{
justify-content
:
flex-end
;
margin-top
:
2px
;
}
.delay-time-value
{
color
:
red
;
font-weight
:
600
;
}
.info-label
{
flex-shrink
:
0
;
color
:
#909399
;
...
...
src/views/order/factoryOrderNew/index.vue
View file @
43f9f19b
...
...
@@ -513,7 +513,7 @@
<
/span
>
<
span
v
-
if
=
"status === 'PENDING_PICK'"
class
=
"item"
>
<
ElButton
type
=
"warning"
@
click
=
"handlePrintPickOrder"
>
打印拣
胚
单
<
/ElButto
n
>
打印拣
货
单
<
/ElButto
n
>
<
/span
>
<
span
v
-
if
=
"status === 'PENDING_PICK'"
class
=
"item"
>
...
...
@@ -1298,6 +1298,9 @@ const baseProductColumns = computed(() => [
minWidth
:
100
,
align
:
'right'
,
showColumn
:
showProductInventoryColumns
.
value
,
render
:
(
row
:
ProductListData
)
=>
{
return
<
span
>
{
row
.
inventory
||
0
}
<
/span
>
}
,
}
,
{
prop
:
'occupyInventory'
,
...
...
@@ -1305,6 +1308,19 @@ const baseProductColumns = computed(() => [
minWidth
:
100
,
align
:
'right'
,
showColumn
:
showProductInventoryColumns
.
value
,
render
:
(
row
:
ProductListData
)
=>
{
return
<
span
>
{
row
.
occupyInventory
||
0
}
<
/span
>
}
,
}
,
{
prop
:
'freezeInventory'
,
label
:
'冻结数量'
,
minWidth
:
100
,
align
:
'right'
,
showColumn
:
showProductInventoryColumns
.
value
,
render
:
(
row
:
ProductListData
)
=>
{
return
<
span
>
{
row
.
freezeInventory
||
0
}
<
/span
>
}
,
}
,
{
prop
:
'customsNameEnglish'
,
...
...
@@ -1743,11 +1759,15 @@ const handlePrintProductionOrder = async () => {
}
}
const
handlePrintPickOrder
=
async
()
=>
{
await
executeBatchAction
({
getIds
:
getSelectedIds
,
api
:
printPickOrderApi
,
successText
:
'打印拣胚单成功'
,
}
)
if
(
!
ensureSelection
())
return
const
ids
=
getSelectedIds
()
try
{
const
res
=
await
printPickOrderApi
(
ids
as
number
[])
if
(
res
.
code
!==
200
)
return
window
.
open
(
filePath
+
res
.
message
,
'_blank'
)
}
catch
(
e
)
{
console
.
error
(
e
)
}
}
const
handlePickComplete
=
()
=>
{
if
(
!
ensureSelection
())
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