Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
liangzhen
/
framework-tools-web
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 1b3f0d0e
authored
Dec 08, 2023
by
Thews
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://47.97.176.204:19000/wangwansu/iact_jiagou_drowio
2 parents
5f87276f
455a55a1
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
236 additions
and
73 deletions
public/drawio/extention/js/exMenus.js
public/drawio/js/diagramly/App.js
public/drawio/js/diagramly/Menus.js
src/api/index.js
src/components/drawio.vue
src/views/archi-ele-list/index.vue
src/views/meta-model-list/canvas/index.vue
src/views/meta-model-list/details.vue
src/views/meta-model-list/index.vue
src/views/meta-model-list/table/index.vue
public/drawio/extention/js/exMenus.js
View file @
1b3f0d0
...
...
@@ -33,13 +33,13 @@ var exToolbar = function (toolbarContainer) {
if
(
res
)
{
$
.
ajax
({
type
:
"post"
,
url
:
"http://192.168.161.129:7001/
architecture/vi/file/upload
"
,
// data: formData, //需要确认formData如何获取
processData
:
false
,
contentType
:
false
,
headers
:
{
'tkv'
:
'yMCwNqQ9yRQ37K3h2UVw56gwzWpzPxcs50w7nfsmyFGKuUp-LGB_M0sSgCzGqs8xMkXck0CMDupY_5T6My0bt2p4SEHsibGhMsdoNT55-2s-0bGUm_UIZliqXnCJwZJtOUavqh4OrAWgLBEV82RhEJbGuRY-pIrsGtM0jouSkhRyxpek91B0URTRFitm_A_-'
,
}
,
url
:
"http://192.168.161.129:7001/
ynMol/updateYnMol
"
,
data
:
JSON
.
stringify
({
metaModelId
:
urlParams
[
'id'
]
,
version
:
urlParams
[
'version'
]
,
state
:
urlParams
[
'state'
],
})
,
contentType
:
'json'
,
success
:
function
(
result
)
{
swal
(
"版本发布"
,
"发布成功!"
);
},
...
...
public/drawio/js/diagramly/App.js
View file @
1b3f0d0
...
...
@@ -729,7 +729,7 @@ App.main = function(callback, createUi)
{
var
content
=
mxUtils
.
getTextContent
(
scripts
[
0
]);
if
(
CryptoJS
.
MD5
(
content
).
toString
()
!=
'
dda613656c97435b378def799740801e
'
)
//二次开发----修改校验值,不然会有弹框
if
(
CryptoJS
.
MD5
(
content
).
toString
()
!=
'
b6679dd946d10c3b1e3a0cb4fde17c71
'
)
//二次开发----修改校验值,不然会有弹框
{
console
.
warn
(
'Change bootstrap script MD5 in the previous line:'
,
CryptoJS
.
MD5
(
content
).
toString
());
console
.
warn
(
CryptoJS
.
MD5
(
content
).
toString
());
...
...
@@ -3764,17 +3764,24 @@ App.prototype.showSplash = function(force)
this
.
showSplash
();
}));
}
else
if
(
urlParams
[
'id'
])
{
//二次开发,初始化画面内容
console
.
log
(
urlParams
);
$
.
ajax
({
method
:
"get"
,
url
:
"http://192.168.148.128:7003/api/ynMol/getByMetaModelId"
,
data
:
{
metaModelId
:
urlParams
[
'id'
]
},
method
:
"post"
,
url
:
'http://192.168.148.128:7003/ynMol/getByMetaModelId'
,
data
:
{
metaModelId
:
urlParams
[
'id'
]
},
// dataType: "xml",
// contentType: "application/xml",
// crossDomain: true,
success
:
result
=>
{
console
.
log
(
result
)
// const file = new LocalFile(this, result.data.content, '测试文件', this.mode);
// this.loadFile(`-1`, true, file);
// console.log(result)
const
xmlData
=
result
.
data
.
metaModelData
;
const
xmlTitle
=
result
.
data
.
verName
;
const
file
=
new
LocalFile
(
this
,
xmlData
,
xmlTitle
,
this
.
mode
);
this
.
loadFile
(
`-1`
,
true
,
file
);
},
error
:
function
(
error
)
{
error
:
error
=>
{
}
});
...
...
public/drawio/js/diagramly/Menus.js
View file @
1b3f0d0
...
...
@@ -4701,8 +4701,10 @@
// const decodedData = Base64.decode(encodedData);//base64解密
// console.log(encodedData)
var
composedXMLData
=
Graph
.
xmlDeclaration
+
'\n'
+
editorUi
.
getFileData
(
true
,
null
,
null
,
null
,
true
,
true
,
null
,
null
,
null
,
false
);
var
composedXMLData
=
Graph
.
xmlDeclaration
+
'\n'
+
editorUi
.
getFileData
(
true
,
null
,
null
,
null
,
true
,
true
,
null
,
null
,
null
,
true
);
var
parser
=
new
DOMParser
();
var
xmlDoc
=
parser
.
parseFromString
(
composedXMLData
,
"text/xml"
);
const
mxGraphModel
=
xmlDoc
.
getElementsByTagName
(
'diagram'
)[
0
].
innerHTML
;
var
graph
=
editorUi
.
editor
.
graph
;
var
svgImage
=
graph
.
getSvg
(
'#fff'
,
1
,
0
,
true
,
null
,
true
,
null
,
null
,
null
,
null
,
true
,
'light'
,
'diagram'
);
//当前画布的预览图,svg格式
...
...
@@ -4713,26 +4715,29 @@
// menu.addSeparator(parent);
// console.log(editorUi.menus)
const
saveFileData
=
new
File
([
file
.
data
],
'测试.xml'
,
{
type
:
"text/xml"
});
const
formData
=
new
FormData
();
formData
.
append
(
"file"
,
saveFileData
);
//
const saveFileData = new File([ file.data ], '测试.xml', { type: "text/xml" });
//
const formData = new FormData();
//
formData.append("file", saveFileData);
swal
({
title
:
"文件保存"
,
text
:
file
.
title
,
icon
:
"success"
,
buttons
:
[
"取消"
,
"确定"
]
}).
then
(
res
=>
{
if
(
res
)
{
$
.
ajax
({
method
:
"post"
,
url
:
"http://192.168.161.129:7001/architecture/vi/file/upload"
,
data
:
formData
,
processData
:
false
,
contentType
:
false
,
headers
:
{
'tkv'
:
'yMCwNqQ9yRQ37K3h2UVw56gwzWpzPxcs50w7nfsmyFGKuUp-LGB_M0sSgCzGqs8xMkXck0CMDupY_5T6My0bt2p4SEHsibGhMsdoNT55-2s-0bGUm_UIZliqXnCJwZJtOUavqh4OrAWgLBEV82RhEJbGuRY-pIrsGtM0jouSkhRyxpek91B0URTRFitm_A_-'
,
url
:
"http://192.168.148.128:7003/ynMol/upMxGraph"
,
data
:
{
metaModelId
:
urlParams
[
'id'
],
metaModelData
:
mxGraphModel
},
success
:
function
(
result
)
{
swal
(
"文件保存"
,
"保存成功!"
);
// console.log(result)
if
(
result
.
code
==
200
)
{
swal
(
"文件保存"
,
"保存成功!"
);
}
else
{
swal
(
"文件保存"
,
result
.
msg
);
}
},
error
:
function
(
error
)
{
swal
(
"文件保存"
,
"保存失败!"
);
swal
(
"文件保存"
,
"保存失败!"
);
}
});
}
else
{
...
...
src/api/index.js
View file @
1b3f0d0
...
...
@@ -58,7 +58,18 @@ export function getJGYSGLUpdateBatch(params) {
export
function
getJGYSGLDel
(
params
)
{
return
post
(
'/eleRel/deleteEleRel'
,
params
);
}
// 查询画布跳转的表格数据
export
function
get_drawio_transform_table
(
params
)
{
return
post
(
'/mxFile/fdBmd'
,
params
);
}
// 查询元模型管理页面
export
function
get_yuan_mo_xing_list
(
params
)
{
return
post
(
'/ynMol/'
,
params
);
}
// 元模型管理页面的删除
export
function
delete_yuan_mo_xing_list
(
params
)
{
return
post
(
'/ynMol/deleteYnMol'
,
params
);
}
// 架构视图配置
// 列表查询
export
function
getJGSTPZlist
(
params
)
{
...
...
src/components/drawio.vue
View file @
1b3f0d0
<
template
>
<iframe
class=
"drawio_show"
name=
"content_frame"
:src=
"'/drawio/index.html?id='+ initGraphId_"
frameborder=
0
scrolling=
"no"
></iframe>
<iframe
class=
"drawio_show"
name=
"content_frame"
:src=
"'/drawio/index.html?id='+id+'&version='+version+'&state='+state"
frameborder=
0
scrolling=
"no"
>
</iframe>
</
template
>
<
script
>
export
default
{
props
:
{
initGraphId
:
String
initGraphId
:
Object
},
data
()
{
return
{
initGraphId_
:
null
id
:
null
,
version
:
null
,
state
:
null
,
};
},
watch
:
{
initGraphId
:
{
handler
(
newVal
,
oldVal
)
{
this
.
initGraphId_
=
newVal
;
this
.
id
=
newVal
.
id
;
this
.
version
=
newVal
.
version
;
this
.
state
=
newVal
.
state
;
},
}
},
mounted
(){
...
...
src/views/archi-ele-list/index.vue
View file @
1b3f0d0
This diff is collapsed.
Click to expand it.
src/views/meta-model-list/canvas/index.vue
View file @
1b3f0d0
...
...
@@ -18,7 +18,14 @@
};
},
mounted
(){
this
.
routerId
=
window
.
location
.
href
.
split
(
"="
)[
1
];
const
id
=
window
.
location
.
href
.
split
(
"id="
)[
1
].
split
(
"&"
)[
0
];
const
version
=
window
.
location
.
href
.
split
(
"id="
)[
1
].
split
(
"&"
)[
1
].
split
(
"="
)[
1
];
const
state
=
window
.
location
.
href
.
split
(
"id="
)[
1
].
split
(
"&"
)[
2
].
split
(
"="
)[
1
];
this
.
routerId
=
{
id
,
version
,
state
}
},
methods
:
{
...
...
src/views/meta-model-list/details.vue
View file @
1b3f0d0
<
template
>
<div
class=
"Details"
>
<el-tabs
type=
"border-card"
>
<el-select
class=
"select_version_control"
v-model=
"select_version"
placeholder=
"请选择"
>
<el-option
label=
"版本1"
value=
"版本1"
></el-option>
</el-select>
<el-tabs
type=
"border-card"
@
tab-click=
"tabs_click_func"
>
<el-tab-pane>
<span
slot=
"label"
>
<i
class=
"el-icon-picture"
></i>
</span>
<YuanMoXingGuanLiCanvas></YuanMoXingGuanLiCanvas>
<YuanMoXingGuanLiCanvas
ref=
"canvasComponent"
></YuanMoXingGuanLiCanvas>
</el-tab-pane>
<el-tab-pane>
<span
slot=
"label"
>
<i
class=
"el-icon-s-grid"
></i>
</span>
<YuanMoXingGuanLiTable></YuanMoXingGuanLiTable>
<YuanMoXingGuanLiTable
ref=
"tableComponent"
></YuanMoXingGuanLiTable>
</el-tab-pane>
</el-tabs>
</div>
...
...
@@ -29,14 +32,21 @@ export default {
},
data
()
{
return
{
select_version
:
null
};
},
mounted
(){
},
methods
:
{
tabs_click_func
(
data
)
{
if
(
data
.
index
==
'0'
)
{
console
.
log
(
'画布页面'
)
}
else
{
console
.
log
(
'表格页面'
)
this
.
$refs
.
tableComponent
.
get_table
();
}
}
}
}
</
script
>
...
...
@@ -44,6 +54,13 @@ export default {
.Details
{
width
:
100%
;
height
:
100%
;
position
:
relative
;
}
.select_version_control
{
position
:
absolute
;
top
:
0
;
right
:
140px
;
z-index
:
9
;
}
/
deep
/
.el-tabs__nav
{
float
:
right
;
...
...
src/views/meta-model-list/index.vue
View file @
1b3f0d0
...
...
@@ -11,7 +11,7 @@
<el-dropdown-item
command=
"基于模版绘图"
>
基于模版绘图
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-input
v-model=
"query_item1"
placeholder=
"请输入内容"
class=
"search_item"
prefix-icon=
"el-icon-search"
></el-input>
<el-input
v-model=
"query_item1"
@
change=
"search_list"
placeholder=
"请输入内容"
class=
"search_item"
prefix-icon=
"el-icon-search"
></el-input>
<div
class=
"query_btn"
>
<p>
版本分析
</p>
</div>
...
...
@@ -26,14 +26,14 @@
<el-divider></el-divider>
</div>
<div
class=
"card_container"
>
<el-card
class=
"card_item"
v-for=
"
o in 7"
:key=
"o
"
>
<img
class=
"card_image"
@
click=
"to_current_details"
src=
"@/assets/元模型管理.svg"
alt=
""
/>
<el-card
class=
"card_item"
v-for=
"
item in yi_fa_bu"
:key=
"item.metaModelId
"
>
<img
class=
"card_image"
@
click=
"to_current_details
(item)
"
src=
"@/assets/元模型管理.svg"
alt=
""
/>
<div
class=
"card_info"
>
<div
class=
"card_title"
>
<i
class=
"el-icon-location"
></i>
元模型 版本XX
{{
item
.
verName
}}
{{
item
.
version
}}
</div>
<div
class=
"card_icon"
>
<div
class=
"card_icon"
@
click
.
stop=
"deleteItem(item)"
>
<i
class=
"el-icon-delete"
></i>
</div>
</div>
...
...
@@ -47,14 +47,14 @@
<el-divider></el-divider>
</div>
<div
class=
"card_container"
>
<el-card
class=
"card_item"
v-for=
"
o in 7"
:key=
"o
"
>
<img
class=
"card_image"
@
click=
"to_current_details"
src=
"@/assets/元模型管理.svg"
alt=
""
/>
<el-card
class=
"card_item"
v-for=
"
item in zan_cun"
:key=
"item.metaModelId
"
>
<img
class=
"card_image"
@
click=
"to_current_details
(item)
"
src=
"@/assets/元模型管理.svg"
alt=
""
/>
<div
class=
"card_info"
>
<div
class=
"card_title"
>
<i
class=
"el-icon-location"
></i>
元模型 版本XX
{{
item
.
verName
}}
{{
item
.
version
}}
</div>
<div
class=
"card_icon"
>
<div
class=
"card_icon"
@
click
.
stop=
"deleteItem(item)"
>
<i
class=
"el-icon-delete"
></i>
</div>
</div>
...
...
@@ -79,14 +79,18 @@
<el-button
@
click=
"add_dialog = false"
>
取消
</el-button>
</span>
</el-dialog>
<!--
<img
:src=
"imgS"
alt=
""
>
-->
</div>
</
template
>
<
script
>
import
{
add_yuan_mo_xing
,
get_yuan_mo_xing_list
,
delete_yuan_mo_xing_list
}
from
'@/api/index.js'
;
import
{
MessageBox
,
Message
}
from
'element-ui'
;
import
$
from
'jquery'
;
export
default
{
name
:
'metaModelList'
,
...
...
@@ -104,13 +108,82 @@ export default {
name
:
[
{
required
:
true
,
message
:
'请输入版本名称'
,
trigger
:
'blur'
},
],
}
},
yi_fa_bu
:
[],
zan_cun
:
[],
imgS
:
''
};
},
mounted
(){
this
.
get_list
();
},
methods
:
{
search_list
()
{
//搜索
const
params
=
{
verName
:
this
.
query_item1
}
get_yuan_mo_xing_list
(
params
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
this
.
yi_fa_bu
=
res
.
data
.
records
.
filter
(
item
=>
item
.
state
==
1
);
this
.
zan_cun
=
res
.
data
.
records
.
filter
(
item
=>
item
.
state
==
2
);
}
else
{
}
})
},
deleteItem
(
item
)
{
//删除
MessageBox
.
confirm
(
'确定删除?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
const
params
=
{
metaModelId
:
item
.
metaModelId
,
state
:
item
.
state
}
delete_yuan_mo_xing_list
(
params
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
this
.
get_list
();
Message
({
type
:
'success'
,
message
:
'删除成功!'
});
}
else
{
Message
({
type
:
'error'
,
message
:
'删除失败!'
});
}
})
}).
catch
(()
=>
{
Message
({
type
:
'info'
,
message
:
'已取消'
});
});
},
get_list
()
{
//查询列表
get_yuan_mo_xing_list
({}).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
this
.
yi_fa_bu
=
res
.
data
.
records
.
filter
(
item
=>
item
.
state
==
1
);
this
.
zan_cun
=
res
.
data
.
records
.
filter
(
item
=>
item
.
state
==
2
);
// const res0 = res.data[0].records[0].metaModelData;
// const blob = new Blob([res0], { type: 'application/xml' });
// const imageUrl = (window.URL || window.webkitURL).createObjectURL(blob);
// console.log(imageUrl)
// this.imgS = imageUrl;
// Message({
// type: 'success',
// message: '版本发布成功!'
// });
}
else
{
// Message({
// type: 'error',
// message: '版本发布失败!'
// });
}
})
},
ok
()
{
//弹框点击确定
this
.
$refs
.
ruleForm
.
validate
(
valid
=>
{
if
(
valid
)
{
...
...
@@ -121,7 +194,7 @@ export default {
// console.log(res)
if
(
res
.
code
==
200
)
{
this
.
add_dialog
=
false
;
this
.
$router
.
push
(
`/main/metaModelListDetails/id=
${
res
.
data
}
`
,
()
=>
{},
()
=>
{}
);
this
.
$router
.
push
(
`/main/metaModelListDetails/
?
id=
${
res
.
data
}
`
,
()
=>
{},
()
=>
{}
);
Message
({
type
:
'success'
,
message
:
'新增成功!'
...
...
@@ -139,8 +212,9 @@ export default {
}
});
},
to_current_details
()
{
//跳转到详情
this
.
$router
.
push
(
'/main/metaModelListDetails/1'
,
()
=>
{},
()
=>
{}
);
to_current_details
(
item
)
{
//跳转到详情
console
.
log
(
item
)
this
.
$router
.
push
(
`/main/metaModelListDetails/id=
${
item
.
metaModelId
}
&version=
${
item
.
version
}
&state=
${
item
.
state
}
`
,
()
=>
{},
()
=>
{}
);
},
handleCommand
(
command
)
{
//新建按钮点击
if
(
command
==
'自由绘图'
)
{
...
...
@@ -187,7 +261,7 @@ export default {
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
margin
:
30px
40px
0
40px
;
margin
:
30px
0
0
0
;
}
.card_image
{
width
:
165px
;
...
...
src/views/meta-model-list/table/index.vue
View file @
1b3f0d0
<
template
>
<div
class=
"table"
>
<div
class=
"table_container"
>
<el-table
v-loading=
"loading"
:data=
"tableData"
stripe
border
>
<
el-table-column
type=
"selection"
width=
"55"
></el-table-column
>
<el-table
v-loading=
"loading"
:data=
"tableData"
stripe
border
height=
"500"
>
<
!--
<el-table-column
type=
"selection"
width=
"55"
></el-table-column>
--
>
<el-table-column
type=
"index"
label=
"序号"
width=
"80"
align=
"center"
></el-table-column>
<el-table-column
prop=
"
let1
"
label=
"元素名称"
align=
"center"
></el-table-column>
<el-table-column
prop=
"
let2
"
label=
"元素id"
align=
"center"
></el-table-column>
<el-table-column
prop=
"l
et3
"
label=
"关联元素名称"
align=
"center"
></el-table-column>
<el-table-column
prop=
"
let4
"
label=
"关联元素id"
align=
"center"
></el-table-column>
<el-table-column
prop=
"
let4
"
label=
"关联关系名称"
align=
"center"
></el-table-column>
<el-table-column
prop=
"l
et4
"
label=
"关联关系描述"
align=
"center"
></el-table-column>
<el-table-column
prop=
"
let4
"
label=
"方向"
align=
"center"
></el-table-column>
<el-table-column
label=
"操作"
align=
"center"
>
<el-table-column
prop=
"
source
"
label=
"元素名称"
align=
"center"
></el-table-column>
<el-table-column
prop=
"
sourceId
"
label=
"元素id"
align=
"center"
></el-table-column>
<el-table-column
prop=
"l
inkName
"
label=
"关联元素名称"
align=
"center"
></el-table-column>
<el-table-column
prop=
"
targetId
"
label=
"关联元素id"
align=
"center"
></el-table-column>
<el-table-column
prop=
"
target
"
label=
"关联关系名称"
align=
"center"
></el-table-column>
<el-table-column
prop=
"l
inkNameDesc
"
label=
"关联关系描述"
align=
"center"
></el-table-column>
<el-table-column
prop=
"
direction
"
label=
"方向"
align=
"center"
></el-table-column>
<
!--
<
el-table-column
label=
"操作"
align=
"center"
>
<template>
<div
style=
"display: flex;align-items: center;justify-content: center;"
>
<div
class=
"add_btn"
@
click=
"add_dialog = true"
style=
"border: 0;margin-right: 8px;"
>
<!--
<img
class=
"btn_icon"
src=
"@/assets/编辑_icon_default.png"
alt=
""
/>
-->
<p>
编辑
</p>
</div>
<div
class=
"reset_btn"
style=
"border: 0;margin-right: 8px;"
>
<!--
<img
class=
"btn_icon"
src=
"@/assets/停用_icon_default.png"
alt=
""
/>
-->
<p>
停用
</p>
</div>
<div
class=
"add_btn"
style=
"border: 0;margin-right: 8px;"
>
<!--
<img
class=
"btn_icon"
src=
"@/assets/发布_icon_default.png"
alt=
""
/>
-->
<p>
发布
</p>
</div>
<div
class=
"reset_btn"
style=
"border: 0;"
>
<!--
<img
class=
"btn_icon"
src=
"@/assets/删除_icon_default.png"
alt=
""
/>
-->
<p>
删除
</p>
</div>
</div>
</
template
>
</el-table-column>
</el-table-column>
-->
</el-table>
</div>
...
...
@@ -75,7 +75,10 @@
</template>
<
script
>
import
{
get_drawio_transform_table
,
}
from
'@/api/index.js'
;
import
{
MessageBox
,
Message
}
from
'element-ui'
;
export
default
{
name
:
'Table'
,
components
:
{
...
...
@@ -89,9 +92,38 @@ export default {
let2
:
''
,
let3
:
''
,
let4
:
''
,
loading
:
false
loading
:
false
,
routerId
:
null
};
},
mounted
(){
this
.
routerId
=
window
.
location
.
href
.
split
(
"="
)[
1
];
// this.get_table();
},
methods
:
{
get_table
()
{
this
.
loading
=
true
;
const
params
=
{
metaModelId
:
this
.
routerId
}
get_drawio_transform_table
(
params
).
then
(
res
=>
{
// console.log(res)
if
(
res
.
code
==
200
)
{
this
.
loading
=
false
;
this
.
tableData
=
res
.
data
;
// Message({
// type: 'success',
// message: '获取表格数据成功!'
// });
}
else
{
// Message({
// type: 'error',
// message: '获取表格数据失败!'
// });
}
})
}
}
}
</
script
>
<
style
scoped
>
...
...
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