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
9687e81f
Commit
9687e81f
authored
Jan 29, 2026
by
qinjianhui
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into 'master'
Dev See merge request
!149
parents
5a71e66e
de4b50da
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
195 additions
and
59 deletions
+195
-59
src/types/api/podCnOrder.ts
+2
-0
src/types/api/statistic.ts
+6
-0
src/views/Dashboard.vue
+0
-0
src/views/logistics/logisticsMethod.vue
+38
-0
src/views/order/orderTracking/index.vue
+13
-16
src/views/order/orderTracking/indexcn.vue
+13
-17
src/views/order/podCN/components/updateAddress.vue
+8
-0
src/views/order/podCN/index.vue
+99
-15
src/views/order/podUs/PodMakeOrder.vue
+1
-0
src/views/order/podUs/index.vue
+15
-11
No files found.
src/types/api/podCnOrder.ts
View file @
9687e81f
...
@@ -55,6 +55,7 @@ export interface SearchForm {
...
@@ -55,6 +55,7 @@ export interface SearchForm {
employeeId
?:
number
employeeId
?:
number
blocking
?:
boolean
blocking
?:
boolean
outOfStock
?:
boolean
outOfStock
?:
boolean
receiverCountry
?:
string
}
}
export
interface
PodCnOrderListData
{
export
interface
PodCnOrderListData
{
id
:
number
id
:
number
...
@@ -215,6 +216,7 @@ export interface LogisticsData {
...
@@ -215,6 +216,7 @@ export interface LogisticsData {
export
interface
AddressInfo
{
export
interface
AddressInfo
{
id
?:
string
id
?:
string
receiverName
:
string
receiverName
:
string
rfcNumber
:
string
receiverPhone
:
string
receiverPhone
:
string
receiverCountry
:
string
receiverCountry
:
string
receiverProvince
:
string
receiverProvince
:
string
...
...
src/types/api/statistic.ts
View file @
9687e81f
...
@@ -27,11 +27,17 @@ export interface statisticData {
...
@@ -27,11 +27,17 @@ export interface statisticData {
outOfStockSkuNum
:
number
outOfStockSkuNum
:
number
outOfStockProductNum
:
number
outOfStockProductNum
:
number
yesterdayOverTimeShipmentOrderNum
:
number
yesterdayOverTimeShipmentOrderNum
:
number
notShipmentProductNum
:
number
overTimeNotShipmentProductNum
:
number
yesterdayShipmentProductNum
:
number
}
}
export
interface
trendType
{
export
interface
trendType
{
confirmNum
:
number
// 接单数
confirmNum
:
number
// 接单数
produceNum
:
number
// 生产数
produceNum
:
number
// 生产数
shipmentNum
:
number
// 发货数
shipmentNum
:
number
// 发货数
confirmProductNum
?:
number
// 新接数(件)
produceProductNum
?:
number
// 生产数(件)
shipmentProductNum
?:
number
// 发货数(件)
shipmentRateOf24Hour
:
number
// 24小时发货率
shipmentRateOf24Hour
:
number
// 24小时发货率
shipmentRateOf48Hour
:
number
// 48小时发货率
shipmentRateOf48Hour
:
number
// 48小时发货率
overtimeShipmentRate
:
number
// 超48小时发货率
overtimeShipmentRate
:
number
// 超48小时发货率
...
...
src/views/Dashboard.vue
View file @
9687e81f
This diff is collapsed.
Click to expand it.
src/views/logistics/logisticsMethod.vue
View file @
9687e81f
...
@@ -398,6 +398,34 @@ const formConfig = computed<IFormConfig[]>(() => [
...
@@ -398,6 +398,34 @@ const formConfig = computed<IFormConfig[]>(() => [
message
:
'请输入物流编码'
,
message
:
'请输入物流编码'
,
},
},
],
],
},{
prop
:
'vat'
,
type
:
'input'
,
label
:
'vat编号'
,
fixed
:
'last'
,
attrs
:
{
placeholder
:
'请输入vat编号'
,
},
rules
:
[
{
required
:
false
,
message
:
'请输入vat编号'
,
},
],
},{
prop
:
'ioss'
,
type
:
'input'
,
label
:
'IOSS编号'
,
fixed
:
'last'
,
attrs
:
{
placeholder
:
'请输入IOSS编号'
,
},
rules
:
[
{
required
:
false
,
message
:
'请输入IOSS编号'
,
},
],
},
},
{
{
prop
:
'status'
,
prop
:
'status'
,
...
@@ -605,6 +633,16 @@ const tableConfig = ref<TableColumn[]>([
...
@@ -605,6 +633,16 @@ const tableConfig = ref<TableColumn[]>([
},
},
},
},
{
{
prop
:
'vat'
,
label
:
'vat编号'
,
},
{
prop
:
'ioss'
,
label
:
'IOSS编号'
,
},
{
prop
:
'opeare'
,
prop
:
'opeare'
,
label
:
'操作'
,
label
:
'操作'
,
attrs
:
{
attrs
:
{
...
...
src/views/order/orderTracking/index.vue
View file @
9687e81f
...
@@ -757,19 +757,6 @@ const handleSelectionChange = (val: PodUsOrderListData[]) => {
...
@@ -757,19 +757,6 @@ const handleSelectionChange = (val: PodUsOrderListData[]) => {
selection
.
value
=
val
selection
.
value
=
val
}
}
// 修改行样式方法
const
getRowStyle
=
({
row
}:
{
row
:
PodUsOrderListData
})
=>
{
// 如果行被选中,设置背景色为 #fdf6ec
if
(
selection
.
value
.
some
((
item
)
=>
item
.
id
===
row
.
id
))
{
return
{
backgroundColor
:
'#fdf6ec'
,
}
}
return
{
backgroundColor
:
''
,
}
}
// 获取行类名方法
// 获取行类名方法
const
getRowClassName
=
({
row
}:
{
row
:
PodUsOrderListData
})
=>
{
const
getRowClassName
=
({
row
}:
{
row
:
PodUsOrderListData
})
=>
{
return
selection
.
value
.
some
((
item
)
=>
item
.
id
===
row
.
id
)
return
selection
.
value
.
some
((
item
)
=>
item
.
id
===
row
.
id
)
...
@@ -1156,7 +1143,6 @@ onMounted(() => {
...
@@ -1156,7 +1143,6 @@ onMounted(() => {
:serial-numberable=
"true"
:serial-numberable=
"true"
:selectionable=
"true"
:selectionable=
"true"
:paginated-data=
"tableData"
:paginated-data=
"tableData"
:row-style=
"getRowStyle"
:row-class-name=
"getRowClassName"
:row-class-name=
"getRowClassName"
@
row-click=
"rowClick"
@
row-click=
"rowClick"
@
selection-change=
"handleSelectionChange"
@
selection-change=
"handleSelectionChange"
...
@@ -1385,11 +1371,22 @@ onMounted(() => {
...
@@ -1385,11 +1371,22 @@ onMounted(() => {
}
}
}
}
//
确保选中行的背景色在
hover
时也保持
//
设置选中行的背景色
:deep
(
.el-table__body
)
{
:deep
(
.el-table__body
)
{
.
el-table__row
:
hover
{
td
{
background-color
:
#e1ebf5
!important
;
}
}
.el-table__row.row-selected
{
td
{
background-color
:
#faecd8
!important
;
}
}
//
确保选中行的背景色在
hover
时也保持
.el-table__row.row-selected
:hover
{
.el-table__row.row-selected
:hover
{
td
{
td
{
background-color
:
#f
df6ec
!important
;
background-color
:
#f
aecd8
!important
;
}
}
}
}
}
}
...
...
src/views/order/orderTracking/indexcn.vue
View file @
9687e81f
...
@@ -772,20 +772,6 @@ const handleSelectionChange = (val: PodCnOrderListData[]) => {
...
@@ -772,20 +772,6 @@ const handleSelectionChange = (val: PodCnOrderListData[]) => {
selection
.
value
=
val
selection
.
value
=
val
}
}
// 修改行样式方法
const
getRowStyle
=
({
row
}:
{
row
:
PodCnOrderListData
})
=>
{
// 如果行被选中,设置背景色为 #fdf6ec
if
(
selection
.
value
.
some
((
item
)
=>
item
.
id
===
row
.
id
))
{
return
{
backgroundColor
:
'#fdf6ec'
,
}
}
return
{
backgroundColor
:
''
,
}
}
// 获取行类名方法
// 获取行类名方法
const
getRowClassName
=
({
row
}:
{
row
:
PodCnOrderListData
})
=>
{
const
getRowClassName
=
({
row
}:
{
row
:
PodCnOrderListData
})
=>
{
return
selection
.
value
.
some
((
item
)
=>
item
.
id
===
row
.
id
)
return
selection
.
value
.
some
((
item
)
=>
item
.
id
===
row
.
id
)
...
@@ -1246,7 +1232,6 @@ onMounted(() => {
...
@@ -1246,7 +1232,6 @@ onMounted(() => {
:serial-numberable=
"true"
:serial-numberable=
"true"
:selectionable=
"true"
:selectionable=
"true"
:paginated-data=
"tableData"
:paginated-data=
"tableData"
:row-style=
"getRowStyle"
:row-class-name=
"getRowClassName"
:row-class-name=
"getRowClassName"
@
row-click=
"rowClick"
@
row-click=
"rowClick"
@
selection-change=
"handleSelectionChange"
@
selection-change=
"handleSelectionChange"
...
@@ -1482,11 +1467,22 @@ onMounted(() => {
...
@@ -1482,11 +1467,22 @@ onMounted(() => {
}
}
}
}
//
确保选中行的背景色在
hover
时也保持
//
设置选中行的背景色
:deep
(
.el-table__body
)
{
:deep
(
.el-table__body
)
{
.
el-table__row
:
hover
{
td
{
background-color
:
#e1ebf5
!important
;
}
}
.el-table__row.row-selected
{
td
{
background-color
:
#faecd8
!important
;
}
}
//
确保选中行的背景色在
hover
时也保持
.el-table__row.row-selected
:hover
{
.el-table__row.row-selected
:hover
{
td
{
td
{
background-color
:
#f
df6ec
!important
;
background-color
:
#f
aecd8
!important
;
}
}
}
}
}
}
...
...
src/views/order/podCN/components/updateAddress.vue
View file @
9687e81f
...
@@ -11,6 +11,7 @@ const visible = defineModel<boolean>('visible')
...
@@ -11,6 +11,7 @@ const visible = defineModel<boolean>('visible')
const
form
=
defineModel
<
AddressInfo
>
(
'form'
,
{
const
form
=
defineModel
<
AddressInfo
>
(
'form'
,
{
default
:
{
default
:
{
receiverName
:
''
,
receiverName
:
''
,
rfcNumber
:
''
,
receiverPhone
:
''
,
receiverPhone
:
''
,
receiverCountry
:
''
,
receiverCountry
:
''
,
receiverProvince
:
''
,
receiverProvince
:
''
,
...
@@ -133,6 +134,13 @@ const submitForm = async () => {
...
@@ -133,6 +134,13 @@ const submitForm = async () => {
placeholder=
"请输入邮政编码"
placeholder=
"请输入邮政编码"
/>
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"RFC税号"
prop=
"rfcNumber"
>
<el-input
v-model=
"form.rfcNumber"
clearable
placeholder=
"请输入RFC税号"
/>
</el-form-item>
</el-form>
</el-form>
<template
#
footer
>
<template
#
footer
>
...
...
src/views/order/podCN/index.vue
View file @
9687e81f
...
@@ -379,6 +379,34 @@
...
@@ -379,6 +379,34 @@
style=
"width: 150px"
style=
"width: 150px"
></ElInput>
></ElInput>
</ElFormItem>
</ElFormItem>
<ElFormItem
v-if=
"
![
'TO_BE_ARRANGE',
'PICKING',
'TO_BE_REPLENISHMENT',
'IN_PRODUCTION',
].includes(status)
"
label=
"收件国家"
>
<ElSelect
v-model=
"searchForm.receiverCountry"
placeholder=
"收件国家"
clearable
:teleported=
"false"
style=
"width: 150px"
filterable
@
change=
"changeReplaceShipment"
>
<ElOption
v-for=
"item in receiverCountryList"
:key=
"item.countryCode"
:value=
"item.countryCode"
:label=
"item.nameCn + '(' + item.countryCode + ')'"
></ElOption>
</ElSelect>
</ElFormItem>
<ElFormItem
label=
"是否代发"
>
<ElFormItem
label=
"是否代发"
>
<ElSelect
<ElSelect
v-model=
"searchForm.replaceShipment"
v-model=
"searchForm.replaceShipment"
...
@@ -1458,6 +1486,43 @@
...
@@ -1458,6 +1486,43 @@
</el-button>
</el-button>
</div>
</div>
</div>
</div>
<div
class=
"goods-item-info"
>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
英文报关名称:
</span
>
<span
:title=
"item.customsNameEnglish"
class=
"goods-item-info-item-value"
>
{{ item.customsNameEnglish }}
</span>
</div>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
中文报关名称:
</span
>
<span
:title=
"item.customsNameChinese"
class=
"goods-item-info-item-value"
>
{{ item.customsNameChinese }}
</span>
</div>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
申报重量(g):
</span
>
<span
:title=
"item.customsWeight"
class=
"goods-item-info-item-value"
>
{{ item.customsWeight }}
</span>
</div>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
申报价值($):
</span
>
<span
:title=
"item.customsValue"
class=
"goods-item-info-item-value"
>
{{ item.customsValue }}
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -2985,6 +3050,7 @@ const totalAmountPrice = (item: PodCnOrderListData): string => {
...
@@ -2985,6 +3050,7 @@ const totalAmountPrice = (item: PodCnOrderListData): string => {
const
countryList
=
ref
([])
const
countryList
=
ref
([])
const
currentRow
=
ref
<
AddressInfo
>
({
const
currentRow
=
ref
<
AddressInfo
>
({
receiverName
:
''
,
receiverName
:
''
,
rfcNumber
:
''
,
receiverPhone
:
''
,
receiverPhone
:
''
,
receiverCountry
:
''
,
receiverCountry
:
''
,
receiverProvince
:
''
,
receiverProvince
:
''
,
...
@@ -3132,6 +3198,7 @@ const [searchForm, resetSearchForm] = useValue<SearchForm>({
...
@@ -3132,6 +3198,7 @@ const [searchForm, resetSearchForm] = useValue<SearchForm>({
batchArrangeNumber
:
''
,
batchArrangeNumber
:
''
,
craftCode
:
[],
craftCode
:
[],
thirdStockSku
:
''
,
thirdStockSku
:
''
,
receiverCountry
:
''
,
}
)
}
)
const
shipmentArea
=
ref
(
0
)
const
shipmentArea
=
ref
(
0
)
const
userMarkList
=
ref
<
string
[]
>
([])
const
userMarkList
=
ref
<
string
[]
>
([])
...
@@ -3873,7 +3940,7 @@ const tableColumns = computed(() => {
...
@@ -3873,7 +3940,7 @@ const tableColumns = computed(() => {
{
{
label
:
'操作'
,
label
:
'操作'
,
slot
:
'operate'
,
slot
:
'operate'
,
width
:
26
0
,
width
:
12
0
,
align
:
'center'
,
align
:
'center'
,
fixed
:
'right'
,
fixed
:
'right'
,
prop
:
'operate'
,
prop
:
'operate'
,
...
@@ -3892,7 +3959,7 @@ const tableColumns = computed(() => {
...
@@ -3892,7 +3959,7 @@ const tableColumns = computed(() => {
label
:
'商品'
,
label
:
'商品'
,
prop
:
'goods'
,
prop
:
'goods'
,
slot
:
'goods'
,
slot
:
'goods'
,
minWidth
:
92
0
,
minWidth
:
110
0
,
}
,
}
,
{
{
label
:
'订单详情'
,
label
:
'订单详情'
,
...
@@ -3917,7 +3984,7 @@ const tableColumns = computed(() => {
...
@@ -3917,7 +3984,7 @@ const tableColumns = computed(() => {
{
{
label
:
'操作'
,
label
:
'操作'
,
slot
:
'operate'
,
slot
:
'operate'
,
width
:
1
8
0
,
width
:
1
0
0
,
align
:
'center'
,
align
:
'center'
,
fixed
:
'right'
,
fixed
:
'right'
,
prop
:
'operate'
,
prop
:
'operate'
,
...
@@ -5505,15 +5572,8 @@ const getRowStyle = ({ row }: { row: PodCnOrderListData }) => {
...
@@ -5505,15 +5572,8 @@ const getRowStyle = ({ row }: { row: PodCnOrderListData }) => {
color
:
'#67c23a'
,
color
:
'#67c23a'
,
}
}
}
}
// 如果行被选中,设置背景色为 #fdf6ec
// 选中状态通过 CSS 类名控制,这里不再处理
if
(
selection
.
value
.
some
((
item
)
=>
item
.
id
===
row
.
id
))
{
return
{
}
return
{
backgroundColor
:
'#fdf6ec'
,
}
}
return
{
backgroundColor
:
''
,
}
}
}
// 获取行类名方法
// 获取行类名方法
...
@@ -5608,6 +5668,17 @@ const getlogisticsCompanyAllCodelist = async () => {
...
@@ -5608,6 +5668,17 @@ const getlogisticsCompanyAllCodelist = async () => {
}
}
}
}
const
receiverCountryList
=
ref
<
{
countryCode
:
string
;
nameCn
:
string
}
[]
>
([])
const
getReceiverCountryList
=
async
()
=>
{
try
{
const
res
=
await
getAllCountryApi
()
if
(
res
.
code
!==
200
)
return
receiverCountryList
.
value
=
res
.
data
}
catch
(
e
)
{
console
.
error
(
e
)
}
}
function
tooltipContent
(
arr
:
{
name
:
string
}
[])
{
function
tooltipContent
(
arr
:
{
name
:
string
}
[])
{
return
arr
.
map
((
tag
)
=>
tag
.
name
).
join
(
'、'
)
return
arr
.
map
((
tag
)
=>
tag
.
name
).
join
(
'、'
)
}
}
...
@@ -5708,6 +5779,7 @@ onMounted(() => {
...
@@ -5708,6 +5779,7 @@ onMounted(() => {
getCustomTagList
()
getCustomTagList
()
loadCraftList
()
loadCraftList
()
getlogisticsCompanyAllCodelist
()
getlogisticsCompanyAllCodelist
()
getReceiverCountryList
()
// 每60秒更新一次当前时间
// 每60秒更新一次当前时间
timer
=
window
.
setInterval
(()
=>
{
timer
=
window
.
setInterval
(()
=>
{
currentTime
.
value
=
new
Date
()
currentTime
.
value
=
new
Date
()
...
@@ -6150,7 +6222,8 @@ const onUpdateCustomsDeclarationInfo = () => {
...
@@ -6150,7 +6222,8 @@ const onUpdateCustomsDeclarationInfo = () => {
.
goods
-
item
{
.
goods
-
item
{
display
:
grid
;
display
:
grid
;
grid
-
template
-
columns
:
100
px
1
fr
minmax
(
150
px
,
1
fr
)
150
px
;
// grid-template-columns: 100px 1fr minmax(150px, 1fr) 150px;
grid
-
template
-
columns
:
100
px
254
px
1
fr
minmax
(
150
px
,
1
fr
)
150
px
200
px
;
gap
:
15
px
;
gap
:
15
px
;
.
goods
-
item
-
img
{
.
goods
-
item
-
img
{
...
@@ -6510,11 +6583,22 @@ const onUpdateCustomsDeclarationInfo = () => {
...
@@ -6510,11 +6583,22 @@ const onUpdateCustomsDeclarationInfo = () => {
}
}
}
}
//
确保选中行的背景色在 hover 时也保持
//
设置选中行的背景色
:
deep
(.
el
-
table__body
)
{
:
deep
(.
el
-
table__body
)
{
.
el
-
table__row
:
hover
{
td
{
background
-
color
:
#
e1ebf5
!
important
;
}
}
.
el
-
table__row
.
row
-
selected
{
td
{
background
-
color
:
#
faecd8
!
important
;
}
}
// 确保选中行的背景色在 hover 时也保持
.
el
-
table__row
.
row
-
selected
:
hover
{
.
el
-
table__row
.
row
-
selected
:
hover
{
td
{
td
{
background
-
color
:
#
f
df6ec
!
important
;
background
-
color
:
#
f
aecd8
!
important
;
}
}
}
}
}
}
...
...
src/views/order/podUs/PodMakeOrder.vue
View file @
9687e81f
...
@@ -650,6 +650,7 @@ const getPackingData = async (code: string) => {
...
@@ -650,6 +650,7 @@ const getPackingData = async (code: string) => {
background
:
'rgba(0, 0, 0, 0.3)'
,
background
:
'rgba(0, 0, 0, 0.3)'
,
})
})
currentCode
=
code
currentCode
=
code
try
{
try
{
const
factoryNo
=
userStore
.
user
?.
factory
.
id
const
factoryNo
=
userStore
.
user
?.
factory
.
id
if
(
!
factoryNo
)
{
if
(
!
factoryNo
)
{
...
...
src/views/order/podUs/index.vue
View file @
9687e81f
...
@@ -6176,15 +6176,8 @@ const getRowStyle = ({ row }: { row: PodUsOrderListData }) => {
...
@@ -6176,15 +6176,8 @@ const getRowStyle = ({ row }: { row: PodUsOrderListData }) => {
color
:
'#67c23a'
,
color
:
'#67c23a'
,
}
}
}
}
// 如果行被选中,设置背景色为 #fdf6ec
// 选中状态通过 CSS 类名控制,这里不再处理
if
(
selection
.
value
.
some
((
item
)
=>
item
.
id
===
row
.
id
))
{
return
{
}
return
{
backgroundColor
:
'#fdf6ec'
,
}
}
return
{
backgroundColor
:
''
,
}
}
}
// 获取行类名方法
// 获取行类名方法
...
@@ -7327,11 +7320,22 @@ useRouter().beforeEach((to, from, next) => {
...
@@ -7327,11 +7320,22 @@ useRouter().beforeEach((to, from, next) => {
}
}
}
}
//
确保选中行的背景色在 hover 时也保持
//
设置选中行的背景色
:
deep
(.
el
-
table__body
)
{
:
deep
(.
el
-
table__body
)
{
.
el
-
table__row
:
hover
{
td
{
background
-
color
:
#
e1ebf5
!
important
;
}
}
.
el
-
table__row
.
row
-
selected
{
td
{
background
-
color
:
#
faecd8
!
important
;
}
}
// 确保选中行的背景色在 hover 时也保持
.
el
-
table__row
.
row
-
selected
:
hover
{
.
el
-
table__row
.
row
-
selected
:
hover
{
td
{
td
{
background
-
color
:
#
f
df6ec
!
important
;
background
-
color
:
#
f
aecd8
!
important
;
}
}
}
}
}
}
...
...
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