Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Fedex
/
EcomWeb
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
zhanbo.xu
2025-05-27 17:17:46 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
e133d490d8bb0b1f7c53312128010dbbb4368037
e133d490
1 parent
37684659
feat: 根据需求优化
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
727 additions
and
318 deletions
src/api/arrivalList-api.js
src/api/declareData-api.js
src/components/Table/index.vue
src/utils/index.js
src/views/arrival-declare/index.vue
src/views/customerConfig/dialog.vue
src/views/exportListQuery/index.vue
src/views/hs-code/index.vue
src/views/hs-code/time-dialog.vue
src/views/reportingData/index.vue
src/api/arrivalList-api.js
View file @
e133d49
...
...
@@ -35,9 +35,9 @@ export function getHsCodeList(data) {
// GET
// /hsCodeMgr/hsCodeIncr
// 增量数据同步
export
function
getHsCodeIncr
()
{
export
function
getHsCodeIncr
(
{
beginDate
}
)
{
return
request
({
url
:
"/bus-customer/hsCodeMgr/hsCodeIncr"
,
url
:
`/bus-customer/hsCodeMgr/hsCodeIncr/
${
beginDate
}
`
,
method
:
"get"
,
});
}
...
...
src/api/declareData-api.js
View file @
e133d49
...
...
@@ -283,3 +283,12 @@ export function modifyWeight(data) {
data
:
data
,
});
}
// GET /declareData/getTotalDocumentsLevelLog/{billNo}
export
function
getTotalDocumentsLevelLog
(
data
)
{
return
request
({
url
:
"/bus-customer/declareData/getTotalDocumentsLevelLog/"
+
data
.
billNo
,
method
:
"get"
,
data
:
data
,
});
}
...
...
src/components/Table/index.vue
View file @
e133d49
...
...
@@ -37,6 +37,7 @@
@header-dragend="headerDragend"
@cell-mouse-leave="cellMouseLeave"
@cell-mouse-enter="cellMouseEnter"
@filter-change="filterChange"
>
<!-- 多选框 -->
<el-table-column
...
...
@@ -78,6 +79,9 @@
:header-align="item.align"
:sort-orders="['descending', 'ascending', null]"
:key="index"
:filters="item.filters"
:filter-method="item.filterMethod"
:column-key="item.columnKey || index.toString()"
>
<template slot="header" slot-scope="scope">
<Tooltip
...
...
@@ -101,7 +105,7 @@
:align="item.align ? item.align : 'center'"
:fixed="item.fixed ? item.fixed : false"
:sortable="item.sorTable ? true : false"
:column-key="index.toString()"
:column-key="i
tem.columnKey || i
ndex.toString()"
:show-overflow-tooltip="
item.showOverflowTooltip != undefined
? item.showOverflowTooltip
...
...
@@ -110,6 +114,8 @@
:header-align="item.align"
:sort-orders="['descending', 'ascending', null]"
:formatter="formatter"
:filters="item.filters"
:filter-method="item.filterMethod"
:key="index"
>
<template slot="header" slot-scope="scope">
...
...
@@ -133,7 +139,7 @@
:align="item.align ? item.align : 'center'"
:fixed="item.fixed ? item.fixed : false"
:sortable="item.sorTable ? true : false"
:column-key="index.toString()"
:column-key="i
tem.columnKey || i
ndex.toString()"
:show-overflow-tooltip="
item.showOverflowTooltip != undefined
? item.showOverflowTooltip
...
...
@@ -142,6 +148,8 @@
:header-align="item.align"
:sort-orders="['descending', 'ascending', null]"
:formatter="formatter"
:filters="item.filters"
:filter-method="item.filterMethod"
:key="index"
>
<template slot="header" slot-scope="scope">
...
...
@@ -541,6 +549,11 @@ export default {
this.selectTable = [];
this.$emit("sortChange", { prop: prop, order: order });
},
//
filterChange(filters) {
console.log(filters);
this.$emit("filterChange", filters);
},
//双击行
dblclick(val) {
this.$emit("dblclick", val);
...
...
src/utils/index.js
View file @
e133d49
import
{
parseTime
}
from
'./iClearExp'
import
{
Message
,
MessageBox
}
from
'element-ui'
import
i18n
from
'@/assets/languages'
import
{
parseTime
}
from
"./iClearExp"
;
import
{
Message
Box
}
from
"element-ui"
;
import
i18n
from
"@/assets/languages"
;
/**
* 表格时间格式化
*/
export
function
formatDate
(
cellValue
)
{
if
(
cellValue
==
null
||
cellValue
==
""
)
return
""
;
var
date
=
new
Date
(
cellValue
)
var
year
=
date
.
getFullYear
()
var
month
=
date
.
getMonth
()
+
1
<
10
?
'0'
+
(
date
.
getMonth
()
+
1
)
:
date
.
getMonth
()
+
1
var
day
=
date
.
getDate
()
<
10
?
'0'
+
date
.
getDate
()
:
date
.
getDate
()
var
hours
=
date
.
getHours
()
<
10
?
'0'
+
date
.
getHours
()
:
date
.
getHours
()
var
minutes
=
date
.
getMinutes
()
<
10
?
'0'
+
date
.
getMinutes
()
:
date
.
getMinutes
()
var
seconds
=
date
.
getSeconds
()
<
10
?
'0'
+
date
.
getSeconds
()
:
date
.
getSeconds
()
return
year
+
'-'
+
month
+
'-'
+
day
+
' '
+
hours
+
':'
+
minutes
+
':'
+
seconds
var
date
=
new
Date
(
cellValue
);
var
year
=
date
.
getFullYear
();
var
month
=
date
.
getMonth
()
+
1
<
10
?
"0"
+
(
date
.
getMonth
()
+
1
)
:
date
.
getMonth
()
+
1
;
var
day
=
date
.
getDate
()
<
10
?
"0"
+
date
.
getDate
()
:
date
.
getDate
();
var
hours
=
date
.
getHours
()
<
10
?
"0"
+
date
.
getHours
()
:
date
.
getHours
();
var
minutes
=
date
.
getMinutes
()
<
10
?
"0"
+
date
.
getMinutes
()
:
date
.
getMinutes
();
var
seconds
=
date
.
getSeconds
()
<
10
?
"0"
+
date
.
getSeconds
()
:
date
.
getSeconds
();
return
(
year
+
"-"
+
month
+
"-"
+
day
+
" "
+
hours
+
":"
+
minutes
+
":"
+
seconds
);
}
export
function
formatDateNew
(
cellValue
)
{
if
(
cellValue
==
null
||
cellValue
==
""
)
return
""
;
var
date
=
new
Date
(
cellValue
);
var
year
=
date
.
getFullYear
();
var
month
=
date
.
getMonth
()
+
1
<
10
?
"0"
+
(
date
.
getMonth
()
+
1
)
:
date
.
getMonth
()
+
1
;
var
day
=
date
.
getDate
()
<
10
?
"0"
+
date
.
getDate
()
:
date
.
getDate
();
var
hours
=
date
.
getHours
()
<
10
?
"0"
+
date
.
getHours
()
:
date
.
getHours
();
var
minutes
=
date
.
getMinutes
()
<
10
?
"0"
+
date
.
getMinutes
()
:
date
.
getMinutes
();
var
seconds
=
date
.
getSeconds
()
<
10
?
"0"
+
date
.
getSeconds
()
:
date
.
getSeconds
();
return
`
${
year
}${
month
}${
day
}${
hours
}${
minutes
}${
seconds
}
`
;
}
// 获取昨天 年月日 时分秒
export
function
getYesterday
()
{
return
parseTime
(
new
Date
().
getTime
()
-
24
*
60
*
60
*
1000
);
}
/**
...
...
@@ -23,40 +50,40 @@ export function formatDate(cellValue) {
* @returns {string}
*/
export
function
formatTime
(
time
,
option
)
{
if
((
''
+
time
).
length
===
10
)
{
time
=
parseInt
(
time
)
*
1000
if
((
""
+
time
).
length
===
10
)
{
time
=
parseInt
(
time
)
*
1000
;
}
else
{
time
=
+
time
time
=
+
time
;
}
const
d
=
new
Date
(
time
)
const
now
=
Date
.
now
()
const
d
=
new
Date
(
time
)
;
const
now
=
Date
.
now
()
;
const
diff
=
(
now
-
d
)
/
1000
const
diff
=
(
now
-
d
)
/
1000
;
if
(
diff
<
30
)
{
return
'刚刚'
return
"刚刚"
;
}
else
if
(
diff
<
3600
)
{
// less 1 hour
return
Math
.
ceil
(
diff
/
60
)
+
'分钟前'
return
Math
.
ceil
(
diff
/
60
)
+
"分钟前"
;
}
else
if
(
diff
<
3600
*
24
)
{
return
Math
.
ceil
(
diff
/
3600
)
+
'小时前'
return
Math
.
ceil
(
diff
/
3600
)
+
"小时前"
;
}
else
if
(
diff
<
3600
*
24
*
2
)
{
return
'1天前'
return
"1天前"
;
}
if
(
option
)
{
return
parseTime
(
time
,
option
)
return
parseTime
(
time
,
option
)
;
}
else
{
return
(
d
.
getMonth
()
+
1
+
'月'
+
"月"
+
d
.
getDate
()
+
'日'
+
"日"
+
d
.
getHours
()
+
'时'
+
"时"
+
d
.
getMinutes
()
+
'分'
)
"分"
)
;
}
}
...
...
@@ -65,18 +92,18 @@ export function formatTime(time, option) {
* @returns {Object}
*/
export
function
getQueryObject
(
url
)
{
url
=
url
==
null
?
window
.
location
.
href
:
url
const
search
=
url
.
substring
(
url
.
lastIndexOf
(
'?'
)
+
1
)
const
obj
=
{}
const
reg
=
/
([^
?&=
]
+
)
=
([^
?&=
]
*
)
/g
url
=
url
==
null
?
window
.
location
.
href
:
url
;
const
search
=
url
.
substring
(
url
.
lastIndexOf
(
"?"
)
+
1
);
const
obj
=
{}
;
const
reg
=
/
([^
?&=
]
+
)
=
([^
?&=
]
*
)
/g
;
search
.
replace
(
reg
,
(
rs
,
$1
,
$2
)
=>
{
const
name
=
decodeURIComponent
(
$1
)
let
val
=
decodeURIComponent
(
$2
)
val
=
String
(
val
)
obj
[
name
]
=
val
return
rs
})
return
obj
const
name
=
decodeURIComponent
(
$1
)
;
let
val
=
decodeURIComponent
(
$2
)
;
val
=
String
(
val
)
;
obj
[
name
]
=
val
;
return
rs
;
})
;
return
obj
;
}
/**
...
...
@@ -85,14 +112,14 @@ export function getQueryObject(url) {
*/
export
function
byteLength
(
str
)
{
// returns the byte length of an utf8 string
let
s
=
str
.
length
let
s
=
str
.
length
;
for
(
var
i
=
str
.
length
-
1
;
i
>=
0
;
i
--
)
{
const
code
=
str
.
charCodeAt
(
i
)
if
(
code
>
0x7f
&&
code
<=
0x7ff
)
s
++
else
if
(
code
>
0x7ff
&&
code
<=
0xffff
)
s
+=
2
if
(
code
>=
0x
DC00
&&
code
<=
0xDFFF
)
i
--
const
code
=
str
.
charCodeAt
(
i
)
;
if
(
code
>
0x7f
&&
code
<=
0x7ff
)
s
++
;
else
if
(
code
>
0x7ff
&&
code
<=
0xffff
)
s
+=
2
;
if
(
code
>=
0x
dc00
&&
code
<=
0xdfff
)
i
--
;
}
return
s
return
s
;
}
/**
...
...
@@ -100,13 +127,13 @@ export function byteLength(str) {
* @returns {Array}
*/
export
function
cleanArray
(
actual
)
{
const
newArray
=
[]
const
newArray
=
[]
;
for
(
let
i
=
0
;
i
<
actual
.
length
;
i
++
)
{
if
(
actual
[
i
])
{
newArray
.
push
(
actual
[
i
])
newArray
.
push
(
actual
[
i
])
;
}
}
return
newArray
return
newArray
;
}
/**
...
...
@@ -114,13 +141,13 @@ export function cleanArray(actual) {
* @returns {Array}
*/
export
function
param
(
json
)
{
if
(
!
json
)
return
''
if
(
!
json
)
return
""
;
return
cleanArray
(
Object
.
keys
(
json
).
map
(
key
=>
{
if
(
json
[
key
]
===
undefined
)
return
''
return
encodeURIComponent
(
key
)
+
'='
+
encodeURIComponent
(
json
[
key
])
Object
.
keys
(
json
).
map
(
(
key
)
=>
{
if
(
json
[
key
]
===
undefined
)
return
""
;
return
encodeURIComponent
(
key
)
+
"="
+
encodeURIComponent
(
json
[
key
]);
})
).
join
(
'&'
)
).
join
(
"&"
);
}
/**
...
...
@@ -128,21 +155,21 @@ export function param(json) {
* @returns {Object}
*/
export
function
param2Obj
(
url
)
{
const
search
=
decodeURIComponent
(
url
.
split
(
'?'
)[
1
]).
replace
(
/
\+
/g
,
' '
)
const
search
=
decodeURIComponent
(
url
.
split
(
"?"
)[
1
]).
replace
(
/
\+
/g
,
" "
);
if
(
!
search
)
{
return
{}
return
{}
;
}
const
obj
=
{}
const
searchArr
=
search
.
split
(
'&'
)
searchArr
.
forEach
(
v
=>
{
const
index
=
v
.
indexOf
(
'='
)
const
obj
=
{}
;
const
searchArr
=
search
.
split
(
"&"
);
searchArr
.
forEach
(
(
v
)
=>
{
const
index
=
v
.
indexOf
(
"="
);
if
(
index
!==
-
1
)
{
const
name
=
v
.
substring
(
0
,
index
)
const
val
=
v
.
substring
(
index
+
1
,
v
.
length
)
obj
[
name
]
=
val
const
name
=
v
.
substring
(
0
,
index
)
;
const
val
=
v
.
substring
(
index
+
1
,
v
.
length
)
;
obj
[
name
]
=
val
;
}
})
return
obj
})
;
return
obj
;
}
/**
...
...
@@ -150,9 +177,9 @@ export function param2Obj(url) {
* @returns {string}
*/
export
function
html2Text
(
val
)
{
const
div
=
document
.
createElement
(
'div'
)
div
.
innerHTML
=
val
return
div
.
textContent
||
div
.
innerText
const
div
=
document
.
createElement
(
"div"
);
div
.
innerHTML
=
val
;
return
div
.
textContent
||
div
.
innerText
;
}
/**
...
...
@@ -162,21 +189,21 @@ export function html2Text(val) {
* @returns {Object}
*/
export
function
objectMerge
(
target
,
source
)
{
if
(
typeof
target
!==
'object'
)
{
target
=
{}
if
(
typeof
target
!==
"object"
)
{
target
=
{}
;
}
if
(
Array
.
isArray
(
source
))
{
return
source
.
slice
()
return
source
.
slice
()
;
}
Object
.
keys
(
source
).
forEach
(
property
=>
{
const
sourceProperty
=
source
[
property
]
if
(
typeof
sourceProperty
===
'object'
)
{
target
[
property
]
=
objectMerge
(
target
[
property
],
sourceProperty
)
Object
.
keys
(
source
).
forEach
(
(
property
)
=>
{
const
sourceProperty
=
source
[
property
]
;
if
(
typeof
sourceProperty
===
"object"
)
{
target
[
property
]
=
objectMerge
(
target
[
property
],
sourceProperty
)
;
}
else
{
target
[
property
]
=
sourceProperty
target
[
property
]
=
sourceProperty
;
}
})
return
target
})
;
return
target
;
}
/**
...
...
@@ -185,18 +212,18 @@ export function objectMerge(target, source) {
*/
export
function
toggleClass
(
element
,
className
)
{
if
(
!
element
||
!
className
)
{
return
return
;
}
let
classString
=
element
.
className
const
nameIndex
=
classString
.
indexOf
(
className
)
let
classString
=
element
.
className
;
const
nameIndex
=
classString
.
indexOf
(
className
)
;
if
(
nameIndex
===
-
1
)
{
classString
+=
''
+
className
classString
+=
""
+
className
;
}
else
{
classString
=
classString
.
substr
(
0
,
nameIndex
)
+
classString
.
substr
(
nameIndex
+
className
.
length
)
classString
.
substr
(
nameIndex
+
className
.
length
)
;
}
element
.
className
=
classString
element
.
className
=
classString
;
}
/**
...
...
@@ -204,10 +231,10 @@ export function toggleClass(element, className) {
* @returns {Date}
*/
export
function
getTime
(
type
)
{
if
(
type
===
'start'
)
{
return
new
Date
().
getTime
()
-
3600
*
1000
*
24
*
90
if
(
type
===
"start"
)
{
return
new
Date
().
getTime
()
-
3600
*
1000
*
24
*
90
;
}
else
{
return
new
Date
(
new
Date
().
toDateString
())
return
new
Date
(
new
Date
().
toDateString
())
;
}
}
...
...
@@ -218,38 +245,38 @@ export function getTime(type) {
* @return {*}
*/
export
function
debounce
(
func
,
wait
,
immediate
)
{
let
timeout
,
args
,
context
,
timestamp
,
result
let
timeout
,
args
,
context
,
timestamp
,
result
;
const
later
=
function
()
{
// 据上一次触发时间间隔
const
last
=
+
new
Date
()
-
timestamp
const
last
=
+
new
Date
()
-
timestamp
;
// 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait
if
(
last
<
wait
&&
last
>
0
)
{
timeout
=
setTimeout
(
later
,
wait
-
last
)
timeout
=
setTimeout
(
later
,
wait
-
last
)
;
}
else
{
timeout
=
null
timeout
=
null
;
// 如果设定为immediate===true,因为开始边界已经调用过了此处无需调用
if
(
!
immediate
)
{
result
=
func
.
apply
(
context
,
args
)
if
(
!
timeout
)
context
=
args
=
null
result
=
func
.
apply
(
context
,
args
)
;
if
(
!
timeout
)
context
=
args
=
null
;
}
}
}
}
;
return
function
(...
args
)
{
context
=
this
timestamp
=
+
new
Date
()
const
callNow
=
immediate
&&
!
timeout
context
=
this
;
timestamp
=
+
new
Date
()
;
const
callNow
=
immediate
&&
!
timeout
;
// 如果延时不存在,重新设定延时
if
(
!
timeout
)
timeout
=
setTimeout
(
later
,
wait
)
if
(
!
timeout
)
timeout
=
setTimeout
(
later
,
wait
)
;
if
(
callNow
)
{
result
=
func
.
apply
(
context
,
args
)
context
=
args
=
null
result
=
func
.
apply
(
context
,
args
)
;
context
=
args
=
null
;
}
return
result
}
return
result
;
}
;
}
/**
...
...
@@ -260,18 +287,18 @@ export function debounce(func, wait, immediate) {
* @returns {Object}
*/
export
function
deepClone
(
source
)
{
if
(
!
source
&&
typeof
source
!==
'object'
)
{
throw
new
Error
(
'error arguments'
,
'deepClone'
)
if
(
!
source
&&
typeof
source
!==
"object"
)
{
throw
new
Error
(
"error arguments"
,
"deepClone"
);
}
const
targetObj
=
source
.
constructor
===
Array
?
[]
:
{}
Object
.
keys
(
source
).
forEach
(
keys
=>
{
if
(
source
[
keys
]
&&
typeof
source
[
keys
]
===
'object'
)
{
targetObj
[
keys
]
=
deepClone
(
source
[
keys
])
const
targetObj
=
source
.
constructor
===
Array
?
[]
:
{}
;
Object
.
keys
(
source
).
forEach
(
(
keys
)
=>
{
if
(
source
[
keys
]
&&
typeof
source
[
keys
]
===
"object"
)
{
targetObj
[
keys
]
=
deepClone
(
source
[
keys
])
;
}
else
{
targetObj
[
keys
]
=
source
[
keys
]
targetObj
[
keys
]
=
source
[
keys
]
;
}
})
return
targetObj
})
;
return
targetObj
;
}
/**
...
...
@@ -279,16 +306,16 @@ export function deepClone(source) {
* @returns {Array}
*/
export
function
uniqueArr
(
arr
)
{
return
Array
.
from
(
new
Set
(
arr
))
return
Array
.
from
(
new
Set
(
arr
))
;
}
/**
* @returns {string}
*/
export
function
createUniqueString
()
{
const
timestamp
=
+
new
Date
()
+
''
const
randomNum
=
parseInt
((
1
+
Math
.
random
())
*
65536
)
+
''
return
(
+
(
randomNum
+
timestamp
)).
toString
(
32
)
const
timestamp
=
+
new
Date
()
+
""
;
const
randomNum
=
parseInt
((
1
+
Math
.
random
())
*
65536
)
+
""
;
return
(
+
(
randomNum
+
timestamp
)).
toString
(
32
)
;
}
/**
...
...
@@ -298,7 +325,7 @@ export function createUniqueString() {
* @returns {boolean}
*/
export
function
hasClass
(
ele
,
cls
)
{
return
!!
ele
.
className
.
match
(
new
RegExp
(
'(\\s|^)'
+
cls
+
'(\\s|$)'
))
return
!!
ele
.
className
.
match
(
new
RegExp
(
"(\\s|^)"
+
cls
+
"(\\s|$)"
));
}
/**
...
...
@@ -307,7 +334,7 @@ export function hasClass(ele, cls) {
* @param {string} cls
*/
export
function
addClass
(
ele
,
cls
)
{
if
(
!
hasClass
(
ele
,
cls
))
ele
.
className
+=
' '
+
cls
if
(
!
hasClass
(
ele
,
cls
))
ele
.
className
+=
" "
+
cls
;
}
/**
...
...
@@ -317,181 +344,208 @@ export function addClass(ele, cls) {
*/
export
function
removeClass
(
ele
,
cls
)
{
if
(
hasClass
(
ele
,
cls
))
{
const
reg
=
new
RegExp
(
'(\\s|^)'
+
cls
+
'(\\s|$)'
)
ele
.
className
=
ele
.
className
.
replace
(
reg
,
' '
)
const
reg
=
new
RegExp
(
"(\\s|^)"
+
cls
+
"(\\s|$)"
);
ele
.
className
=
ele
.
className
.
replace
(
reg
,
" "
);
}
}
export
function
makeMap
(
str
,
expectsLowerCase
)
{
const
map
=
Object
.
create
(
null
)
const
list
=
str
.
split
(
','
)
const
map
=
Object
.
create
(
null
)
;
const
list
=
str
.
split
(
","
);
for
(
let
i
=
0
;
i
<
list
.
length
;
i
++
)
{
map
[
list
[
i
]]
=
true
map
[
list
[
i
]]
=
true
;
}
return
expectsLowerCase
?
val
=>
map
[
val
.
toLowerCase
()]
:
val
=>
map
[
val
]
return
expectsLowerCase
?
(
val
)
=>
map
[
val
.
toLowerCase
()]
:
(
val
)
=>
map
[
val
];
}
export
const
exportDefault
=
'export default '
export
const
exportDefault
=
"export default "
;
export
const
beautifierConf
=
{
html
:
{
indent_size
:
'2'
,
indent_char
:
' '
,
max_preserve_newlines
:
'-1'
,
indent_size
:
"2"
,
indent_char
:
" "
,
max_preserve_newlines
:
"-1"
,
preserve_newlines
:
false
,
keep_array_indentation
:
false
,
break_chained_methods
:
false
,
indent_scripts
:
'separate'
,
brace_style
:
'end-expand'
,
indent_scripts
:
"separate"
,
brace_style
:
"end-expand"
,
space_before_conditional
:
true
,
unescape_strings
:
false
,
jslint_happy
:
false
,
end_with_newline
:
true
,
wrap_line_length
:
'110'
,
wrap_line_length
:
"110"
,
indent_inner_html
:
true
,
comma_first
:
false
,
e4x
:
true
,
indent_empty_lines
:
true
indent_empty_lines
:
true
,
},
js
:
{
indent_size
:
'2'
,
indent_char
:
' '
,
max_preserve_newlines
:
'-1'
,
indent_size
:
"2"
,
indent_char
:
" "
,
max_preserve_newlines
:
"-1"
,
preserve_newlines
:
false
,
keep_array_indentation
:
false
,
break_chained_methods
:
false
,
indent_scripts
:
'normal'
,
brace_style
:
'end-expand'
,
indent_scripts
:
"normal"
,
brace_style
:
"end-expand"
,
space_before_conditional
:
true
,
unescape_strings
:
false
,
jslint_happy
:
true
,
end_with_newline
:
true
,
wrap_line_length
:
'110'
,
wrap_line_length
:
"110"
,
indent_inner_html
:
true
,
comma_first
:
false
,
e4x
:
true
,
indent_empty_lines
:
true
}
}
indent_empty_lines
:
true
,
}
,
}
;
// 首字母大小
export
function
titleCase
(
str
,
type
=
'up'
)
{
if
(
type
==
'up'
)
{
return
str
.
replace
(
/
(
|^
)[
a-z
]
/g
,
L
=>
L
.
toUpperCase
())
}
else
if
(
type
==
'low'
)
{
return
str
.
replace
(
/
(
|^
)[
A-Z
]
/g
,
L
=>
L
.
toLowerCase
())
export
function
titleCase
(
str
,
type
=
"up"
)
{
if
(
type
==
"up"
)
{
return
str
.
replace
(
/
(
|^
)[
a-z
]
/g
,
(
L
)
=>
L
.
toUpperCase
());
}
else
if
(
type
==
"low"
)
{
return
str
.
replace
(
/
(
|^
)[
A-Z
]
/g
,
(
L
)
=>
L
.
toLowerCase
());
}
}
// 下划转驼峰
export
function
camelCase
(
str
)
{
return
str
.
replace
(
/-
[
a-z
]
/g
,
str1
=>
str1
.
substr
(
-
1
).
toUpperCase
())
return
str
.
replace
(
/-
[
a-z
]
/g
,
(
str1
)
=>
str1
.
substr
(
-
1
).
toUpperCase
());
}
export
function
isNumberStr
(
str
)
{
return
/^
[
+-
]?(
0|
([
1-9
]\d
*
))(\.\d
+
)?
$/g
.
test
(
str
)
return
/^
[
+-
]?(
0|
([
1-9
]\d
*
))(\.\d
+
)?
$/g
.
test
(
str
)
;
}
export
function
toHead
(
domName
)
{
this
.
$nextTick
(()
=>
{
document
.
getElementsByClassName
(
domName
)[
0
]
?
document
.
getElementsByClassName
(
domName
)[
0
].
scrollTop
=
0
:
''
})
document
.
getElementsByClassName
(
domName
)[
0
]
?
(
document
.
getElementsByClassName
(
domName
)[
0
].
scrollTop
=
0
)
:
""
;
});
}
export
function
createRandom
(
length
)
{
let
randomNumber
=
Math
.
floor
(
Math
.
random
()
*
10
**
length
).
toString
().
padStart
(
length
,
'0'
);
let
randomNumber
=
Math
.
floor
(
Math
.
random
()
*
10
**
length
)
.
toString
()
.
padStart
(
length
,
"0"
);
return
randomNumber
;
}
export
function
alertWarningMsg
(
msg
,
title
=
i18n
.
t
(
'system.tip'
),
showCancelButton
=
false
,
center
=
false
,
buttonName
=
{
confirm
:
'确定'
,
cancel
:
'取消'
})
{
export
function
alertWarningMsg
(
msg
,
title
=
i18n
.
t
(
"system.tip"
),
showCancelButton
=
false
,
center
=
false
,
buttonName
=
{
confirm
:
"确定"
,
cancel
:
"取消"
}
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
MessageBox
.
alert
(
msg
,
title
,
{
dangerouslyUseHTMLString
:
true
,
showCancelButton
:
showCancelButton
,
type
:
'warning'
,
cancelButtonText
:
buttonName
.
cancel
,
confirmButtonText
:
buttonName
.
confirm
,
center
:
center
}
).
then
(()
=>
{
resolve
()
}).
catch
(()
=>
{
reject
()
MessageBox
.
alert
(
msg
,
title
,
{
dangerouslyUseHTMLString
:
true
,
showCancelButton
:
showCancelButton
,
type
:
"warning"
,
cancelButtonText
:
buttonName
.
cancel
,
confirmButtonText
:
buttonName
.
confirm
,
center
:
center
,
})
})
.
then
(()
=>
{
resolve
();
})
.
catch
(()
=>
{
reject
();
});
});
}
export
function
alertSuccessMsg
(
msg
,
title
=
i18n
.
t
(
'system.tip'
),
showCancelButton
=
false
,
center
=
false
,
buttonName
=
{
confirm
:
'确定'
,
cancel
:
'取消'
})
{
export
function
alertSuccessMsg
(
msg
,
title
=
i18n
.
t
(
"system.tip"
),
showCancelButton
=
false
,
center
=
false
,
buttonName
=
{
confirm
:
"确定"
,
cancel
:
"取消"
}
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
MessageBox
.
alert
(
msg
,
title
,
{
dangerouslyUseHTMLString
:
true
,
showCancelButton
:
showCancelButton
,
type
:
'success'
,
cancelButtonText
:
buttonName
.
cancel
,
confirmButtonText
:
buttonName
.
confirm
,
center
:
center
}
).
then
(()
=>
{
resolve
()
}).
catch
(()
=>
{
reject
()
MessageBox
.
alert
(
msg
,
title
,
{
dangerouslyUseHTMLString
:
true
,
showCancelButton
:
showCancelButton
,
type
:
"success"
,
cancelButtonText
:
buttonName
.
cancel
,
confirmButtonText
:
buttonName
.
confirm
,
center
:
center
,
})
})
.
then
(()
=>
{
resolve
();
})
.
catch
(()
=>
{
reject
();
});
});
}
export
function
alertErrorMsg
(
msg
,
title
=
i18n
.
t
(
'system.tip'
),
showCancelButton
=
false
,
center
=
false
,
buttonName
=
{
confirm
:
'确定'
,
cancel
:
'取消'
})
{
export
function
alertErrorMsg
(
msg
,
title
=
i18n
.
t
(
"system.tip"
),
showCancelButton
=
false
,
center
=
false
,
buttonName
=
{
confirm
:
"确定"
,
cancel
:
"取消"
}
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
MessageBox
.
alert
(
msg
,
title
,
{
dangerouslyUseHTMLString
:
true
,
showCancelButton
:
showCancelButton
,
type
:
'error'
,
cancelButtonText
:
buttonName
.
cancel
,
confirmButtonText
:
buttonName
.
confirm
,
center
:
center
}
).
then
(()
=>
{
resolve
()
}).
catch
(()
=>
{
reject
()
MessageBox
.
alert
(
msg
,
title
,
{
dangerouslyUseHTMLString
:
true
,
showCancelButton
:
showCancelButton
,
type
:
"error"
,
cancelButtonText
:
buttonName
.
cancel
,
confirmButtonText
:
buttonName
.
confirm
,
center
:
center
,
})
})
.
then
(()
=>
{
resolve
();
})
.
catch
(()
=>
{
reject
();
});
});
}
export
function
alertInfoMsg
(
msg
,
title
=
''
,
showCancelButton
=
false
,
center
=
false
,
buttonName
=
{
confirm
:
'确定'
,
cancel
:
'取消'
})
{
export
function
alertInfoMsg
(
msg
,
title
=
""
,
showCancelButton
=
false
,
center
=
false
,
buttonName
=
{
confirm
:
"确定"
,
cancel
:
"取消"
}
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
MessageBox
.
alert
(
msg
,
title
,
{
dangerouslyUseHTMLString
:
true
,
showCancelButton
:
showCancelButton
,
type
:
'info'
,
cancelButtonText
:
buttonName
.
cancel
,
confirmButtonText
:
buttonName
.
confirm
,
center
:
center
}
).
then
(()
=>
{
resolve
()
}).
catch
(()
=>
{
reject
()
MessageBox
.
alert
(
msg
,
title
,
{
dangerouslyUseHTMLString
:
true
,
showCancelButton
:
showCancelButton
,
type
:
"info"
,
cancelButtonText
:
buttonName
.
cancel
,
confirmButtonText
:
buttonName
.
confirm
,
center
:
center
,
})
})
.
then
(()
=>
{
resolve
();
})
.
catch
(()
=>
{
reject
();
});
});
}
export
function
compare
(
prop
)
{
return
function
(
obj1
,
obj2
)
{
var
val1
=
obj1
[
prop
];
var
val2
=
obj2
[
prop
];
if
(
val1
<
val2
)
{
var
val2
=
obj2
[
prop
];
if
(
val1
<
val2
)
{
return
-
1
;
}
else
if
(
val1
>
val2
)
{
return
1
;
}
else
{
return
0
;
}
}
}
;
}
export
function
ctho
(
val
)
{
...
...
@@ -512,8 +566,8 @@ export function ctho(val) {
export
function
getNavigatorVersion
(
params
)
{
const
ua
=
navigator
.
userAgent
;
const
browser
=
{
name
:
'unknown'
,
version
:
'0'
name
:
"unknown"
,
version
:
"0"
,
};
// 主要浏览器及其版本号的正则表达式
...
...
@@ -549,7 +603,7 @@ export function getNavigatorVersion(params) {
const
match
=
ua
.
match
(
data
.
reg
);
if
(
match
)
{
browser
.
name
=
data
.
name
;
browser
.
version
=
match
[
1
]
||
'0'
;
browser
.
version
=
match
[
1
]
||
"0"
;
}
});
...
...
@@ -570,4 +624,4 @@ export function base64ConvertFile(urlData, filename) {
return
new
File
([
u8arr
],
filename
,
{
type
:
type
,
});
}
\ No newline at end of file
}
...
...
src/views/arrival-declare/index.vue
View file @
e133d49
...
...
@@ -147,6 +147,24 @@
离境单申报
</el-button>
</div>
<section style="position: fixed; top: 35%; right: 10%">
<TablePopover
ref="allLogDataStatusPopover"
dataKey="allLogDataStatus"
idKey="declareId"
:parentDom="$refs.entryTable"
:receiptDataHead="logDataHead"
:rowData="selectedLogRow"
:tableData="tableData"
@popoverChange="popoverChange"
@popoverClose="popoverClose"
>
<div slot="title">
<span style="font-weight: 700; color: #515a6e">提运单号:</span>
{{ selectedLogRow.billNo }}
</div>
</TablePopover>
</section>
<Table
class="fedexDetialTable fedexSreachTable"
ref="entryTable"
...
...
@@ -263,6 +281,15 @@
</div>
</TablePopover>
</template>
<template slot="optionColumn">
<el-table-column label="操作" width="80">
<template slot-scope="scope">
<el-button type="text" @click="showTotalLog(scope.row)">
日志
</el-button>
</template>
</el-table-column>
</template>
</Table>
<DialogVue
:outerVisible="outerVisible"
...
...
@@ -290,6 +317,7 @@ import {
declareDataUpload,
getLogisticsReceipt,
getTotalReceipt,
getTotalDocumentsLevelLog,
} from "@/api/declareData-api.js";
import DialogVue from "./dialog.vue";
import DataPreview from "../reportingData/data-preview.vue";
...
...
@@ -308,7 +336,7 @@ export default {
portList: [],
activePortType: false,
// 控制日志弹窗的显示和隐藏
allLogData
Receipt
StatusPopoverType: false,
allLogDataStatusPopoverType: false,
// 存储选中的日志数据
selectedLogRow: {},
selected: [],
...
...
@@ -325,6 +353,32 @@ export default {
total: 0,
},
tableData: [],
logDataHead: [
{
name: "回执类型",
value: "receiptType",
width: "",
align: "left",
},
{
name: "回执状态",
value: "receiptStatus",
width: "",
align: "left",
},
{
name: "状态时间",
value: "statusTime",
width: "",
align: "left",
},
{
name: "回执描述",
value: "receiptDescription",
width: "",
align: "left",
},
],
headerData: [
{
name: "提运单号",
...
...
@@ -422,6 +476,28 @@ export default {
this.searchPortDictData();
},
methods: {
//申报日志
showTotalLog(row) {
this.$store.state.viewOption.loadingDatas = true;
this.selectedLogRow = row;
this.$set(row, "logLoading", true);
this.receiptApi(row.declareId, "allLogDataStatus").then((logData) => {
this.$set(row, "popoverData", logData);
if (!this.selectedLogRow.popoverData.length) {
this.$store.state.viewOption.loadingDatas = false;
}
// 手动触发状态更新
this.$nextTick(() => {
// 强制设置弹窗状态为true
row.allLogDataStatusPopoverType = true;
// 强制更新表格
this.tableData = [...this.tableData];
});
});
},
//获取口岸子字典
searchPortDictData() {
getPortInfo()
...
...
@@ -530,7 +606,7 @@ export default {
item.totalReceiptStatusPopoverType = false;
item.popoverData = [];
});
this.selectedLogRow.allLogData
Receipt
StatusPopoverType = false;
this.selectedLogRow.allLogDataStatusPopoverType = false;
this.$refs.entryTable.$refs.tables.$refs.bodyWrapper.style.overflowY =
"auto";
},
...
...
@@ -594,6 +670,20 @@ export default {
console.log(err);
reject();
});
} else if (type == "allLogDataStatus") {
let objVal = { billNo: billNo };
getTotalDocumentsLevelLog(objVal)
.then((res) => {
if (res.code === "200") {
resolve(res.data);
} else {
reject();
}
})
.catch((err) => {
console.log(err);
reject();
});
}
});
},
...
...
@@ -618,6 +708,7 @@ export default {
this.$refs.arrivalInReceiptStatusPopover.tableLoading = false; //运抵单回执
this.$refs.logisticsDepartureReceiptStatusPopover.tableLoading = false; // 离境单回执
this.$refs.totalReceiptStatusPopover.tableLoading = false;
this.$refs.allLogDataStatusPopoverType = false;
});
});
},
...
...
@@ -697,7 +788,7 @@ export default {
// item.logLoading = false;
item.popoverData = [];
});
this.selectedLogRow.allLogData
Receipt
StatusPopoverType = false;
this.selectedLogRow.allLogDataStatusPopoverType = false;
} else {
this.alertWarningMsg(res.message);
}
...
...
@@ -752,8 +843,9 @@ export default {
.optionButton {
padding: 10px;
text-align: left;
text-align: right;
display: flex;
justify-content: flex-end;
.el-button.dropdown-style-button {
background-color: #ffffff !important;
border: 2px solid $fedexBottonColor !important; /* 设置边框颜色 */
...
...
src/views/customerConfig/dialog.vue
View file @
e133d49
...
...
@@ -216,8 +216,10 @@
</el-select>
</Formitem>
</el-col>
</el-row>
<el-row :gutter="5" v-if="formData.orderRequester == '2'">
<!-- 口岸选择-->
<el-col :span="8"
v-if="formData.orderRequester == '2'"
>
<el-col :span="8">
<Formitem label="申报地区" prop="choosePortCode" type="edit">
<el-select
type="text"
...
...
@@ -245,6 +247,54 @@
>
<div class="dlTitle">青岛</div>
<el-row :gutter="5">
<!-- 订单申报通道 orderDeclareChannel -->
<el-col :span="8" :key="dateKey">
<Formitem
label="订单申报通道"
prop="orderDeclareChannel"
type="edit"
>
<el-select
type="text"
id="inputInner-edit-orderDeclareChannel"
v-model="portConfig.TAO.orderDeclareChannel"
clearable
maxlength="4"
placeholder=""
@change="changeOrderDeclareChannel"
>
<el-option
v-for="(item, index) in $store.getters.dict
.ORDER_DECLARE_CHANNEL"
:key="index"
:label="item.itemChineseName"
:value="item.itemValue"
></el-option>
</el-select>
</Formitem>
</el-col>
<!-- 加签方式 -->
<el-col :span="8" :key="dateKey">
<Formitem label="加签方式" prop="methodOfSignature" type="edit">
<el-select
type="text"
id="inputInner-edit-methodOfSignature"
v-model="portConfig.TAO.methodOfSignature"
clearable
maxlength="4"
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict
.METHOD_OF_SIGNATURE"
:key="index"
:label="item.itemChineseName"
:value="item.itemValue"
></el-option>
</el-select>
</Formitem>
</el-col>
<!-- 公服DXPID -->
<el-col
:span="8"
...
...
@@ -359,53 +409,6 @@
></el-input>
</Formitem>
</el-col>
<!-- 加签方式 -->
<el-col :span="8" :key="dateKey">
<Formitem label="加签方式" prop="methodOfSignature" type="edit">
<el-select
type="text"
id="inputInner-edit-methodOfSignature"
v-model="portConfig.TAO.methodOfSignature"
clearable
maxlength="4"
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict
.METHOD_OF_SIGNATURE"
:key="index"
:label="item.itemChineseName"
:value="item.itemValue"
></el-option>
</el-select>
</Formitem>
</el-col>
<!-- 订单申报通道 orderDeclareChannel -->
<el-col :span="8" :key="dateKey">
<Formitem
label="订单申报通道"
prop="orderDeclareChannel"
type="edit"
>
<el-select
type="text"
id="inputInner-edit-orderDeclareChannel"
v-model="portConfig.TAO.orderDeclareChannel"
clearable
maxlength="4"
placeholder=""
@change="changeOrderDeclareChannel"
>
<el-option
v-for="(item, index) in $store.getters.dict
.ORDER_DECLARE_CHANNEL"
:key="index"
:label="item.itemChineseName"
:value="item.itemValue"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col
:span="16"
...
...
@@ -983,6 +986,13 @@ export default {
message: "订单申报方不能为空!",
},
],
declareBusinessType: [
{
required: true,
trigger: "change",
message: "申报业务类型不能为空!",
},
],
// methodOfSignature: [
// {
...
...
src/views/exportListQuery/index.vue
View file @
e133d49
...
...
@@ -88,7 +88,7 @@
</el-col>
</el-row>
<el-row>
<!-- 电商企业
代码
-->
<!-- 电商企业
名称
-->
<el-col :span="5">
<Formitem label="电商企业名称" prop="ebcName">
<el-input
...
...
@@ -173,7 +173,7 @@
@click="customDialogShow = true"
>
<svg-icon class="el-icon-user-solid" icon-class="zidingyi"></svg-icon>
自定义内容
导出字段
</el-button>
<el-button
...
...
@@ -241,6 +241,7 @@
<script>
import { getAllexportList, getListReceiptData } from "@/api/exportList-api.js";
import CustomDialog from "./custom-dialog.vue";
import { formatDateNew } from "../../utils";
export default {
name: "ExportBillQuery",
...
...
@@ -453,8 +454,9 @@ export default {
// // 2. 清单查询
// console.log(res);
// });
const fileName = `${formatDateNew(new Date())}.xlsx`;
this.fileDownload
.downLoadZip("api", "listExport",
"清单查询.xlsx"
, "xlsx", "post", {
.downLoadZip("api", "listExport",
fileName
, "xlsx", "post", {
...obj,
})
.finally(() => {
...
...
src/views/hs-code/index.vue
View file @
e133d49
...
...
@@ -36,7 +36,7 @@
</el-col>
<!-- 创建时间 -->
<el-col :span="5">
<Formitem label="
操作
时间" prop="createTime" :activeType="true">
<Formitem label="
更新
时间" prop="createTime" :activeType="true">
<el-date-picker
class="inputInner--createTime"
id="inputInner-edit-createTime"
...
...
@@ -139,24 +139,25 @@
:selected="selected"
@close="dialogClose"
/>
<!-- -->
<TimeDialog :timeVisible="timeVisible" @close="timeClose" />
</div>
</template>
<script>
import {
getHsCodeList,
getHsCodeIncr,
getHsCodeSingleSync,
} from "@/api/arrivalList-api.js";
import { getHsCodeList, getHsCodeSingleSync } from "@/api/arrivalList-api.js";
import DialogVue from "./dialog.vue";
import TimeDialog from "./time-dialog.vue";
export default {
name: "SupervisePlaceManage",
components: {
DialogVue,
TimeDialog,
},
data() {
return {
selected: {},
timeVisible: false,
sreachFormData: {
skuCode: "",
skuname: "",
...
...
@@ -289,32 +290,39 @@ export default {
console.log("finally");
});
},
timeClose() {
console.log("===");
this.loadings.postLoading = false;
this.timeVisible = false;
},
addDeclare() {
this.loadings.postLoading = true;
this.$confirm("是否确认操作增量数据同步?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
getHsCodeIncr()
.then((res) => {
if (res.code === "200") {
this.alertSuccessMsg(res.message);
} else {
this.alertWarningMsg(res.message);
}
this.loadings.postLoading = false;
})
.catch((err) => {
console.log(err);
this.loadings.postLoading = false;
})
.finally(() => {
// console.log("finally");
});
})
.catch(() => {});
this.timeVisible = true;
// loadings.postLoading
// this.$confirm("是否确认操作增量数据同步?", "提示", {
// confirmButtonText: "确定",
// cancelButtonText: "取消",
// type: "warning",
// })
// .then(() => {
// getHsCodeIncr()
// .then((res) => {
// if (res.code === "200") {
// this.alertSuccessMsg(res.message);
// } else {
// this.alertWarningMsg(res.message);
// }
// this.loadings.postLoading = false;
// })
// .catch((err) => {
// console.log(err);
// this.loadings.postLoading = false;
// })
// .finally(() => {
// // console.log("finally");
// });
// })
// .catch(() => {});
},
detail(record) {
this.selected = JSON.parse(JSON.stringify(record));
...
...
src/views/hs-code/time-dialog.vue
0 → 100644
View file @
e133d49
<template>
<el-dialog
class="entryDialog classCUploadDialog"
title="增量数据同步"
:visible.sync="timeVisibleConfig"
:show-close="false"
width="450px"
:close-on-click-modal="false"
:destroy-on-close="true"
v-loading="loadings.dialogLoading"
@close="close(false)"
>
<div class="modelItem" style="margin-bottom: 10px">
<el-form
class="fedexFormStyle"
ref="formData"
:model="formData"
label-position="top"
size="small"
:rules="rules"
>
<el-row :gutter="5">
<el-col :span="24">
<Formitem label="同步日期" prop="beginDate" type="edit">
<el-date-picker
class="inputInner--beginDate"
id="inputInner-edit-beginDate"
v-model="formData.beginDate"
format="yyyy-MM-dd"
prefix-icon="none"
value-format="yyyy-MM-dd"
/>
</Formitem>
</el-col>
</el-row>
</el-form>
</div>
<div class="dialogOption entrySave">
<el-button
class="entrySaveButton"
:disabled="loadings.submitLoading"
@click="submit"
>确 定</el-button
>
<el-button class="entrySaveButton" @click="close(false)">关 闭</el-button>
</div>
</el-dialog>
</template>
<script>
import { getHsCodeIncr } from "@/api/arrivalList-api.js";
import { getYesterday } from "@/utils/index.js";
export default {
props: {
timeVisible: {
type: Boolean,
default: false,
},
},
data() {
return {
formData: {
beginDate: "",
},
timeVisibleConfig: false,
loadings: {
dialogLoading: false,
submitLoading: false,
},
loadingText: "",
logisticsTotal: 0,
rules: {
beginDate: [
{
required: true,
trigger: "change",
message: "同步日期不能为空!",
},
],
},
};
},
watch: {
timeVisible(val) {
if (val) {
console.log(getYesterday().substring(0, 10));
const time = getYesterday().substring(0, 10);
this.timeVisibleConfig = val;
this.formData = {
beginDate: time,
};
}
},
},
methods: {
//数据保存
submit() {
let obj = {
...this.formData,
};
this.$refs.formData.validate((valid) => {
if (valid) {
this.addapi(obj);
}
});
},
//新增 getHsCodeIncr
addapi(val) {
this.loadings.dialogLoading = true;
getHsCodeIncr(val)
.then((res) => {
if (res.code === "200") {
this.msgSuccess(res.message);
this.close(true);
} else {
this.alertWarningMsg(res.message);
this.loadings.dialogLoading = false;
}
})
.catch((err) => {
console.log(err);
this.loadings.dialogLoading = false;
});
},
close(flag) {
this.formData = {
beginDate: "",
};
this.loadings.dialogLoading = false;
this.timeVisibleConfig = false;
this.$emit("close", flag);
},
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/styles/variables.scss";
</style>
src/views/reportingData/index.vue
View file @
e133d49
...
...
@@ -100,6 +100,20 @@
</el-col>
</el-row>
<el-row class="backgroundRow">
<!-- 电商企业名称 -->
<el-col :span="5">
<Formitem label="电商企业名称" prop="ebcName">
<el-input
type="text"
class="inputShadow"
id="inputInner--ebcName"
resize="none"
v-model="sreachFormData.ebcName"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 创建时间 -->
<el-col :span="5">
<Formitem label="创建时间" prop="createTime" :activeType="true">
...
...
@@ -273,7 +287,7 @@
</el-button>
</div>
</div>
<section style="position: fixed; top: 35
0px; left: 500px
">
<section style="position: fixed; top: 35
%; right: 10%
">
<TablePopover
ref="allLogDataReceiptStatusPopover"
dataKey="allLogDataReceiptStatus"
...
...
@@ -292,7 +306,7 @@
</TablePopover>
</section>
<Table
class="fedexDetialTable fedexSreachTable"
class="fedexDetialTable fedexSreachTable
fedexTable_new
"
ref="entryTable"
:data="tableData"
:headerData="headerData"
...
...
@@ -312,6 +326,8 @@
:rowSelectDataType="false"
@cellClick="cellClick"
:selected="selected"
@filterChange="filterChange"
rowKey="declareId"
>
<template v-slot:orderReceiptStatus="scope">
<TablePopover
...
...
@@ -326,8 +342,8 @@
@popoverClose="popoverClose"
>
<div slot="title">
<span style="font-weight: 700; color: #515a6e">订单编号:</span
>
{{ scope.row.orderno }}
<span style="font-weight: 700; color: #515a6e">订单编号:</span
>
{{ scope.row.orderno }}
</div>
<div slot="buttonLabel">
{{ scope.row.orderReceiptStatus }}
...
...
@@ -440,7 +456,7 @@
</TablePopover>
</template>
<template slot="optionColumn">
<el-table-column
align="center" label="操作" width="15
0">
<el-table-column
label="操作" width="12
0">
<template slot-scope="scope">
<el-button type="text" @click="update(scope.row)"> 修改 </el-button>
<el-button type="text" @click="showTotalLog(scope.row)">
...
...
@@ -548,6 +564,7 @@ export default {
receiptType: null,
createTime: [],
dataSource: [],
ebcName: "",
},
page: {
pageIndex: 1,
...
...
@@ -555,6 +572,7 @@ export default {
total: 0,
},
tableData: [],
orderStatus: [],
headerData: [
{
name: "提运单号",
...
...
@@ -598,6 +616,46 @@ export default {
width: "",
align: "left",
slot: true,
columnKey: "orderReceiptStatus",
filters: [
{
text: "已提交",
value: "0",
},
{
text: "xml报文加签失败",
value: "-2",
},
{
text: "xml报文上传失败",
value: "-3",
},
{
text: "电子口岸申报中",
value: "2",
},
{
text: "发送海关成功",
value: "3",
},
{
text: "发送海关失败",
value: "4",
},
{
text: "海关退单",
value: "100",
},
{
text: "海关入库",
value: "120",
},
{
text: "回执异常",
value: "-1",
},
],
// filterMethod: this.filterMethodFn,
},
// {
// name: "收款单回执",
...
...
@@ -636,13 +694,13 @@ export default {
// align: "left",
// slot: true,
// },
{
name: "离境单回执",
value: "logisticsReceiptStatus",
width: "",
align: "left",
slot: true,
},
//
{
//
name: "离境单回执",
//
value: "logisticsReceiptStatus",
//
width: "",
//
align: "left",
//
slot: true,
//
},
],
receiptDataHead: [
{
...
...
@@ -759,6 +817,11 @@ export default {
});
},
methods: {
filterChange(value) {
this.orderStatus = value.orderReceiptStatus;
console.log(value, this.orderStatus);
this.search(0);
},
//获取口岸子字典
searchPortDictData() {
getPortInfo()
...
...
@@ -855,6 +918,7 @@ export default {
obj.startCreateTime = obj.createTime[0];
obj.endCreateTime = obj.createTime[1];
}
obj.orderStatus = this.orderStatus;
searchDeclareData(obj)
.then((res) => {
if (res.code === "200") {
...
...
@@ -892,6 +956,7 @@ export default {
receiptType: null,
createTime: [],
dataSource: [],
ebcName: "",
};
this.clearPort();
this.clearStatus();
...
...
@@ -1381,4 +1446,17 @@ export default {
margin-right: 30px;
}
}
::v-deep {
.fedexTable_new {
.el-table th.el-table__cell > .cell {
display: flex;
align-items: center;
gap: 30px;
justify-content: space-between;
&.highlight {
color: #007ab7;
}
}
}
}
</style>
...
...
Please
register
or
login
to post a comment