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
b40f2122
Commit
b40f2122
authored
Jun 09, 2023
by
zhangyi
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
cd58c0cb
dbc75fa1
Changes
22
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
152 additions
and
80 deletions
+152
-80
SpecialPurposeBondsDto.java
...main/java/com/dsk/common/dtos/SpecialPurposeBondsDto.java
+5
-0
SpecialPurposeBondsPageDto.java
.../java/com/dsk/common/dtos/SpecialPurposeBondsPageDto.java
+4
-0
icol1.png
dsk-operate-ui/src/assets/images/project/icol1.png
+0
-0
icol2.png
dsk-operate-ui/src/assets/images/project/icol2.png
+0
-0
icol3.png
dsk-operate-ui/src/assets/images/project/icol3.png
+0
-0
icor1.png
dsk-operate-ui/src/assets/images/project/icor1.png
+0
-0
icor2.png
dsk-operate-ui/src/assets/images/project/icor2.png
+0
-0
icor3.png
dsk-operate-ui/src/assets/images/project/icor3.png
+0
-0
project.scss
dsk-operate-ui/src/assets/styles/project.scss
+7
-0
download.js
dsk-operate-ui/src/plugins/download.js
+2
-1
index.js
dsk-operate-ui/src/router/index.js
+25
-8
index.vue
dsk-operate-ui/src/views/custom/customList/index.vue
+11
-12
index.vue
dsk-operate-ui/src/views/detail/party-a/index.vue
+13
-11
infoheader.vue
...rc/views/detail/party-a/overview/component/infoheader.vue
+2
-2
index.vue
dsk-operate-ui/src/views/detail/party-b/index.vue
+2
-2
batchImport.vue
...i/src/views/project/projectList/component/batchImport.vue
+6
-4
gjjl.vue
...erate-ui/src/views/project/projectList/component/gjjl.vue
+4
-1
gzdb.vue
...erate-ui/src/views/project/projectList/component/gzdb.vue
+8
-2
xmsl.vue
...erate-ui/src/views/project/projectList/component/xmsl.vue
+5
-5
zlwd.vue
...erate-ui/src/views/project/projectList/component/zlwd.vue
+0
-2
detail.vue
dsk-operate-ui/src/views/project/projectList/detail.vue
+50
-22
index.vue
dsk-operate-ui/src/views/project/projectList/index.vue
+8
-8
No files found.
dsk-common/src/main/java/com/dsk/common/dtos/SpecialPurposeBondsDto.java
View file @
b40f2122
...
@@ -12,6 +12,11 @@ import lombok.Data;
...
@@ -12,6 +12,11 @@ import lombok.Data;
@Data
@Data
public
class
SpecialPurposeBondsDto
{
public
class
SpecialPurposeBondsDto
{
/**
* 省Id
*/
private
Integer
provinceId
;
/**
/**
* 项目类型
* 项目类型
*/
*/
...
...
dsk-common/src/main/java/com/dsk/common/dtos/SpecialPurposeBondsPageDto.java
View file @
b40f2122
...
@@ -12,4 +12,8 @@ import lombok.Data;
...
@@ -12,4 +12,8 @@ import lombok.Data;
*/
*/
@Data
@Data
public
class
SpecialPurposeBondsPageDto
extends
BasePage
{
public
class
SpecialPurposeBondsPageDto
extends
BasePage
{
/**
* 省Id
*/
private
Integer
provinceId
;
}
}
dsk-operate-ui/src/assets/images/project/icol1.png
0 → 100644
View file @
b40f2122
247 Bytes
dsk-operate-ui/src/assets/images/project/icol2.png
0 → 100644
View file @
b40f2122
246 Bytes
dsk-operate-ui/src/assets/images/project/icol3.png
0 → 100644
View file @
b40f2122
241 Bytes
dsk-operate-ui/src/assets/images/project/icor1.png
0 → 100644
View file @
b40f2122
238 Bytes
dsk-operate-ui/src/assets/images/project/icor2.png
0 → 100644
View file @
b40f2122
238 Bytes
dsk-operate-ui/src/assets/images/project/icor3.png
0 → 100644
View file @
b40f2122
238 Bytes
dsk-operate-ui/src/assets/styles/project.scss
View file @
b40f2122
...
@@ -10,6 +10,11 @@
...
@@ -10,6 +10,11 @@
>
span
{
>
span
{
opacity
:
0
.4
;
opacity
:
0
.4
;
&
:last-child
{
opacity
:
0
.8
}
&
:last-child
{
opacity
:
0
.8
}
&
.on
:hover
{
color
:
#0081FF
;
opacity
:
1
;
cursor
:
pointer
;
}
}
}
}
}
.overflows
{
.overflows
{
...
@@ -71,6 +76,8 @@
...
@@ -71,6 +76,8 @@
.con
{
.con
{
>
span
{
>
span
{
opacity
:
0
.8
;
opacity
:
0
.8
;
float
:
left
;
margin-top
:
3px
;
}
}
.inputxt
{
.inputxt
{
display
:
inline-block
;
display
:
inline-block
;
...
...
dsk-operate-ui/src/plugins/download.js
View file @
b40f2122
...
@@ -72,7 +72,8 @@ export default {
...
@@ -72,7 +72,8 @@ export default {
data
:
params
,
data
:
params
,
headers
:
{
'Authorization'
:
'Bearer '
+
getToken
()
}
headers
:
{
'Authorization'
:
'Bearer '
+
getToken
()
}
}).
then
(
res
=>
{
}).
then
(
res
=>
{
const
blob
=
new
Blob
([
res
.
data
],
{
type
:
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
})
console
.
log
(
res
)
const
blob
=
new
Blob
([
res
.
data
],
{
type
:
'application/octet-stream/pdf/doc/xlsx/xls/docx'
})
this
.
saveAs
(
blob
,
decodeURI
(
res
.
headers
[
'download-filename'
]))
this
.
saveAs
(
blob
,
decodeURI
(
res
.
headers
[
'download-filename'
]))
})
})
},
},
...
...
dsk-operate-ui/src/router/index.js
View file @
b40f2122
...
@@ -89,28 +89,45 @@ export const constantRoutes = [
...
@@ -89,28 +89,45 @@ export const constantRoutes = [
]
]
},
},
{
{
path
:
'/
party
'
,
path
:
'/
enterprise
'
,
component
:
Layout
,
component
:
Layout
,
hidden
:
true
,
hidden
:
true
,
name
:
'
Party
'
,
name
:
'
Enterprise
'
,
redirect
:
'noredirect'
,
redirect
:
'noredirect'
,
children
:
[
children
:
[
{
{
path
:
'
party-a
'
,
path
:
'
/enterprise/:id
'
,
component
:
()
=>
import
(
'@/views/detail/party-a/index'
),
component
:
()
=>
import
(
'@/views/detail/party-a/index'
),
name
:
'PartyA'
,
name
:
'PartyA'
,
meta
:
{
title
:
'甲方详情'
},
meta
:
{
title
:
'甲方详情'
},
},
}
]
},
{
path
:
'/company'
,
component
:
Layout
,
hidden
:
true
,
name
:
'Company'
,
redirect
:
'noredirect'
,
children
:
[
{
{
path
:
'
party-b
'
,
path
:
'
/company/:id
'
,
component
:
()
=>
import
(
'@/views/detail/party-b/index'
),
component
:
()
=>
import
(
'@/views/detail/party-b/index'
),
name
:
'PartyB'
,
name
:
'PartyB'
,
meta
:
{
title
:
'已方详情'
}
meta
:
{
title
:
'已方详情'
}
},
}
]
},
{
path
:
'/structure'
,
component
:
Layout
,
hidden
:
true
,
redirect
:
'noredirect'
,
children
:
[
{
{
path
:
'
structure
'
,
path
:
'
graph
'
,
component
:
()
=>
import
(
'@/views/detail/structure/index'
),
component
:
()
=>
import
(
'@/views/detail/structure/index'
),
name
:
'
Structure
'
,
name
:
'
Graph
'
,
meta
:
{
title
:
'企业链图'
}
meta
:
{
title
:
'企业链图'
}
}
}
]
]
...
...
dsk-operate-ui/src/views/custom/customList/index.vue
View file @
b40f2122
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
<div
class=
"btn"
@
click=
"handleCurrentChange(1)"
>
搜索
</div>
<div
class=
"btn"
@
click=
"handleCurrentChange(1)"
>
搜索
</div>
</div>
</div>
<div
class=
"dc"
>
<div
class=
"dc"
>
<div
class=
"total"
>
共
126
条
</div>
<div
class=
"total"
>
共
{{
tableData
.
total
}}
条
</div>
<div
class=
"btn-export"
@
click=
"pldrs"
><img
src=
"@/assets/images/project/import.png"
>
批量导入
</div>
<div
class=
"btn-export"
@
click=
"pldrs"
><img
src=
"@/assets/images/project/import.png"
>
批量导入
</div>
<div
class=
"btn btn_primary h32 p10"
@
click=
"opennew"
><div
class=
"img img1"
></div>
添加客户
</div>
<div
class=
"btn btn_primary h32 p10"
@
click=
"opennew"
><div
class=
"img img1"
></div>
添加客户
</div>
</div>
</div>
...
@@ -47,8 +47,8 @@
...
@@ -47,8 +47,8 @@
<div
class=
"ps1"
>
<div
class=
"ps1"
>
<div
class=
"wordprimary ps2"
@
click=
"toDetail(scope.row.companyId,'')"
>
{{
scope
.
row
.
companyName
}}
</div>
<div
class=
"wordprimary ps2"
@
click=
"toDetail(scope.row.companyId,'')"
>
{{
scope
.
row
.
companyName
}}
</div>
<div
class=
"ps3"
>
<div
class=
"ps3"
>
<div
@
click=
"toDetail(scope.row
.companyId,1
)"
>
写跟进
<img
src=
"@/assets/images/project/edit_1.png"
></div>
<div
@
click=
"toDetail(scope.row
,'gjjl'
)"
>
写跟进
<img
src=
"@/assets/images/project/edit_1.png"
></div>
<div
@
click=
"toDetail(scope.row
.companyId,2
)"
>
编辑信息
<img
src=
"@/assets/images/project/edit_2.png"
></div>
<div
@
click=
"toDetail(scope.row
,'preference'
)"
>
编辑信息
<img
src=
"@/assets/images/project/edit_2.png"
></div>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
...
@@ -99,7 +99,7 @@
...
@@ -99,7 +99,7 @@
label=
"注册资本金(万元)"
label=
"注册资本金(万元)"
width=
"140"
>
width=
"140"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
registerCapital
Str
||
'--'
}}
{{
scope
.
row
.
registerCapital
||
'--'
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
...
@@ -227,7 +227,7 @@
...
@@ -227,7 +227,7 @@
</el-dialog>
</el-dialog>
</el-card>
</el-card>
</div>
</div>
<batchimport
v-if=
"pldr"
:importtype=
"types"
@
cancels=
"
importCancel
"
@
getdatas=
"handleCurrentChange(1)"
></batchimport>
<batchimport
v-if=
"pldr"
:importtype=
"types"
@
cancels=
"
cancelimport
"
@
getdatas=
"handleCurrentChange(1)"
></batchimport>
</div>
</div>
</template>
</template>
...
@@ -304,7 +304,7 @@ export default {
...
@@ -304,7 +304,7 @@ export default {
pldrs
(){
pldrs
(){
this
.
pldr
=
true
this
.
pldr
=
true
},
},
importCancel
(){
cancelimport
(){
this
.
pldr
=
false
this
.
pldr
=
false
},
},
//获取客户列表
//获取客户列表
...
@@ -314,12 +314,11 @@ export default {
...
@@ -314,12 +314,11 @@ export default {
})
})
},
},
//跳转到客户详情
//跳转到客户详情
toDetail
(
id
,
type
){
toDetail
(
row
,
type
){
if
(
type
==
1
){
//跟进
let
customerId
=
row
.
customerId
let
companyId
=
row
.
companyId
}
else
if
(
type
==
2
){
//编辑信息
let
path
=
type
this
.
$router
.
push
({
path
:
'/party/party-a'
,
query
:{
customerId
:
customerId
,
companyId
:
companyId
,
path
:
path
}})
}
},
},
//翻页
//翻页
handleCurrentChange
(
val
)
{
handleCurrentChange
(
val
)
{
...
...
dsk-operate-ui/src/views/detail/party-a/index.vue
View file @
b40f2122
...
@@ -142,7 +142,7 @@ export default {
...
@@ -142,7 +142,7 @@ export default {
data
()
{
data
()
{
return
{
return
{
companyInfo
:
{},
companyInfo
:
{},
companyId
:
'
565476563130566e69
'
,
//企业Id(测试默认3068)
companyId
:
''
,
//企业Id(测试默认3068)
customerId
:
''
,
//企业Id(测试默认'a00d582a6041f32c16aac804e4924736')
customerId
:
''
,
//企业Id(测试默认'a00d582a6041f32c16aac804e4924736')
currentPath
:
{
currentPath
:
{
pathName
:
'overview'
//默认展示页
pathName
:
'overview'
//默认展示页
...
@@ -151,11 +151,9 @@ export default {
...
@@ -151,11 +151,9 @@ export default {
}
}
},
},
created
()
{
created
()
{
if
(
this
.
$route
.
query
.
companyI
d
)
{
// 获取companyId
if
(
this
.
$route
.
params
.
i
d
)
{
// 获取companyId
let
companyId
=
this
.
$route
.
query
.
companyI
d
let
companyId
=
this
.
$route
.
params
.
i
d
this
.
getCompanyId
(
companyId
)
this
.
getCompanyId
(
companyId
)
}
else
{
//测试
this
.
getCompanyId
(
this
.
companyId
)
}
}
if
(
this
.
$route
.
query
.
path
)
{
// 获取跳转对应板块
if
(
this
.
$route
.
query
.
path
)
{
// 获取跳转对应板块
this
.
currentPath
.
pathName
=
this
.
$route
.
query
.
path
this
.
currentPath
.
pathName
=
this
.
$route
.
query
.
path
...
@@ -165,12 +163,6 @@ export default {
...
@@ -165,12 +163,6 @@ export default {
}
}
},
},
mounted
()
{
mounted
()
{
const
_this
=
this
,
erd
=
elementResizeDetectorMaker
(),
partBox
=
document
.
getElementById
(
"partBox"
)
erd
.
listenTo
(
partBox
,
element
=>
{
_this
.
$nextTick
(()
=>
{
_this
.
partBoxHeight
=
partBox
.
offsetHeight
})
})
},
},
methods
:
{
methods
:
{
showPartPage
(
e
){
showPartPage
(
e
){
...
@@ -181,6 +173,9 @@ export default {
...
@@ -181,6 +173,9 @@ export default {
let
{
data
}
=
await
idRemark
({
mark
:
companyId
})
let
{
data
}
=
await
idRemark
({
mark
:
companyId
})
if
(
data
){
if
(
data
){
this
.
companyId
=
data
this
.
companyId
=
data
this
.
$nextTick
(()
=>
{
this
.
listenSider
()
})
this
.
handleQuery
()
this
.
handleQuery
()
}
}
},
},
...
@@ -189,6 +184,12 @@ export default {
...
@@ -189,6 +184,12 @@ export default {
if
(
res
.
code
==
200
){
if
(
res
.
code
==
200
){
this
.
companyInfo
=
res
.
data
this
.
companyInfo
=
res
.
data
}
}
},
listenSider
(){
const
_this
=
this
,
erd
=
elementResizeDetectorMaker
(),
partBox
=
document
.
getElementById
(
"partBox"
)
erd
.
listenTo
(
partBox
,
element
=>
{
_this
.
partBoxHeight
=
partBox
.
offsetHeight
})
}
}
}
}
}
}
...
@@ -208,5 +209,6 @@ export default {
...
@@ -208,5 +209,6 @@ export default {
.part-right
{
.part-right
{
min-width
:
1088px
;
min-width
:
1088px
;
width
:
100%
;
width
:
100%
;
background
:
#FFFFFF
;
}
}
</
style
>
</
style
>
dsk-operate-ui/src/views/detail/party-a/overview/component/infoheader.vue
View file @
b40f2122
...
@@ -143,7 +143,7 @@ export default {
...
@@ -143,7 +143,7 @@ export default {
graphList
:
[
graphList
:
[
{
id
:
1
,
name
:
'业务往来'
,
intro
:[{
id
:
101
,
name
:
'客户'
,
val
:
0
,
category
:
'global'
,
field
:
'customer'
},{
id
:
102
,
name
:
'供应商'
,
val
:
0
,
category
:
'global'
,
field
:
'supplier'
}],
ico
:
require
(
'@/assets/images/detail/overview/company_ywwl.png'
)},
{
id
:
1
,
name
:
'业务往来'
,
intro
:[{
id
:
101
,
name
:
'客户'
,
val
:
0
,
category
:
'global'
,
field
:
'customer'
},{
id
:
102
,
name
:
'供应商'
,
val
:
0
,
category
:
'global'
,
field
:
'supplier'
}],
ico
:
require
(
'@/assets/images/detail/overview/company_ywwl.png'
)},
{
id
:
2
,
name
:
'商机线索'
,
intro
:[{
id
:
201
,
name
:
'专项债项目'
,
val
:
0
,
category
:
'xxx'
,
field
:
'yy'
},{
id
:
202
,
name
:
'招标计划'
,
val
:
0
,
category
:
'xxx'
,
field
:
'zz'
}],
ico
:
require
(
'@/assets/images/detail/overview/company_sjxs.png'
)},
{
id
:
2
,
name
:
'商机线索'
,
intro
:[{
id
:
201
,
name
:
'专项债项目'
,
val
:
0
,
category
:
'xxx'
,
field
:
'yy'
},{
id
:
202
,
name
:
'招标计划'
,
val
:
0
,
category
:
'xxx'
,
field
:
'zz'
}],
ico
:
require
(
'@/assets/images/detail/overview/company_sjxs.png'
)},
{
id
:
3
,
name
:
'城投拿地'
,
intro
:[{
id
:
301
,
name
:
'土地交易'
,
val
:
10
,
category
:
'global'
,
field
:
'landInfo'
},{
id
:
302
,
name
:
'行政许可'
,
val
:
2
0
,
category
:
'business'
,
field
:
'adminLicensing'
}],
ico
:
require
(
'@/assets/images/detail/overview/company_ctnd.png'
)},
{
id
:
3
,
name
:
'城投拿地'
,
intro
:[{
id
:
301
,
name
:
'土地交易'
,
val
:
0
,
category
:
'global'
,
field
:
'landInfo'
},{
id
:
302
,
name
:
'行政许可'
,
val
:
0
,
category
:
'business'
,
field
:
'adminLicensing'
}],
ico
:
require
(
'@/assets/images/detail/overview/company_ctnd.png'
)},
{
id
:
4
,
name
:
'对外投资'
,
intro
:[{
id
:
401
,
name
:
'企业经营实力展现'
}],
ico
:
require
(
'@/assets/images/detail/overview/company_dwtz.png'
)},
{
id
:
4
,
name
:
'对外投资'
,
intro
:[{
id
:
401
,
name
:
'企业经营实力展现'
}],
ico
:
require
(
'@/assets/images/detail/overview/company_dwtz.png'
)},
{
id
:
5
,
name
:
'股权穿透'
,
intro
:[{
id
:
501
,
name
:
'瞬息掌握企业关系'
}],
ico
:
require
(
'@/assets/images/detail/overview/company_gqct.png'
)},
{
id
:
5
,
name
:
'股权穿透'
,
intro
:[{
id
:
501
,
name
:
'瞬息掌握企业关系'
}],
ico
:
require
(
'@/assets/images/detail/overview/company_gqct.png'
)},
{
id
:
6
,
name
:
'企业架构'
,
intro
:[{
id
:
601
,
name
:
'企业架构关联图'
}],
ico
:
require
(
'@/assets/images/detail/overview/company_qyjg.png'
)},
{
id
:
6
,
name
:
'企业架构'
,
intro
:[{
id
:
601
,
name
:
'企业架构关联图'
}],
ico
:
require
(
'@/assets/images/detail/overview/company_qyjg.png'
)},
...
@@ -225,7 +225,7 @@ export default {
...
@@ -225,7 +225,7 @@ export default {
this
.
showState
=
!
this
.
showState
this
.
showState
=
!
this
.
showState
},
},
jumpToLt
(
item
){
jumpToLt
(
item
){
this
.
$router
.
push
({
path
:
'/
party/structure
'
,
query
:
{
eid
:
this
.
companyInfo
.
eid
,
typeId
:
item
.
id
}
})
this
.
$router
.
push
({
path
:
'/
structure/graph
'
,
query
:
{
eid
:
this
.
companyInfo
.
eid
,
typeId
:
item
.
id
}
})
},
},
//swiper项点击
//swiper项点击
handleGraph
(
item
,
it
){
handleGraph
(
item
,
it
){
...
...
dsk-operate-ui/src/views/detail/party-b/index.vue
View file @
b40f2122
...
@@ -19,9 +19,9 @@ export default {
...
@@ -19,9 +19,9 @@ export default {
}
}
},
},
created
()
{
created
()
{
if
(
this
.
$route
.
query
.
companyI
d
)
{
// 获取companyId
if
(
this
.
$route
.
params
.
i
d
)
{
// 获取companyId
this
.
loading
=
true
this
.
loading
=
true
this
.
src
=
`https://pre-plug.jiansheku.com/enterprise/
${
this
.
$route
.
query
.
companyI
d
}
?secretId=
${
this
.
secretId
}
`
this
.
src
=
`https://pre-plug.jiansheku.com/enterprise/
${
this
.
$route
.
params
.
i
d
}
?secretId=
${
this
.
secretId
}
`
}
}
},
},
mounted
()
{
mounted
()
{
...
...
dsk-operate-ui/src/views/project/projectList/component/batchImport.vue
View file @
b40f2122
...
@@ -42,7 +42,7 @@
...
@@ -42,7 +42,7 @@
<div
class=
"p3"
>
<div
class=
"p3"
>
<img
src=
"@/assets/images/project/success.png"
>
查询成功
<img
src=
"@/assets/images/project/success.png"
>
查询成功
</div>
</div>
<div
class=
"p2"
>
成功导入
客户
信息
</div>
<div
class=
"p2"
>
成功导入
{{
titletext
}}
信息
</div>
<div
class=
"btns"
>
<div
class=
"btns"
>
<div
class=
"btn btn_primary h32"
@
click=
"getmsg"
>
查看
</div>
<div
class=
"btn btn_primary h32"
@
click=
"getmsg"
>
查看
</div>
</div>
</div>
...
@@ -79,7 +79,7 @@
...
@@ -79,7 +79,7 @@
console
.
log
(
this
.
importtype
)
console
.
log
(
this
.
importtype
)
if
(
this
.
importtype
==
'project'
){
//项目管理
if
(
this
.
importtype
==
'project'
){
//项目管理
this
.
downloadhref
=
'/file/projectTemplate.xlsx'
this
.
downloadhref
=
'/file/projectTemplate.xlsx'
this
.
titletext
=
'
项目
'
this
.
titletext
=
'
商机
'
this
.
action
=
process
.
env
.
VUE_APP_BASE_API
+
'/business/info/upload'
this
.
action
=
process
.
env
.
VUE_APP_BASE_API
+
'/business/info/upload'
}
}
if
(
this
.
importtype
==
'custom'
){
//客户管理
if
(
this
.
importtype
==
'custom'
){
//客户管理
...
@@ -101,8 +101,10 @@
...
@@ -101,8 +101,10 @@
onSuccess
(
res
,
file
,
fileList
)
{
onSuccess
(
res
,
file
,
fileList
)
{
if
(
res
.
code
==
200
)
if
(
res
.
code
==
200
)
this
.
addsuccess
=
true
this
.
addsuccess
=
true
else
else
{
this
.
$message
.
error
({
message
:
res
.
msg
,
showClose
:
true
})
this
.
importCancel
()
this
.
$message
.
error
({
message
:
res
.
msg
,
showClose
:
true
})
}
},
},
downloadClick
()
{
downloadClick
()
{
...
...
dsk-operate-ui/src/views/project/projectList/component/gjjl.vue
View file @
b40f2122
...
@@ -65,7 +65,7 @@
...
@@ -65,7 +65,7 @@
<span
v-if=
"showtype == 'gjdt' && item.companyName != ''"
>
关联企业:{{item.companyName}}
</span>
<span
v-if=
"showtype == 'gjdt' && item.companyName != ''"
>
关联企业:{{item.companyName}}
</span>
<span
v-if=
"item.position"
>
职位:{{item.position}}
</span>
<span
v-if=
"item.position"
>
职位:{{item.position}}
</span>
<span
v-if=
"item.createTime"
>
拜访时间:{{item.createTime.slice(0, 10)}}
</span>
<span
v-if=
"item.createTime"
>
拜访时间:{{item.createTime.slice(0, 10)}}
</span>
<span
v-if=
"item.nextVisitTime"
>
下次拜访时间:{{item.
create
Time.slice(0, 10)}}
</span>
<span
v-if=
"item.nextVisitTime"
>
下次拜访时间:{{item.
nextVisit
Time.slice(0, 10)}}
</span>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -342,8 +342,11 @@
...
@@ -342,8 +342,11 @@
let
day
=
times
.
getDate
()
let
day
=
times
.
getDate
()
day
=
day
<
10
?
"0"
+
day
:
day
day
=
day
<
10
?
"0"
+
day
:
day
let
hour
=
times
.
getHours
()
let
hour
=
times
.
getHours
()
hour
=
hour
<
10
?
"0"
+
hour
:
hour
let
minute
=
times
.
getMinutes
()
let
minute
=
times
.
getMinutes
()
minute
=
minute
<
10
?
"0"
+
minute
:
minute
let
second
=
times
.
getSeconds
()
let
second
=
times
.
getSeconds
()
second
=
second
<
10
?
"0"
+
second
:
second
return
year
+
'-'
+
month
+
'-'
+
day
+
' '
+
hour
+
":"
+
minute
+
":"
+
second
return
year
+
'-'
+
month
+
'-'
+
day
+
' '
+
hour
+
":"
+
minute
+
":"
+
second
}
}
}
}
...
...
dsk-operate-ui/src/views/project/projectList/component/gzdb.vue
View file @
b40f2122
...
@@ -28,7 +28,7 @@
...
@@ -28,7 +28,7 @@
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"tasktitle"
><strong>
我的任务
</strong><span
@
click=
"getYQ"
>
4
条已逾期
</span>
<!--
<span
class=
"on"
>
4条已逾期
</span>
-->
</div>
<div
class=
"tasktitle"
><strong>
我的任务
</strong><span
@
click=
"getYQ"
>
{{
yqnum
}}
条已逾期
</span>
<!--
<span
class=
"on"
>
4条已逾期
</span>
-->
</div>
<div
class=
"tasklist"
v-for=
"(item,index) in datalist.rows"
>
<div
class=
"tasklist"
v-for=
"(item,index) in datalist.rows"
>
<div
class=
"task_name"
>
{{
item
.
task
}}
</div>
<div
class=
"task_name"
>
{{
item
.
task
}}
</div>
<div
class=
"task_con"
><span>
发起时间:
{{
item
.
createTime
}}
</span><span
v-if=
"item.target"
>
关联客户:
<font
class=
"wordprimary"
>
{{
item
.
target
}}
</font></span><span
v-if=
"item.finishTime"
>
完成时间:
{{
item
.
finishTime
}}
</span></div>
<div
class=
"task_con"
><span>
发起时间:
{{
item
.
createTime
}}
</span><span
v-if=
"item.target"
>
关联客户:
<font
class=
"wordprimary"
>
{{
item
.
target
}}
</font></span><span
v-if=
"item.finishTime"
>
完成时间:
{{
item
.
finishTime
}}
</span></div>
...
@@ -39,7 +39,6 @@
...
@@ -39,7 +39,6 @@
<i
class=
"el-icon-caret-bottom"
></i>
<i
class=
"el-icon-caret-bottom"
></i>
</span>
</span>
<el-select
placeholder=
"请选择"
v-model=
"item.state"
class=
"select-multiple"
@
change=
"changes(item.id,$event)"
>
<el-select
placeholder=
"请选择"
v-model=
"item.state"
class=
"select-multiple"
@
change=
"changes(item.id,$event)"
>
<el-option
label=
"未完成"
value=
"0"
></el-option>
<el-option
label=
"未完成"
value=
"1"
></el-option>
<el-option
label=
"未完成"
value=
"1"
></el-option>
<el-option
label=
"已完成"
value=
"2"
></el-option>
<el-option
label=
"已完成"
value=
"2"
></el-option>
</el-select>
</el-select>
...
@@ -94,6 +93,7 @@
...
@@ -94,6 +93,7 @@
state
:
null
,
state
:
null
,
},
},
datalist
:[],
datalist
:[],
yqnum
:
0
,
//已逾期数量
}
}
},
},
created
(){
created
(){
...
@@ -117,6 +117,12 @@
...
@@ -117,6 +117,12 @@
getList
(){
getList
(){
getGZDB
(
this
.
searchPram
).
then
(
result
=>
{
getGZDB
(
this
.
searchPram
).
then
(
result
=>
{
this
.
datalist
=
result
.
code
==
200
?
result
:[]
this
.
datalist
=
result
.
code
==
200
?
result
:[]
let
num
=
0
this
.
datalist
.
rows
.
forEach
(
item
=>
{
if
(
item
.
state
==
0
)
num
++
;
})
this
.
yqnum
=
num
})
})
},
},
handleCurrentChange
(
val
){
handleCurrentChange
(
val
){
...
...
dsk-operate-ui/src/views/project/projectList/component/xmsl.vue
View file @
b40f2122
...
@@ -110,7 +110,7 @@
...
@@ -110,7 +110,7 @@
<div
class=
"flex"
v-if=
"nowedit == 6"
>
<div
class=
"flex"
v-if=
"nowedit == 6"
>
<el-input
placeholder=
"待添加"
v-model=
"xmsldata.supervisorPhone"
></el-input>
<el-input
placeholder=
"待添加"
v-model=
"xmsldata.supervisorPhone"
></el-input>
<div
class=
"flex"
>
<div
class=
"flex"
>
<div
class=
"btnsmall btn_primary h28"
@
click=
"isphone(1,
$event
)"
style=
"width: 56px"
>
确定
</div>
<div
class=
"btnsmall btn_primary h28"
@
click=
"isphone(1,
xmsldata.supervisorPhone
)"
style=
"width: 56px"
>
确定
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
</div>
</div>
</div>
</div>
...
@@ -123,7 +123,7 @@
...
@@ -123,7 +123,7 @@
<div
class=
"flex"
v-if=
"nowedit == 7"
>
<div
class=
"flex"
v-if=
"nowedit == 7"
>
<el-input
placeholder=
"待添加"
v-model=
"xmsldata.constructionPhone"
></el-input>
<el-input
placeholder=
"待添加"
v-model=
"xmsldata.constructionPhone"
></el-input>
<div
class=
"flex"
>
<div
class=
"flex"
>
<div
class=
"btnsmall btn_primary h28"
@
click=
"isphone(2,
$event
)"
style=
"width: 56px"
>
确定
</div>
<div
class=
"btnsmall btn_primary h28"
@
click=
"isphone(2,
xmsldata.constructionPhone
)"
style=
"width: 56px"
>
确定
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
</div>
</div>
</div>
</div>
...
@@ -214,16 +214,16 @@
...
@@ -214,16 +214,16 @@
},
},
//验证电话号码
//验证电话号码
isphone
(
type
,
value
){
isphone
(
type
,
value
){
var
regPartton
=
/1
[
3-
8
]
+
\d{9}
/
;
var
regPartton
=
/1
[
3-
9
]
+
\d{9}
/
;
var
regPartton1
=
/^
(
0
[
0-9
]{2,3}[\-]?[
2-9
][
0-9
]{6,7}[\-]?[
0-9
]?)
$/
;
var
regPartton1
=
/^
(
0
[
0-9
]{2,3}[\-]?[
2-9
][
0-9
]{6,7}[\-]?[
0-9
]?)
$/
;
if
(
!
regPartton
.
test
(
value
)
&&
!
regPartton1
.
test
(
value
))
{
if
(
!
regPartton
.
test
(
value
)
&&
!
regPartton1
.
test
(
value
))
{
this
.
$message
.
error
(
"请输入正确的电话"
);
this
.
$message
.
error
(
"请输入正确的电话"
);
}
else
{
}
else
{
if
(
type
==
1
)
{
if
(
type
==
1
)
{
this
.
editXMSL
({
supervisorPhone
:
this
.
xmsldata
.
supervisorPhon
e
})
this
.
editXMSL
({
supervisorPhone
:
valu
e
})
}
}
if
(
type
==
2
)
{
if
(
type
==
2
)
{
this
.
editXMSL
({
constructionPhone
:
this
.
xmsldata
.
constructionPhon
e
})
this
.
editXMSL
({
constructionPhone
:
valu
e
})
}
}
}
}
},
},
...
...
dsk-operate-ui/src/views/project/projectList/component/zlwd.vue
View file @
b40f2122
...
@@ -198,9 +198,7 @@
...
@@ -198,9 +198,7 @@
},
},
downnlod
(
row
){
downnlod
(
row
){
let
param
=
{
filePath
:
row
.
filePath
}
let
param
=
{
filePath
:
row
.
filePath
}
// this.$download.saveAs(row.filePath,row.name);
this
.
$download
.
exportByPost
(
'/business/file/download'
,
param
);
this
.
$download
.
exportByPost
(
'/business/file/download'
,
param
);
// // this.$download()
// let a = document.createElement("a");
// let a = document.createElement("a");
// a.setAttribute("href", row.filePath);
// a.setAttribute("href", row.filePath);
// a.setAttribute("download", row.name);
// a.setAttribute("download", row.name);
...
...
dsk-operate-ui/src/views/project/projectList/detail.vue
View file @
b40f2122
...
@@ -3,9 +3,9 @@
...
@@ -3,9 +3,9 @@
<div
class=
"miantitle"
>
<div
class=
"miantitle"
>
<template
v-if=
"!detailId"
>
<template
v-if=
"!detailId"
>
<span>
项目管理
</span>
<span>
项目管理
</span>
<span>
/ 商机列表
</span>
<span
class=
"on"
@
click=
"tolist"
>
/ 商机列表
</span>
</
template
>
</
template
>
<span
v-else
@
click=
"cooperateList"
>
合作情况
</span>
<span
class=
"on"
v-else
@
click=
"cooperateList"
>
合作情况
</span>
<span>
/ 项目详情
</span>
<span>
/ 项目详情
</span>
</div>
</div>
<div
class=
"app-container"
v-if=
"ProjectData"
>
<div
class=
"app-container"
v-if=
"ProjectData"
>
...
@@ -89,11 +89,10 @@
...
@@ -89,11 +89,10 @@
</div>
</div>
</div>
</div>
<div
class=
"schedule"
>
<div
class=
"schedule"
>
<div
class=
"child"
v-for=
"(item,index) in projectStage"
@
mouseover=
"hover(item.dictValue)"
@
mouseleave=
"hover(-1)"
@
click=
"choose(item.dictValue)"
>
<div
class=
"child"
v-for=
"(item,index) in projectStage"
@
click=
"choose(item.dictValue)"
:class=
"{'on':item.dictValue == thisindex}"
>
<img
v-if=
"item.dictValue == lastindex"
src=
"@/assets/images/project/pro_2.png"
>
<div
class=
"left"
></div>
<img
v-else-if=
"item.dictValue == thisindex"
src=
"@/assets/images/project/pro_3.png"
>
<span>
{{item.dictLabel}}
</span>
<img
v-else
src=
"@/assets/images/project/pro_1.png"
>
<div
class=
"right"
></div>
<span
:class=
"{'now':item.dictValue == thisindex}"
>
{{item.dictLabel}}
</span>
</div>
</div>
</div>
</div>
...
@@ -179,6 +178,7 @@
...
@@ -179,6 +178,7 @@
}
}
},
},
created
(){
created
(){
this
.
thistag
=
this
.
$route
.
query
.
tag
this
.
prvinceTree
()
this
.
prvinceTree
()
this
.
id
=
this
.
detailId
?
this
.
detailId
:
this
.
$route
.
query
.
id
this
.
id
=
this
.
detailId
?
this
.
detailId
:
this
.
$route
.
query
.
id
//项目阶段
//项目阶段
...
@@ -232,7 +232,8 @@
...
@@ -232,7 +232,8 @@
locks
(
isPrivate
){
locks
(
isPrivate
){
isPrivate
=
isPrivate
==
0
?
1
:
0
isPrivate
=
isPrivate
==
0
?
1
:
0
this
.
editXMSL
({
isPrivate
:
isPrivate
})
this
.
editXMSL
({
isPrivate
:
isPrivate
})
this
.
lock
=
false
this
.
islock
=
false
this
.
ProjectData
.
isPrivate
=
isPrivate
},
},
editXMSL
(
param
){
editXMSL
(
param
){
let
params
=
param
let
params
=
param
...
@@ -337,7 +338,10 @@
...
@@ -337,7 +338,10 @@
// 跳转到企业详情合作情况
// 跳转到企业详情合作情况
cooperateList
(){
cooperateList
(){
this
.
$emit
(
'close-detail'
)
this
.
$emit
(
'close-detail'
)
}
},
tolist
(){
this
.
$router
.
push
({
path
:
'/project/projectList'
})
},
}
}
}
}
</
script
>
</
script
>
...
@@ -395,30 +399,54 @@
...
@@ -395,30 +399,54 @@
}
}
}
}
.schedule
{
.schedule
{
display
:
flex
;
width
:
100%
;
padding-bottom
:
8px
;
.child
{
.child
{
cursor
:
pointer
;
cursor
:
pointer
;
margin-right
:
4px
;
margin-right
:
4px
;
color
:
#4f4f4f
;
color
:
rgba
(
35
,
35
,
35
,
0
.80
);
/*color: rgb(79,79,79);*/
position
:
relative
;
position
:
relative
;
width
:
137px
;
min-width
:
137px
;
padding
:
0
20px
;
height
:
32px
;
height
:
32px
;
line-height
:
32px
;
line-height
:
32px
;
text-align
:
center
;
text-align
:
center
;
>
img
{
background
:
#F3F4F5
;
margin-bottom
:
8px
;
display
:
inline-block
;
.left
{
width
:
10px
;
height
:
32px
;
background
:
url("../../../assets/images/project/icol1.png")
no-repeat
top
center
#fff
;
position
:
absolute
;
left
:
0
;
left
:
0
;
top
:
0
;
top
:
0
;
}
.right
{
position
:
absolute
;
position
:
absolute
;
width
:
100%
;
top
:
0
;
z-index
:
0
;
right
:
0
;
width
:
10px
;
height
:
32px
;
background
:
url("../../../assets/images/project/icor1.png")
no-repeat
top
center
#fff
;
}
&
:hover
{
background
:
#E3E6EA
;
.left
{
background
:
url("../../../assets/images/project/icol2.png")
no-repeat
top
center
#fff
;
}
.right
{
background
:
url("../../../assets/images/project/icor2.png")
no-repeat
top
center
#fff
;
}
}
}
>
span
{
position
:
relative
;
&
.on
{
z-index
:
1
;
background
:
#0081FF
;
&
.now
{
color
:
#fff
;
color
:
#fff
;
.left
{
background
:
url("../../../assets/images/project/icol3.png")
no-repeat
top
center
#fff
;
}
.right
{
background
:
url("../../../assets/images/project/icor3.png")
no-repeat
top
center
#fff
;
}
}
}
}
}
}
...
...
dsk-operate-ui/src/views/project/projectList/index.vue
View file @
b40f2122
...
@@ -113,16 +113,16 @@
...
@@ -113,16 +113,16 @@
</div>
</div>
<div
class=
"datalist"
>
<div
class=
"datalist"
>
<div
class=
"datali"
v-for=
"(item,index) in datalist"
>
<div
class=
"datali"
v-for=
"(item,index) in datalist"
>
<div
class=
"det-title"
@
click=
"toDetail(item.id)"
>
{{
item
.
projectName
}}
<span
v-if=
"activeName!='first' && item.followTime"
class=
"people"
><i>
{{
item
.
nickName1
}}
</i>
{{
item
.
nickName
}}
<font
color=
"#FA8A00"
>
正在跟进
</font></span></div>
<div
class=
"det-title"
@
click=
"toDetail(item.id
,'xmsl'
)"
>
{{
item
.
projectName
}}
<span
v-if=
"activeName!='first' && item.followTime"
class=
"people"
><i>
{{
item
.
nickName1
}}
</i>
{{
item
.
nickName
}}
<font
color=
"#FA8A00"
>
正在跟进
</font></span></div>
<div
class=
"det-tips"
><span
class=
"tips tip1"
v-if=
"item.label"
>
{{
item
.
label
}}
</span><span
v-if=
"item.address"
class=
"tips tip2"
>
{{
item
.
address
}}
</span></div>
<div
class=
"det-tips"
><span
class=
"tips tip1"
v-if=
"item.label"
>
{{
item
.
label
}}
</span><span
v-if=
"item.address"
class=
"tips tip2"
>
{{
item
.
address
}}
</span></div>
<div
class=
"det-contets"
>
<div
class=
"det-contets"
>
<div
class=
"det-con"
>
<div
class=
"det-con"
>
<span>
项目类型:
</span>
<span>
项目类型:
</span>
<span>
{{
item
.
projectType
}}
</span>
<span>
{{
item
.
projectType
||
'--'
}}
</span>
</div>
</div>
<div
class=
"det-con"
>
<div
class=
"det-con"
>
<span>
投资估算(万元):
</span>
<span>
投资估算(万元):
</span>
<span>
{{
item
.
investmentAmount
}}
</span>
<span>
{{
item
.
investmentAmount
||
'--'
}}
</span>
</div>
</div>
<div
class=
"det-con"
>
<div
class=
"det-con"
>
<span>
最后跟进时间:
</span>
<span>
最后跟进时间:
</span>
...
@@ -130,13 +130,13 @@
...
@@ -130,13 +130,13 @@
</div>
</div>
<div
class=
"det-con"
>
<div
class=
"det-con"
>
<span>
业主单位:
</span>
<span>
业主单位:
</span>
<span
class=
"wordprimary"
>
{{
item
.
ownerCompany
}}
</span>
<span
class=
"wordprimary"
>
{{
item
.
ownerCompany
||
'--'
}}
</span>
</div>
</div>
</div>
</div>
<el-divider
v-if=
"index != datalist.length-1"
></el-divider>
<el-divider
v-if=
"index != datalist.length-1"
></el-divider>
<div
class=
"operates"
v-if=
"activeName=='first'"
>
<div
class=
"operates"
v-if=
"activeName=='first'"
>
<div
class=
"i1"
><img
src=
"@/assets/images/follow.png"
>
跟进
</div>
<div
class=
"i1"
><img
src=
"@/assets/images/follow.png"
@
click=
"toDetail(item.id,'gjjl')"
>
跟进
</div>
<div
class=
"i2"
><img
src=
"@/assets/images/edit.png"
>
编辑
</div>
<div
class=
"i2"
><img
src=
"@/assets/images/edit.png"
@
click=
"toDetail(item.id,'xmsl')"
>
编辑
</div>
<div
class=
"i3"
@
click=
"deldetail(index)"
><img
src=
"@/assets/images/delete.png"
>
删除
</div>
<div
class=
"i3"
@
click=
"deldetail(index)"
><img
src=
"@/assets/images/delete.png"
>
删除
</div>
</div>
</div>
<div
class=
"delform"
v-if=
"activeName=='first' && ondel == index"
>
<div
class=
"delform"
v-if=
"activeName=='first' && ondel == index"
>
...
@@ -355,8 +355,8 @@ export default {
...
@@ -355,8 +355,8 @@ export default {
this
.
isshow
=
false
this
.
isshow
=
false
this
.
getList
(
1
)
this
.
getList
(
1
)
},
},
toDetail
(
id
){
toDetail
(
id
,
tag
){
this
.
$router
.
push
({
path
:
'/project/projectList/detail'
,
query
:
{
id
:
id
}
});
this
.
$router
.
push
({
path
:
'/project/projectList/detail'
,
query
:
{
id
:
id
,
tag
:
tag
}
});
},
},
handleClick
(){
handleClick
(){
...
...
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