Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
dataease
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
zhu
dataease
Commits
0ce07f43
提交
0ce07f43
authored
11月 15, 2021
作者:
wangjiahao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor:仪表板视图联动,使用相同数据集的视图,自动补充联动字段
上级
3f5624a6
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
46 行增加
和
22 行删除
+46
-22
ExtChartViewMapper.java
.../java/io/dataease/base/mapper/ext/ExtChartViewMapper.java
+2
-0
ExtChartViewMapper.xml
...n/java/io/dataease/base/mapper/ext/ExtChartViewMapper.xml
+2
-13
ChartViewController.java
...ava/io/dataease/controller/chart/ChartViewController.java
+6
-0
ChartViewService.java
...main/java/io/dataease/service/chart/ChartViewService.java
+8
-0
chart.js
frontend/src/api/chart/chart.js
+8
-0
LinkageField.vue
.../src/components/canvas/components/Editor/LinkageField.vue
+20
-9
没有找到文件。
backend/src/main/java/io/dataease/base/mapper/ext/ExtChartViewMapper.java
浏览文件 @
0ce07f43
...
@@ -20,4 +20,6 @@ public interface ExtChartViewMapper {
...
@@ -20,4 +20,6 @@ public interface ExtChartViewMapper {
List
<
String
>
allViewIds
(
@Param
(
"tableId"
)
String
tableId
);
List
<
String
>
allViewIds
(
@Param
(
"tableId"
)
String
tableId
);
String
searchAdviceSceneId
(
@Param
(
"userId"
)
String
userId
,
@Param
(
"panelId"
)
String
panelId
);
String
searchAdviceSceneId
(
@Param
(
"userId"
)
String
userId
,
@Param
(
"panelId"
)
String
panelId
);
int
checkSameDataSet
(
@Param
(
"viewIdSource"
)
String
viewIdSource
,
@Param
(
"viewIdTarget"
)
String
viewIdTarget
);
}
}
backend/src/main/java/io/dataease/base/mapper/ext/ExtChartViewMapper.xml
浏览文件 @
0ce07f43
...
@@ -136,18 +136,7 @@
...
@@ -136,18 +136,7 @@
id = #{oldChartId}
id = #{oldChartId}
</insert>
</insert>
<select
id=
"searchAdviceSceneId"
resultType=
"String"
>
<select
id=
"checkSameDataSet"
resultType=
"int"
>
SELECT DISTINCT
select count(DISTINCT table_id) from chart_view where id = #{viewIdSource} or id = #{viewIdTarget}
( scene_id )
FROM
( SELECT GET_V_AUTH_MODEL_ID_P_USE ( #{userId}, 'chart' ) cids ) t,
panel_view
LEFT JOIN chart_view ON panel_view.chart_view_id = chart_view.id
LEFT JOIN chart_group ON chart_view.scene_id = chart_group.id
WHERE
FIND_IN_SET( chart_view.scene_id, cids ) and panel_view.panel_id =#{panelId}
ORDER BY
chart_group.create_time DESC
LIMIT 1
</select>
</select>
</mapper>
</mapper>
backend/src/main/java/io/dataease/controller/chart/ChartViewController.java
浏览文件 @
0ce07f43
...
@@ -107,4 +107,10 @@ public class ChartViewController {
...
@@ -107,4 +107,10 @@ public class ChartViewController {
public
ChartViewDTO
calcData
(
@RequestBody
ChartCalRequest
request
)
throws
Exception
{
public
ChartViewDTO
calcData
(
@RequestBody
ChartCalRequest
request
)
throws
Exception
{
return
chartViewService
.
calcData
(
request
.
getView
(),
request
.
getRequestList
(),
false
);
return
chartViewService
.
calcData
(
request
.
getView
(),
request
.
getRequestList
(),
false
);
}
}
@ApiOperation
(
"验证视图是否使用相同数据集"
)
@GetMapping
(
"/checkSameDataSet/{viewIdSource}/{viewIdTarget}"
)
public
String
checkSameDataSet
(
@PathVariable
String
viewIdSource
,
@PathVariable
String
viewIdTarget
)
throws
Exception
{
return
chartViewService
.
checkSameDataSet
(
viewIdSource
,
viewIdTarget
);
}
}
}
backend/src/main/java/io/dataease/service/chart/ChartViewService.java
浏览文件 @
0ce07f43
...
@@ -1455,4 +1455,12 @@ public class ChartViewService {
...
@@ -1455,4 +1455,12 @@ public class ChartViewService {
public
String
searchAdviceSceneId
(
String
panelId
)
{
public
String
searchAdviceSceneId
(
String
panelId
)
{
return
extChartViewMapper
.
searchAdviceSceneId
(
AuthUtils
.
getUser
().
getUserId
().
toString
(),
panelId
);
return
extChartViewMapper
.
searchAdviceSceneId
(
AuthUtils
.
getUser
().
getUserId
().
toString
(),
panelId
);
}
}
public
String
checkSameDataSet
(
String
viewIdSource
,
String
viewIdTarget
)
{
if
(
extChartViewMapper
.
checkSameDataSet
(
viewIdSource
,
viewIdTarget
)==
1
){
return
"YES"
;
}
else
{
return
"NO"
;
}
}
}
}
frontend/src/api/chart/chart.js
浏览文件 @
0ce07f43
...
@@ -52,3 +52,11 @@ export function searchAdviceSceneId(panelId) {
...
@@ -52,3 +52,11 @@ export function searchAdviceSceneId(panelId) {
loading
:
true
loading
:
true
})
})
}
}
export
function
checkSameDataSet
(
viewIdSource
,
viewIdTarget
)
{
return
request
({
url
:
'/chart/view/checkSameDataSet/'
+
viewIdSource
+
'/'
+
viewIdTarget
,
method
:
'get'
,
loading
:
false
})
}
frontend/src/components/canvas/components/Editor/LinkageField.vue
浏览文件 @
0ce07f43
...
@@ -15,11 +15,10 @@
...
@@ -15,11 +15,10 @@
</el-row>
</el-row>
<el-row
style=
"height: 120px;overflow-y: auto"
>
<el-row
style=
"height: 120px;overflow-y: auto"
>
<el-row
v-for=
"(itemLinkage, index) in linkageInfo.linkageFields"
:key=
"index"
>
<el-row
v-for=
"(item, index) in linkageInfo.linkageFields"
:key=
"index"
>
<el-col
:span=
"11"
>
<el-col
:span=
"11"
>
<div
class=
"select-filed"
>
<div
class=
"select-filed"
>
<el-select
v-model=
"item.sourceField"
size=
"mini"
placeholder=
"请选择"
>
<el-select
v-model=
"item
Linkage
.sourceField"
size=
"mini"
placeholder=
"请选择"
>
<el-option
<el-option
v-for=
"item in sourceLinkageInfo.targetViewFields"
v-for=
"item in sourceLinkageInfo.targetViewFields"
:key=
"item.id"
:key=
"item.id"
...
@@ -39,7 +38,7 @@
...
@@ -39,7 +38,7 @@
</el-col>
</el-col>
<el-col
:span=
"11"
>
<el-col
:span=
"11"
>
<div
class=
"select-filed"
>
<div
class=
"select-filed"
>
<el-select
v-model=
"item.targetField"
size=
"mini"
placeholder=
"请选择"
>
<el-select
v-model=
"item
Linkage
.targetField"
size=
"mini"
placeholder=
"请选择"
>
<el-option
<el-option
v-for=
"item in linkageInfo.targetViewFields"
v-for=
"item in linkageInfo.targetViewFields"
:key=
"item.id"
:key=
"item.id"
...
@@ -52,7 +51,7 @@
...
@@ -52,7 +51,7 @@
<svg-icon
v-if=
"item.deType === 2 || item.value === 3"
icon-class=
"field_value"
class=
"field-icon-value"
/>
<svg-icon
v-if=
"item.deType === 2 || item.value === 3"
icon-class=
"field_value"
class=
"field-icon-value"
/>
<svg-icon
v-if=
"item.deType === 5"
icon-class=
"field_location"
class=
"field-icon-location"
/>
<svg-icon
v-if=
"item.deType === 5"
icon-class=
"field_location"
class=
"field-icon-location"
/>
</span>
</span>
<span
style=
"float: left; color: #8492a6; font-size: 12px"
>
{{
item
.
name
}}
</span>
<span
style=
"float: left; color: #8492a6; font-size: 12px"
>
{{
item
Linkage
.
targetField
}}
-
{{
item
.
name
}}
</span>
</el-option>
</el-option>
</el-select>
</el-select>
</div>
</div>
...
@@ -66,7 +65,7 @@
...
@@ -66,7 +65,7 @@
</el-row>
</el-row>
<el-row
class=
"bottom"
>
<el-row
class=
"bottom"
>
<el-button
size=
"mini"
type=
"success"
icon=
"el-icon-plus"
round
@
click=
"addLinkageField"
>
追加联动依赖字段
</el-button>
<el-button
size=
"mini"
type=
"success"
icon=
"el-icon-plus"
round
@
click=
"addLinkageField
(null,null)
"
>
追加联动依赖字段
</el-button>
</el-row>
</el-row>
<!--
<el-button
slot=
"reference"
>
T
</el-button>
-->
<!--
<el-button
slot=
"reference"
>
T
</el-button>
-->
...
@@ -76,6 +75,7 @@
...
@@ -76,6 +75,7 @@
<
script
>
<
script
>
import
{
mapState
}
from
'vuex'
import
{
mapState
}
from
'vuex'
import
{
checkSameDataSet
}
from
'@/api/chart/chart'
export
default
{
export
default
{
props
:
{
props
:
{
...
@@ -105,6 +105,17 @@ export default {
...
@@ -105,6 +105,17 @@ export default {
]
]
}
}
},
},
mounted
()
{
// 初始化映射关系 如果当前是相同的数据集且没有关联关系,则自动补充映射关系
checkSameDataSet
(
this
.
curLinkageView
.
propValue
.
viewId
,
this
.
element
.
propValue
.
viewId
).
then
(
res
=>
{
console
.
log
(
'linkageFields:'
+
JSON
.
stringify
(
this
.
linkageInfo
.
linkageFields
))
if
(
res
.
data
===
'YES'
&&
this
.
linkageInfo
.
linkageFields
.
length
===
0
)
{
this
.
sourceLinkageInfo
.
targetViewFields
.
forEach
(
item
=>
{
this
.
addLinkageField
(
item
.
id
,
item
.
id
)
})
}
})
},
computed
:
{
computed
:
{
linkageInfo
()
{
linkageInfo
()
{
return
this
.
targetLinkageInfo
[
this
.
element
.
propValue
.
viewId
]
return
this
.
targetLinkageInfo
[
this
.
element
.
propValue
.
viewId
]
...
@@ -137,10 +148,10 @@ export default {
...
@@ -137,10 +148,10 @@ export default {
deleteLinkageField
(
index
)
{
deleteLinkageField
(
index
)
{
this
.
linkageInfo
.
linkageFields
.
splice
(
index
,
1
)
this
.
linkageInfo
.
linkageFields
.
splice
(
index
,
1
)
},
},
addLinkageField
()
{
addLinkageField
(
sourceFieldId
,
targetFieldId
)
{
const
linkageFieldItem
=
{
const
linkageFieldItem
=
{
source
ViewId
:
null
,
source
Field
:
sourceFieldId
,
target
ViewId
:
null
target
Field
:
targetFieldId
}
}
this
.
linkageInfo
.
linkageFields
.
push
(
linkageFieldItem
)
this
.
linkageInfo
.
linkageFields
.
push
(
linkageFieldItem
)
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论