Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
dataease
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
zhu
dataease
Commits
7efac43e
提交
7efac43e
authored
10月 08, 2021
作者:
wangjiahao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat:画板优化
上级
e20607d9
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
28 个修改的文件
包含
347 行增加
和
60 行删除
+347
-60
PanelViewLinkageController.java
...dataease/controller/panel/PanelViewLinkageController.java
+2
-2
package.json
frontend/package.json
+3
-2
drag.js
frontend/src/components/DeDrag/drag.js
+0
-0
drag.less
frontend/src/components/DeDrag/drag.less
+112
-0
drag.vue
frontend/src/components/DeDrag/drag.vue
+0
-0
index.vue
frontend/src/components/DeDrag/index.vue
+58
-13
shadow.vue
frontend/src/components/DeDrag/shadow.vue
+34
-17
EditBar.vue
frontend/src/components/canvas/components/Editor/EditBar.vue
+25
-1
PGrid.vue
frontend/src/components/canvas/components/Editor/PGrid.vue
+47
-0
index.vue
frontend/src/components/canvas/components/Editor/index.vue
+0
-0
UserView.vue
frontend/src/components/canvas/custom-component/UserView.vue
+8
-8
component-list.js
.../src/components/canvas/custom-component/component-list.js
+35
-10
en.js
frontend/src/lang/en.js
+3
-1
tw.js
frontend/src/lang/tw.js
+3
-1
zh.js
frontend/src/lang/zh.js
+3
-1
index.js
frontend/src/store/index.js
+14
-4
demo_index.html
frontend/src/styles/deicon/demo_index.html
+0
-0
iconfont.css
frontend/src/styles/deicon/iconfont.css
+0
-0
iconfont.js
frontend/src/styles/deicon/iconfont.js
+0
-0
iconfont.json
frontend/src/styles/deicon/iconfont.json
+0
-0
iconfont.ttf
frontend/src/styles/deicon/iconfont.ttf
+0
-0
iconfont.woff
frontend/src/styles/deicon/iconfont.woff
+0
-0
iconfont.woff2
frontend/src/styles/deicon/iconfont.woff2
+0
-0
index.vue
frontend/src/views/panel/AssistComponent/index.vue
+0
-0
index.vue
frontend/src/views/panel/ViewSelect/index.vue
+0
-0
base.vue
frontend/src/views/panel/drag/base.vue
+0
-0
index.vue
frontend/src/views/panel/edit/index.vue
+0
-0
index.vue
frontend/src/views/panel/filter/index.vue
+0
-0
没有找到文件。
backend/src/main/java/io/dataease/controller/panel/PanelViewLinkageController.java
浏览文件 @
7efac43e
...
@@ -26,14 +26,14 @@ public class PanelViewLinkageController {
...
@@ -26,14 +26,14 @@ public class PanelViewLinkageController {
@Resource
@Resource
private
PanelViewLinkageService
panelViewLinkageService
;
private
PanelViewLinkageService
panelViewLinkageService
;
@ApiOperation
(
"获取仪表板视图联动信息"
)
@ApiOperation
(
"获取仪表板
所有
视图联动信息"
)
@PostMapping
(
"/getViewLinkageGather"
)
@PostMapping
(
"/getViewLinkageGather"
)
public
Map
getViewLinkageGather
(
@RequestBody
PanelLinkageRequest
request
){
public
Map
getViewLinkageGather
(
@RequestBody
PanelLinkageRequest
request
){
return
panelViewLinkageService
.
getViewLinkageGather
(
request
);
return
panelViewLinkageService
.
getViewLinkageGather
(
request
);
}
}
@ApiOperation
(
"
获取
仪表板视图联动信息"
)
@ApiOperation
(
"
保存
仪表板视图联动信息"
)
@PostMapping
(
"/saveLinkage"
)
@PostMapping
(
"/saveLinkage"
)
public
void
saveLinkage
(
@RequestBody
PanelLinkageRequest
request
){
public
void
saveLinkage
(
@RequestBody
PanelLinkageRequest
request
){
panelViewLinkageService
.
saveLinkage
(
request
);
panelViewLinkageService
.
saveLinkage
(
request
);
...
...
frontend/package.json
浏览文件 @
7efac43e
...
@@ -45,14 +45,15 @@
...
@@ -45,14 +45,15 @@
"vue-codemirror"
:
"^4.0.6"
,
"vue-codemirror"
:
"^4.0.6"
,
"vue-fullscreen"
:
"^2.5.2"
,
"vue-fullscreen"
:
"^2.5.2"
,
"vue-i18n"
:
"7.3.2"
,
"vue-i18n"
:
"7.3.2"
,
"vue-power-drag"
:
"^0.2.0"
,
"vue-router"
:
"3.0.6"
,
"vue-router"
:
"3.0.6"
,
"vue-to-pdf"
:
"^1.0.0"
,
"vue-to-pdf"
:
"^1.0.0"
,
"vue-uuid"
:
"2.0.2"
,
"vue-uuid"
:
"2.0.2"
,
"vuedraggable"
:
"^2.24.3"
,
"vuedraggable"
:
"^2.24.3"
,
"vuex"
:
"3.1.0"
,
"vuex"
:
"3.1.0"
,
"webpack"
:
"^4.46.0"
,
"webpack"
:
"^4.46.0"
,
"xlsx"
:
"^0.17.0"
"xlsx"
:
"^0.17.0"
,
"lodash"
:
"^4.17.4"
,
"jquery"
:
"^3.1.1"
},
},
"devDependencies"
:
{
"devDependencies"
:
{
"@babel/core"
:
"^7.4.0-0"
,
"@babel/core"
:
"^7.4.0-0"
,
...
...
frontend/src/components/DeDrag/drag.js
0 → 100644
浏览文件 @
7efac43e
差异被折叠。
点击展开。
frontend/src/components/DeDrag/drag.less
0 → 100644
浏览文件 @
7efac43e
.dragAndResize
{
position: relative;
user-select: none;
*
{
box-sizing: border-box;
margin: 0;
padding: 0;
}
.item
{
position: absolute;
width: 100px;
height: 100px;
cursor: move;
border: 1px solid;
background-color: #fff;
.resizeHandle
{
position: absolute;
right: 2px;
bottom: 2px;
width: 0;
height: 0;
cursor: nw-resize;
opacity: .5;
border-bottom: 10px solid black;
border-left: 10px solid transparent;
}
}
.moveAnimation
{
transition: top 80ms ease;
}
.canNotDrag
{
cursor: default!important;
}
.cloneNode
{
z-index: 3;
transition: none;
background-color: #bec1c9;
opacity: 0.5;
}
.movingItem
{
position: absolute;
border: none;
&:before
{
position: absolute;
z-index: 2;
top: 0;
left: 0;
width: 100%;
height: 100%;
content: 'movingItem';
background-color: #3d66e7;
}
}
.positionBox
{
position: fixed;
top: 0;
right: 100px;
overflow: auto;
width: 500px;
height: 500px;
border: 1px solid;
}
.coords
{
position: fixed;
right: 100px;
bottom: 200px;
overflow: auto;
width: 200px;
height: 200px;
border: 1px solid;
}
}
frontend/src/components/DeDrag/drag.vue
0 → 100644
浏览文件 @
7efac43e
差异被折叠。
点击展开。
frontend/src/components/DeDrag/index.vue
浏览文件 @
7efac43e
...
@@ -434,6 +434,7 @@ export default {
...
@@ -434,6 +434,7 @@ export default {
}
}
},
},
style
()
{
style
()
{
// console.log('style-top:' + this.y + '--' + this.top)
return
{
return
{
transform
:
`translate(
${
this
.
left
}
px,
${
this
.
top
}
px) rotate(
${
this
.
rotate
}
deg)`
,
transform
:
`translate(
${
this
.
left
}
px,
${
this
.
top
}
px) rotate(
${
this
.
rotate
}
deg)`
,
width
:
this
.
computedWidth
,
width
:
this
.
computedWidth
,
...
@@ -482,7 +483,7 @@ export default {
...
@@ -482,7 +483,7 @@ export default {
return
'auto'
return
'auto'
}
}
}
}
if
(
this
.
canvasStyleData
.
auxiliaryMatrix
)
{
if
(
this
.
element
.
auxiliaryMatrix
)
{
const
width
=
Math
.
round
(
this
.
width
/
this
.
curCanvasScale
.
matrixStyleWidth
)
*
this
.
curCanvasScale
.
matrixStyleWidth
const
width
=
Math
.
round
(
this
.
width
/
this
.
curCanvasScale
.
matrixStyleWidth
)
*
this
.
curCanvasScale
.
matrixStyleWidth
return
width
+
'px'
return
width
+
'px'
}
else
{
}
else
{
...
@@ -496,7 +497,7 @@ export default {
...
@@ -496,7 +497,7 @@ export default {
return
'auto'
return
'auto'
}
}
}
}
if
(
this
.
canvasStyleData
.
auxiliaryMatrix
)
{
if
(
this
.
element
.
auxiliaryMatrix
)
{
const
height
=
Math
.
round
(
this
.
height
/
this
.
curCanvasScale
.
matrixStyleHeight
)
*
this
.
curCanvasScale
.
matrixStyleHeight
const
height
=
Math
.
round
(
this
.
height
/
this
.
curCanvasScale
.
matrixStyleHeight
)
*
this
.
curCanvasScale
.
matrixStyleHeight
return
height
+
'px'
return
height
+
'px'
}
else
{
}
else
{
...
@@ -594,13 +595,15 @@ export default {
...
@@ -594,13 +595,15 @@ export default {
this
.
maxH
=
val
this
.
maxH
=
val
},
},
w
(
val
)
{
w
(
val
)
{
console
.
log
(
'changeWidthCK:'
+
this
.
resizing
)
if
(
this
.
resizing
||
this
.
dragging
)
{
if
(
this
.
resizing
||
this
.
dragging
)
{
return
return
}
}
if
(
this
.
parent
)
{
if
(
this
.
parent
)
{
this
.
bounds
=
this
.
calcResizeLimits
()
this
.
bounds
=
this
.
calcResizeLimits
()
}
}
//
console.log('changeWidth:' + val)
console
.
log
(
'changeWidth:'
+
val
)
this
.
changeWidth
(
val
)
this
.
changeWidth
(
val
)
},
},
h
(
val
)
{
h
(
val
)
{
...
@@ -696,6 +699,8 @@ export default {
...
@@ -696,6 +699,8 @@ export default {
}
}
// 阻止冒泡事件
// 阻止冒泡事件
e
.
stopPropagation
()
e
.
stopPropagation
()
// 此处阻止冒泡 但是外层需要获取pageX pageY
this
.
element
.
auxiliaryMatrix
&&
this
.
$emit
(
'elementMouseDown'
,
e
)
this
.
$store
.
commit
(
'setCurComponent'
,
{
component
:
this
.
element
,
index
:
this
.
index
})
this
.
$store
.
commit
(
'setCurComponent'
,
{
component
:
this
.
element
,
index
:
this
.
index
})
eventsFor
=
events
.
mouse
eventsFor
=
events
.
mouse
this
.
elementDown
(
e
)
this
.
elementDown
(
e
)
...
@@ -707,6 +712,8 @@ export default {
...
@@ -707,6 +712,8 @@ export default {
}
}
const
target
=
e
.
target
||
e
.
srcElement
const
target
=
e
.
target
||
e
.
srcElement
if
(
this
.
$el
.
contains
(
target
))
{
if
(
this
.
$el
.
contains
(
target
))
{
// 挤压式画布设计 drag start 通知
this
.
element
.
auxiliaryMatrix
&&
this
.
$emit
(
'onDragStart'
,
e
,
this
.
element
,
this
.
index
)
if
(
this
.
onDragStart
(
e
)
===
false
)
{
if
(
this
.
onDragStart
(
e
)
===
false
)
{
return
return
}
}
...
@@ -800,6 +807,7 @@ export default {
...
@@ -800,6 +807,7 @@ export default {
if
(
e
instanceof
MouseEvent
&&
e
.
which
!==
1
)
{
if
(
e
instanceof
MouseEvent
&&
e
.
which
!==
1
)
{
return
false
return
false
}
}
this
.
element
.
auxiliaryMatrix
&&
this
.
$emit
(
'onResizeStart'
,
e
,
this
.
element
,
this
.
index
)
if
(
this
.
onResizeStart
(
handle
,
e
)
===
false
)
{
if
(
this
.
onResizeStart
(
handle
,
e
)
===
false
)
{
return
false
return
false
}
}
...
@@ -982,6 +990,10 @@ export default {
...
@@ -982,6 +990,10 @@ export default {
this
.
bottom
=
bottom
this
.
bottom
=
bottom
await
this
.
snapCheck
()
await
this
.
snapCheck
()
this
.
$emit
(
'dragging'
,
this
.
left
,
this
.
top
)
this
.
$emit
(
'dragging'
,
this
.
left
,
this
.
top
)
// 如果当前视图遵循矩阵设计则 进行位置挤压检查
if
(
this
.
element
.
auxiliaryMatrix
)
{
this
.
$emit
(
'onDragging'
,
e
,
this
.
element
)
}
// private 记录当前样式
// private 记录当前样式
this
.
recordCurStyle
()
this
.
recordCurStyle
()
...
@@ -1156,7 +1168,8 @@ export default {
...
@@ -1156,7 +1168,8 @@ export default {
// console.log('width2:' + this.width)
// console.log('width2:' + this.width)
this
.
height
=
newH
this
.
height
=
newH
this
.
$emit
(
'resizing'
,
this
.
left
,
this
.
top
,
this
.
width
,
this
.
height
)
// this.$emit('resizing', this.left, this.top, this.width, this.height)
this
.
element
.
auxiliaryMatrix
&&
this
.
$emit
(
'onResizing'
,
e
,
this
.
element
)
// private 记录当前组件样式
// private 记录当前组件样式
this
.
recordCurStyle
()
this
.
recordCurStyle
()
...
@@ -1179,7 +1192,7 @@ export default {
...
@@ -1179,7 +1192,7 @@ export default {
this
.
right
=
right
this
.
right
=
right
this
.
bottom
=
bottom
this
.
bottom
=
bottom
this
.
width
=
width
this
.
width
=
width
//
console.log('width3:' + this.width)
console
.
log
(
'width3:'
+
this
.
width
)
this
.
height
=
height
this
.
height
=
height
},
},
changeHeight
(
val
)
{
changeHeight
(
val
)
{
...
@@ -1201,7 +1214,7 @@ export default {
...
@@ -1201,7 +1214,7 @@ export default {
this
.
height
=
height
this
.
height
=
height
},
},
// 从控制柄松开
// 从控制柄松开
async
handleUp
(
e
)
{
handleUp
(
e
)
{
this
.
handle
=
null
this
.
handle
=
null
// 初始化辅助线数据
// 初始化辅助线数据
const
temArr
=
new
Array
(
3
).
fill
({
display
:
false
,
position
:
''
,
origin
:
''
,
lineLength
:
''
})
const
temArr
=
new
Array
(
3
).
fill
({
display
:
false
,
position
:
''
,
origin
:
''
,
lineLength
:
''
})
...
@@ -1215,7 +1228,8 @@ export default {
...
@@ -1215,7 +1228,8 @@ export default {
this
.
lastMouseY
=
mouseY
this
.
lastMouseY
=
mouseY
if
(
this
.
resizing
)
{
if
(
this
.
resizing
)
{
this
.
resizing
=
false
this
.
resizing
=
false
await
this
.
conflictCheck
()
console
.
log
(
'resizing2:'
+
this
.
resizing
)
this
.
conflictCheck
()
this
.
$emit
(
'refLineParams'
,
refLine
)
this
.
$emit
(
'refLineParams'
,
refLine
)
// this.$emit('resizestop', this.left, this.top, this.width, this.height)
// this.$emit('resizestop', this.left, this.top, this.width, this.height)
// private
// private
...
@@ -1223,7 +1237,7 @@ export default {
...
@@ -1223,7 +1237,7 @@ export default {
}
}
if
(
this
.
dragging
)
{
if
(
this
.
dragging
)
{
this
.
dragging
=
false
this
.
dragging
=
false
await
this
.
conflictCheck
()
this
.
conflictCheck
()
this
.
$emit
(
'refLineParams'
,
refLine
)
this
.
$emit
(
'refLineParams'
,
refLine
)
this
.
$emit
(
'dragstop'
,
this
.
left
,
this
.
top
)
this
.
$emit
(
'dragstop'
,
this
.
left
,
this
.
top
)
}
}
...
@@ -1235,8 +1249,9 @@ export default {
...
@@ -1235,8 +1249,9 @@ export default {
// private 记录snapshot
// private 记录snapshot
// 如果辅助设计 需要最后调整矩阵
// 如果辅助设计 需要最后调整矩阵
if
(
this
.
canvasStyleData
.
auxiliaryMatrix
)
{
if
(
this
.
element
.
auxiliaryMatrix
)
{
this
.
recordMatrixCurStyle
()
// this.recordMatrixCurStyle()
this
.
recordMatrixCurShadowStyle
()
}
}
this
.
hasMove
&&
this
.
$store
.
commit
(
'recordSnapshot'
,
'handleUp'
)
this
.
hasMove
&&
this
.
$store
.
commit
(
'recordSnapshot'
,
'handleUp'
)
// 记录snapshot后 移动已记录设置为false
// 记录snapshot后 移动已记录设置为false
...
@@ -1246,6 +1261,9 @@ export default {
...
@@ -1246,6 +1261,9 @@ export default {
// private 删除handle Up事件 防止重复recordSnapshot
// private 删除handle Up事件 防止重复recordSnapshot
removeEvent
(
document
.
documentElement
,
eventsFor
.
stop
,
this
.
handleUp
)
removeEvent
(
document
.
documentElement
,
eventsFor
.
stop
,
this
.
handleUp
)
// 挤占式画布设计 handleUp
this
.
element
.
auxiliaryMatrix
&&
this
.
$emit
(
'onHandleUp'
,
e
)
},
},
// 新增方法 ↓↓↓
// 新增方法 ↓↓↓
// 设置属性
// 设置属性
...
@@ -1549,11 +1567,38 @@ export default {
...
@@ -1549,11 +1567,38 @@ export default {
// this.hasMove = true
// this.hasMove = true
this
.
$store
.
commit
(
'setShapeStyle'
,
style
)
this
.
$store
.
commit
(
'setShapeStyle'
,
style
)
// resize
self
.
$emit
(
'resizeView'
)
// const self = this
// setTimeout(function() {
// self.$emit('resizeView')
// }, 200)
},
// 记录当前样式 跟随阴影位置 矩阵处理
recordMatrixCurShadowStyle
()
{
console
.
log
(
'recordMatrixCurShadowStyle'
)
// debugger
const
left
=
(
this
.
element
.
x
-
1
)
*
this
.
curCanvasScale
.
matrixStyleWidth
const
top
=
(
this
.
element
.
y
-
1
)
*
this
.
curCanvasScale
.
matrixStyleHeight
const
width
=
this
.
element
.
sizex
*
this
.
curCanvasScale
.
matrixStyleWidth
const
height
=
this
.
element
.
sizey
*
this
.
curCanvasScale
.
matrixStyleHeight
const
style
=
{
...
this
.
defaultStyle
}
style
.
left
=
left
style
.
top
=
top
style
.
width
=
width
style
.
height
=
height
style
.
rotate
=
this
.
rotate
// this.hasMove = true
this
.
$store
.
commit
(
'setShapeStyle'
,
style
)
// resize
// resize
const
self
=
this
const
self
=
this
setTimeout
(
function
()
{
self
.
$emit
(
'resizeView'
)
self
.
$emit
(
'resizeView'
)
// setTimeout(function() {
},
200
)
// self.$emit('resizeView')
// }, 200)
},
},
mountedFunction
()
{
mountedFunction
()
{
// private 冲突检测 和水平设计值保持一致
// private 冲突检测 和水平设计值保持一致
...
...
frontend/src/components/DeDrag/shadow.vue
浏览文件 @
7efac43e
<
template
>
<
template
>
<div
style=
"z-index:-1"
:style=
"styleInfo"
/>
<div
style=
"z-index:-1"
:style=
"styleInfo"
>
<!--
{{
curComponent
}}
-->
</div>
</
template
>
</
template
>
<
script
>
<
script
>
...
@@ -16,27 +18,42 @@ export default {
...
@@ -16,27 +18,42 @@ export default {
let
top
=
0
let
top
=
0
let
width
=
0
let
width
=
0
let
height
=
0
let
height
=
0
// if (this.dragComponentInfo && !this.dragComponentInfo.auxiliaryMatrix) {
if
(
this
.
dragComponentInfo
)
{
if
(
this
.
dragComponentInfo
)
{
console
.
log
(
'shadowDrag='
)
// 组件移入
// 组件移入
left
=
this
.
dragComponentInfo
.
shadowStyle
.
x
if
(
this
.
dragComponentInfo
.
auxiliaryMatrix
)
{
top
=
this
.
dragComponentInfo
.
shadowStyle
.
y
left
=
(
this
.
dragComponentInfo
.
x
-
1
)
*
this
.
curCanvasScale
.
matrixStyleWidth
width
=
this
.
dragComponentInfo
.
style
.
width
top
=
(
this
.
dragComponentInfo
.
y
-
1
)
*
this
.
curCanvasScale
.
matrixStyleHeight
height
=
this
.
dragComponentInfo
.
style
.
height
width
=
this
.
dragComponentInfo
.
sizex
*
this
.
curCanvasScale
.
matrixStyleWidth
height
=
this
.
dragComponentInfo
.
sizey
*
this
.
curCanvasScale
.
matrixStyleHeight
}
else
{
left
=
this
.
dragComponentInfo
.
shadowStyle
.
x
top
=
this
.
dragComponentInfo
.
shadowStyle
.
y
width
=
this
.
dragComponentInfo
.
style
.
width
height
=
this
.
dragComponentInfo
.
style
.
height
}
// console.log('left:' + left + 'top:' + top + 'width:' + width + 'height:' + height)
// console.log('left:' + left + 'top:' + top + 'width:' + width + 'height:' + height)
}
else
{
}
else
{
left
=
this
.
curComponent
.
style
.
left
*
this
.
curCanvasScale
.
scaleWidth
/
100
// temp 临时测试
top
=
this
.
curComponent
.
style
.
top
*
this
.
curCanvasScale
.
scaleHeight
/
100
// left = this.curComponent.style.left * this.curCanvasScale.scaleWidth / 100
width
=
this
.
curComponent
.
style
.
width
*
this
.
curCanvasScale
.
scaleWidth
/
100
// top = this.curComponent.style.top * this.curCanvasScale.scaleHeight / 100
height
=
this
.
curComponent
.
style
.
height
*
this
.
curCanvasScale
.
scaleHeight
/
100
left
=
(
this
.
curComponent
.
x
-
1
)
*
this
.
curCanvasScale
.
matrixStyleWidth
top
=
(
this
.
curComponent
.
y
-
1
)
*
this
.
curCanvasScale
.
matrixStyleHeight
width
=
this
.
curComponent
.
style
.
width
*
this
.
curCanvasScale
.
scalePointWidth
height
=
this
.
curComponent
.
style
.
height
*
this
.
curCanvasScale
.
scalePointHeight
// console.log('curComponent left:' + left + 'top:' + top + 'width:' + width + 'height:' + height)
// console.log('curComponent left:' + left + 'top:' + top + 'width:' + width + 'height:' + height)
}
}
// 当前默认为自适应
// 当前默认为自适应
if
(
this
.
canvasStyleData
.
auxiliaryMatrix
)
{
//
if (this.canvasStyleData.auxiliaryMatrix) {
left
=
Math
.
round
(
left
/
this
.
curCanvasScale
.
matrixStyleWidth
)
*
this
.
curCanvasScale
.
matrixStyleWidth
//
left = Math.round(left / this.curCanvasScale.matrixStyleWidth) * this.curCanvasScale.matrixStyleWidth
width
=
Math
.
round
(
width
/
this
.
curCanvasScale
.
matrixStyleWidth
)
*
this
.
curCanvasScale
.
matrixStyleWidth
//
width = Math.round(width / this.curCanvasScale.matrixStyleWidth) * this.curCanvasScale.matrixStyleWidth
top
=
Math
.
round
(
top
/
this
.
curCanvasScale
.
matrixStyleHeight
)
*
this
.
curCanvasScale
.
matrixStyleHeight
//
top = Math.round(top / this.curCanvasScale.matrixStyleHeight) * this.curCanvasScale.matrixStyleHeight
height
=
Math
.
round
(
height
/
this
.
curCanvasScale
.
matrixStyleHeight
)
*
this
.
curCanvasScale
.
matrixStyleHeight
//
height = Math.round(height / this.curCanvasScale.matrixStyleHeight) * this.curCanvasScale.matrixStyleHeight
}
//
}
// 防止阴影区超出边界
// 防止阴影区超出边界
const
xGap
=
left
+
width
-
this
.
canvasWidth
const
xGap
=
left
+
width
-
this
.
canvasWidth
...
@@ -82,10 +99,10 @@ export default {
...
@@ -82,10 +99,10 @@ export default {
this
.
dragComponentInfo
.
shadowStyle
.
y
=
this
.
scaleH
(
y
)
this
.
dragComponentInfo
.
shadowStyle
.
y
=
this
.
scaleH
(
y
)
},
},
scaleH
(
h
)
{
scaleH
(
h
)
{
return
h
*
100
/
this
.
curCanvasScale
.
scale
Height
return
h
/
this
.
curCanvasScale
.
scalePoint
Height
},
},
scaleW
(
w
)
{
scaleW
(
w
)
{
return
w
*
100
/
this
.
curCanvasScale
.
scale
Width
return
w
/
this
.
curCanvasScale
.
scalePoint
Width
}
}
}
}
...
...
frontend/src/components/canvas/components/Editor/EditBar.vue
浏览文件 @
7efac43e
...
@@ -14,6 +14,12 @@
...
@@ -14,6 +14,12 @@
<span
:title=
"$t('panel.edit')"
>
<span
:title=
"$t('panel.edit')"
>
<i
v-if=
"activeModel==='edit'&&curComponent&&editFilter.includes(curComponent.type)"
class=
"icon iconfont icon-edit"
@
click
.
stop=
"edit"
/>
<i
v-if=
"activeModel==='edit'&&curComponent&&editFilter.includes(curComponent.type)"
class=
"icon iconfont icon-edit"
@
click
.
stop=
"edit"
/>
</span>
</span>
<span
:title=
"$t('panel.matrix')"
>
<i
v-if=
"activeModel==='edit'&&curComponent.auxiliaryMatrix"
class=
"icon iconfont icon-shujujuzhen"
@
click
.
stop=
"auxiliaryMatrixChange"
/>
</span>
<span
:title=
"$t('panel.suspension')"
>
<i
v-if=
"activeModel==='edit'&&!curComponent.auxiliaryMatrix"
class=
"icon iconfont icon-xuanfuanniu"
@
click
.
stop=
"auxiliaryMatrixChange"
/>
</span>
<span
:title=
"$t('panel.details')"
>
<span
:title=
"$t('panel.details')"
>
<i
v-if=
"curComponent.type==='view'"
class=
"icon iconfont icon-fangda"
@
click
.
stop=
"showViewDetails"
/>
<i
v-if=
"curComponent.type==='view'"
class=
"icon iconfont icon-fangda"
@
click
.
stop=
"showViewDetails"
/>
</span>
</span>
...
@@ -87,13 +93,31 @@ export default {
...
@@ -87,13 +93,31 @@ export default {
'canvasStyleData'
,
'canvasStyleData'
,
'linkageSettingStatus'
,
'linkageSettingStatus'
,
'targetLinkageInfo'
,
'targetLinkageInfo'
,
'curLinkageView'
'curLinkageView'
,
'curCanvasScale'
])
])
},
},
methods
:
{
methods
:
{
showViewDetails
()
{
showViewDetails
()
{
this
.
$emit
(
'showViewDetails'
)
this
.
$emit
(
'showViewDetails'
)
},
},
auxiliaryMatrixChange
()
{
if
(
this
.
curComponent
.
auxiliaryMatrix
)
{
this
.
curComponent
.
style
.
left
=
(
this
.
curComponent
.
x
-
1
)
*
this
.
curCanvasScale
.
matrixStyleOriginWidth
this
.
curComponent
.
style
.
top
=
(
this
.
curComponent
.
y
-
1
)
*
this
.
curCanvasScale
.
matrixStyleOriginHeight
this
.
curComponent
.
style
.
width
=
this
.
curComponent
.
sizex
*
this
.
curCanvasScale
.
matrixStyleOriginWidth
this
.
curComponent
.
style
.
height
=
this
.
curComponent
.
sizey
*
this
.
curCanvasScale
.
matrixStyleOriginHeight
this
.
curComponent
.
auxiliaryMatrix
=
false
}
else
{
this
.
curComponent
.
x
=
Math
.
round
(
this
.
curComponent
.
style
.
left
/
this
.
curCanvasScale
.
matrixStyleOriginWidth
)
+
1
this
.
curComponent
.
y
=
Math
.
round
(
this
.
curComponent
.
style
.
top
/
this
.
curCanvasScale
.
matrixStyleOriginHeight
)
+
1
this
.
curComponent
.
sizex
=
Math
.
round
(
this
.
curComponent
.
style
.
width
/
this
.
curCanvasScale
.
matrixStyleOriginWidth
)
this
.
curComponent
.
sizey
=
Math
.
round
(
this
.
curComponent
.
style
.
height
/
this
.
curCanvasScale
.
matrixStyleOriginHeight
)
this
.
curComponent
.
auxiliaryMatrix
=
true
}
this
.
$store
.
state
.
styleChangeTimes
++
bus
.
$emit
(
'auxiliaryMatrixChange'
)
},
edit
()
{
edit
()
{
// 编辑时临时保存 当前修改的画布
// 编辑时临时保存 当前修改的画布
this
.
$store
.
dispatch
(
'panel/setComponentDataTemp'
,
JSON
.
stringify
(
this
.
componentData
))
this
.
$store
.
dispatch
(
'panel/setComponentDataTemp'
,
JSON
.
stringify
(
this
.
componentData
))
...
...
frontend/src/components/canvas/components/Editor/PGrid.vue
0 → 100644
浏览文件 @
7efac43e
<
template
>
<div
class=
"grid"
>
<!-- positionBox:
{{
positionBox
.
length
}}
-->
<div
v-for=
"(yItem, index) in positionBox"
:key=
"index+'y'"
style=
"float: left; width: 105%"
>
<div
v-for=
"(xItem, index) in yItem"
:key=
"index+'x'"
:style=
"classInfo"
style=
"float: left; border: 0.2px solid #b3d4fc "
>
{{
xItem
.
el
?
1
:
0
}}
</div>
</div>
</div>
</
template
>
<
script
>
export
default
{
props
:
{
// eslint-disable-next-line vue/require-default-prop
positionBox
:
{
type
:
Array
},
matrixStyle
:
{
type
:
Object
}
},
data
()
{
return
{
}
},
computed
:
{
classInfo
:
function
()
{
return
{
width
:
this
.
matrixStyle
.
width
+
'px'
,
height
:
this
.
matrixStyle
.
height
+
'px'
}
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.grid
{
position
:
absolute
;
top
:
0
;
left
:
0
;
}
</
style
>
frontend/src/components/canvas/components/Editor/index.vue
浏览文件 @
7efac43e
差异被折叠。
点击展开。
frontend/src/components/canvas/custom-component/UserView.vue
浏览文件 @
7efac43e
...
@@ -173,15 +173,15 @@ export default {
...
@@ -173,15 +173,15 @@ export default {
'hw'
:
{
'hw'
:
{
handler
(
newVal
,
oldVla
)
{
handler
(
newVal
,
oldVla
)
{
// console.log('hw:' + newVal + '---' + oldVla)
// console.log('hw:' + newVal + '---' + oldVla)
if
(
newVal
!==
oldVla
)
{
if
(
newVal
!==
oldVla
&&
this
.
$refs
[
this
.
element
.
propValue
.
id
])
{
this
.
destroyTimeMachine
()
if
(
this
.
chart
.
type
===
'map'
)
{
this
.
changeIndex
++
this
.
destroyTimeMachine
()
this
.
chartResize
(
this
.
changeIndex
)
this
.
changeIndex
++
this
.
chartResize
(
this
.
changeIndex
)
}
else
{
this
.
$refs
[
this
.
element
.
propValue
.
id
].
chartResize
()
}
}
}
//
// if (this.$refs[this.element.propValue.id]) {
// this.$refs[this.element.propValue.id].chartResize()
// }
},
},
deep
:
true
deep
:
true
},
},
...
...
frontend/src/components/canvas/custom-component/component-list.js
浏览文件 @
7efac43e
...
@@ -70,7 +70,11 @@ const list = [
...
@@ -70,7 +70,11 @@ const list = [
verticalAlign
:
'middle'
,
verticalAlign
:
'middle'
,
backgroundColor
:
'#ffffff'
,
backgroundColor
:
'#ffffff'
,
borderRadius
:
0
borderRadius
:
0
}
},
x
:
1
,
y
:
1
,
sizex
:
10
,
sizey
:
2
},
},
{
{
id
:
'10002'
,
id
:
'10002'
,
...
@@ -105,7 +109,11 @@ const list = [
...
@@ -105,7 +109,11 @@ const list = [
width
:
300
,
width
:
300
,
height
:
200
,
height
:
200
,
borderRadius
:
''
borderRadius
:
''
}
},
x
:
1
,
y
:
1
,
sizex
:
10
,
sizey
:
6
},
},
{
{
id
:
'10003-1'
,
id
:
'10003-1'
,
...
@@ -128,14 +136,18 @@ const list = [
...
@@ -128,14 +136,18 @@ const list = [
icon
:
'juxing'
,
icon
:
'juxing'
,
type
:
'rect-shape'
,
type
:
'rect-shape'
,
style
:
{
style
:
{
width
:
4
00
,
width
:
3
00
,
height
:
3
00
,
height
:
2
00
,
borderStyle
:
'solid'
,
borderStyle
:
'solid'
,
borderWidth
:
0
,
borderWidth
:
0
,
borderColor
:
'#000000'
,
borderColor
:
'#000000'
,
backgroundColor
:
'#ffffff'
,
backgroundColor
:
'#ffffff'
,
borderRadius
:
0
borderRadius
:
0
}
},
x
:
1
,
y
:
1
,
sizex
:
10
,
sizey
:
6
},
},
{
{
id
:
'10005'
,
id
:
'10005'
,
...
@@ -145,10 +157,15 @@ const list = [
...
@@ -145,10 +157,15 @@ const list = [
icon
:
'juxing'
,
icon
:
'juxing'
,
type
:
'view'
,
type
:
'view'
,
style
:
{
style
:
{
width
:
4
00
,
width
:
3
00
,
height
:
3
00
,
height
:
2
00
,
borderRadius
:
''
borderRadius
:
''
}
},
x
:
1
,
y
:
1
,
sizex
:
10
,
sizey
:
6
,
auxiliaryMatrix
:
true
},
},
{
{
id
:
'10006'
,
id
:
'10006'
,
...
@@ -172,7 +189,11 @@ const list = [
...
@@ -172,7 +189,11 @@ const list = [
name
:
'1'
,
name
:
'1'
,
content
:
null
content
:
null
}]
}]
}
},
x
:
1
,
y
:
1
,
sizex
:
10
,
sizey
:
10
},
},
{
{
id
:
'20001'
,
id
:
'20001'
,
...
@@ -185,7 +206,11 @@ const list = [
...
@@ -185,7 +206,11 @@ const list = [
width
:
400
,
width
:
400
,
height
:
200
,
height
:
200
,
borderRadius
:
''
borderRadius
:
''
}
},
x
:
1
,
y
:
1
,
sizex
:
10
,
sizey
:
5
}
}
]
]
...
...
frontend/src/lang/en.js
浏览文件 @
7efac43e
...
@@ -1311,7 +1311,9 @@ export default {
...
@@ -1311,7 +1311,9 @@ export default {
exit_un_march_linkage_field
:
'Exit Un March Linkage Field'
,
exit_un_march_linkage_field
:
'Exit Un March Linkage Field'
,
details
:
'Details'
,
details
:
'Details'
,
setting
:
'Setting'
,
setting
:
'Setting'
,
no_drill_field
:
'Miss relation field'
no_drill_field
:
'Miss relation field'
,
matrix
:
'matrix'
,
suspension
:
'suspension'
},
},
plugin
:
{
plugin
:
{
local_install
:
'Local installation'
,
local_install
:
'Local installation'
,
...
...
frontend/src/lang/tw.js
浏览文件 @
7efac43e
...
@@ -1314,7 +1314,9 @@ export default {
...
@@ -1314,7 +1314,9 @@ export default {
exit_un_march_linkage_field
:
'存在未匹配聯動關系的字段'
,
exit_un_march_linkage_field
:
'存在未匹配聯動關系的字段'
,
details
:
'詳情'
,
details
:
'詳情'
,
setting
:
'設置'
,
setting
:
'設置'
,
no_drill_field
:
'缺少關聯字段'
no_drill_field
:
'缺少關聯字段'
,
matrix
:
'矩阵分布'
,
suspension
:
'悬浮'
},
},
plugin
:
{
plugin
:
{
local_install
:
'本地安裝'
,
local_install
:
'本地安裝'
,
...
...
frontend/src/lang/zh.js
浏览文件 @
7efac43e
...
@@ -1319,7 +1319,9 @@ export default {
...
@@ -1319,7 +1319,9 @@ export default {
exit_un_march_linkage_field
:
'存在未匹配联动关系的字段'
,
exit_un_march_linkage_field
:
'存在未匹配联动关系的字段'
,
details
:
'详情'
,
details
:
'详情'
,
setting
:
'设置'
,
setting
:
'设置'
,
no_drill_field
:
'缺少关联字段'
no_drill_field
:
'缺少关联字段'
,
matrix
:
'矩阵分布'
,
suspension
:
'悬浮'
},
},
plugin
:
{
plugin
:
{
local_install
:
'本地安装'
,
local_install
:
'本地安装'
,
...
...
frontend/src/store/index.js
浏览文件 @
7efac43e
...
@@ -104,11 +104,21 @@ const data = {
...
@@ -104,11 +104,21 @@ const data = {
state
.
curCanvasScale
=
curCanvasScale
state
.
curCanvasScale
=
curCanvasScale
},
},
// setShapeStyle({ curComponent, canvasStyleData, curCanvasScale }, { top, left, width, height, rotate }) {
// if (top || top === 0) curComponent.style.top = canvasStyleData.selfAdaption ? (top * 100 / curCanvasScale.scaleHeight) : top
// if (left || left === 0) curComponent.style.left = canvasStyleData.selfAdaption ? (left * 100 / curCanvasScale.scaleWidth) : left
// if (width || width === 0) curComponent.style.width = canvasStyleData.selfAdaption ? (width * 100 / curCanvasScale.scaleWidth) : width
// if (height || height === 0) curComponent.style.height = canvasStyleData.selfAdaption ? (height * 100 / curCanvasScale.scaleHeight) : height
// if (rotate || rotate === 0) curComponent.style.rotate = rotate
// // console.log('setShapeStyle:curComponent' + 'top:' + top + ';left:' + left + '====' + JSON.stringify(curComponent))
// },
setShapeStyle
({
curComponent
,
canvasStyleData
,
curCanvasScale
},
{
top
,
left
,
width
,
height
,
rotate
})
{
setShapeStyle
({
curComponent
,
canvasStyleData
,
curCanvasScale
},
{
top
,
left
,
width
,
height
,
rotate
})
{
if
(
top
||
top
===
0
)
curComponent
.
style
.
top
=
canvasStyleData
.
selfAdaption
?
(
top
*
100
/
curCanvasScale
.
scaleHeight
)
:
top
console
.
log
(
'setShapeStyle:width='
+
width
+
';height='
+
height
)
if
(
left
||
left
===
0
)
curComponent
.
style
.
left
=
canvasStyleData
.
selfAdaption
?
(
left
*
100
/
curCanvasScale
.
scaleWidth
)
:
left
if
(
top
||
top
===
0
)
curComponent
.
style
.
top
=
top
/
curCanvasScale
.
scalePointHeight
if
(
width
||
width
===
0
)
curComponent
.
style
.
width
=
canvasStyleData
.
selfAdaption
?
(
width
*
100
/
curCanvasScale
.
scaleWidth
)
:
width
if
(
left
||
left
===
0
)
curComponent
.
style
.
left
=
left
/
curCanvasScale
.
scalePointWidth
if
(
height
||
height
===
0
)
curComponent
.
style
.
height
=
canvasStyleData
.
selfAdaption
?
(
height
*
100
/
curCanvasScale
.
scaleHeight
)
:
height
if
(
width
||
width
===
0
)
curComponent
.
style
.
width
=
width
/
curCanvasScale
.
scalePointWidth
if
(
height
||
height
===
0
)
curComponent
.
style
.
height
=
height
/
curCanvasScale
.
scalePointHeight
if
(
rotate
||
rotate
===
0
)
curComponent
.
style
.
rotate
=
rotate
if
(
rotate
||
rotate
===
0
)
curComponent
.
style
.
rotate
=
rotate
// console.log('setShapeStyle:curComponent' + 'top:' + top + ';left:' + left + '====' + JSON.stringify(curComponent))
// console.log('setShapeStyle:curComponent' + 'top:' + top + ';left:' + left + '====' + JSON.stringify(curComponent))
},
},
...
...
frontend/src/styles/deicon/demo_index.html
浏览文件 @
7efac43e
差异被折叠。
点击展开。
frontend/src/styles/deicon/iconfont.css
浏览文件 @
7efac43e
差异被折叠。
点击展开。
frontend/src/styles/deicon/iconfont.js
浏览文件 @
7efac43e
差异被折叠。
点击展开。
frontend/src/styles/deicon/iconfont.json
浏览文件 @
7efac43e
差异被折叠。
点击展开。
frontend/src/styles/deicon/iconfont.ttf
浏览文件 @
7efac43e
差异被折叠。
点击展开。
frontend/src/styles/deicon/iconfont.woff
浏览文件 @
7efac43e
差异被折叠。
点击展开。
frontend/src/styles/deicon/iconfont.woff2
浏览文件 @
7efac43e
差异被折叠。
点击展开。
frontend/src/views/panel/AssistComponent/index.vue
浏览文件 @
7efac43e
差异被折叠。
点击展开。
frontend/src/views/panel/ViewSelect/index.vue
浏览文件 @
7efac43e
差异被折叠。
点击展开。
frontend/src/views/panel/drag/base.vue
0 → 100644
浏览文件 @
7efac43e
差异被折叠。
点击展开。
frontend/src/views/panel/edit/index.vue
浏览文件 @
7efac43e
差异被折叠。
点击展开。
frontend/src/views/panel/filter/index.vue
浏览文件 @
7efac43e
差异被折叠。
点击展开。
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论