Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dsk-operate-sys-cscec
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
fulixin
dsk-operate-sys-cscec
Commits
0fa8ec63
Commit
0fa8ec63
authored
Nov 03, 2023
by
tianhongyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix bug
parent
7d07c1ce
Changes
15
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
1290 additions
and
1057 deletions
+1290
-1057
.env.development
dsk-operate-ui/.env.development
+5
-0
.env.production
dsk-operate-ui/.env.production
+3
-0
.env.test
dsk-operate-ui/.env.test
+4
-1
babel.config.js
dsk-operate-ui/babel.config.js
+3
-2
package.json
dsk-operate-ui/package.json
+3
-0
MaxPageSizeTip.js
dsk-operate-ui/src/components/JsComponents/MaxPageSizeTip.js
+154
-0
index.js
dsk-operate-ui/src/plugins/index.js
+14
-11
index.js
dsk-operate-ui/src/utils/postMessageBridge/bridge/index.js
+34
-2
busclue.vue
...i/src/views/detail/party-a/overview/component/busclue.vue
+109
-118
infoheader.vue
...rc/views/detail/party-a/overview/component/infoheader.vue
+580
-585
operations.vue
...rc/views/detail/party-a/overview/component/operations.vue
+123
-118
relationship.vue
.../views/detail/party-a/overview/component/relationship.vue
+120
-107
risk.vue
...e-ui/src/views/detail/party-a/overview/component/risk.vue
+92
-100
index.vue
dsk-operate-ui/src/views/market/index.vue
+5
-13
index.vue
dsk-operate-ui/src/views/subsystem/index.vue
+41
-0
No files found.
dsk-operate-ui/.env.development
View file @
0fa8ec63
...
...
@@ -9,3 +9,8 @@ VUE_APP_BASE_API = '/prod-api'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true
# 子系统地址
VUE_APP_SUB_SYSTEM_ADDRESS = "https://pre-plug.jiansheku.com"
# VUE_APP_SUB_SYSTEM_ADDRESS = "http://192.168.60.104:3400"
\ No newline at end of file
dsk-operate-ui/.env.production
View file @
0fa8ec63
...
...
@@ -6,3 +6,6 @@ ENV = 'production'
# 数字化经营履约全生命链路管理系统/生产环境
VUE_APP_BASE_API = 'https://szhapi.jiansheku.com/'
# 子系统地址
VUE_APP_SUB_SYSTEM_ADDRESS = "https://plug.jiansheku.com"
dsk-operate-ui/.env.test
View file @
0fa8ec63
...
...
@@ -9,4 +9,7 @@ ENV = 'test'
# 数字化经营履约全生命链路管理系统/测试环境
VUE_APP_BASE_API
=
'/prod-api'
\ No newline at end of file
VUE_APP_BASE_API
=
'/prod-api'
# 子系统地址
VUE_APP_SUB_SYSTEM_ADDRESS
=
"https://pre-plug.jiansheku.com"
\ No newline at end of file
dsk-operate-ui/babel.config.js
View file @
0fa8ec63
module
.
exports
=
{
presets
:
[
// https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app
'@vue/cli-plugin-babel/preset'
'@vue/cli-plugin-babel/preset'
,
[
'@vue/babel-preset-jsx'
,
{
'injectH'
:
false
}]
],
'env'
:
{
'development'
:
{
...
...
@@ -10,4 +11,4 @@ module.exports = {
'plugins'
:
[
'dynamic-import-node'
]
}
}
}
\ No newline at end of file
};
\ No newline at end of file
dsk-operate-ui/package.json
View file @
0fa8ec63
...
...
@@ -70,6 +70,8 @@
"vuex"
:
"3.6.0"
},
"devDependencies"
:
{
"@vue/babel-helper-vue-jsx-merge-props"
:
"^1.4.0"
,
"@vue/babel-preset-jsx"
:
"^1.4.0"
,
"@vue/cli-plugin-babel"
:
"4.4.6"
,
"@vue/cli-plugin-eslint"
:
"4.4.6"
,
"@vue/cli-service"
:
"4.4.6"
,
...
...
@@ -87,6 +89,7 @@
"sass-loader"
:
"10.1.1"
,
"script-ext-html-webpack-plugin"
:
"2.1.5"
,
"svg-sprite-loader"
:
"5.1.1"
,
"vue-styled-components"
:
"^1.6.0"
,
"vue-template-compiler"
:
"2.6.12"
},
"engines"
:
{
...
...
dsk-operate-ui/src/components/JsComponents/MaxPageSizeTip.js
0 → 100644
View file @
0fa8ec63
/*
* @Author: thy
* @Date: 2023-10-31 09:33:14
* @LastEditors: thy
* @LastEditTime: 2023-11-02 17:17:32
* @Description: file content
* @FilePath: \dsk-operate-ui\src\components\JsComponents\MaxPageSizeTip.js
*/
import
styled
from
"vue-styled-components"
;
import
Vue
from
"vue"
;
import
{
v4
}
from
"uuid"
;
import
maxTipTitleIcon
from
"@/assets/images/market/max-tip-title-icon.svg"
;
import
closeMaxTipIcon
from
"@/assets/images/market/close-max-tip-icon.svg"
;
const
maxPageSizeTipContainer
=
styled
.
div
`
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.6);
z-index: 1200;
`
;
const
maxPageTipContainer
=
styled
.
div
`
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 340px;
height: 112px;
background: #ffffff;
border: 1px solid #e5e6eb;
box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.1);
border-radius: 4px;
padding: 20px;
box-sizing: border-box;
.top-title-container {
display: flex;
align-items: center;
.max-tip-icon {
width: 24px;
height: 24px;
}
.tip-title {
color: #1d2129;
font-size: 16px;
line-height: 24px;
font-weight: 400;
margin-left: 16px;
margin-right: 16px;
width: 228px;
}
.max-tip-close-icon {
width: 16px;
height: 16px;
align-self: flex-start;
cursor: pointer;
}
}
.max-page-tip-content {
margin-top: 4px;
padding-left: 40px;
padding-right: 32px;
box-sizing: border-box;
.max-page-content-inner {
color: #1d2129;
font-size: 14px;
line-height: 22px;
}
}
`
;
const
MaxPageSizeTip
=
{
name
:
"maxPageSizeTip"
,
render
(
createElement
)
{
return
(
<
transition
name
=
"fade"
mode
=
"out-in"
appear
>
<
maxPageSizeTipContainer
vOn
:
click_stop
=
{
this
.
closeMaxTip
.
bind
()}
class
=
"max-page-size-tip"
>
<
maxPageTipContainer
vOn
:
click_stop
=
{
""
}
>
<
div
class
=
"max-page-tip-inner"
>
<
div
class
=
"top-title-container"
>
<
img
src
=
{
maxTipTitleIcon
}
alt
=
""
class
=
"max-tip-icon"
><
/img
>
<
span
class
=
"tip-title"
>
数据查询已达到上限
<
/span
>
<
img
src
=
{
closeMaxTipIcon
}
alt
=
""
class
=
"max-tip-close-icon"
vOn
:
click_stop
=
{
this
.
closeMaxTip
.
bind
()}
><
/img
>
<
/div
>
<
div
class
=
"max-page-tip-content"
>
<
div
class
=
"max-page-content-inner"
>
{
this
.
msg
}
<
/div
>
<
/div
>
<
/div
>
<
/maxPageTipContainer
>
<
/maxPageSizeTipContainer
>
<
/transition
>
);
},
};
/**
*
* @param {string} msg 展示的信息
* @param {Function} closeHandle 关闭弹窗的回调
* @returns
*/
function
showMaxPageSizeTip
(
msg
=
""
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
try
{
// 生成构造函数
const
maxMsgBox
=
Vue
.
extend
(
MaxPageSizeTip
);
// 实例化
const
instance
=
new
maxMsgBox
({
data
()
{
return
{
msg
};
},
methods
:
{
// 关闭弹窗
closeMaxTip
()
{
resolve
({
uid
:
v4
(),
done
:
this
.
doneHandle
});
},
// 关闭回调
doneHandle
()
{
// 卸载组件
instance
.
$destroy
();
instance
.
$el
.
remove
();
}
},
});
// 初始化组件
instance
.
$mount
();
// 添加到body中
document
.
body
.
appendChild
(
instance
.
$el
);
}
catch
(
error
)
{
reject
(
error
);
}
});
}
export
default
showMaxPageSizeTip
;
dsk-operate-ui/src/plugins/index.js
View file @
0fa8ec63
import
tab
from
'./tab'
import
auth
from
'./auth'
import
cache
from
'./cache'
import
modal
from
'./modal'
import
download
from
'./download'
import
tab
from
'./tab'
;
import
auth
from
'./auth'
;
import
cache
from
'./cache'
;
import
modal
from
'./modal'
;
import
download
from
'./download'
;
import
msgBox
from
"@/components/JsComponents/MaxPageSizeTip.js"
;
export
default
{
install
(
Vue
)
{
// 页签操作
Vue
.
prototype
.
$tab
=
tab
Vue
.
prototype
.
$tab
=
tab
;
// 认证对象
Vue
.
prototype
.
$auth
=
auth
Vue
.
prototype
.
$auth
=
auth
;
// 缓存对象
Vue
.
prototype
.
$cache
=
cache
Vue
.
prototype
.
$cache
=
cache
;
// 模态框对象
Vue
.
prototype
.
$modal
=
modal
Vue
.
prototype
.
$modal
=
modal
;
// 下载文件
Vue
.
prototype
.
$download
=
download
Vue
.
prototype
.
$download
=
download
;
// 页码超出限制提示
Vue
.
prototype
.
$maxTip
=
msgBox
;
}
}
}
;
dsk-operate-ui/src/utils/postMessageBridge/bridge/index.js
View file @
0fa8ec63
...
...
@@ -2,12 +2,44 @@
* @Author: thy
* @Date: 2023-10-26 14:56:41
* @LastEditors: thy
* @LastEditTime: 2023-10-3
0 14:26:31
* @LastEditTime: 2023-10-3
1 09:28:26
* @Description: file content
* @FilePath: \dsk-operate-ui\src\utils\postMessageBridge\bridge\index.js
*/
class
PostMessageBridge
{
constructor
()
{
// 当前系统
_currenySystem
=
null
;
// 目标系统
_targetSystem
=
null
;
// 目标域
_targetOriginUrl
=
null
;
// 事件调度中心
_eventHandlers
=
new
Map
();
/**
*
* @param {{
* currenySystem : Window || undefined;
* targetSystem : Window || undefined;
* targetOriginUrl : string || undefined;
* }} options
*/
constructor
(
options
)
{
this
.
_currenySystem
=
options
.
currenySystem
;
this
.
_targetSystem
=
options
.
targetSystem
;
this
.
_targetOriginUrl
=
options
.
targetOriginUrl
||
"*"
;
}
/**
* 订阅消息
* @param {{
* id : string;
* method : string;
* params : object;
* }} messageEvent
*/
receiveMessage
(
messageEvent
)
{
}
}
\ No newline at end of file
dsk-operate-ui/src/views/detail/party-a/overview/component/busclue.vue
View file @
0fa8ec63
This diff is collapsed.
Click to expand it.
dsk-operate-ui/src/views/detail/party-a/overview/component/infoheader.vue
View file @
0fa8ec63
This diff is collapsed.
Click to expand it.
dsk-operate-ui/src/views/detail/party-a/overview/component/operations.vue
View file @
0fa8ec63
...
...
@@ -10,7 +10,8 @@
<div
class=
"operations-title"
>
{{
item
.
bratingSubjectLevel
}}
-
<span>
{{
item
.
ratingDate
}}
</span></div>
<div
class=
"flex-box operations-info"
>
<div>
{{
item
.
bondType
||
'--'
}}
</div>
<span
class=
"text-cl1"
:title=
"item.creditRatingAgency"
><img
src=
"@/assets/images/detail/overview/oper_source.png"
>
{{
item
.
creditRatingAgency
||
'--'
}}
</span>
<span
class=
"text-cl1"
:title=
"item.creditRatingAgency"
><img
src=
"@/assets/images/detail/overview/oper_source.png"
>
{{
item
.
creditRatingAgency
||
'--'
}}
</span>
</div>
</div>
</li>
...
...
@@ -32,38 +33,39 @@
</
template
>
<
script
>
import
{
bondCreditRating
}
from
'@/api/detail/party-a/overview'
var
Swiper
=
require
(
'@/assets/lib/swiper/swiper-bundle.min.js'
)
import
skeleton
from
'@/views/project/projectList/component/skeleton'
import
"@/assets/lib/swiper/swiper-bundle.css"
import
NoData
from
'../../component/noData'
import
{
bondCreditRating
}
from
'@/api/detail/party-a/overview'
;
var
Swiper
=
require
(
'@/assets/lib/swiper/swiper-bundle.min.js'
)
;
import
skeleton
from
'@/views/project/projectList/component/skeleton'
;
import
"@/assets/lib/swiper/swiper-bundle.css"
;
import
NoData
from
'../../component/noData'
;
export
default
{
name
:
'Overview'
,
props
:
[
'companyId'
,
'financial'
],
components
:
{
NoData
,
skeleton
NoData
,
skeleton
},
data
()
{
return
{
operList
:
[],
isSkeleton
:
true
,
isSkeleton
:
true
,
gsjyList
:
[
{
name
:
'总资产'
,
ico
:
require
(
'@/assets/images/detail/overview/gsjy_ico1.png'
),
amount
:
''
},
{
name
:
'净资产'
,
ico
:
require
(
'@/assets/images/detail/overview/gsjy_ico2.png'
),
amount
:
''
},
{
name
:
'授信余额'
,
ico
:
require
(
'@/assets/images/detail/overview/gsjy_ico3.png'
),
amount
:
''
},
{
name
:
'营业收入'
,
ico
:
require
(
'@/assets/images/detail/overview/gsjy_ico4.png'
),
amount
:
''
},
{
name
:
'总负债'
,
ico
:
require
(
'@/assets/images/detail/overview/gsjy_ico5.png'
),
amount
:
''
}
{
name
:
'总资产'
,
ico
:
require
(
'@/assets/images/detail/overview/gsjy_ico1.png'
),
amount
:
''
},
{
name
:
'净资产'
,
ico
:
require
(
'@/assets/images/detail/overview/gsjy_ico2.png'
),
amount
:
''
},
{
name
:
'授信余额'
,
ico
:
require
(
'@/assets/images/detail/overview/gsjy_ico3.png'
),
amount
:
''
},
{
name
:
'营业收入'
,
ico
:
require
(
'@/assets/images/detail/overview/gsjy_ico4.png'
),
amount
:
''
},
{
name
:
'总负债'
,
ico
:
require
(
'@/assets/images/detail/overview/gsjy_ico5.png'
),
amount
:
''
}
],
}
childFinancial
:
{}
};
},
created
()
{
this
.
handleQuery
()
this
.
handleQuery
()
;
},
mounted
()
{
this
.
companySwiper
()
this
.
companySwiper
()
;
},
methods
:
{
companySwiper
(){
companySwiper
()
{
new
Swiper
(
'.swiper-oper'
,
{
slidesPerView
:
6
,
// 设置点击箭头
...
...
@@ -71,136 +73,139 @@ export default {
nextEl
:
'.swiper-oper-next'
,
prevEl
:
'.swiper-oper-prev'
,
}
})
})
;
},
async
handleQuery
()
{
this
.
isSkeleton
=
true
;
let
res
=
await
bondCreditRating
({
cid
:
this
.
companyId
})
if
(
res
.
code
==
200
)
{
let
res
=
await
bondCreditRating
({
cid
:
this
.
companyId
});
if
(
res
.
code
==
200
)
{
this
.
isSkeleton
=
false
;
this
.
operList
=
res
.
data
||
[]
this
.
operList
=
res
.
data
||
[]
;
this
.
$nextTick
(()
=>
{
this
.
companySwiper
()
})
this
.
companySwiper
()
;
})
;
}
},
handleFinancial
(){
if
(
this
.
financial
)
{
let
{
totalAssets
,
belongNetAssets
,
creditBalance
,
operatingIncome
,
totalLiabilities
}
=
this
.
financial
let
jyqkObj
=
{
totalAssets
,
belongNetAssets
,
creditBalance
,
operatingIncome
,
totalLiabilities
}
handleFinancial
()
{
if
(
this
.
childFinancial
)
{
let
{
totalAssets
,
belongNetAssets
,
creditBalance
,
operatingIncome
,
totalLiabilities
}
=
this
.
childFinancial
;
let
jyqkObj
=
{
totalAssets
,
belongNetAssets
,
creditBalance
,
operatingIncome
,
totalLiabilities
}
;
this
.
gsjyList
.
forEach
((
item
,
index
)
=>
{
item
.
amount
=
jyqkObj
[
Object
.
keys
(
jyqkObj
)[
index
]]
?
parseFloat
(
jyqkObj
[
Object
.
keys
(
jyqkObj
)[
index
]].
toFixed
(
2
)):
0
})
item
.
amount
=
jyqkObj
[
Object
.
keys
(
jyqkObj
)[
index
]]
?
parseFloat
(
jyqkObj
[
Object
.
keys
(
jyqkObj
)[
index
]].
toFixed
(
2
))
:
0
;
})
;
}
}
},
watch
:
{
financial
(
newVal
,
oldVal
)
{
this
.
handleFinancial
()
this
.
childFinancial
=
newVal
;
this
.
handleFinancial
();
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.operations-container
{
margin
:
0
;
padding
:
24px
16px
;
background
:
#FFFFFF
;
border-radius
:
4px
;
.part-swiper
{
position
:
relative
;
margin-top
:
16px
;
.swiper-oper
{
width
:
calc
(
100%
-
38px
);
height
:
96px
;
margin-top
:
8px
;
margin-left
:
25px
;
overflow
:
hidden
;
.swiper-slide
{
.swiper-div
{
width
:
calc
(
100%
-
12px
);
height
:
96px
;
background
:
url("~@/assets/images/detail/overview/swiper_bg.png")
no-repeat
;
background-size
:
100%
100%
;
.operations-title
{
margin-right
:
22px
;
font-weight
:
bold
;
font-size
:
20px
;
color
:
#232323
;
padding
:
24px
16px
0
16px
;
span
{
font-size
:
16px
;
}
.operations-container
{
margin
:
0
;
padding
:
24px
16px
;
background
:
#ffffff
;
border-radius
:
4px
;
.part-swiper
{
position
:
relative
;
margin-top
:
16px
;
.swiper-oper
{
width
:
calc
(
100%
-
38px
);
height
:
96px
;
margin-top
:
8px
;
margin-left
:
25px
;
overflow
:
hidden
;
.swiper-slide
{
.swiper-div
{
width
:
calc
(
100%
-
12px
);
height
:
96px
;
background
:
url("~@/assets/images/detail/overview/swiper_bg.png")
no-repeat
;
background-size
:
100%
100%
;
.operations-title
{
margin-right
:
22px
;
font-weight
:
bold
;
font-size
:
20px
;
color
:
#232323
;
padding
:
24px
16px
0
16px
;
span
{
font-size
:
16px
;
}
.operations-info
{
padding
:
14px
16px
10px
16px
;
justify-content
:
space-between
;
font-size
:
14px
;
color
:
#232323
;
div
{
flex-shrink
:
0
;
}
span
{
font-size
:
12px
;
margin-left
:
6
px
;
img
{
width
:
10px
;
height
:
10px
;
margin-right
:
3
px
;
}
}
.operations-info
{
padding
:
14px
16px
10px
16px
;
justify-content
:
space-between
;
font-size
:
14px
;
color
:
#232323
;
div
{
flex-shrink
:
0
;
}
span
{
font-size
:
12
px
;
margin-left
:
6px
;
img
{
width
:
10px
;
height
:
10
px
;
margin-right
:
3px
;
}
}
}
}
}
.swiper-oper-prev
,
.swiper-oper-next
{
width
:
16px
;
height
:
96px
;
background
:
#F0F5FC
;
top
:
0
;
margin-top
:
0
;
&
.swiper-button-disabled
{
opacity
:
1
;
color
:
#AAAAAA
;
background
:
#F5F5F5
;
}
i
{
color
:
#AAAAAA
;
}
&
:hover
i
{
color
:
#667199
;
}
&
:after
{
content
:
""
;
}
}
.swiper-oper-prev
,
.swiper-oper-next
{
width
:
16px
;
height
:
96px
;
background
:
#f0f5fc
;
top
:
0
;
margin-top
:
0
;
&
.swiper-button-disabled
{
opacity
:
1
;
color
:
#aaaaaa
;
background
:
#f5f5f5
;
}
i
{
color
:
#aaaaaa
;
}
&
:hover
i
{
color
:
#667199
;
}
&
:after
{
content
:
""
;
}
}
.operations-list
{
flex-wrap
:
wrap
;
justify-content
:
space-between
;
.list-item
{
width
:
calc
(
20%
-
12px
);
height
:
88px
;
padding
:
18px
;
margin-top
:
14px
;
font-size
:
14px
;
color
:
#232323
;
border
:
1px
solid
#E2E7EE
;
text-align
:
center
;
.list-item-all
{
justify-content
:
center
;
img
{
width
:
24px
;
height
:
24px
;
margin-right
:
4px
;
}
}
.list-item-amount
{
padding-top
:
6px
;
font-weight
:
bold
;
}
.operations-list
{
flex-wrap
:
wrap
;
justify-content
:
space-between
;
.list-item
{
width
:
calc
(
20%
-
12px
);
height
:
88px
;
padding
:
18px
;
margin-top
:
14px
;
font-size
:
14px
;
color
:
#232323
;
border
:
1px
solid
#e2e7ee
;
text-align
:
center
;
.list-item-all
{
justify-content
:
center
;
img
{
width
:
24px
;
height
:
24px
;
margin-right
:
4px
;
}
}
.list-item-amount
{
padding-top
:
6px
;
font-weight
:
bold
;
}
}
}
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/overview/component/relationship.vue
View file @
0fa8ec63
This diff is collapsed.
Click to expand it.
dsk-operate-ui/src/views/detail/party-a/overview/component/risk.vue
View file @
0fa8ec63
...
...
@@ -2,28 +2,18 @@
<div
class=
"app-container clue-container"
>
<div
class=
"common-title"
>
风险概览
</div>
<div
class=
"flex-box clue-box"
v-if=
"viewData[0].value>0"
>
<div
class=
"clue-echarts"
><div
id=
"echartsRisk"
style=
"width: 100%;height:300px; margin: 0 auto;"
></div></div>
<div
class=
"clue-echarts"
>
<div
id=
"echartsRisk"
style=
"width: 100%;height:300px; margin: 0 auto;"
></div>
</div>
<div
class=
"table-item"
>
<el-table
:data=
"viewData"
border
style=
"width: 100%"
>
<el-table-column
prop=
"name"
label=
"风险纬度分布"
></el-table-column>
<el-table-column
prop=
"value"
align=
"right"
label=
"数量"
>
<el-table
:data=
"viewData"
border
style=
"width: 100%"
>
<el-table-column
prop=
"name"
label=
"风险纬度分布"
></el-table-column>
<el-table-column
prop=
"value"
align=
"right"
label=
"数量"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
value
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"bl"
align=
"right"
label=
"占比(%)"
>
<el-table-column
prop=
"bl"
align=
"right"
label=
"占比(%)"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
bl
}}
</span>
</
template
>
...
...
@@ -31,13 +21,13 @@
</el-table>
</div>
</div>
<no-data
v-else
/>
<no-data
v-else
/>
</div>
</template>
<
script
>
import
*
as
echarts
from
'echarts'
import
NoData
from
'../../component/noData'
import
*
as
echarts
from
'echarts'
;
import
NoData
from
'../../component/noData'
;
export
default
{
name
:
'Risk'
,
props
:
[
'statistic'
],
...
...
@@ -46,14 +36,14 @@ export default {
},
data
()
{
return
{
viewData
:[
viewData
:
[
{
name
:
'开庭公告'
,
value
:
''
,
category
:
'credit'
,
field
:
'openAnnouncement'
,
tz
:
''
,
bl
:
''
name
:
'开庭公告'
,
value
:
''
,
category
:
'credit'
,
field
:
'openAnnouncement'
,
tz
:
''
,
bl
:
''
},
/*{
name:'企业公告',
...
...
@@ -80,12 +70,12 @@ export default {
bl:''
},*/
{
name
:
'法院公告'
,
value
:
''
,
category
:
'credit'
,
field
:
'courtAnnouncement'
,
tz
:
''
,
bl
:
''
name
:
'法院公告'
,
value
:
''
,
category
:
'credit'
,
field
:
'courtAnnouncement'
,
tz
:
''
,
bl
:
''
},
/*{
name:'立案信息',
...
...
@@ -96,75 +86,76 @@ export default {
bl:''
},*/
{
name
:
'被执行人'
,
value
:
''
,
category
:
'credit'
,
field
:
'dishonestExecutee'
,
tz
:
''
,
bl
:
''
name
:
'被执行人'
,
value
:
''
,
category
:
'credit'
,
field
:
'dishonestExecutee'
,
tz
:
''
,
bl
:
''
},
{
name
:
'失信被执行人'
,
value
:
''
,
category
:
'credit'
,
field
:
'dishonestExecutor'
,
tz
:
''
,
bl
:
''
name
:
'失信被执行人'
,
value
:
''
,
category
:
'credit'
,
field
:
'dishonestExecutor'
,
tz
:
''
,
bl
:
''
},
{
name
:
'行政处罚'
,
value
:
''
,
category
:
'credit'
,
field
:
'adminSanction'
,
tz
:
''
,
bl
:
''
name
:
'行政处罚'
,
value
:
''
,
category
:
'credit'
,
field
:
'adminSanction'
,
tz
:
''
,
bl
:
''
},
],
}
childStatistic
:
{}
};
},
created
()
{
},
mounted
()
{
},
methods
:
{
handView
(){
handView
()
{
let
totalVal
=
this
.
viewData
.
map
(
item
=>
{
let
number
=
this
.
statistic
[
item
.
category
]
&&
this
.
statistic
[
item
.
category
][
item
.
field
]?
this
.
statistic
[
item
.
category
][
item
.
field
]:
0
return
number
}).
reduce
((
prev
,
cur
)
=>
prev
+
cur
)
let
number
=
this
.
childStatistic
[
item
.
category
]
&&
this
.
childStatistic
[
item
.
category
][
item
.
field
]
?
this
.
childStatistic
[
item
.
category
][
item
.
field
]
:
0
;
return
number
;
}).
reduce
((
prev
,
cur
)
=>
prev
+
cur
)
;
this
.
viewData
=
this
.
viewData
.
map
(
item
=>
{
let
number
=
this
.
statistic
[
item
.
category
]
&&
this
.
statistic
[
item
.
category
][
item
.
field
]?
this
.
statistic
[
item
.
category
][
item
.
field
]:
0
let
bl
=
number
?
parseFloat
(
Number
(
Number
(
number
)
/
Number
(
totalVal
)
*
100
).
toFixed
(
2
))
:
0
let
it
=
{
name
:
item
.
name
,
value
:
number
,
tz
:
''
,
bl
:
bl
}
return
it
})
let
number
=
this
.
childStatistic
[
item
.
category
]
&&
this
.
childStatistic
[
item
.
category
][
item
.
field
]
?
this
.
childStatistic
[
item
.
category
][
item
.
field
]
:
0
;
let
bl
=
number
?
parseFloat
(
Number
(
Number
(
number
)
/
Number
(
totalVal
)
*
100
).
toFixed
(
2
))
:
0
;
let
it
=
{
name
:
item
.
name
,
value
:
number
,
tz
:
''
,
bl
:
bl
};
return
it
;
})
;
this
.
viewData
.
sort
((
a
,
b
)
=>
{
return
a
.
value
<
b
.
value
?
1
:
-
1
;
})
this
.
$nextTick
(()
=>
{
if
(
this
.
viewData
[
0
].
value
>
0
)
{
})
;
this
.
$nextTick
(()
=>
{
if
(
this
.
viewData
[
0
].
value
>
0
)
{
this
.
getDT
();
}
})
})
;
},
getDT
(){
let
myChart
=
echarts
.
init
(
document
.
getElementById
(
"echartsRisk"
))
getDT
()
{
let
myChart
=
echarts
.
init
(
document
.
getElementById
(
"echartsRisk"
))
;
let
option
=
{
tooltip
:
{
trigger
:
'item'
,
borderWidth
:
0
,
backgroundColor
:
"rgba(255, 255, 255, 0.8)"
,
borderWidth
:
0
,
backgroundColor
:
"rgba(255, 255, 255, 0.8)"
,
formatter
:
function
(
params
)
{
var
result
=
''
result
+=
'<h3 style="color: #232226;padding: 0 0 5px 0;margin: 0;">'
+
params
.
data
.
name
+
'</h3>'
result
+=
'<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'
+
params
.
data
.
value
+
'个</p>'
if
(
params
.
data
.
tz
)
{
result
+=
'<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;" >'
+
params
.
data
.
tz
+
'亿元</p>'
var
result
=
''
;
result
+=
'<h3 style="color: #232226;padding: 0 0 5px 0;margin: 0;">'
+
params
.
data
.
name
+
'</h3>'
;
result
+=
'<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'
+
params
.
data
.
value
+
'个</p>'
;
if
(
params
.
data
.
tz
)
{
result
+=
'<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;" >'
+
params
.
data
.
tz
+
'亿元</p>'
;
}
result
+=
'<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'
+
params
.
data
.
bl
+
'%</p>'
result
+=
'<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'
+
params
.
data
.
bl
+
'%</p>'
;
return
result
;
},
extraCssText
:
'width:150px!important;'
,
extraCssText
:
'width:150px!important;'
,
},
legend
:
{
type
:
'scroll'
,
...
...
@@ -172,10 +163,10 @@ export default {
bottom
:
20
,
data
:
this
.
viewData
,
pageButtonPosition
:
'end'
,
itemWidth
:
12
,
itemHeight
:
8
,
itemWidth
:
12
,
itemHeight
:
8
,
},
color
:
[
'#8A82F3'
,
'#5B9CF7'
,
'#43BBE0'
,
'#8ECF95'
,
'#FFDC6B'
,
'#FE9C77'
,
'#E8649B'
,
'#8A82F3'
],
color
:
[
'#8A82F3'
,
'#5B9CF7'
,
'#43BBE0'
,
'#8ECF95'
,
'#FFDC6B'
,
'#FE9C77'
,
'#E8649B'
,
'#8A82F3'
],
series
:
[
{
type
:
'pie'
,
...
...
@@ -191,14 +182,15 @@ export default {
}
}
]
}
myChart
.
setOption
(
option
)
}
;
myChart
.
setOption
(
option
)
;
}
},
watch
:
{
statistic
(
newVal
,
oldVal
)
{
if
(
newVal
){
this
.
handView
()
this
.
childStatistic
=
newVal
;
if
(
newVal
)
{
this
.
handView
();
}
}
}
...
...
@@ -206,24 +198,24 @@ export default {
</
script
>
<
style
lang=
"scss"
scoped
>
.clue-container
{
margin
:
0
;
padding
:
24px
16px
;
background
:
#FFFFFF
;
border-radius
:
4px
;
.clue-box
{
width
:
100%
;
justify-content
:
space-between
;
margin-top
:
20px
;
.clue-echarts
{
width
:
calc
(
50%
-
8px
);
}
.table-item
{
width
:
calc
(
50%
-
8px
);
::v-deep
.el-table--border
.el-table__cell
{
border-bottom
:
0
;
}
.clue-container
{
margin
:
0
;
padding
:
24px
16px
;
background
:
#ffffff
;
border-radius
:
4px
;
.clue-box
{
width
:
100%
;
justify-content
:
space-between
;
margin-top
:
20px
;
.clue-echarts
{
width
:
calc
(
50%
-
8px
);
}
.table-item
{
width
:
calc
(
50%
-
8px
);
::v-deep
.el-table--border
.el-table__cell
{
border-bottom
:
0
;
}
}
}
}
</
style
>
dsk-operate-ui/src/views/market/index.vue
View file @
0fa8ec63
<
template
>
<div
v-loading=
"loading"
class=
"market-container"
>
<iframe
id=
"companyIframe"
class=
"market-iframe"
marginwidth=
"0"
marginheight=
"0"
scrolling=
"no"
frameborder=
"0"
width=
"100%"
:src=
"src"
/>
<transition
name=
"fade"
mode=
"out-in"
appear
>
<max-page-size-tip
v-if=
"showMaxPageTip"
@
closeMaxTip=
"showMaxPageTip = false"
></max-page-size-tip>
</transition>
</div>
</
template
>
...
...
@@ -39,13 +35,7 @@ export default {
};
},
created
()
{
if
(
window
.
location
.
host
===
'http://szh.jiansheku.com'
||
window
.
location
.
host
===
'szh.jiansheku.com'
)
{
this
.
domain
=
'https://plug.jiansheku.com'
;
}
else
{
this
.
domain
=
'https://pre-plug.jiansheku.com'
;
// this.domain = 'http://192.168.60.8:3400';
// this.domain = 'http://192.168.60.210:3400';
}
this
.
domain
=
process
.
env
.
VUE_APP_SUB_SYSTEM_ADDRESS
;
this
.
gettokens
();
this
.
iframeObserver
();
let
that
=
this
;
...
...
@@ -63,7 +53,7 @@ export default {
window
.
removeEventListener
(
"message"
,
this
.
pagecapListener
,
{
passive
:
true
});
window
.
removeEventListener
(
"message"
,
this
.
linkListener
);
// 移除layout样式
this
.
iframeIns
.
contentWindow
.
postMessage
(
"removeHtmlLayoutStyle"
,
{
targetOrigin
:
this
.
domain
,
})
;
this
.
iframeIns
?.
contentWindow
?
this
.
iframeIns
.
contentWindow
.
postMessage
(
"removeHtmlLayoutStyle"
,
{
targetOrigin
:
this
.
domain
,
})
:
null
;
},
methods
:
{
linkListener
(
event
)
{
...
...
@@ -102,7 +92,9 @@ export default {
const
{
origin
,
data
}
=
e
;
if
(
origin
!=
this
.
domain
)
return
;
if
(
data
==
"pageCurrentMaxSize"
)
{
this
.
showMaxPageTip
=
true
;
this
.
$maxTip
(
"您可通过筛选工具来查询数据~若有更多需求请联系客服 0262798729!"
).
then
(({
done
,
uid
})
=>
{
done
();
});
}
},
gettokens
()
{
...
...
dsk-operate-ui/src/views/subsystem/index.vue
0 → 100644
View file @
0fa8ec63
<
template
>
<div
class=
"subsystem-iframe-container"
>
</div>
</
template
>
<
script
>
export
default
{
name
:
""
,
data
()
{
return
{
};
},
//可访问data属性
created
()
{
},
//计算集
computed
:
{
},
//方法集
methods
:
{
},
// 渲染方法
render
(
createElement
)
{
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.subsystem-iframe-container
{
position
:
absolute
;
top
:
0
;
left
:
0
;
width
:
100%
;
height
:
100%
;
padding
:
16px
24px
;
box-sizing
:
border-box
;
}
</
style
>
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