Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
jml0128
/
xrk-bi
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 5b952cfb
authored
Jul 07, 2021
by
jml0128
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
1 parent
187155ec
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
163 additions
and
80 deletions
src/packages/bi/src/chart-type/bar/createBar.js
src/packages/bi/src/chart-type/line/createLine.js
src/packages/bi/src/commonComponents/chart-block.vue
src/packages/bi/src/commonComponents/chart-choice-mixin-toggle-axis.vue
src/packages/bi/src/commonComponents/chart-desc.vue
src/packages/bi/src/commonComponents/chart-title.vue
src/packages/bi/src/components/cover.vue
src/packages/bi/src/components/mission.vue
src/packages/bi/src/components/overview.vue
src/packages/bi/src/components/singleChoice.vue
src/packages/bi/src/mock/index.js
src/packages/bi/src/project/20-configurable.vue
src/packages/bi/src/project/6-zone.vue
src/packages/bi/src/chart-type/bar/createBar.js
View file @
5b952cf
...
...
@@ -205,7 +205,10 @@ export const createBarMultiple = (
label
:
{
show
:
true
,
color
:
'#fff'
,
fontSize
:
12
fontSize
:
12
,
formatter
(
params
)
{
return
params
[
'data'
]
||
''
;
}
},
data
:
item
};
...
...
@@ -274,7 +277,10 @@ export const createBarMultipleTransverse = (
label
:
{
show
:
true
,
color
:
'#fff'
,
fontSize
:
12
fontSize
:
12
,
formatter
(
params
)
{
return
params
[
'data'
]
||
''
;
}
},
data
:
item
};
...
...
src/packages/bi/src/chart-type/line/createLine.js
View file @
5b952cf
...
...
@@ -18,7 +18,7 @@ const grid = {
containLabel
:
true
,
left
:
0
,
right
:
10
,
top
:
1
0
,
top
:
2
0
,
bottom
:
0
};
...
...
src/packages/bi/src/commonComponents/chart-block.vue
View file @
5b952cf
...
...
@@ -3,7 +3,7 @@
* @Author: jml
* @Date: 2021-03-24 10:22:27
* @LastEditors: Please set LastEditors
* @LastEditTime: 2021-07-0
4 12:16:45
* @LastEditTime: 2021-07-0
7 16:09:37
-->
<
template
>
<div
style=
"position:relative;"
class=
"bi-chart-block"
>
...
...
@@ -44,7 +44,7 @@
<BiChart
:showGuide=
"showGuide"
v-else
v-bind=
"chart"
></BiChart>
</
template
>
<BiChartLegend
v-if=
"legend.show"
v-if=
"legend.show
&& chart.type != 11
"
v-bind=
"{ ...legend, colors: chart.colors }"
></BiChartLegend>
<BiChartDesc
...
...
@@ -61,6 +61,7 @@
<BiChartDesc
v-if=
"analysisDesc.show"
v-bind=
"analysisDesc"
@
change-text=
"changeZnText"
@
change-status=
"changeStatus('analysisDesc', '智能分析')"
></BiChartDesc>
<slot
name=
"bottom"
></slot>
...
...
@@ -150,6 +151,11 @@ export default {
this
.
chartConfig
[
'desc'
][
'customText'
]
=
text
;
console
.
log
(
`
${
this
.
title
.
name
}
-用户自定义描述`
,
text
);
},
changeZnText
(
text
)
{
// 修改智能分析附加文字的内容
this
.
chartConfig
[
'analysisDesc'
][
'customText'
]
=
text
;
console
.
log
(
`
${
this
.
title
.
name
}
-只能分析用户自定义描述`
,
text
);
},
toggleAxis
()
{
// 交换X轴与Y轴
const
{
data
,
axis
}
=
this
.
chart
;
...
...
src/packages/bi/src/commonComponents/chart-choice-mixin-toggle-axis.vue
View file @
5b952cf
...
...
@@ -15,11 +15,11 @@
<div
class=
"bi-chart-choice-mixin-toggle-axis_text"
>
<div>
<span>
X轴:
</span>
<span>
{{
dealAxis
[
0
]
}}
</span>
<span>
{{
deal
FactorName
Axis
[
0
]
}}
</span>
</div>
<div
style=
"margin-top:10px;"
>
<span>
Y轴:
</span>
<span>
{{
dealAxis
[
1
]
}}
</span>
<span>
{{
deal
FactorName
Axis
[
1
]
}}
</span>
</div>
</div>
<el-button
icon=
"el-icon-sort"
v-if=
"!isPrint"
@
click=
"toggle"
>
...
...
@@ -49,6 +49,9 @@ export default {
}
},
computed
:
{
dealFactorNameAxis
()
{
return
this
.
axis
.
map
(
item
=>
item
.
factorName
);
},
dealAxis
()
{
return
this
.
axis
.
map
(
item
=>
item
.
name
);
}
...
...
src/packages/bi/src/commonComponents/chart-desc.vue
View file @
5b952cf
...
...
@@ -45,6 +45,7 @@
import
mixin
from
'../mixin/index'
;
import
{
Button
}
from
'element-ui'
;
import
BiBlank
from
'./blank.vue'
;
import
{
keepLastIndex
}
from
'../chart-type/common'
;
export
default
{
name
:
'bi-chart-desc'
,
mixins
:
[
mixin
],
...
...
@@ -90,6 +91,8 @@ export default {
this
.
$refs
[
'input'
].
focus
();
},
input
(
event
)
{
const
range
=
window
.
getSelection
();
//创建range
const
focusOffset
=
range
.
focusOffset
;
try
{
const
{
innerText
}
=
event
.
target
;
if
(
...
...
@@ -97,20 +100,28 @@ export default {
this
.
localText
.
length
===
this
.
maxLength
)
{
event
.
target
.
innerText
=
this
.
localText
;
this
.
keepLastIndex
(
event
.
target
);
this
.
$nextTick
(()
=>
{
keepLastIndex
(
event
.
target
,
focusOffset
-
1
);
});
return
;
}
const
text
=
`
${
innerText
}
`
.
slice
(
0
,
this
.
maxLength
);
this
.
localText
=
text
;
this
.
$emit
(
'change-text'
,
this
.
localText
);
this
.
$nextTick
(()
=>
{
keepLastIndex
(
event
.
target
,
focusOffset
);
});
}
catch
(
error
)
{
console
.
log
(
error
);
}
}
},
mounted
()
{
this
.
$refs
[
'input'
]
&&
this
.
$refs
[
'input'
].
addEventListener
(
'paste'
,
function
(
e
)
{
const
inputDom
=
this
.
$refs
[
'input'
];
if
(
inputDom
)
{
inputDom
.
innerHTML
=
inputDom
.
innerText
;
inputDom
.
addEventListener
(
'paste'
,
function
(
e
)
{
e
.
stopPropagation
();
e
.
preventDefault
();
var
text
=
''
,
...
...
@@ -126,6 +137,7 @@ export default {
document
.
execCommand
(
'paste'
,
false
,
text
);
}
});
}
},
watch
:
{
customText
:
{
...
...
src/packages/bi/src/commonComponents/chart-title.vue
View file @
5b952cf
...
...
@@ -4,6 +4,7 @@
-->
<
template
>
<div
class=
"bi-chart-title"
>
<div
class=
"bi-chart-title-darg"
></div>
<div
class=
"bi-chart-title_hr"
v-if=
"!hideHr"
></div>
<div
class=
"bi-chart-title_name"
...
...
@@ -193,6 +194,14 @@ export default {
font
-
size
:
0
;
padding
-
top
:
20
px
;
padding
-
bottom
:
20
px
;
&-
darg
{
position
:
absolute
;
width
:
100
%
;
height
:
100
%
;
left
:
0
;
top
:
0
;
z
-
index
:
1
;
}
&
_hr
{
width
:
5
px
;
height
:
26
px
;
...
...
@@ -207,6 +216,10 @@ export default {
color
:
#
2
a3558
;
line
-
height
:
1.3
;
max
-
width
:
72
%
;
display
:
inline
-
block
;
position
:
relative
;
z
-
index
:
2
;
min
-
width
:
200
px
;
&
.
mobile
{
font
-
size
:
0.26
rem
;
}
...
...
@@ -231,6 +244,7 @@ export default {
right
:
16
px
;
top
:
50
%
;
margin
-
top
:
-
21
px
;
z
-
index
:
3
;
&
_item
{
&
+
.
bi
-
chart
-
title_btn_group_item
{
margin
-
left
:
8
px
;
...
...
src/packages/bi/src/components/cover.vue
View file @
5b952cf
...
...
@@ -218,6 +218,9 @@ export default {
this
.
content
[
index
][
'name'
].
length
===
maxLength
)
{
event
.
target
.
innerText
=
this
.
content
[
index
][
'name'
];
this
.
$nextTick
(()
=>
{
keepLastIndex
(
event
.
target
,
focusOffset
-
1
);
});
return
;
}
const
text
=
`
${
innerText
}
`
.
slice
(
0
,
maxLength
);
...
...
@@ -277,6 +280,7 @@ export default {
this
.
$nextTick
(()
=>
{
Array
.
isArray
(
this
.
$refs
[
'input'
])
&&
this
.
$refs
[
'input'
].
forEach
(
item
=>
{
item
.
innerHTML
=
item
.
innerText
;
item
.
addEventListener
(
'paste'
,
function
(
e
)
{
e
.
stopPropagation
();
e
.
preventDefault
();
...
...
src/packages/bi/src/components/mission.vue
View file @
5b952cf
...
...
@@ -48,14 +48,27 @@ export default {
return
{};
},
methods
:
{},
mounted
()
{
this
.
$emit
(
'page'
,
heightToPage
(
this
.
$refs
[
'bi-mission'
].
offsetHeight
));
mounted
()
{},
watch
:
{
data
:
{
handler
()
{
this
.
$nextTick
(()
=>
{
this
.
$emit
(
'page'
,
heightToPage
(
this
.
$refs
[
'bi-mission'
].
offsetHeight
)
);
});
},
deep
:
true
,
immediate
:
true
}
}
};
</
script
>
<
style
lang=
"scss"
scoped
>
.bi-mission
{
page-break-before
:
always
;
page-break-after
:
always
;
padding-bottom
:
50px
;
&_group
{
padding
:
0
30px
;
...
...
src/packages/bi/src/components/overview.vue
View file @
5b952cf
...
...
@@ -78,6 +78,7 @@ $bluecolor: #1989fa;
&
>
div
{
display
:
inline-block
;
width
:
450px
;
vertical-align
:
top
;
&:nth-child(3)
{
width
:
200px
;
}
...
...
src/packages/bi/src/components/singleChoice.vue
View file @
5b952cf
...
...
@@ -8,7 +8,7 @@
<vue-draggable
class=
"bi-single-choice_group"
:class=
"
{ wrap: pageWrap }"
handle=".bi-chart-title
_name
"
handle=".bi-chart-title
-darg
"
v-model="copySingleChoice"
:disabled="disabled"
chosen-class="chosen"
...
...
@@ -114,17 +114,17 @@ export default {
},
...(
this
.
$refs
[
'bi-single-choice_item'
]
||
[]).
map
(
item
=>
{
let
height
=
0
;
item
.
pervPage
=
item
.
$children
.
reduce
(
(
pre
,
{
$el
:
{
offsetHeight
}
})
=>
{
item
.
pervPage
=
item
.
$children
.
reduce
((
pre
,
{
$el
})
=>
{
const
{
offsetHeight
}
=
$el
;
if
(
$el
.
className
!=
'bi-blank'
&&
!
this
.
Bi
.
isPrint
)
{
height
+=
offsetHeight
;
if
(
height
>=
1697
)
{
pre
+=
1
;
height
=
offsetHeight
;
}
return
pre
;
},
0
);
}
if
(
height
>=
1697
)
{
pre
+=
1
;
height
=
offsetHeight
;
}
return
pre
;
},
0
);
return
item
;
})
];
...
...
@@ -135,31 +135,30 @@ export default {
page
:
this
.
pageWrap
?
0
:
1
};
const
catalogueInfoArr
=
[];
domArr
.
forEach
(
({
$el
:
{
offsetHeight
},
title
,
pervPage
=
0
},
index
)
=>
{
pageSizeInfo
.
height
+=
offsetHeight
;
if
(
this
.
pageWrap
)
{
if
(
index
==
1
)
{
// 遍历到第二个时,如果存在顶部标题,则将两个高度相加(汇总标题和表格不做强制分页)
pageSizeInfo
.
pervHeight
=
offsetHeight
+
topDom
.
offsetHeight
;
if
(
offsetHeight
+
topDom
.
offsetHeight
>
1697
)
{
pageSizeInfo
.
page
+=
1
;
}
}
else
{
pageSizeInfo
.
page
+=
pageSizeInfo
.
pervPage
+
1
;
pageSizeInfo
.
pervPage
=
pervPage
;
domArr
.
forEach
(({
$el
,
title
,
pervPage
=
0
},
index
)
=>
{
const
offsetHeight
=
$el
.
offsetHeight
-
(
this
.
Bi
.
isPrint
?
0
:
56
);
pageSizeInfo
.
height
+=
offsetHeight
;
if
(
this
.
pageWrap
)
{
if
(
index
==
1
)
{
// 遍历到第二个时,如果存在顶部标题,则将两个高度相加(汇总标题和表格不做强制分页)
pageSizeInfo
.
pervHeight
=
offsetHeight
+
topDom
.
offsetHeight
;
if
(
offsetHeight
+
topDom
.
offsetHeight
>
1697
)
{
pageSizeInfo
.
page
+=
1
;
}
}
else
if
(
pageSizeInfo
.
height
>=
1697
)
{
pageSizeInfo
.
page
+=
1
;
pageSizeInfo
.
height
=
offsetHeight
;
}
else
{
pageSizeInfo
.
page
+=
pageSizeInfo
.
pervPage
+
1
;
pageSizeInfo
.
pervPage
=
pervPage
;
}
catalogueInfoArr
.
push
({
name
:
(
title
||
{}).
name
,
page
:
pageSizeInfo
.
page
});
}
else
if
(
pageSizeInfo
.
height
>=
1697
)
{
pageSizeInfo
.
page
+=
1
;
pageSizeInfo
.
height
=
offsetHeight
;
}
);
catalogueInfoArr
.
push
({
name
:
(
title
||
{}).
name
,
page
:
pageSizeInfo
.
page
});
});
console
.
log
(
111
,
pageSizeInfo
.
page
,
catalogueInfoArr
);
this
.
$emit
(
'page'
,
{
pageSize
:
pageSizeInfo
.
page
,
info
:
catalogueInfoArr
...
...
src/packages/bi/src/mock/index.js
View file @
5b952cf
...
...
@@ -90,10 +90,12 @@ export const chartConfig = () => {
chartType
,
isGroup
,
hideBtn
,
resultIsShow
,
resultSystem
,
resultUser
,
znTableIsShow
,
znResultSystem
,
znResultUser
,
znResultIsShow
,
...
...
@@ -164,6 +166,7 @@ export const chartConfig = () => {
data
:
legends
||
(
isGroup
?
y
:
x
)
},
desc
:
{
hideBtn
:
hideBtn
,
show
:
!
hideDesc
,
setShow
:
!!
resultIsShow
,
text
:
resultSystem
,
...
...
@@ -171,7 +174,7 @@ export const chartConfig = () => {
},
analysis
:
{
show
:
isGroup
,
setShow
:
true
,
setShow
:
!!
znTableIsShow
,
data
:
{
title
:
[
{
factorName
:
xFactor
,
name
:
xAxisName
,
axis
:
x
},
...
...
src/packages/bi/src/project/20-configurable.vue
View file @
5b952cf
...
...
@@ -122,6 +122,7 @@ export default {
},
computed
:
{
catalogueArr
()
{
const
hasSingleChoice
=
this
.
showSingleChoice
.
length
>
0
;
const
{
page1
=
0
,
page2
=
0
,
page3Info
=
[]
}
=
this
;
return
[
{
...
...
@@ -142,30 +143,41 @@ export default {
// },
{
name
:
'执行任务人员画像'
,
page
:
page1
+
1
page
:
2
},
{
name
:
'项目参与人完成任务区间分布'
,
page
:
page1
+
1
page
:
2
}
]
},
{
name
:
'项目相关调研模块'
,
child
:
[
{
name
:
'单因素分析'
,
page
:
page1
+
2
},
...
page3Info
.
filter
(
item
=>
item
.
name
)
.
map
(
item
=>
{
return
{
...
item
,
page
:
page1
+
1
+
page2
+
item
.
page
};
})
]
child
:
hasSingleChoice
?
[
{
name
:
'单因素分析'
,
page
:
page1
+
2
},
...
page3Info
.
filter
(
item
=>
item
.
name
)
.
map
(
item
=>
{
return
{
...
item
,
page
:
page1
+
1
+
page2
+
item
.
page
};
})
]
:
[
...
page3Info
.
filter
(
item
=>
item
.
name
)
.
map
(
item
=>
{
return
{
...
item
,
page
:
page1
+
1
+
page2
+
item
.
page
};
})
]
}
];
},
...
...
@@ -343,13 +355,17 @@ export default {
}),
ChartConfigFn
.
createConfig
([],
{
...
group4
,
resultSystem
:
`
${
group1
.
resultSystem
}
,
${
group2
.
resultSystem
}
`
,
resultIsShow
:
1
,
hideBtn
:
true
,
resultSystem
:
`
${
group2
.
analyseDescribe
}
,
${
group4
.
resultSystem
}
`
,
hideLegend
:
true
,
hideChart
:
true
,
hideTitle
:
true
}),
ChartConfigFn
.
createConfig
(
dealAxis
(
group3
.
fixedCountInfos
),
{
...
group3
,
resultIsShow
:
1
,
hideBtn
:
true
,
chartType
:
group3
.
chartType
||
2
,
legends
:
dealLegends
(
group3
.
fixedCountInfos
),
blockTitle
:
'项目参与人完成任务区间分布'
,
...
...
@@ -387,7 +403,7 @@ export default {
isGroup
:
true
,
dontContenteditable
:
true
,
toggleAxisContenteditable
:
true
,
blockTitle
:
`
${
item
.
xFactor
}
因素与
${
item
.
yFactor
}
因素
相关性分析`
,
blockTitle
:
`
${
item
.
xFactor
}
与
${
item
.
yFactor
}
相关性分析`
,
chartType
:
item
.
chartType
||
randomType
([
1
,
2
,
3
,
4
,
5
,
6
,
9
,
10
,
11
])
});
...
...
src/packages/bi/src/project/6-zone.vue
View file @
5b952cf
...
...
@@ -142,17 +142,17 @@ export default {
{
name
:
'项目执行任务模块'
,
child
:
[
{
name
:
'任务量分析'
,
page
:
page1
+
1
},
//
{
//
name: '任务量分析',
// page: 2
//
},
{
name
:
'执行任务人员画像'
,
page
:
page1
+
1
page
:
2
},
{
name
:
'项目参与人完成任务区间分布'
,
page
:
page1
+
1
page
:
2
}
]
},
...
...
@@ -313,6 +313,7 @@ export default {
legendName
:
'总参与项目执行人数${num}人'
,
hideDesc
:
true
,
hideDelete
:
true
,
dontContenteditable
:
true
,
width
:
520
,
height
:
350
,
disableTypes
:
[
3
,
4
],
...
...
@@ -326,16 +327,19 @@ export default {
legendName
:
'总参与项目执行人数${num}人'
,
hideDesc
:
true
,
hideDelete
:
true
,
dontContenteditable
:
true
,
width
:
520
,
height
:
350
,
disableTypes
:
[
3
,
4
]
}),
ChartConfigFn
.
createConfig
([],
{
...
group1
,
resultIsShow
:
1
,
hideBtn
:
true
,
hideLegend
:
true
,
hideChart
:
true
,
hideTitle
:
true
})
// ChartConfigFn.createConfig([], {
// ...infoArr[1],
// hideLegend: true,
// hideChart: true,
// hideTitle: true
// }),
// ChartConfigFn.createConfig(dealAxis(group3.fixedCountInfos), {
// ...group3,
// chartType: group3.chartType || 2,
...
...
@@ -438,6 +442,11 @@ export default {
saveInfo
()
{
const
{
biInfoId
,
styleConfigureId
}
=
this
.
biInfo
;
const
{
content
}
=
this
.
$refs
[
'cover'
];
let
_missionData
=
chartConfigToSetInfo
(
this
.
missionData
,
biInfoId
);
_missionData
[
0
]
=
Object
.
assign
({},
_missionData
[
0
],
_missionData
[
2
]);
_missionData
=
_missionData
.
slice
(
0
,
2
);
return
this
.
Bi
.
saveInfo
({
biInfoId
:
biInfoId
,
commandType
:
2
,
...
...
@@ -452,10 +461,7 @@ export default {
title
:
content
[
0
].
name
||
''
,
//封面标题
titlePosition
:
JSON
.
stringify
(
content
[
0
].
pos
)
//标题位置
},
styleConfigureFixedDetailList
:
chartConfigToSetInfo
(
this
.
missionData
,
biInfoId
),
styleConfigureFixedDetailList
:
_missionData
,
hgtgDetailList
:
chartConfigToSetInfo
(
[...
this
.
singleChoice
,
...
this
.
singleChoiceMixin
],
biInfoId
...
...
Write
Preview
Markdown
is supported
Attach a file
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 post a comment