Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dsk-cr20g
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
dsk-cr20g
Commits
aa2d062f
Commit
aa2d062f
authored
Oct 12, 2023
by
danfuman
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'V20230915' of
http://192.168.60.201/root/dsk-operate-sys
into V20230915
parents
09206da7
d25c54e2
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
265 additions
and
227 deletions
+265
-227
index.js
dsk-operate-ui/src/utils/index.js
+125
-112
index.vue
dsk-operate-ui/src/views/detail/party-a/index.vue
+2
-1
MajorProject.vue
...erate-ui/src/views/detail/party-a/opport/MajorProject.vue
+1
-1
index.vue
.../views/enterpriseData/components/searchTheOwner/index.vue
+137
-113
No files found.
dsk-operate-ui/src/utils/index.js
View file @
aa2d062f
import
{
parseTime
}
from
'./ruoyi'
import
{
parseTime
}
from
'./ruoyi'
;
/**
* 表格时间格式化
*/
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
;
}
/**
...
...
@@ -22,27 +22,27 @@ export function formatDate(cellValue) {
*/
export
function
formatTime
(
time
,
option
)
{
if
((
''
+
time
).
length
===
10
)
{
time
=
parseInt
(
time
)
*
1000
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
()
+
...
...
@@ -54,7 +54,7 @@ export function formatTime(time, option) {
'时'
+
d
.
getMinutes
()
+
'分'
)
)
;
}
}
...
...
@@ -63,18 +63,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
;
}
/**
...
...
@@ -83,14 +83,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
>=
0xDC00
&&
code
<=
0xDFFF
)
i
--
const
code
=
str
.
charCodeAt
(
i
)
;
if
(
code
>
0x7f
&&
code
<=
0x7ff
)
s
++
;
else
if
(
code
>
0x7ff
&&
code
<=
0xffff
)
s
+=
2
;
if
(
code
>=
0xDC00
&&
code
<=
0xDFFF
)
i
--
;
}
return
s
return
s
;
}
/**
...
...
@@ -98,13 +98,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
;
}
/**
...
...
@@ -112,13 +112,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
])
if
(
json
[
key
]
===
undefined
)
return
''
;
return
encodeURIComponent
(
key
)
+
'='
+
encodeURIComponent
(
json
[
key
])
;
})
).
join
(
'&'
)
).
join
(
'&'
)
;
}
/**
...
...
@@ -126,21 +126,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
(
'&'
)
const
obj
=
{}
;
const
searchArr
=
search
.
split
(
'&'
)
;
searchArr
.
forEach
(
v
=>
{
const
index
=
v
.
indexOf
(
'='
)
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
;
}
/**
...
...
@@ -148,9 +148,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
;
}
/**
...
...
@@ -161,20 +161,20 @@ export function html2Text(val) {
*/
export
function
objectMerge
(
target
,
source
)
{
if
(
typeof
target
!==
'object'
)
{
target
=
{}
target
=
{}
;
}
if
(
Array
.
isArray
(
source
))
{
return
source
.
slice
()
return
source
.
slice
()
;
}
Object
.
keys
(
source
).
forEach
(
property
=>
{
const
sourceProperty
=
source
[
property
]
const
sourceProperty
=
source
[
property
]
;
if
(
typeof
sourceProperty
===
'object'
)
{
target
[
property
]
=
objectMerge
(
target
[
property
],
sourceProperty
)
target
[
property
]
=
objectMerge
(
target
[
property
],
sourceProperty
)
;
}
else
{
target
[
property
]
=
sourceProperty
target
[
property
]
=
sourceProperty
;
}
})
return
target
})
;
return
target
;
}
/**
...
...
@@ -183,18 +183,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
;
}
/**
...
...
@@ -203,9 +203,9 @@ export function toggleClass(element, className) {
*/
export
function
getTime
(
type
)
{
if
(
type
===
'start'
)
{
return
new
Date
().
getTime
()
-
3600
*
1000
*
24
*
90
return
new
Date
().
getTime
()
-
3600
*
1000
*
24
*
90
;
}
else
{
return
new
Date
(
new
Date
().
toDateString
())
return
new
Date
(
new
Date
().
toDateString
())
;
}
}
...
...
@@ -216,38 +216,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
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
return
function
(...
args
)
{
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
;
}
;
}
/**
...
...
@@ -259,17 +259,17 @@ export function debounce(func, wait, immediate) {
*/
export
function
deepClone
(
source
)
{
if
(
!
source
&&
typeof
source
!==
'object'
)
{
throw
new
Error
(
'error arguments'
,
'deepClone'
)
throw
new
Error
(
'error arguments'
,
'deepClone'
)
;
}
const
targetObj
=
source
.
constructor
===
Array
?
[]
:
{}
const
targetObj
=
source
.
constructor
===
Array
?
[]
:
{}
;
Object
.
keys
(
source
).
forEach
(
keys
=>
{
if
(
source
[
keys
]
&&
typeof
source
[
keys
]
===
'object'
)
{
targetObj
[
keys
]
=
deepClone
(
source
[
keys
])
targetObj
[
keys
]
=
deepClone
(
source
[
keys
])
;
}
else
{
targetObj
[
keys
]
=
source
[
keys
]
targetObj
[
keys
]
=
source
[
keys
]
;
}
})
return
targetObj
})
;
return
targetObj
;
}
/**
...
...
@@ -277,16 +277,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
)
;
}
/**
...
...
@@ -296,7 +296,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|$)'
))
;
}
/**
...
...
@@ -305,7 +305,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
;
}
/**
...
...
@@ -315,23 +315,23 @@ 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
]
:
val
=>
map
[
val
]
;
}
export
const
exportDefault
=
'export default '
export
const
exportDefault
=
'export default '
;
export
const
beautifierConf
=
{
html
:
{
...
...
@@ -372,19 +372,32 @@ export const beautifierConf = {
e4x
:
true
,
indent_empty_lines
:
true
}
}
}
;
// 首字母大小
export
function
titleCase
(
str
)
{
return
str
.
replace
(
/
(
|^
)[
a-z
]
/g
,
L
=>
L
.
toUpperCase
())
return
str
.
replace
(
/
(
|^
)[
a-z
]
/g
,
L
=>
L
.
toUpperCase
())
;
}
// 下划转驼峰
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
toHump
(
lineStr
)
{
return
lineStr
.
replace
(
/
\_(\w)
/g
,
(
all
,
letter
)
=>
letter
.
toUpperCase
());
}
/**
* 驼峰转下划线
* @param {string} humpStr
* @returns
*/
export
function
toLine
(
humpStr
)
{
return
humpStr
.
replace
(
/
([
A-Z
])
/g
,
"_$1"
).
toLowerCase
();
}
export
function
isNumberStr
(
str
)
{
return
/^
[
+-
]?(
0|
([
1-9
]\d
*
))(\.\d
+
)?
$/g
.
test
(
str
)
return
/^
[
+-
]?(
0|
([
1-9
]\d
*
))(\.\d
+
)?
$/g
.
test
(
str
)
;
}
dsk-operate-ui/src/views/detail/party-a/index.vue
View file @
aa2d062f
...
...
@@ -367,7 +367,8 @@ export default {
}
else
{
this
.
$nextTick
(()
=>
{
this
.
isCompany
=
true
;
this
.
currentPath
.
pathName
=
'overview'
;
// this.currentPath.pathName = 'overview';
this
.
currentPath
.
pathName
=
this
.
$routes
.
query
.
path
;
});
}
},
...
...
dsk-operate-ui/src/views/detail/party-a/opport/MajorProject.vue
View file @
aa2d062f
...
...
@@ -6,7 +6,7 @@
<tables
v-else
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<template
slot=
"projectName"
slot-scope=
"scope"
>
<router-link
:to=
"`/radar/
Land/details/$
{scope.row.id}`" tag="a" class="a-link" v-if="scope.row.i
d
&&
scope.row.projectName "
<router-link
:to=
"`/radar/
MajorProject/details/$
{scope.row.md5Id}`" tag="a" class="a-link" v-if="scope.row.md5I
d
&&
scope.row.projectName "
v-html="scope.row.projectName">
</router-link>
<div
v-else
v-html=
"scope.row.projectName || '--'"
></div>
</
template
>
...
...
dsk-operate-ui/src/views/enterpriseData/components/searchTheOwner/index.vue
View file @
aa2d062f
...
...
@@ -111,10 +111,10 @@
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<div
class=
"table-item-jf table-item"
v-if=
"!isSkeleton&&tableData.length>0"
@
mouseleave=
"showClaim = false"
>
<div
class=
"table-item-jf table-item"
v-if=
"!isSkeleton&&tableData.length>0"
>
<el-table
:data=
"tableData"
:header-cell-style=
"{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}"
v-horizontal-scroll=
"'hover'"
class=
"table-item1 fixed-table"
border
highlight-current-row
:header-row-class-name=
"setHeaderRow"
:cell-class-name=
"setCellClass"
:header-cell-class-name=
"setCellClass"
@
cell-mouse-enter=
"addColumnClass"
@
sort-change=
"sortChange"
>
:header-cell-class-name=
"setCellClass"
@
sort-change=
"sortChange"
>
<el-table-column
type=
"index"
label=
"序号"
fixed
width=
"60"
:resizable=
"false"
>
<
template
slot-scope=
"scope"
>
...
...
@@ -124,11 +124,13 @@
<el-table-column
label=
"公司名称"
fixed
width=
"380"
:resizable=
"false"
>
<
template
slot-scope=
"scope"
>
<div
class=
"renling"
:class=
"
{'show-claim' : showClaim}">
<router-link
:to=
"scope.row.uipId ? `/enterprise/$
{encodeStr(scope.row.id)}` : `/company/${encodeStr(scope.row.id)}`" tag="a"
class="list-titel-a" v-html="scope.row.name">
</router-link>
<!-- 优质甲方tag标签 -->
<div
class=
"high-quality-enterprise"
v-if=
"scope.row.other"
>
{{
scope
.
row
.
other
}}
</div>
<div
class=
"renling"
>
<div
style=
"display:flex;flex-align:center"
>
<router-link
:to=
"scope.row.other ? `/enterprise/$
{encodeStr(scope.row.id)}` : `/company/${encodeStr(scope.row.id)}`" tag="a"
class="list-titel-a" v-html="scope.row.name">
</router-link>
<!-- 优质甲方tag标签 -->
<div
class=
"high-quality-enterprise"
v-if=
"scope.row.other"
>
{{
scope
.
row
.
other
}}
</div>
</div>
<div
class=
"renling-btn"
@
click=
"claimbtn(scope.row)"
>
<p
v-if=
"scope.row.claimStatus==0"
class=
"renling-img-true"
></p>
<p
v-else
class=
"renling-img-false"
></p>
...
...
@@ -145,86 +147,93 @@
</el-table-column>
<el-table-column
label=
"法定代表人"
width=
"85"
:resizable=
"false"
>
<el-table-column
label=
"法定代表人"
min-
width=
"85"
:resizable=
"false"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
legalPerson
||
"--"
}}
</
template
>
</el-table-column>
<el-table-column
label=
"注册资本"
width=
"118"
:resizable=
"false"
:sortable=
"'custom'"
prop=
"registeredCapitalStr"
>
<el-table-column
label=
"注册资本"
min-
width=
"118"
:resizable=
"false"
:sortable=
"'custom'"
prop=
"registeredCapitalStr"
>
<
template
slot-scope=
"scope"
>
<div
style=
"text-align:right;white-space: nowrap;"
>
{{
scope
.
row
.
registeredCapitalStr
?
`${scope.row.registeredCapitalStr
}
万元`
:
"--"
}}
<div
style=
"text-align:right;white-space: nowrap;"
>
{{
parseFloat
(
scope
.
row
.
registeredCapitalStr
)
?
`${scope.row.registeredCapitalStr
}
万元`
:
"--"
}}
<
/div
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"企业注册地区"
width
=
"215"
:
resizable
=
"false"
>
<
el
-
table
-
column
label
=
"企业注册地区"
min
-
width
=
"215"
:
resizable
=
"false"
>
<
template
slot
-
scope
=
"scope"
>
{{
scope
.
row
.
domicile
||
"--"
}}
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"历史发包数量"
width
=
"107"
:
resizable
=
"false"
:
sortable
=
"'custom'"
prop
=
"inviteTenderCount"
>
<
el
-
table
-
column
label
=
"历史发包数量"
min
-
width
=
"107"
:
resizable
=
"false"
:
sortable
=
"'custom'"
prop
=
"inviteTenderCount"
>
<
template
slot
-
scope
=
"scope"
>
{{
scope
.
row
.
inviteTenderCount
?
`${scope.row.inviteTenderCount
}
个`
:
"--"
}}
<
router
-
link
v
-
if
=
"scope.row.inviteTenderCount"
:
to
=
"scope.row.other ? `/enterprise/${encodeStr(scope.row.id)
}
?path=hiscontract` : `/company/${encodeStr(scope.row.id)
}
?path=hiscontract`"
tag
=
"a"
class
=
"list-titel-a"
>
{{
scope
.
row
.
inviteTenderCount
?
`${scope.row.inviteTenderCount
}
个`
:
"--"
}}
<
/router-link
>
<
span
v
-
else
>--<
/span
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"历史发包总金额"
width
=
"120"
:
resizable
=
"false"
:
sortable
=
"'custom'"
prop
=
"inviteTenderSumAmount"
>
<
el
-
table
-
column
label
=
"历史发包总金额"
min
-
width
=
"120"
:
resizable
=
"false"
:
sortable
=
"'custom'"
prop
=
"inviteTenderSumAmount"
>
<
template
slot
-
scope
=
"scope"
>
<
div
style
=
"text-align:right;white-space: nowrap;"
>
{{
scope
.
row
.
inviteTenderSumAmount
?
`${scope.row.inviteTenderSumAmount
}
万元`
:
"--"
}}
<
/div
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"最近一次招标"
width
=
"107"
:
resizable
=
"false"
:
sortable
=
"'custom'"
prop
=
"inviteTenderLastTime"
>
<
el
-
table
-
column
label
=
"最近一次招标"
min
-
width
=
"107"
:
resizable
=
"false"
:
sortable
=
"'custom'"
prop
=
"inviteTenderLastTime"
>
<
template
slot
-
scope
=
"scope"
>
{{
scope
.
row
.
inviteTenderLastTime
||
"--"
}}
<
router
-
link
v
-
if
=
"scope.row.inviteTenderLastTime"
:
to
=
"scope.row.other ? `/enterprise/${encodeStr(scope.row.id)
}
?path=announcement` : `/company/${encodeStr(scope.row.id)
}
?path=announcement`"
tag
=
"a"
class
=
"list-titel-a"
>
{{
scope
.
row
.
inviteTenderLastTime
||
"--"
}}
<
/router-link
>
<
span
v
-
else
>--<
/span
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"重点项目"
width
=
"107"
:
resizable
=
"false"
:
sortable
=
"'custom'"
prop
=
"importantProjectCount"
>
<
el
-
table
-
column
label
=
"重点项目"
min
-
width
=
"107"
:
resizable
=
"false"
:
sortable
=
"'custom'"
prop
=
"importantProjectCount"
>
<
template
slot
-
scope
=
"scope"
>
<
router
-
link
v
-
if
=
"scope.row.importantProjectCount"
:
to
=
"scope.row.
uipId
? `/enterprise/${encodeStr(scope.row.id)
}
?path=majorProject` : `/company/${encodeStr(scope.row.id)
}
?path=majorProject`"
:
to
=
"scope.row.
other
? `/enterprise/${encodeStr(scope.row.id)
}
?path=majorProject` : `/company/${encodeStr(scope.row.id)
}
?path=majorProject`"
tag
=
"a"
class
=
"list-titel-a"
>
{{
`${scope.row.importantProjectCount
}
个`
}}
<
/router-link
>
<
span
v
-
else
>--<
/span
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"土地交易"
width
=
"107"
:
resizable
=
"false"
:
sortable
=
"'custom'"
prop
=
"landMarketCount"
>
<
!--
<
el
-
table
-
column
label
=
"土地交易"
width
=
"107"
:
resizable
=
"false"
:
sortable
=
"'custom'"
prop
=
"landMarketCount"
>
<
template
slot
-
scope
=
"scope"
>
<
router
-
link
v
-
if
=
"scope.row.landMarketCount"
:
to
=
"scope.row.
uipId ? `/enterprise/${encodeStr(scope.row.id)
}
?path=landMarketCount` : `/company/${encodeStr(scope.row.id)
}
?path=landMarketCount
`"
:
to
=
"scope.row.
other ? `/enterprise/${encodeStr(scope.row.id)
}
?path=landtransaction` : `/company/${encodeStr(scope.row.id)
}
?path=landtransaction
`"
tag
=
"a"
class
=
"list-titel-a"
>
{{
`${scope.row.landMarketCount
}
个`
}}
<
/router-link
>
<
span
v
-
else
>--<
/span
>
<
/template
>
<
/el-table-column
>
<
/el-table-column>
--
>
<
el
-
table
-
column
label
=
"拟建项目"
width
=
"107"
:
resizable
=
"false"
:
sortable
=
"'custom'"
prop
=
"approvalProjectCount"
>
<
el
-
table
-
column
label
=
"拟建项目"
min
-
width
=
"107"
:
resizable
=
"false"
:
sortable
=
"'custom'"
prop
=
"approvalProjectCount"
>
<
template
slot
-
scope
=
"scope"
>
<
router
-
link
v
-
if
=
"scope.row.approvalProjectCount"
:
to
=
"scope.row.
uipId ? `/enterprise/${encodeStr(scope.row.id)
}
?path=approvalProjectCount` : `/company/${encodeStr(scope.row.id)
}
?path=approvalProjectCount
`"
:
to
=
"scope.row.
other ? `/enterprise/${encodeStr(scope.row.id)
}
?path=proposed` : `/company/${encodeStr(scope.row.id)
}
?path=proposed
`"
tag
=
"a"
class
=
"list-titel-a"
>
{{
`${scope.row.approvalProjectCount
}
个`
}}
<
/router-link
>
<
span
v
-
else
>--<
/span
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"招标计划"
width
=
"107"
:
resizable
=
"false"
:
sortable
=
"'custom'"
prop
=
"bidPlanCount"
>
<
el
-
table
-
column
label
=
"招标计划"
min
-
width
=
"107"
:
resizable
=
"false"
:
sortable
=
"'custom'"
prop
=
"bidPlanCount"
>
<
template
slot
-
scope
=
"scope"
>
<
router
-
link
v
-
if
=
"scope.row.bidPlanCount"
:
to
=
"scope.row.
uipId ? `/enterprise/${encodeStr(scope.row.id)
}
?path=bidPlanCount` : `/company/${encodeStr(scope.row.id)
}
?path=bidPlanCount
`"
:
to
=
"scope.row.
other ? `/enterprise/${encodeStr(scope.row.id)
}
?path=biddingplan` : `/company/${encodeStr(scope.row.id)
}
?path=biddingplan
`"
tag
=
"a"
class
=
"list-titel-a"
>
{{
`${scope.row.bidPlanCount
}
个`
}}
<
/router-link
>
<
span
v
-
else
>--<
/span
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"招标公告"
width
=
"107"
:
resizable
=
"false"
:
sortable
=
"'custom'"
prop
=
"jskBidCount"
>
<
el
-
table
-
column
label
=
"招标公告"
min
-
width
=
"107"
:
resizable
=
"false"
:
sortable
=
"'custom'"
prop
=
"jskBidCount"
>
<
template
slot
-
scope
=
"scope"
>
<
router
-
link
v
-
if
=
"scope.row.jskBidCount"
:
to
=
"scope.row.
uipId ? `/enterprise/${encodeStr(scope.row.id)
}
?path=majorProject` : `/company/${encodeStr(scope.row.id)
}
?path=majorProjec
t`"
:
to
=
"scope.row.
other ? `/enterprise/${encodeStr(scope.row.id)
}
?path=announcement` : `/company/${encodeStr(scope.row.id)
}
?path=announcemen
t`"
tag
=
"a"
class
=
"list-titel-a"
>
{{
`${scope.row.jskBidCount
}
个`
}}
<
/router-link
>
<
span
v
-
else
>--<
/span
>
<
/template
>
...
...
@@ -233,7 +242,7 @@
<
/el-table
>
<
/div
>
<
div
class
=
"pagination clearfix"
v
-
show
=
"total>0"
>
<
el
-
pagination
background
:
page
-
size
=
"pageSize"
:
current
-
page
=
"pageNum"
@
current
-
change
=
"handleCurrentChange"
layout
=
"prev, pager, next"
<
el
-
pagination
background
:
page
-
size
=
"pageSize"
:
current
-
page
.
sync
=
"pageNum"
@
current
-
change
=
"handleCurrentChange"
layout
=
"prev, pager, next"
:
total
=
"total"
>
<
/el-pagination
>
<
/div
>
...
...
@@ -273,7 +282,7 @@ import jsk_data from '../../../../../public/jsk.json';
import
skeleton
from
'@/views/project/projectList/component/skeleton'
;
import
api
from
'@/api/enterpriseData/enterpriseData.js'
;
import
"@/assets/styles/public.scss"
;
import
dayjs
from
"dayjs
"
;
import
{
toLine
}
from
"@/utils/
"
;
export
default
{
name
:
'searchTheOwner'
,
components
:
{
skeleton
}
,
...
...
@@ -311,36 +320,33 @@ export default {
sort
:
''
,
//查询结果排序方式
// 展示认领状态
showClaim
:
false
,
// 默认排序方式
order
:
"desc"
,
fieldOptions
:
[{
key
:
""
,
value
:
"默认排序"
,
status
:
true
,
}
,
{
key
:
"invite_tender_sum_amount"
,
value
:
"招标总金额"
,
status
:
false
,
}
,
{
key
:
"land_market_count"
,
value
:
"
土地交易
"
,
value
:
"
按土地交易签订日期从近到远
"
,
status
:
false
,
}
,
{
key
:
"approval_project_count"
,
value
:
"
拟建
"
,
value
:
"
按拟建项目审批时间从近到远
"
,
status
:
false
,
}
,
{
key
:
"important_project_count"
,
value
:
"
重点项目
"
,
value
:
"
按重点项目清单从多到少
"
,
status
:
false
,
}
,
{
key
:
"invite_tender_last_time"
,
value
:
"
招标时间
"
,
value
:
"
按招标时间从近到远
"
,
status
:
false
,
}
,
}
],
companyId
:
''
,
companyName
:
''
,
...
...
@@ -385,32 +391,88 @@ export default {
created
()
{
this
.
init
();
}
,
beforeDestroy
()
{
const
dom
=
document
.
querySelector
(
".owner-table-list-header"
);
if
(
dom
)
{
dom
.
removeEventListener
(
"mouseover"
,
this
.
headerMouseover
,
false
);
}
}
,
methods
:
{
// 生成查询条件
createSearchConditions
()
{
// 默认传递参数
let
params
=
{
aptitudeQueryDto
:
{
}
,
page
:
{
page
:
this
.
pageNum
,
limit
:
this
.
pageSize
,
order
:
this
.
order
,
field
:
this
.
sort
}
}
;
let
data
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
// 搜索关键词处理
if
(
this
.
keys
)
{
params
.
aptitudeQueryDto
[
'ename'
]
=
this
.
keys
;
}
// 处理地区选择
if
(
data
.
provinceIds
.
length
>
0
)
{
params
.
aptitudeQueryDto
[
'province'
]
=
data
.
provinceIds
.
join
(
","
);
}
if
(
data
.
cityIds
.
length
>
0
)
{
params
.
aptitudeQueryDto
[
'city'
]
=
data
.
cityIds
.
join
(
","
);
}
if
(
data
.
areaIds
.
length
>
0
)
{
params
.
aptitudeQueryDto
[
'county'
]
=
data
.
areaIds
.
join
(
","
);
}
// 业主标签选中处理
if
(
this
.
currentOwnerLabels
.
length
>
0
)
{
params
.
aptitudeQueryDto
[
"tagCode"
]
=
this
.
currentOwnerLabels
.
join
(
","
);
}
// 选中大于等于两个业主标签 添加 任意均可 或 同时具备条件
if
(
this
.
currentOwnerLabels
.
length
>=
2
)
{
params
.
aptitudeQueryDto
[
"tagCodeQueryType"
]
=
this
.
tagCodeQueryType
;
}
return
params
;
}
,
// 排序
sortChange
({
column
,
prop
,
order
}
)
{
const
originArray
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
tableData
));
this
.
tableData
=
originArray
.
sort
((
a
,
b
)
=>
{
let
preposition
=
a
[
prop
];
let
postposition
=
b
[
prop
];
// 时间则转换为时间戳排序
if
(
prop
==
"inviteTenderLastTime"
)
{
preposition
?
preposition
=
dayjs
(
preposition
).
valueOf
()
:
0
;
postposition
?
postposition
=
dayjs
(
postposition
).
valueOf
()
:
0
;
}
if
(
order
==
"ascending"
)
{
return
(
parseFloat
(
preposition
)
?
parseFloat
(
preposition
)
:
0
)
-
(
parseFloat
(
postposition
)
?
parseFloat
(
postposition
)
:
0
);
}
if
(
order
==
"descending"
)
{
return
(
parseFloat
(
postposition
)
?
parseFloat
(
postposition
)
:
0
)
-
(
parseFloat
(
preposition
)
?
parseFloat
(
preposition
)
:
0
);
// 有order排序 无order默认排序
this
.
sort
=
order
?
toLine
(
prop
)
:
""
;
// 升序
if
(
order
==
"ascending"
)
{
this
.
order
=
"asc"
;
}
// 降序
if
(
order
==
"descending"
||
!
order
)
{
this
.
order
=
"desc"
;
}
this
.
sortSearch
(
this
.
pageNum
);
}
,
// 排序搜索
async
sortSearch
(
num
,
size
)
{
this
.
dialogVisible
=
false
;
if
(
!
num
)
{
this
.
pageNum
=
1
;
}
if
(
!
size
)
{
this
.
pageSize
=
20
;
}
if
(
!
num
&&
!
size
)
{
this
.
reloadPage
();
}
const
params
=
this
.
createSearchConditions
();
try
{
const
result
=
await
api
.
searchOwnerUnitListApi
(
params
);
if
(
result
.
code
==
200
)
{
this
.
tableData
=
result
.
data
?.
list
?
result
.
data
.
list
:
[];
this
.
total
=
res
.
data
?.
total
?
res
.
data
?.
total
:
0
;
}
return
(
parseFloat
(
b
[
"inviteTenderSumAmount"
])
?
parseFloat
(
b
[
"inviteTenderSumAmount"
])
:
0
)
-
(
parseFloat
(
a
[
"inviteTenderSumAmount"
])
?
parseFloat
(
a
[
"inviteTenderSumAmount"
])
:
0
);
}
);
}
catch
(
error
)
{
console
.
log
(
error
);
}
}
,
async
addHeaderListener
()
{
try
{
...
...
@@ -567,8 +629,12 @@ export default {
this
.
search
();
}
,
handleCurrentChange
(
pageNum
)
{
if
(
pageNum
>
500
)
{
pageNum
=
1
;
this
.
$message
.
warning
(
"对不起最多只能访问500页"
);
}
this
.
pageNum
=
pageNum
;
this
.
search
(
pageNum
,
this
.
pageSize
);
this
.
search
(
this
.
pageNum
,
this
.
pageSize
);
}
,
handleSizeChange
(
pageSize
)
{
this
.
pageSize
=
pageSize
;
...
...
@@ -599,7 +665,7 @@ export default {
info
=
res
.
data
;
let
params
=
{
companyId
:
item
.
id
,
companyName
:
item
.
name
.
replace
(
/<font color='red'>/g
,
''
).
replace
(
/<
\/
font>/g
,
''
),
companyName
:
item
.
name
.
replace
(
/<font color='red'>/g
im
,
''
).
replace
(
/<font color='#FF204E'>/gim
,
''
).
replace
(
/<
\/
font>/gim
,
''
),
creditLevel
:
info
.
bratingSubjectLevel
,
legalPerson
:
info
.
corporatePerson
,
registerCapital
:
info
.
registeredCapital
,
...
...
@@ -625,7 +691,7 @@ export default {
}
,
cancelClaim
(
companyName
,
index
)
{
this
.
dialogVisible1
=
true
;
this
.
companyName
=
companyName
;
this
.
companyName
=
companyName
.
replace
(
/<font color='red'>/gim
,
''
).
replace
(
/<font color='#FF204E'>/gim
,
''
).
replace
(
/<
\/
font>/gim
,
''
)
;
this
.
cancelIndex
=
index
;
}
,
confirm
()
{
...
...
@@ -662,46 +728,7 @@ export default {
this
.
reloadPage
();
}
// 默认传递参数
let
params
=
{
aptitudeQueryDto
:
{
}
,
page
:
{
page
:
this
.
pageNum
,
limit
:
this
.
pageSize
,
order
:
"desc"
,
field
:
this
.
sort
}
}
;
var
data
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
// 搜索关键词处理
if
(
this
.
keys
)
{
params
.
aptitudeQueryDto
[
'ename'
]
=
this
.
keys
;
}
// 处理地区选择
if
(
data
.
provinceIds
.
length
>
0
)
{
params
.
aptitudeQueryDto
[
'province'
]
=
data
.
provinceIds
.
join
(
","
);
}
if
(
data
.
cityIds
.
length
>
0
)
{
params
.
aptitudeQueryDto
[
'city'
]
=
data
.
cityIds
.
join
(
","
);
}
if
(
data
.
areaIds
.
length
>
0
)
{
params
.
aptitudeQueryDto
[
'county'
]
=
data
.
areaIds
.
join
(
","
);
}
// 业主标签选中处理
if
(
this
.
currentOwnerLabels
.
length
>
0
)
{
params
.
aptitudeQueryDto
[
"tagCode"
]
=
this
.
currentOwnerLabels
.
join
(
","
);
}
// 选中大于等于两个业主标签 添加 任意均可 或 同时具备条件
if
(
this
.
currentOwnerLabels
.
length
>=
2
)
{
params
.
aptitudeQueryDto
[
"tagCodeQueryType"
]
=
this
.
tagCodeQueryType
;
}
const
params
=
this
.
createSearchConditions
();
this
.
isSkeleton
=
true
;
api
.
searchOwnerUnitListApi
(
params
).
then
(
res
=>
{
...
...
@@ -709,7 +736,6 @@ export default {
this
.
isSkeleton
=
false
;
this
.
tableData
=
res
.
data
?.
list
?
res
.
data
.
list
:
[];
this
.
total
=
res
.
data
?.
total
?
res
.
data
?.
total
:
0
;
this
.
addHeaderListener
();
}
}
).
catch
(
error
=>
{
}
);
...
...
@@ -1080,12 +1106,6 @@ export default {
font
-
size
:
12
px
;
}
}
.
el
-
table__fixed
{
.
el
-
table__fixed
-
header
-
wrapper
{
pointer
-
events
:
none
;
}
}
}
padding
:
0
px
16
px
;
.
list
-
titel
-
a
{
...
...
@@ -1116,8 +1136,9 @@ export default {
.
renling
{
display
:
flex
;
align
-
items
:
center
;
justify
-
content
:
space
-
between
;
.
list
-
titel
-
a
{
width
:
264
px
;
max
-
width
:
264
px
;
margin
-
right
:
12
px
;
}
.
renling
-
btn
{
...
...
@@ -1170,9 +1191,12 @@ export default {
font
-
size
:
12
px
;
margin
-
right
:
25
px
;
white
-
space
:
nowrap
;
align
-
self
:
flex
-
start
;
}
}
&
.
show
-
claim
{
.
enterprise
-
name
-
column
{
&
:
hover
{
.
renling
-
btn
{
opacity
:
1
;
}
...
...
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