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 f6a44d29
authored
Mar 15, 2024
by
liuyong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改bug
1 parent
14e21fd0
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
432 additions
and
85 deletions
public/drawio/extention/js/exApp.js
src/views/archi-ele-list/index.vue
src/views/projectInfoManage/index.vue
src/views/reviewArchiFollowCheck/tab1.vue
src/views/reviewArchiFollowCheck/tab2.vue
src/views/reviewArchiFollowCheck/tab3.vue
src/views/reviewArchiFollowCheck/tab4.vue
src/views/reviewArchiFollowCheck/tab5.vue
public/drawio/extention/js/exApp.js
View file @
f6a44d2
...
...
@@ -123,7 +123,7 @@ const setIcon = function (itemIcon, dicys, color) {
}
// const svg = '<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" style="left: 1px; top: 1px; width: 32px; height: 30px; display: block; position: relative; overflow: hidden; pointer-events: none;"><g style="pointer-events: none;"><g style="pointer-events: none;"></g><g style="pointer-events: none;"><g transform="translate(0.5,0.5)" style="visibility: visible; pointer-events: none;"><path d="M 2.48 27.98 L 28.99 1.48" fill="none" stroke="white" stroke-width="9.3" stroke-miterlimit="10" visibility="hidden" style="pointer-events: none;"></path><path d="M 2.48 27.98 L 28.99 1.48" fill="none" stroke="rgb(0, 0, 0)" stroke-width="1.3" stroke-miterlimit="10" stroke-dasharray="1.59 1.59" style="pointer-events: none;"></path></g></g><g style="pointer-events: none;"></g><g style="pointer-events: none;"></g></g></svg>';
const
svg
=
'<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" style="left: 1px; top: 1px; width: 32px; height: 30px; display: block; position: relative; overflow: hidden; pointer-events: none;"><g style="pointer-events: none;"><g style="pointer-events: none;"></g><g style="pointer-events: none;"><g transform="translate(0.5,0.5)" style="visibility: visible; pointer-events: none;"><rect x="1
" y="3" width="30" height="24" fill="none" stroke="white" visibility="hidden" stroke-width="9" style="pointer-events: none;"></rect><rect x="1" y="3" width="30" height="24" fill="none" stroke="none" style="pointer-events: none;"></rect></g><g style="pointer-events: none;"><g transform="scale(0.3)" style="pointer-events: none;"><foreignObject width="334%" height="334%" style="overflow: visible; text-align: left; pointer-events: none;"><div style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 98px; height: 1px; padding-top: 50px; margin-left: 5px; pointer-events: none;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 76px; overflow: hidden; pointer-events: none;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><ul style="pointer-events: none;"><li style="pointer-events: none;">Value 1</li><li style="pointer-events: none;">Value 2</li><li style="pointer-events: none;">Value 3</li></ul></div></div></div></foreignObject></g
></g></g><g style="pointer-events: none;"></g><g style="pointer-events: none;"></g></g></svg>'
;
const
svg
=
'<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" style="left: 1px; top: 1px; width: 32px; height: 30px; display: block; position: relative; overflow: hidden; pointer-events: none;"><g style="pointer-events: none;"><g style="pointer-events: none;"></g><g style="pointer-events: none;"><g transform="translate(0.5,0.5)" style="visibility: visible; pointer-events: none;"><rect x="1
.6" y="7.8" width="28.8" height="14.4" fill="rgb(241, 243, 244)" stroke="rgb(0, 0, 0)" stroke-width="1.3" style="pointer-events: none;"></rect
></g></g><g style="pointer-events: none;"></g><g style="pointer-events: none;"></g></g></svg>'
;
const
encode_item_icon
=
window
.
btoa
(
svg
);
//base64编码
let
svgImage
=
'data:image/svg+xml;base64,'
+
encode_item_icon
;
...
...
@@ -150,10 +150,10 @@ const setIcon = function (itemIcon, dicys, color) {
const
leftCustomGraph
=
function
(
that
)
{
//左侧自定义图形
var
xml
=
that
.
createLibraryDataFromImages
(
images_
);
//
var xml = that.createLibraryDataFromImages(images_);
var
file
=
new
LocalLibrary
(
that
,
xml
,
'图库'
);
that
.
libraryLoaded
(
file
,
images_
,
null
,
false
);
//
var file = new LocalLibrary(that, xml, '图库');
//
that.libraryLoaded(file, images_, null, false);
// const standardGraph = JSON.parse(localStorage.getItem('standardGraph'));
...
...
src/views/archi-ele-list/index.vue
View file @
f6a44d2
...
...
@@ -53,7 +53,8 @@
<el-table-column
prop=
"content"
label=
"描述"
align=
"center"
width=
"200"
:show-overflow-tooltip=
"true"
></el-table-column>
<el-table-column
label=
"图标"
align=
"center"
>
<template
slot-scope=
"scope"
>
<img
:src=
"scope.row.icon"
alt=
""
:style=
"
{ 'width': scope.row.width, 'height': scope.row.height }">
<!--
<img
:src=
"scope.row.icon"
alt=
""
style=
"width: 100px;height: 100px;"
>
-->
<div
v-html=
"scope.row.icon"
style=
"display: flex;justify-content: center;"
></div>
</
template
>
</el-table-column>
<el-table-column
prop=
"version"
label=
"版本"
align=
"center"
></el-table-column>
...
...
@@ -268,10 +269,10 @@
<div
style=
"height: 400px;display: flex;align-items: center;"
>
<div
style=
"width: 20%;height: 100%;border-left: 1px solid #ccc;border-top: 1px solid #ccc;border-bottom: 1px solid #ccc;overflow: auto;text-align: center;"
>
<div
:style=
"{ 'cursor': 'pointer', 'padding': '4px', 'background-color': nameIndex2 == index ? 'rgb(13,134,127)' : '#fff', 'color': nameIndex2 == index ? '#fff' : '#000' }"
v-for=
"(item, index) in s
tandardGraph
"
:key=
"item.
arciB
elongId"
@
click=
"showCurrentGraph2(item.
arciBelongN
ame, index)"
>
{{ item.
arciBelongN
ame }}
v-for=
"(item, index) in s
earch_select1
"
:key=
"item.
b
elongId"
@
click=
"showCurrentGraph2(item.
n
ame, index)"
>
{{ item.
n
ame }}
</div>
</div>
<div
style=
"width: 80%;height: 100%;border: 1px solid #ccc;overflow: auto;text-align: left;"
>
...
...
@@ -610,7 +611,7 @@ export default {
openGraphDialog
()
{
//打开图形选择窗口
this
.
graph_dialog
=
true
;
this
.
showCurrentGraph
(
this
.
search_select1
[
0
].
name
,
0
);
this
.
queryDrawioGraph2
();
this
.
showCurrentGraph2
(
this
.
search_select1
[
0
].
name
,
0
)
},
tabsClick
(
data
)
{
console
.
log
(
data
)
...
...
@@ -626,8 +627,9 @@ export default {
}
this
.
graph_dialog
=
false
;
if
(
this
.
tabType
==
'元模型图元'
)
{
console
.
log
(
this
.
standardList
[
this
.
graphIndex2
])
this
.
selectGraphSrc
=
this
.
standardList
[
this
.
graphIndex2
].
icon
;
this
.
selectGraphShape
=
this
.
standardList
[
this
.
graphIndex2
].
icon
Name
;
this
.
selectGraphShape
=
this
.
standardList
[
this
.
graphIndex2
].
graph
Name
;
}
else
{
this
.
selectGraphSrc
=
'data:image/svg+xml;base64,'
+
this
.
graphList
[
this
.
graphIndex
].
icon
;
this
.
selectGraphShape
=
this
.
graphList
[
this
.
graphIndex
].
graphName
;
...
...
@@ -639,25 +641,21 @@ export default {
this
.
nameIndex
=
0
;
this
.
graph_dialog
=
false
;
},
queryDrawioGraph2
()
{
//查询画布左侧标准图形
getDrawioLeftStandardGraph
({}).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
res
.
data
.
dataEle
.
pop
();
this
.
standardGraph
=
res
.
data
.
dataEle
;
this
.
showCurrentGraph2
(
res
.
data
.
dataEle
[
0
].
arciBelongName
,
0
);
}
else
{
Message
({
type
:
'error'
,
message
:
res
.
msg
});
}
})
},
showCurrentGraph2
(
name
,
idx
)
{
//标准图形选择窗口的文字点击
this
.
nameIndex2
=
idx
;
this
.
graphIndex2
=
-
1
;
const
res
=
this
.
standardGraph
.
find
(
item
=>
item
.
arciBelongName
==
name
);
this
.
standardList
=
res
.
eleDtos
;
const
params
=
{
delFlag
:
0
,
metaType
:
1
,
graphType
:
name
}
query_jia_gou_gui_shu_belong_icon
(
params
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
this
.
standardList
=
res
.
data
;
}
else
{
}
});
},
showCurrentGraph
(
name
,
idx
)
{
//常规图形选择窗口的文字点击
this
.
nameIndex
=
idx
;
...
...
@@ -1010,31 +1008,34 @@ export default {
result
.
data
.
records
.
map
(
item
=>
{
if
(
item
.
icon
.
includes
(
"svg+xml"
))
{
const
item_icon
=
item
.
icon
.
split
(
"base64,"
)[
1
];
const
decode_item_icon
=
window
.
atob
(
item_icon
);
//svg解码,为字符串
const
svgDocument
=
new
DOMParser
().
parseFromString
(
decode_item_icon
,
'text/xml'
);
//svg字符串转标签
// console.log(svgDocument)
const
path
=
svgDocument
.
getElementsByTagName
(
'path'
)[
0
];
const
rect
=
svgDocument
.
getElementsByTagName
(
'rect'
)[
0
];
const
ellipse
=
svgDocument
.
getElementsByTagName
(
'ellipse'
)[
0
];
const
svgTag
=
svgDocument
.
getElementsByTagName
(
'svg'
)[
0
];
const
svgWidth
=
Number
(
svgTag
.
getAttribute
(
'width'
).
split
(
'px'
)[
0
])
/
2
;
const
svgHeight
=
Number
(
svgTag
.
getAttribute
(
'height'
).
split
(
'px'
)[
0
])
/
2
;
item
[
'width'
]
=
svgWidth
+
'px'
;
item
[
'height'
]
=
svgHeight
+
'px'
;
//
const item_icon = item.icon.split("base64,")[1];
//
const decode_item_icon = window.atob(item_icon);//svg解码,为字符串
//
const svgDocument = new DOMParser().parseFromString(decode_item_icon, 'text/xml');//svg字符串转标签
//
//
console.log(svgDocument)
//
const path = svgDocument.getElementsByTagName('path')[0];
//
const rect = svgDocument.getElementsByTagName('rect')[0];
//
const ellipse = svgDocument.getElementsByTagName('ellipse')[0];
//
const svgTag = svgDocument.getElementsByTagName('svg')[0];
//
const svgWidth = Number(svgTag.getAttribute('width').split('px')[0])/2;
//
const svgHeight = Number(svgTag.getAttribute('height').split('px')[0])/2;
//
item['width'] = svgWidth + 'px';
//
item['height'] = svgHeight + 'px';
if
(
path
)
{
path
.
setAttribute
(
'fill'
,
item
.
color
);
}
if
(
rect
)
{
rect
.
setAttribute
(
'fill'
,
item
.
color
);
}
if
(
ellipse
)
{
ellipse
.
setAttribute
(
'fill'
,
item
.
color
);
}
const
svgToString
=
new
XMLSerializer
().
serializeToString
(
svgDocument
);
//svg标签转化为字符串
const
encode_item_icon
=
window
.
btoa
(
svgToString
);
//base64编码
item
.
icon
=
'data:image/svg+xml;base64,'
+
encode_item_icon
;
// if(path) {
// path.setAttribute('fill', item.color);
// }
// if(rect) {
// rect.setAttribute('fill', item.color);
// }
// if(ellipse) {
// ellipse.setAttribute('fill', item.color);
// }
// const svgToString = new XMLSerializer().serializeToString(svgDocument);//svg标签转化为字符串
// const encode_item_icon = window.btoa(svgToString);//base64编码
// item.icon = 'data:image/svg+xml;base64,'+ encode_item_icon;
const
svgToString
=
'<svg style="left: 1px; top: 1px; width: 32px; height: 30px; display: block; position: relative; overflow: hidden; pointer-events: none;"><g style="pointer-events: none;"><g style="pointer-events: none;"></g><g style="pointer-events: none;"><g transform="translate(0.5,0.5)" style="visibility: visible; pointer-events: none;"><rect x="1" y="7.5" width="30" height="15" fill="none" stroke="white" visibility="hidden" stroke-width="9" style="pointer-events: none;"></rect><rect x="1" y="7.5" width="30" height="15" fill="none" stroke="none" style="pointer-events: none;"></rect></g><g style="pointer-events: none;"><g transform="scale(0.5)" style="pointer-events: none;"><foreignObject width="200%" height="200%" style="overflow: visible; text-align: left; pointer-events: none;"><div style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 30px; margin-left: 3px; pointer-events: none;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center; pointer-events: none;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Text</div></div></div></foreignObject></g></g></g><g style="pointer-events: none;"></g><g style="pointer-events: none;"></g></g></svg>'
;
item
.
icon
=
svgToString
;
}
else
{
item
[
'width'
]
=
0
;
item
[
'height'
]
=
0
;
...
...
src/views/projectInfoManage/index.vue
View file @
f6a44d2
...
...
@@ -584,9 +584,10 @@ export default {
}
if
(
row
.
filesValue
)
{
let
filesValue
=
JSON
.
parse
(
row
.
filesValue
);
if
(
filesValue
.
length
>
0
)
{
this
.
tableData4
.
forEach
((
item
,
index
)
=>
{
item
.
fileList
=
filesValue
[
index
]
.
fileUrl
?
[
item
.
fileList
=
filesValue
[
index
]
?
[
{
name
:
filesValue
[
index
].
fileName
,
url
:
filesValue
[
index
].
fileUrl
,
...
...
@@ -595,7 +596,7 @@ export default {
fileUrl
:
filesValue
[
index
].
fileUrl
,
}
]
:
[];
item
.
fileArray
=
filesValue
[
index
]
.
fileUrl
?
[
item
.
fileArray
=
filesValue
[
index
]
?
[
{
name
:
filesValue
[
index
].
fileName
,
url
:
filesValue
[
index
].
fileUrl
,
...
...
@@ -606,6 +607,7 @@ export default {
]
:
[];
});
}
console
.
log
(
this
.
tableData4
)
}
this
.
prjId
=
row
.
prjId
;
},
...
...
@@ -689,12 +691,14 @@ export default {
manageOrgId
=
this
.
selectRow
[
0
].
manageOrgId
;
let
filesValue
=
[];
this
.
tableData4
.
forEach
(
item
=>
{
if
(
item
.
fileArray
.
length
>
0
)
{
filesValue
.
push
({
doc
Name
:
item
.
tableLet1
,
fileId
:
item
.
fileArray
.
length
>
0
?
item
.
fileArray
[
0
].
fileId
:
null
,
fileName
:
item
.
fileArray
.
length
>
0
?
item
.
fileArray
[
0
].
fileName
:
null
,
fileUrl
:
item
.
fileArray
.
length
>
0
?
item
.
fileArray
[
0
].
fileUrl
:
nul
l
,
busiFile
Name
:
item
.
tableLet1
,
fileId
:
item
.
fileArray
[
0
].
fileId
,
fileName
:
item
.
fileArray
[
0
].
fileName
,
fileUrl
:
item
.
fileArray
[
0
].
fileUr
l
,
})
}
})
const
params
=
{
agoPrjCode
,
agoPrjId
,
agoPrjName
,
appCode
,
appId
,
appName
,
buildOrg
,
buildType
,
manageDeptId
,
manageOrgId
,
...
...
src/views/reviewArchiFollowCheck/tab1.vue
View file @
f6a44d2
...
...
@@ -4,26 +4,29 @@
<div
class=
"left_container"
>
<el-alert
title=
"评审标准"
type=
"success"
:closable=
"false"
></el-alert>
<el-select
v-model=
"select1"
class=
"leftSelect"
>
<el-option
label=
"
1
"
value=
"1"
></el-option>
<el-option
label=
"
本项目-安全防护方案.pdf
"
value=
"1"
></el-option>
</el-select>
</div>
<div
class=
"right_container"
>
<el-alert
title=
"评审内容"
type=
"success"
:closable=
"false"
></el-alert>
<el-select
v-model=
"select2"
class=
"rightSelect"
@
change=
"select2Change"
>
<el-option
v-for=
"item in rightSelect"
:key=
"item.viewDetailsId"
:label=
"item.viewDetailName"
:value=
"item.viewDetailsId"
></el-option>
<!--
<el-option
v-for=
"item in rightSelect"
:key=
"item.viewDetailsId"
:label=
"item.viewDetailName"
:value=
"item.viewDetailsId"
></el-option>
-->
<el-option
label=
"本项目-安全防护方案.pdf"
value=
"1"
></el-option>
</el-select>
<img
:src=
"rightImageSrc"
class=
"rightImageContainer"
alt=
""
>
<div
v-for=
"item in rightImageArray"
:key=
"item.viewDetailsId"
>
<img
:src=
"item.metaModelSvg"
alt=
""
>
</div>
</div>
</div>
<div
class=
"bottom_container"
>
<div
style=
"padding-right: 20px;text-align: left;margin: 15px 0;display: flex;align-items: center;justify-content: space-between;"
>
<div>
<el-divider
direction=
"vertical"
></el-divider>
<span
style=
"margin-right: 50px;"
>
评审意见
</span>
<el-radio
v-model=
"radio"
label=
"1"
>
通过
</el-radio>
<el-radio
v-model=
"radio"
label=
"0"
>
不通过
</el-radio>
<span
style=
"margin-right: 50px;"
>
备注
</span>
<
!--
<
el-radio
v-model=
"radio"
label=
"1"
>
通过
</el-radio>
<el-radio
v-model=
"radio"
label=
"0"
>
不通过
</el-radio>
-->
</div>
<el-button
type=
"primary"
size=
"medium"
@
click=
"saveSuggestion"
>
带入批准
</el-button>
<el-button
type=
"primary"
size=
"medium"
@
click=
"saveSuggestion"
>
保存备注
</el-button>
</div>
<el-input
type=
"textarea"
:rows=
"4"
v-model=
"textarea"
style=
"width: 98%;"
></el-input>
</div>
...
...
@@ -47,6 +50,7 @@ export default {
textarea
:
''
,
select1
:
null
,
select2
:
null
,
rightImageArray
:
[],
rightImageSrc
:
null
,
prjId
:
null
,
rightSelect
:
[]
...
...
@@ -62,24 +66,31 @@ export default {
const
params
=
{
archiBelongId
:
archiBelongId
,
prjId
:
this
.
prjId
,
archiStage
:
3
}
getReviewArchiFollowCheckRightGraph
(
params
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
data
.
length
>
0
)
{
this
.
rightSelect
=
res
.
data
;
this
.
select2
=
res
.
data
[
0
].
viewDetailsId
;
this
.
rightImageSrc
=
'data:image/svg+xml;base64,'
+
res
.
data
[
0
].
metaModelSvg
;
res
.
data
.
map
(
item
=>
{
item
.
metaModelSvg
=
'data:image/svg+xml;base64,'
+
item
.
metaModelSvg
;
})
this
.
rightImageArray
=
res
.
data
;
console
.
log
(
this
.
rightImageArray
)
// this.rightSelect = res.data;
// this.select2 = res.data[0].viewDetailsId;
// this.rightImageSrc = 'data:image/svg+xml;base64,'+ res.data[0].metaModelSvg;
}
}
})
},
select2Change
(
data
)
{
//右侧下拉框选择
const
res
=
this
.
rightSelect
.
find
(
item
=>
item
.
viewDetailsId
==
data
);
this
.
rightImageSrc
=
'data:image/svg+xml;base64,'
+
res
.
metaModelSvg
;
//
this.rightImageSrc = 'data:image/svg+xml;base64,'+ res.metaModelSvg;
},
saveSuggestion
()
{
//保存
const
params
=
{
"archiPrjReviewEnum"
:
"
CONFORMANCE_REVIEW
"
,
"archiPrjReviewEnum"
:
"
SECURITY_ARCHITECTURE_CONFORMANCE
"
,
"prjId"
:
this
.
prjId
,
"reviewState"
:
this
.
radio
,
"reviewSuggestion"
:
this
.
textarea
...
...
src/views/reviewArchiFollowCheck/tab2.vue
View file @
f6a44d2
...
...
@@ -3,15 +3,30 @@
<div
class=
"content"
>
<div
class=
"left_container"
>
<el-alert
title=
"评审标准"
type=
"success"
:closable=
"false"
></el-alert>
<el-select
v-model=
"select1"
class=
"leftSelect"
>
<el-option
label=
"系统架构-系统架构视图设计-安全架构视图"
value=
"1"
></el-option>
</el-select>
</div>
<div
class=
"right_container"
>
<el-alert
title=
"评审内容"
type=
"success"
:closable=
"false"
></el-alert>
<el-select
v-model=
"select2"
class=
"rightSelect"
@
change=
"select2Change"
>
<!--
<el-option
v-for=
"item in rightSelect"
:key=
"item.viewDetailsId"
:label=
"item.viewDetailName"
:value=
"item.viewDetailsId"
></el-option>
-->
<el-option
label=
"系统架构-系统架构视图设计-安全架构视图"
value=
"1"
></el-option>
</el-select>
<div
v-for=
"item in rightImageArray"
:key=
"item.viewDetailsId"
>
<img
:src=
"item.metaModelSvg"
alt=
""
>
</div>
</div>
</div>
<div
class=
"bottom_container"
>
<div
style=
"padding-right: 20px;text-align: left;margin: 15px 0;"
>
<div
style=
"padding-right: 20px;text-align: left;margin: 15px 0;display: flex;align-items: center;justify-content: space-between;"
>
<div>
<el-divider
direction=
"vertical"
></el-divider>
<span
style=
"margin-right: 50px;"
>
审查意见
</span>
<span
style=
"margin-right: 50px;"
>
备注
</span>
<!--
<el-radio
v-model=
"radio"
label=
"1"
>
通过
</el-radio>
<el-radio
v-model=
"radio"
label=
"0"
>
不通过
</el-radio>
-->
</div>
<el-button
type=
"primary"
size=
"medium"
@
click=
"saveSuggestion"
>
保存备注
</el-button>
</div>
<el-input
type=
"textarea"
:rows=
"4"
v-model=
"textarea"
style=
"width: 98%;"
></el-input>
</div>
...
...
@@ -20,7 +35,8 @@
<
script
>
import
{
getArchiViewManageTable
getReviewArchiFollowCheckRightGraph
,
saveReviewArchiFollowCheckRightSuggestion
}
from
'@/api/index.js'
;
import
{
MessageBox
,
Message
}
from
'element-ui'
;
export
default
{
...
...
@@ -31,14 +47,65 @@ export default {
data
()
{
return
{
radio
:
'1'
,
textarea
:
''
textarea
:
''
,
select1
:
null
,
select2
:
null
,
rightImageArray
:
[],
rightImageSrc
:
null
,
prjId
:
null
,
rightSelect
:
[]
};
},
mounted
(){
this
.
prjId
=
this
.
$route
.
query
.
prjId
;
this
.
getRightGraph
(
5
);
},
methods
:
{
getRightGraph
(
archiBelongId
)
{
//获取右侧图片
const
params
=
{
archiBelongId
:
archiBelongId
,
prjId
:
this
.
prjId
,
archiStage
:
3
}
getReviewArchiFollowCheckRightGraph
(
params
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
data
.
length
>
0
)
{
res
.
data
.
map
(
item
=>
{
item
.
metaModelSvg
=
'data:image/svg+xml;base64,'
+
item
.
metaModelSvg
;
})
this
.
rightImageArray
=
res
.
data
;
console
.
log
(
this
.
rightImageArray
)
// this.rightSelect = res.data;
// this.select2 = res.data[0].viewDetailsId;
// this.rightImageSrc = 'data:image/svg+xml;base64,'+ res.data[0].metaModelSvg;
}
}
})
},
select2Change
(
data
)
{
//右侧下拉框选择
const
res
=
this
.
rightSelect
.
find
(
item
=>
item
.
viewDetailsId
==
data
);
// this.rightImageSrc = 'data:image/svg+xml;base64,'+ res.metaModelSvg;
},
saveSuggestion
()
{
//保存
const
params
=
{
"archiPrjReviewEnum"
:
"DEPLOYMENT_ARCHITECTURE_REVIEW"
,
"prjId"
:
this
.
prjId
,
"reviewState"
:
this
.
radio
,
"reviewSuggestion"
:
this
.
textarea
}
saveReviewArchiFollowCheckRightSuggestion
(
params
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
console
.
log
(
res
.
code
)
}
else
{
Message
({
type
:
"error"
,
message
:
res
.
msg
,
});
}
})
}
}
}
</
script
>
...
...
@@ -50,6 +117,16 @@ export default {
display
:
flex
;
height
:
77%
;
}
.leftSelect
{
position
:
absolute
;
top
:
44px
;
left
:
22px
;
}
.rightSelect
{
position
:
absolute
;
top
:
44px
;
left
:
22px
;
}
.el-button--primary
{
background
:
rgba
(
13
,
134
,
127
,
1
);
color
:
#fff
;
...
...
@@ -67,10 +144,18 @@ export default {
width
:
49%
;
border
:
1px
solid
red
;
margin-right
:
1%
;
position
:
relative
;
}
.right_container
{
width
:
49%
;
border
:
1px
solid
red
;
position
:
relative
;
}
.rightImageContainer
{
position
:
absolute
;
transform
:
translate
(
-50%
,
-50%
);
top
:
50%
;
left
:
50%
;
}
.bottom_container
{
...
...
src/views/reviewArchiFollowCheck/tab3.vue
View file @
f6a44d2
...
...
@@ -3,18 +3,30 @@
<div
class=
"content"
>
<div
class=
"left_container"
>
<el-alert
title=
"评审标准"
type=
"success"
:closable=
"false"
></el-alert>
<el-select
v-model=
"select1"
class=
"leftSelect"
>
<el-option
label=
"总体架构-架构视图设计-技术架构视图"
value=
"1"
></el-option>
</el-select>
</div>
<div
class=
"right_container"
>
<el-alert
title=
"评审内容"
type=
"success"
:closable=
"false"
></el-alert>
<el-select
v-model=
"select2"
class=
"rightSelect"
@
change=
"select2Change"
>
<!--
<el-option
v-for=
"item in rightSelect"
:key=
"item.viewDetailsId"
:label=
"item.viewDetailName"
:value=
"item.viewDetailsId"
></el-option>
-->
<el-option
label=
"系统架构-概设阶段架构设计-技术架构视图"
value=
"1"
></el-option>
</el-select>
<div
v-for=
"item in rightImageArray"
:key=
"item.viewDetailsId"
>
<img
:src=
"item.metaModelSvg"
alt=
""
>
</div>
</div>
</div>
<div
class=
"bottom_container"
>
<div
style=
"padding-right: 20px;text-align: left;margin: 15px 0;display: flex;align-items: center;justify-content: space-between;"
>
<div>
<el-divider
direction=
"vertical"
></el-divider>
<span
style=
"margin-right: 50px;"
>
审查意见
</span>
<span
style=
"margin-right: 50px;"
>
备注
</span>
<!--
<el-radio
v-model=
"radio"
label=
"1"
>
通过
</el-radio>
<el-radio
v-model=
"radio"
label=
"0"
>
不通过
</el-radio>
-->
</div>
<el-button
type=
"primary"
size=
"medium"
>
保存意见
</el-button>
<el-button
type=
"primary"
size=
"medium"
@
click=
"saveSuggestion"
>
保存备注
</el-button>
</div>
<el-input
type=
"textarea"
:rows=
"4"
v-model=
"textarea"
style=
"width: 98%;"
></el-input>
</div>
...
...
@@ -23,7 +35,8 @@
<
script
>
import
{
getArchiViewManageTable
getReviewArchiFollowCheckRightGraph
,
saveReviewArchiFollowCheckRightSuggestion
}
from
'@/api/index.js'
;
import
{
MessageBox
,
Message
}
from
'element-ui'
;
export
default
{
...
...
@@ -34,14 +47,65 @@ export default {
data
()
{
return
{
radio
:
'1'
,
textarea
:
''
textarea
:
''
,
select1
:
null
,
select2
:
null
,
rightImageArray
:
[],
rightImageSrc
:
null
,
prjId
:
null
,
rightSelect
:
[]
};
},
mounted
(){
this
.
prjId
=
this
.
$route
.
query
.
prjId
;
this
.
getRightGraph
(
4
);
},
methods
:
{
getRightGraph
(
archiBelongId
)
{
//获取右侧图片
const
params
=
{
archiBelongId
:
archiBelongId
,
prjId
:
this
.
prjId
,
archiStage
:
3
}
getReviewArchiFollowCheckRightGraph
(
params
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
data
.
length
>
0
)
{
res
.
data
.
map
(
item
=>
{
item
.
metaModelSvg
=
'data:image/svg+xml;base64,'
+
item
.
metaModelSvg
;
})
this
.
rightImageArray
=
res
.
data
;
console
.
log
(
this
.
rightImageArray
)
// this.rightSelect = res.data;
// this.select2 = res.data[0].viewDetailsId;
// this.rightImageSrc = 'data:image/svg+xml;base64,'+ res.data[0].metaModelSvg;
}
}
})
},
select2Change
(
data
)
{
//右侧下拉框选择
const
res
=
this
.
rightSelect
.
find
(
item
=>
item
.
viewDetailsId
==
data
);
// this.rightImageSrc = 'data:image/svg+xml;base64,'+ res.metaModelSvg;
},
saveSuggestion
()
{
//保存
const
params
=
{
"archiPrjReviewEnum"
:
"TECHNICAL_ARCHITECTURE_CONFORMANCE"
,
"prjId"
:
this
.
prjId
,
"reviewState"
:
this
.
radio
,
"reviewSuggestion"
:
this
.
textarea
}
saveReviewArchiFollowCheckRightSuggestion
(
params
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
console
.
log
(
res
.
code
)
}
else
{
Message
({
type
:
"error"
,
message
:
res
.
msg
,
});
}
})
}
}
}
</
script
>
...
...
@@ -53,6 +117,16 @@ export default {
display
:
flex
;
height
:
77%
;
}
.leftSelect
{
position
:
absolute
;
top
:
44px
;
left
:
22px
;
}
.rightSelect
{
position
:
absolute
;
top
:
44px
;
left
:
22px
;
}
.el-button--primary
{
background
:
rgba
(
13
,
134
,
127
,
1
);
color
:
#fff
;
...
...
@@ -70,10 +144,18 @@ export default {
width
:
49%
;
border
:
1px
solid
red
;
margin-right
:
1%
;
position
:
relative
;
}
.right_container
{
width
:
49%
;
border
:
1px
solid
red
;
position
:
relative
;
}
.rightImageContainer
{
position
:
absolute
;
transform
:
translate
(
-50%
,
-50%
);
top
:
50%
;
left
:
50%
;
}
.bottom_container
{
...
...
src/views/reviewArchiFollowCheck/tab4.vue
View file @
f6a44d2
...
...
@@ -3,18 +3,30 @@
<div
class=
"content"
>
<div
class=
"left_container"
>
<el-alert
title=
"评审标准"
type=
"success"
:closable=
"false"
></el-alert>
<el-select
v-model=
"select1"
class=
"leftSelect"
>
<el-option
label=
"总体架构-应用架构视图"
value=
"1"
></el-option>
</el-select>
</div>
<div
class=
"right_container"
>
<el-alert
title=
"评审内容"
type=
"success"
:closable=
"false"
></el-alert>
<el-select
v-model=
"select2"
class=
"rightSelect"
@
change=
"select2Change"
>
<!--
<el-option
v-for=
"item in rightSelect"
:key=
"item.viewDetailsId"
:label=
"item.viewDetailName"
:value=
"item.viewDetailsId"
></el-option>
-->
<el-option
label=
"系统架构-概设阶段架构设计-应用架构视图"
value=
"1"
></el-option>
</el-select>
<div
v-for=
"item in rightImageArray"
:key=
"item.viewDetailsId"
>
<img
:src=
"item.metaModelSvg"
alt=
""
>
</div>
</div>
</div>
<div
class=
"bottom_container"
>
<div
style=
"padding-right: 20px;text-align: left;margin: 15px 0;display: flex;align-items: center;justify-content: space-between;"
>
<div>
<el-divider
direction=
"vertical"
></el-divider>
<span
style=
"margin-right: 50px;"
>
评审意见
</span>
<span
style=
"margin-right: 50px;"
>
备注
</span>
<!--
<el-radio
v-model=
"radio"
label=
"1"
>
通过
</el-radio>
<el-radio
v-model=
"radio"
label=
"0"
>
不通过
</el-radio>
-->
</div>
<el-button
type=
"primary"
size=
"medium"
>
保存意见
</el-button>
<el-button
type=
"primary"
size=
"medium"
@
click=
"saveSuggestion"
>
保存备注
</el-button>
</div>
<el-input
type=
"textarea"
:rows=
"4"
v-model=
"textarea"
style=
"width: 98%;"
></el-input>
</div>
...
...
@@ -23,7 +35,8 @@
<
script
>
import
{
getArchiViewManageTable
getReviewArchiFollowCheckRightGraph
,
saveReviewArchiFollowCheckRightSuggestion
}
from
'@/api/index.js'
;
import
{
MessageBox
,
Message
}
from
'element-ui'
;
export
default
{
...
...
@@ -34,14 +47,65 @@ export default {
data
()
{
return
{
radio
:
'1'
,
textarea
:
''
textarea
:
''
,
select1
:
null
,
select2
:
null
,
rightImageArray
:
[],
rightImageSrc
:
null
,
prjId
:
null
,
rightSelect
:
[]
};
},
mounted
(){
this
.
prjId
=
this
.
$route
.
query
.
prjId
;
this
.
getRightGraph
(
2
);
},
methods
:
{
getRightGraph
(
archiBelongId
)
{
//获取右侧图片
const
params
=
{
archiBelongId
:
archiBelongId
,
prjId
:
this
.
prjId
,
archiStage
:
3
}
getReviewArchiFollowCheckRightGraph
(
params
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
data
.
length
>
0
)
{
res
.
data
.
map
(
item
=>
{
item
.
metaModelSvg
=
'data:image/svg+xml;base64,'
+
item
.
metaModelSvg
;
})
this
.
rightImageArray
=
res
.
data
;
console
.
log
(
this
.
rightImageArray
)
// this.rightSelect = res.data;
// this.select2 = res.data[0].viewDetailsId;
// this.rightImageSrc = 'data:image/svg+xml;base64,'+ res.data[0].metaModelSvg;
}
}
})
},
select2Change
(
data
)
{
//右侧下拉框选择
const
res
=
this
.
rightSelect
.
find
(
item
=>
item
.
viewDetailsId
==
data
);
// this.rightImageSrc = 'data:image/svg+xml;base64,'+ res.metaModelSvg;
},
saveSuggestion
()
{
//保存
const
params
=
{
"archiPrjReviewEnum"
:
"APPLICATION_ARCHITECTURE_CONFORMANCE"
,
"prjId"
:
this
.
prjId
,
"reviewState"
:
this
.
radio
,
"reviewSuggestion"
:
this
.
textarea
}
saveReviewArchiFollowCheckRightSuggestion
(
params
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
console
.
log
(
res
.
code
)
}
else
{
Message
({
type
:
"error"
,
message
:
res
.
msg
,
});
}
})
}
}
}
</
script
>
...
...
@@ -53,6 +117,16 @@ export default {
display
:
flex
;
height
:
77%
;
}
.leftSelect
{
position
:
absolute
;
top
:
44px
;
left
:
22px
;
}
.rightSelect
{
position
:
absolute
;
top
:
44px
;
left
:
22px
;
}
.el-button--primary
{
background
:
rgba
(
13
,
134
,
127
,
1
);
color
:
#fff
;
...
...
@@ -70,10 +144,18 @@ export default {
width
:
49%
;
border
:
1px
solid
red
;
margin-right
:
1%
;
position
:
relative
;
}
.right_container
{
width
:
49%
;
border
:
1px
solid
red
;
position
:
relative
;
}
.rightImageContainer
{
position
:
absolute
;
transform
:
translate
(
-50%
,
-50%
);
top
:
50%
;
left
:
50%
;
}
.bottom_container
{
...
...
src/views/reviewArchiFollowCheck/tab5.vue
View file @
f6a44d2
...
...
@@ -3,18 +3,30 @@
<div
class=
"content"
>
<div
class=
"left_container"
>
<el-alert
title=
"评审标准"
type=
"success"
:closable=
"false"
></el-alert>
<el-select
v-model=
"select1"
class=
"leftSelect"
>
<el-option
label=
"总体架构-数据架构视图"
value=
"1"
></el-option>
</el-select>
</div>
<div
class=
"right_container"
>
<el-alert
title=
"评审内容"
type=
"success"
:closable=
"false"
></el-alert>
<el-select
v-model=
"select2"
class=
"rightSelect"
@
change=
"select2Change"
>
<!--
<el-option
v-for=
"item in rightSelect"
:key=
"item.viewDetailsId"
:label=
"item.viewDetailName"
:value=
"item.viewDetailsId"
></el-option>
-->
<el-option
label=
"系统架构-概设阶段架构设计-数据架构视图"
value=
"1"
></el-option>
</el-select>
<div
v-for=
"item in rightImageArray"
:key=
"item.viewDetailsId"
>
<img
:src=
"item.metaModelSvg"
alt=
""
>
</div>
</div>
</div>
<div
class=
"bottom_container"
>
<div
style=
"padding-right: 20px;text-align: left;margin: 15px 0;display: flex;align-items: center;justify-content: space-between;"
>
<div>
<el-divider
direction=
"vertical"
></el-divider>
<span
style=
"margin-right: 50px;"
>
评审意见
</span>
<span
style=
"margin-right: 50px;"
>
备注
</span>
<!--
<el-radio
v-model=
"radio"
label=
"1"
>
通过
</el-radio>
<el-radio
v-model=
"radio"
label=
"0"
>
不通过
</el-radio>
-->
</div>
<el-button
type=
"primary"
size=
"medium"
>
保存意见
</el-button>
<el-button
type=
"primary"
size=
"medium"
@
click=
"saveSuggestion"
>
保存备注
</el-button>
</div>
<el-input
type=
"textarea"
:rows=
"4"
v-model=
"textarea"
style=
"width: 98%;"
></el-input>
</div>
...
...
@@ -23,7 +35,8 @@
<
script
>
import
{
getArchiViewManageTable
getReviewArchiFollowCheckRightGraph
,
saveReviewArchiFollowCheckRightSuggestion
}
from
'@/api/index.js'
;
import
{
MessageBox
,
Message
}
from
'element-ui'
;
export
default
{
...
...
@@ -34,14 +47,65 @@ export default {
data
()
{
return
{
radio
:
'1'
,
textarea
:
''
textarea
:
''
,
select1
:
null
,
select2
:
null
,
rightImageArray
:
[],
rightImageSrc
:
null
,
prjId
:
null
,
rightSelect
:
[]
};
},
mounted
(){
this
.
prjId
=
this
.
$route
.
query
.
prjId
;
this
.
getRightGraph
(
3
);
},
methods
:
{
getRightGraph
(
archiBelongId
)
{
//获取右侧图片
const
params
=
{
archiBelongId
:
archiBelongId
,
prjId
:
this
.
prjId
,
archiStage
:
3
}
getReviewArchiFollowCheckRightGraph
(
params
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
data
.
length
>
0
)
{
res
.
data
.
map
(
item
=>
{
item
.
metaModelSvg
=
'data:image/svg+xml;base64,'
+
item
.
metaModelSvg
;
})
this
.
rightImageArray
=
res
.
data
;
console
.
log
(
this
.
rightImageArray
)
// this.rightSelect = res.data;
// this.select2 = res.data[0].viewDetailsId;
// this.rightImageSrc = 'data:image/svg+xml;base64,'+ res.data[0].metaModelSvg;
}
}
})
},
select2Change
(
data
)
{
//右侧下拉框选择
const
res
=
this
.
rightSelect
.
find
(
item
=>
item
.
viewDetailsId
==
data
);
// this.rightImageSrc = 'data:image/svg+xml;base64,'+ res.metaModelSvg;
},
saveSuggestion
()
{
//保存
const
params
=
{
"archiPrjReviewEnum"
:
"PHYSICAL_DATA_ARCHITECTURE_CONFORMANCE"
,
"prjId"
:
this
.
prjId
,
"reviewState"
:
this
.
radio
,
"reviewSuggestion"
:
this
.
textarea
}
saveReviewArchiFollowCheckRightSuggestion
(
params
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
console
.
log
(
res
.
code
)
}
else
{
Message
({
type
:
"error"
,
message
:
res
.
msg
,
});
}
})
}
}
}
</
script
>
...
...
@@ -53,6 +117,16 @@ export default {
display
:
flex
;
height
:
77%
;
}
.leftSelect
{
position
:
absolute
;
top
:
44px
;
left
:
22px
;
}
.rightSelect
{
position
:
absolute
;
top
:
44px
;
left
:
22px
;
}
.el-button--primary
{
background
:
rgba
(
13
,
134
,
127
,
1
);
color
:
#fff
;
...
...
@@ -70,10 +144,18 @@ export default {
width
:
49%
;
border
:
1px
solid
red
;
margin-right
:
1%
;
position
:
relative
;
}
.right_container
{
width
:
49%
;
border
:
1px
solid
red
;
position
:
relative
;
}
.rightImageContainer
{
position
:
absolute
;
transform
:
translate
(
-50%
,
-50%
);
top
:
50%
;
left
:
50%
;
}
.bottom_container
{
...
...
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