Commit cd72f565 by liuyong

修改代码

1 parent d682231d
Showing with 375 additions and 1418 deletions
......@@ -5,25 +5,12 @@ const initDrawioGraph = function(that) {//一进入画布显示的图形
that.loadFile(`-2`, true, file);
}else {
$.ajax({
method: "post",
url: `http://${ajaxUrl}/ma-ml/gBMMId`,
data: JSON.stringify({
metaModelId: urlParams['id']
}),
contentType: "application/json",
success: function(result) {
// console.log(result)
const xmlData = result.data.metaModelData;
const xmlTitle = result.data.verName;
const file = new LocalFile(that, xmlData, xmlTitle, that.mode);
that.loadFile(`-1`, true, file);
},
error: function(err) {
}
});
const xmlData = localStorage.getItem('xmlData');
const xmlTitle = localStorage.getItem('xmlTitle');
const file = new LocalFile(that, xmlData, xmlTitle, that.mode);
that.loadFile(`-1`, true, file);
}
}
......
const ajaxUrl = '192.168.148.129:7003';
\ No newline at end of file
const ajaxUrl = '43.143.211.42:7003';
\ No newline at end of file
......@@ -3740,8 +3740,10 @@ App.prototype.showSplash = function(force)
this.showSplash();
}));
}else if (urlParams['id']) {
const that = this;
initDrawioGraph(that);
}else if (!mxClient.IS_CHROMEAPP && (this.mode == null || force))
{
var rowLimit = (serviceCount == 4) ? 2 : 3;
......
......@@ -286,7 +286,7 @@ exportOptionsDisabled=已禁止导出
exportOptionsDisabledDetails=所有者已禁止评论者及浏览者下载、打印或复制该文件。
externalChanges=外部修改
extras=其它
customSaveFileMenu=自定义保存文件
customSaveFileMenu=保存文件
customSubMenu1=功能1
customSubMenu2=功能2
facebook=Facebook
......
......@@ -70,6 +70,10 @@ export function get_yuan_mo_xing_list(params) {
export function delete_yuan_mo_xing_list(params) {
return post('/network/ma-ml/del', params);
}
// 元模型管理页面画布详情
export function query_yuan_mo_xing_details(params) {
return post('/network/ma-ml/gBMMId', params);
}
// 架构视图配置
// 列表查询
......@@ -153,9 +157,37 @@ export function getYMXZDGLProyUpdate(params) {
export function getYMXZDGLProyDel(params) {
return post('/network/ma-ml-dicy/del-proy', params);
}
// 业务,应用,数据,技术,安全架构视图管理
export function get_YeWu_YingYong_ShuJu_JiShu_AnQuan_ViewManage(params) {
return post('/network/archi-view/lsViewTypes', params);
// 架构视图管理,树数据
export function getArchiViewManage(params) {
return post('/network/archi-vw-detail/qViewTree', params);
}
// 架构视图管理,获取具体图形卡片数据
export function getArchiViewManageDetail(params) {
return post('/network/archi-vw-detail/', params);
}
// 架构视图管理,增加卡片数据
export function addArchiViewManage(params) {
return post('/network/archi-vw-detail/cViewDetail', params);
}
// 架构视图管理,删除卡片数据
export function deleteArchiViewManage(params) {
return post('/network/archi-vw-detail/del', params);
}
// 架构视图管理, 卡片数据详情
export function queryArchiViewManageCardDetails(params) {
return post('/network/archi-vw-detail/iViewDetail', params);
}
// 架构视图管理, 保存画布数据
export function saveArchiViewManageCardDetails(params) {
return post('/network/archi-vw-detail/upMxGraph', params);
}
// 架构视图管理, 画布版本发布
export function saveVersionArchiViewManageCardDetails(params) {
return post('/network/archi-vw-detail/uViewDetail', params);
}
// 架构视图管理, 保存画布对应的表格数据
export function getArchiViewManageTable(params) {
return post('/network/archi-vw-detail/fdVd', params);
}
// 技术政策结构化-列表
export function getJiShuZhengCeJieGouHuaTable(params) {
......
......@@ -2,7 +2,7 @@
<iframe
class="drawio_show"
name="content_frame"
:src="'/drawio/index.html?id='+id+'&version='+version+'&state='+state"
:src="'/drawio/index.html?id='+id"
frameborder=0
scrolling="no">
</iframe>
......@@ -15,9 +15,6 @@
data() {
return {
id: null,
version: null,
state: null,
};
},
watch: {
......@@ -25,8 +22,6 @@
handler(newVal, oldVal) {
// console.log(newVal)
this.id = newVal.id;
this.version = newVal.version;
this.state = newVal.state;
},
}
},
......
......@@ -116,30 +116,15 @@ const routes = [
component: () => import('@/views/report-template-relative-use/index.vue'),
},
{
path: '/main/businessArchiViewManage',//业务架构视图管理
name: 'businessArchiViewManage',
component: () => import('@/views/business-archi-view-manage/index.vue'),
},
{
path: '/main/applicationArchiViewManage',//应用架构视图管理
name: 'applicationArchiViewManage',
component: () => import('@/views/application-archi-view-manage/index.vue'),
},
{
path: '/main/dataArchiViewManage',//数据架构视图管理
name: 'dataArchiViewManage',
component: () => import('@/views/data-archi-view-manage/index.vue'),
},
{
path: '/main/techArchiViewManage',//技术架构视图管理
name: 'techArchiViewManage',
component: () => import('@/views/tech-archi-view-manage/index.vue'),
},
{
path: '/main/secureArchiViewManage',//安全架构视图管理
name: 'secureArchiViewManage',
component: () => import('@/views/secure-archi-view-manage/index.vue'),
},
path: '/main/archiViewManage',//架构视图管理
name: 'archiViewManage',
component: () => import('@/views/archi-view-manage/index.vue'),
},
{
path: '/main/archiViewManageDetails/:id',//架构视图管理详情
name: 'archiViewManageDetails',
component: () => import('@/views/archi-view-manage/details.vue'),
},
]
}
]
......
......@@ -52,10 +52,6 @@
<img src="@/assets/main/3img.png" alt="">
<span style="margin-left: 5px;">元模型管理</span>
</div>
<div class="menu_1_item_subtitle" @click="jumpPage('总体架构资产设计与维护', '架构元模型管理', '架构视图配置')">
<img src="@/assets/main/3img.png" alt="">
<span style="margin-left: 5px;">架构视图配置</span>
</div>
<div class="menu_1_item_subtitle" @click="jumpPage('总体架构资产设计与维护', '架构元模型管理', '元模型字典管理')">
<img src="@/assets/main/3img.png" alt="">
<span style="margin-left: 5px;">元模型字典管理</span>
......@@ -68,25 +64,13 @@
<span style="margin-left: 5px;">架构视图管理</span>
</div>
<div class="menu_1_item_subtitle" @click="jumpPage('总体架构资产设计与维护', '架构视图管理', '业务架构视图管理')">
<img src="@/assets/main/3img.png" alt="">
<span style="margin-left: 5px;">业务架构视图管理</span>
</div>
<div class="menu_1_item_subtitle" @click="jumpPage('总体架构资产设计与维护', '架构视图管理', '应用架构视图管理')">
<div class="menu_1_item_subtitle" @click="jumpPage('总体架构资产设计与维护', '架构视图管理', '架构视图配置')">
<img src="@/assets/main/3img.png" alt="">
<span style="margin-left: 5px;">应用架构视图管理</span>
</div>
<div class="menu_1_item_subtitle" @click="jumpPage('总体架构资产设计与维护', '架构视图管理', '数据架构视图管理')">
<img src="@/assets/main/3img.png" alt="">
<span style="margin-left: 5px;">数据架构视图管理</span>
</div>
<div class="menu_1_item_subtitle" @click="jumpPage('总体架构资产设计与维护', '架构视图管理', '技术架构视图管理')">
<img src="@/assets/main/3img.png" alt="">
<span style="margin-left: 5px;">技术架构视图管理</span>
<span style="margin-left: 5px;">架构视图配置</span>
</div>
<div class="menu_1_item_subtitle" @click="jumpPage('总体架构资产设计与维护', '架构视图管理', '安全架构视图管理')">
<div class="menu_1_item_subtitle" @click="jumpPage('总体架构资产设计与维护', '架构视图管理', '架构视图管理')">
<img src="@/assets/main/3img.png" alt="">
<span style="margin-left: 5px;">安全架构视图管理</span>
<span style="margin-left: 5px;">架构视图管理</span>
</div>
</div>
<img class="menu_1_item_line" src="@/assets/main/line.png" alt="" />
......@@ -595,24 +579,8 @@
this.$router.push( '/main/reportTemplateRelativeUse', () => {}, () => {} );
this.visible5 = false;
break;
case '业务架构视图管理':
this.$router.push( '/main/businessArchiViewManage', () => {}, () => {} );
this.visible1 = false;
break;
case '应用架构视图管理':
this.$router.push( '/main/applicationArchiViewManage', () => {}, () => {} );
this.visible1 = false;
break;
case '数据架构视图管理':
this.$router.push( '/main/dataArchiViewManage', () => {}, () => {} );
this.visible1 = false;
break;
case '技术架构视图管理':
this.$router.push( '/main/techArchiViewManage', () => {}, () => {} );
this.visible1 = false;
break;
case '安全架构视图管理':
this.$router.push( '/main/secureArchiViewManage', () => {}, () => {} );
case '架构视图管理':
this.$router.push( '/main/archiViewManage', () => {}, () => {} );
this.visible1 = false;
break;
}
......
<template>
<div class="canvas">
<!-- <Drawio :initGraphId="routerId"></Drawio> -->
</div>
</template>
<script>
import Drawio from '@/components/drawio.vue';
import { MessageBox, Message } from 'element-ui';
import {
} from '@/api/index.js';
export default {
name: 'Canvas',
components: {
Drawio
},
data() {
return {
routerId: null
};
},
mounted(){
},
methods: {
}
}
</script>
<style>
.confirmClass{
background-color: #0D867F !important;
}
.el-message-box__content{
padding: 60px 15px 60px 15px;
}
</style>
<style scoped>
.canvas{
width: 100%;
height: 100%;
}
</style>
<template>
<div class="applicationArchiViewManage">
<el-tabs v-model="activeId">
<el-tab-pane
v-for="item in tabData"
:key="item.viewTypeId"
:label="item.viewTypeName"
:name="item.viewTypeId">
用户管理
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import {
get_YeWu_YingYong_ShuJu_JiShu_AnQuan_ViewManage
} from '@/api/index.js';
import { MessageBox, Message } from 'element-ui';
import $ from 'jquery';
import GraphGallery from '@/components/graphGallery.vue';
export default {
name: 'ApplicationArchiViewManage',
components: {
GraphGallery
},
data() {
return {
activeId: null,
tabData: []
};
},
mounted(){
this.getData();
},
methods: {
getData() {
const params = {
"parentId": 2
}
get_YeWu_YingYong_ShuJu_JiShu_AnQuan_ViewManage(params).then(res => {
if(res.code == 200) {
res.data.map(item => {
item.viewTypeId = ''+item.viewTypeId;
})
this.activeId = res.data[0].viewTypeId;
this.tabData = res.data;
}
})
}
}
}
</script>
<style>
.confirmClass{
background-color: #0D867F !important;
}
.el-message-box__content{
padding: 60px 15px 60px 15px;
}
</style>
<style scoped>
/deep/ .el-tabs__item:hover {
color: #0D867F;
}
/deep/ .el-tabs__active-bar{
background-color: #0D867F;
}
/deep/ .el-tabs__item.is-active{
color: #0D867F;
}
/deep/ .el-dialog__header{
background-color: #0D867F;
text-align: left;
}
/deep/ .el-dialog__title{
color: #fff;
}
/deep/ .el-dialog__close {
color: #fff;
}
.applicationArchiViewManage{
width: 100%;
height: 100%;
}
</style>
\ No newline at end of file
<template>
<div class="canvas">
<Drawio :initGraphId="routerId"></Drawio>
</div>
</template>
<script>
import Drawio from '@/components/drawio.vue';
import { MessageBox, Message } from 'element-ui';
import {
saveArchiViewManageCardDetails,
saveVersionArchiViewManageCardDetails
} from '@/api/index.js';
export default {
name: 'Canvas',
components: {
Drawio
},
data() {
return {
routerId: null
};
},
mounted(){
const id = window.location.href.split("id=")[1].split("&")[0];
const version = window.location.href.split("id=")[1].split("&")[1].split("=")[1];
this.routerId = {
id,
}
window.addEventListener("message", event => {//会一直调用
if(event.data.type) {
if(event.data.type == 'saveData') {
MessageBox.confirm('确定保存?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
customClass: 'messageClass',
confirmButtonClass: 'confirmClass',
type: 'warning'
}).then(() => {
this.saveCanvas(id, event.data.data.mxGraphModel, event.data.data.base64SvgToString);
}).catch(() => {
Message({
type: 'info',
message: '已取消'
});
});
}
}
if(event.data.type == 'saveVersion'){
MessageBox.confirm('确定发布版本?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
customClass: 'messageClass',
confirmButtonClass: 'confirmClass',
type: 'warning'
}).then(() => {
this.releaseVersion(id);
}).catch(() => {
Message({
type: 'info',
message: '已取消'
});
});
}
});
},
methods: {
saveCanvas(id, mxGraphModel, base64SvgToString) {
const params = {
viewDetailsId: id,
metaModelData: mxGraphModel,
metaModelSvg: base64SvgToString
}
saveArchiViewManageCardDetails(params).then(res => {
if(res.code == 200) {
Message({
type: 'success',
message: '保存成功!',
});
}else {
Message({
type: 'error',
message: res.msg
});
}
})
},
releaseVersion(id) {
const params = {
viewDetailsId: id,
}
saveVersionArchiViewManageCardDetails(params).then(res => {
if(res.code == 200) {
Message({
type: 'success',
message: '版本发布成功!',
});
}else {
Message({
type: 'error',
message: res.msg
});
}
})
}
}
}
</script>
<style>
.confirmClass{
background-color: #0D867F !important;
}
.el-message-box__content{
padding: 60px 15px 60px 15px;
}
</style>
<style scoped>
.canvas{
width: 100%;
height: 100%;
}
</style>
......@@ -3,12 +3,10 @@
<div class="table_container">
<el-table v-loading="loading" :data="tableData" stripe border height="500">
<el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
<el-table-column prop="sourceId" label="元素id" align="center"></el-table-column>
<el-table-column prop="source" label="元素名称" align="center"></el-table-column>
<el-table-column prop="target" label="关联关系名称" align="center"></el-table-column>
<el-table-column prop="targetId" label="关联元素id" align="center"></el-table-column>
<el-table-column prop="linkName" label="关联元素名称" align="center"></el-table-column>
<el-table-column prop="linkNameDesc" label="关联关系描述" align="center"></el-table-column>
<el-table-column prop="elementType" label="元素类型" align="center"></el-table-column>
<el-table-column prop="elementEncoding" label="元素编码" align="center"></el-table-column>
<el-table-column prop="upstreamElements" label="上游元素" align="center"></el-table-column>
<el-table-column prop="relationship" label="关系" align="center"></el-table-column>
</el-table>
</div>
</div>
......@@ -16,7 +14,7 @@
<script>
import {
,
getArchiViewManageTable
} from '@/api/index.js';
import { MessageBox, Message } from 'element-ui';
export default {
......@@ -28,15 +26,25 @@ export default {
return {
tableData: [],
loading: false,
routerId: null
};
},
mounted(){
this.routerId = window.location.href.split("id=")[1].split("&")[0];
},
methods: {
get_table() {
this.loading = true;
const params = {
viewDetailsId: this.routerId
}
getArchiViewManageTable(params).then(res => {
if(res.code == 200) {
this.loading = false;
this.tableData = res.data;
}
})
}
}
}
......
<template>
<div class="canvas">
<!-- <Drawio :initGraphId="routerId"></Drawio> -->
</div>
</template>
<script>
import Drawio from '@/components/drawio.vue';
import { MessageBox, Message } from 'element-ui';
import {
} from '@/api/index.js';
export default {
name: 'Canvas',
components: {
Drawio
},
data() {
return {
routerId: null
};
},
mounted(){
},
methods: {
}
}
</script>
<style>
.confirmClass{
background-color: #0D867F !important;
}
.el-message-box__content{
padding: 60px 15px 60px 15px;
}
</style>
<style scoped>
.canvas{
width: 100%;
height: 100%;
}
</style>
<template>
<div class="Details">
<el-tabs type="border-card" @tab-click="tabs_click_func">
<el-tab-pane>
<span slot="label">
<i class="el-icon-picture"></i>
</span>
<YuanMoXingGuanLiCanvas ref="canvasComponent"></YuanMoXingGuanLiCanvas>
</el-tab-pane>
<el-tab-pane>
<span slot="label">
<i class="el-icon-s-grid"></i>
</span>
<YuanMoXingGuanLiTable ref="tableComponent"></YuanMoXingGuanLiTable>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import YuanMoXingGuanLiCanvas from './canvas/index.vue';
import YuanMoXingGuanLiTable from './table/index.vue';
export default {
name: 'Details',
components: {
YuanMoXingGuanLiCanvas,
YuanMoXingGuanLiTable
},
data() {
return {
};
},
mounted(){
},
methods: {
tabs_click_func(data) {
if(data.index == '0') {
console.log('画布页面')
}else{
console.log('表格页面')
this.$refs.tableComponent.get_table();
}
}
}
}
</script>
<style scoped>
.Details{
width: 100%;
height: 100%;
position: relative;
}
/deep/ .el-tabs__nav{
float: right;
}
.el-tabs{
height: 100%;
}
/deep/ .el-tabs__content{
height: calc(100% - 38px);
padding: 0;
}
.el-tab-pane{
height: 100%;
}
</style>
\ No newline at end of file
<template>
<div class="businessArchiViewManage">
<el-tabs v-model="activeId" @tab-click="handleClick">
<el-tab-pane
v-for="item in tabData"
:key="item.viewTypeId"
:label="item.viewTypeName"
:name="item.viewTypeId">
用户管理
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import {
get_YeWu_YingYong_ShuJu_JiShu_AnQuan_ViewManage
} from '@/api/index.js';
import { MessageBox, Message } from 'element-ui';
import $ from 'jquery';
import GraphGallery from '@/components/graphGallery.vue';
export default {
name: 'BusinessArchiViewManage',
components: {
GraphGallery
},
data() {
return {
activeId: null,
tabData: []
};
},
mounted(){
this.getData();
},
methods: {
handleClick(tab, event) {
console.log(tab);
},
getData() {
const params = {
"parentId": 1
}
get_YeWu_YingYong_ShuJu_JiShu_AnQuan_ViewManage(params).then(res => {
if(res.code == 200) {
res.data.map(item => {
item.viewTypeId = ''+item.viewTypeId;
})
this.activeId = res.data[0].viewTypeId;
this.tabData = res.data;
}
})
}
}
}
</script>
<style>
.confirmClass{
background-color: #0D867F !important;
}
.el-message-box__content{
padding: 60px 15px 60px 15px;
}
</style>
<style scoped>
/deep/ .el-tabs__item:hover {
color: #0D867F;
}
/deep/ .el-tabs__active-bar{
background-color: #0D867F;
}
/deep/ .el-tabs__item.is-active{
color: #0D867F;
}
/deep/ .el-dialog__header{
background-color: #0D867F;
text-align: left;
}
/deep/ .el-dialog__title{
color: #fff;
}
/deep/ .el-dialog__close {
color: #fff;
}
.businessArchiViewManage{
width: 100%;
height: 100%;
}
</style>
\ No newline at end of file
<template>
<div class="table">
<div class="table_container">
<el-table v-loading="loading" :data="tableData" stripe border height="500">
<el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
<el-table-column prop="sourceId" label="元素id" align="center"></el-table-column>
<el-table-column prop="source" label="元素名称" align="center"></el-table-column>
<el-table-column prop="target" label="关联关系名称" align="center"></el-table-column>
<el-table-column prop="targetId" label="关联元素id" align="center"></el-table-column>
<el-table-column prop="linkName" label="关联元素名称" align="center"></el-table-column>
<el-table-column prop="linkNameDesc" label="关联关系描述" align="center"></el-table-column>
</el-table>
</div>
</div>
</template>
<script>
import {
,
} from '@/api/index.js';
import { MessageBox, Message } from 'element-ui';
export default {
name: 'Table',
components: {
},
data() {
return {
tableData: [],
loading: false,
};
},
mounted(){
},
methods: {
get_table() {
this.loading = true;
}
}
}
</script>
<style scoped>
.table{
width: 100%;
height: 100%;
}
.table_container{
margin-top: 20px;
}
/deep/ .el-dialog__header{
text-align: left;
}
</style>
\ No newline at end of file
<template>
<div class="canvas">
<!-- <Drawio :initGraphId="routerId"></Drawio> -->
</div>
</template>
<script>
import Drawio from '@/components/drawio.vue';
import { MessageBox, Message } from 'element-ui';
import {
} from '@/api/index.js';
export default {
name: 'Canvas',
components: {
Drawio
},
data() {
return {
routerId: null
};
},
mounted(){
},
methods: {
}
}
</script>
<style>
.confirmClass{
background-color: #0D867F !important;
}
.el-message-box__content{
padding: 60px 15px 60px 15px;
}
</style>
<style scoped>
.canvas{
width: 100%;
height: 100%;
}
</style>
<template>
<div class="Details">
<el-tabs type="border-card" @tab-click="tabs_click_func">
<el-tab-pane>
<span slot="label">
<i class="el-icon-picture"></i>
</span>
<YuanMoXingGuanLiCanvas ref="canvasComponent"></YuanMoXingGuanLiCanvas>
</el-tab-pane>
<el-tab-pane>
<span slot="label">
<i class="el-icon-s-grid"></i>
</span>
<YuanMoXingGuanLiTable ref="tableComponent"></YuanMoXingGuanLiTable>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import YuanMoXingGuanLiCanvas from './canvas/index.vue';
import YuanMoXingGuanLiTable from './table/index.vue';
export default {
name: 'Details',
components: {
YuanMoXingGuanLiCanvas,
YuanMoXingGuanLiTable
},
data() {
return {
};
},
mounted(){
},
methods: {
tabs_click_func(data) {
if(data.index == '0') {
console.log('画布页面')
}else{
console.log('表格页面')
this.$refs.tableComponent.get_table();
}
}
}
}
</script>
<style scoped>
.Details{
width: 100%;
height: 100%;
position: relative;
}
/deep/ .el-tabs__nav{
float: right;
}
.el-tabs{
height: 100%;
}
/deep/ .el-tabs__content{
height: calc(100% - 38px);
padding: 0;
}
.el-tab-pane{
height: 100%;
}
</style>
\ No newline at end of file
<template>
<div class="dataArchiViewManage">
<el-tabs v-model="activeId" @tab-click="handleClick">
<el-tab-pane
v-for="item in tabData"
:key="item.viewTypeId"
:label="item.viewTypeName"
:name="item.viewTypeId">
用户管理
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import {
get_YeWu_YingYong_ShuJu_JiShu_AnQuan_ViewManage
} from '@/api/index.js';
import { MessageBox, Message } from 'element-ui';
import $ from 'jquery';
import GraphGallery from '@/components/graphGallery.vue';
export default {
name: 'DataArchiViewManage',
components: {
GraphGallery
},
data() {
return {
activeId: null,
tabData: []
};
},
mounted(){
this.getData();
},
methods: {
handleClick(tab, event) {
console.log(tab);
},
getData() {
const params = {
"parentId": 3
}
get_YeWu_YingYong_ShuJu_JiShu_AnQuan_ViewManage(params).then(res => {
if(res.code == 200) {
res.data.map(item => {
item.viewTypeId = ''+item.viewTypeId;
})
this.activeId = res.data[0].viewTypeId;
this.tabData = res.data;
}
})
}
}
}
</script>
<style>
.confirmClass{
background-color: #0D867F !important;
}
.el-message-box__content{
padding: 60px 15px 60px 15px;
}
</style>
<style scoped>
/deep/ .el-tabs__item:hover {
color: #0D867F;
}
/deep/ .el-tabs__active-bar{
background-color: #0D867F;
}
/deep/ .el-tabs__item.is-active{
color: #0D867F;
}
/deep/ .el-dialog__header{
background-color: #0D867F;
text-align: left;
}
/deep/ .el-dialog__title{
color: #fff;
}
/deep/ .el-dialog__close {
color: #fff;
}
.dataArchiViewManage{
width: 100%;
height: 100%;
}
</style>
\ No newline at end of file
<template>
<div class="table">
<div class="table_container">
<el-table v-loading="loading" :data="tableData" stripe border height="500">
<el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
<el-table-column prop="sourceId" label="元素id" align="center"></el-table-column>
<el-table-column prop="source" label="元素名称" align="center"></el-table-column>
<el-table-column prop="target" label="关联关系名称" align="center"></el-table-column>
<el-table-column prop="targetId" label="关联元素id" align="center"></el-table-column>
<el-table-column prop="linkName" label="关联元素名称" align="center"></el-table-column>
<el-table-column prop="linkNameDesc" label="关联关系描述" align="center"></el-table-column>
</el-table>
</div>
</div>
</template>
<script>
import {
,
} from '@/api/index.js';
import { MessageBox, Message } from 'element-ui';
export default {
name: 'Table',
components: {
},
data() {
return {
tableData: [],
loading: false,
};
},
mounted(){
},
methods: {
get_table() {
this.loading = true;
}
}
}
</script>
<style scoped>
.table{
width: 100%;
height: 100%;
}
.table_container{
margin-top: 20px;
}
/deep/ .el-dialog__header{
text-align: left;
}
</style>
\ No newline at end of file
......@@ -24,11 +24,9 @@
mounted(){
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];
// const state = window.location.href.split("id=")[1].split("&")[2].split("=")[1];
this.routerId = {
id,
version,
state
}
window.addEventListener("message", event => {//会一直调用
......@@ -64,7 +62,6 @@
message: '已取消'
});
});
}
}
});
......@@ -85,7 +82,7 @@
}else {
Message({
type: 'error',
message: '保存失败!'
message: res.msg
});
}
})
......@@ -105,7 +102,7 @@
}else {
Message({
type: 'error',
message: '版本发布失败!'
message: res.msg
});
}
})
......
......@@ -16,57 +16,69 @@
<p>版本分析</p>
</div>
</div>
<!-- <div class="version_container">
<div class="version_content">
<div class="line_title_container">
<div class="title_container">
<el-divider direction="vertical"></el-divider>
<span>已发布</span>
</div>
<el-divider></el-divider>
</div>
<el-tabs v-model="activeName" type="border-card" @tab-click="tabs_click_func">
<el-tab-pane label="已发布" name="已发布">
<div class="card_container">
<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="item.metaModelSvg_" alt="" />
<div class="card_info">
<div class="card_title">
<i class="el-icon-location"></i>
{{ item.verName }}&nbsp;&nbsp;&nbsp;{{ item.version }}
<div class="card_body">
<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="item.metaModelSvg_" alt="" />
<div class="card_info">
<div class="card_title">
<i class="el-icon-location"></i>
{{ item.verName }}&nbsp;&nbsp;&nbsp;{{ item.version }}
</div>
<div class="card_icon" @click.stop="deleteItem(item)">
<i class="el-icon-delete"></i>
</div>
</div>
<div class="card_icon" @click.stop="deleteItem(item)">
<i class="el-icon-delete"></i>
</div>
</div>
</el-card>
</div>
<div class="line_title_container">
<div class="title_container">
<el-divider direction="vertical"></el-divider>
<span>暂存</span>
</el-card>
</div>
<el-divider></el-divider>
</div>
<el-pagination
background
@size-change="val => handleSizeChange(val, '已发布')"
@current-change="val => handleCurrentChange(val, '已发布')"
:current-page="pager1.current"
:page-sizes="pager1.sizes"
:page-size="pager1.size"
layout="total, sizes, prev, pager, next, jumper"
:total="pager1.total">
</el-pagination>
</el-tab-pane>
<el-tab-pane label="暂存" name="暂存">
<div class="card_container">
<el-card class="card_item" v-for="item in zan_cun" :key="item.metaModelId">
<img class="card_image" @click="to_current_details(item)" :src="item.metaModelSvg_" alt="" />
<div class="card_info">
<div class="card_title">
<i class="el-icon-location"></i>
{{ item.verName }}&nbsp;&nbsp;&nbsp;{{ item.version }}
<div class="card_body">
<el-card class="card_item" v-for="item in zan_cun" :key="item.metaModelId">
<img class="card_image" @click="to_current_details(item)" :src="item.metaModelSvg_" alt="" />
<div class="card_info">
<div class="card_title">
<i class="el-icon-location"></i>
{{ item.verName }}&nbsp;&nbsp;&nbsp;{{ item.version }}
</div>
<div class="card_icon" @click.stop="deleteItem(item)">
<i class="el-icon-delete"></i>
</div>
</div>
<div class="card_icon" @click.stop="deleteItem(item)">
<i class="el-icon-delete"></i>
</div>
</div>
</el-card>
</el-card>
</div>
</div>
</div>
</div> -->
<GraphGallery
<el-pagination
background
@size-change="val => handleSizeChange(val, '暂存')"
@current-change="val => handleCurrentChange(val, '暂存')"
:current-page="pager2.current"
:page-sizes="pager2.sizes"
:page-size="pager2.size"
layout="total, sizes, prev, pager, next, jumper"
:total="pager2.total">
</el-pagination>
</el-tab-pane>
</el-tabs>
<!-- <GraphGallery
:yiFaBu="yi_fa_bu"
:zanCun="zan_cun"
@imgClick="to_current_details"
@deleteClick="deleteItem" />
@deleteClick="deleteItem" /> -->
<el-dialog
title="新建元模型视图"
:visible.sync="add_dialog"
......@@ -91,16 +103,16 @@
import {
add_yuan_mo_xing,
get_yuan_mo_xing_list,
delete_yuan_mo_xing_list
delete_yuan_mo_xing_list,
query_yuan_mo_xing_details
} from '@/api/index.js';
import { MessageBox, Message } from 'element-ui';
import $ from 'jquery';
import GraphGallery from '@/components/graphGallery.vue';
export default {
name: 'metaModelList',
components: {
GraphGallery
},
data() {
return {
......@@ -116,14 +128,34 @@ export default {
},
yi_fa_bu: [],
zan_cun: [],
activeName: '已发布',
pager1: {
current: 1,
sizes: [10, 20, 50, 100, 200],
size: 10,
total: 0 //总条数
},
pager2: {
current: 1,
sizes: [10, 20, 50, 100, 200],
size: 10,
total: 0 //总条数
},
};
},
mounted(){
this.get_list();
this.get_list1();
this.get_list2();
},
methods: {
tabs_click_func(data) {
},
search_list() {//搜索
this.get_list();
this.pager1.current = 1;
this.pager2.current = 1;
this.get_list1();
this.get_list2();
},
deleteItem(item) {//删除
MessageBox.confirm('确定删除?', '提示', {
......@@ -139,7 +171,8 @@ export default {
}
delete_yuan_mo_xing_list(params).then(res => {
if(res.code == 200) {
this.get_list();
this.get_list1();
this.get_list2();
Message({
type: 'success',
message: '删除成功!',
......@@ -158,27 +191,61 @@ export default {
});
});
},
get_list() {//查询列表
// 每页条数改变
handleSizeChange(val, status) {
if(status == '已发布') {
this.pager1.current = 1;
this.pager1.size = val;
this.get_list1();
}else {
this.pager2.current = 1;
this.pager2.size = val;
this.get_list2();
}
},
//当前页码改变
handleCurrentChange(val, status) {
if(status == '已发布') {
this.pager1.current = val;
this.get_list1();
}else {
this.pager2.current = val;
this.get_list2();
}
},
get_list1() {//查询已发布列表
const params = {
verName: this.query_item1
verName: this.query_item1,
current: this.pager1.current,
pageSize: this.pager1.size,
state: 1
}
get_yuan_mo_xing_list(params).then(res => {
if(res.code == 200) {
res.data.records.map(item => {
item['metaModelSvg_'] = 'data:image/svg+xml;base64,'+ item.metaModelSvg;
});
this.yi_fa_bu = res.data.records.filter(item => item.state == 1);
this.zan_cun = res.data.records.filter(item => item.state == 2);
// Message({
// type: 'success',
// message: '版本发布成功!'
// });
}else {
// Message({
// type: 'error',
// message: '版本发布失败!'
// });
this.pager1.current = res.data.current;
this.pager1.total = res.data.total;
this.yi_fa_bu = res.data.records;
}
})
},
get_list2() {//查询已发布列表
const params = {
verName: this.query_item1,
current: this.pager2.current,
pageSize: this.pager2.size,
state: 2
}
get_yuan_mo_xing_list(params).then(res => {
if(res.code == 200) {
res.data.records.map(item => {
item['metaModelSvg_'] = 'data:image/svg+xml;base64,'+ item.metaModelSvg;
});
this.pager2.current = res.data.current;
this.pager2.total = res.data.total;
this.zan_cun = res.data.records;
}
})
},
......@@ -211,7 +278,18 @@ export default {
});
},
to_current_details(item) {//跳转到详情
this.$router.push( `/main/metaModelListDetails/id=${item.metaModelId}&version=${item.version}&state=${item.state}`, () => {}, () => {} );
const params = {
metaModelId: item.metaModelId
}
query_yuan_mo_xing_details(params).then(res => {
if(res.code == 200) {
const xmlData = res.data.metaModelData;
const xmlTitle = res.data.verName;
localStorage.setItem('xmlData', xmlData);
localStorage.setItem('xmlTitle', xmlTitle);
this.$router.push( `/main/metaModelListDetails/id=${item.metaModelId}&version=${item.version}`, () => {}, () => {} );
}
});
},
handleCommand(command) {//新建按钮点击
if(command == '自由绘图') {
......@@ -244,6 +322,38 @@ export default {
.version_content{
height: 1500px;
}
.el-pagination{
margin-top: 15px;
position: absolute;
bottom: 5%;
left: 35%;
background-color: #fff;
}
/deep/ .el-pagination.is-background .el-pager li:not(.disabled).active{
background-color: #0D867F;
}
.el-tabs{
height: calc(100% - 70px);
}
.el-tab-pane{
height: 100%;
position: relative;
}
/deep/ .el-tabs__content{
height: calc(100% - 38px);
padding: 0;
}
.card_container{
overflow-x: hidden;
height: 100%;
overflow-y: auto;
text-align: left;
}
.card_body{
height: 2000px;
display: inline-block;
text-align: left;
}
.el-form-item{
display: flex;
}
......@@ -330,10 +440,4 @@ export default {
display: flex;
align-items: center;
}
.card_container{
margin-bottom: 10px;
overflow-x: hidden;
display: flex;
flex-wrap: wrap;
}
</style>
\ No newline at end of file
......@@ -2,7 +2,6 @@
<div class="table">
<div class="table_container">
<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="sourceId" label="元素id" align="center"></el-table-column>
<el-table-column prop="source" label="元素名称" align="center"></el-table-column>
......@@ -10,67 +9,8 @@
<el-table-column prop="targetId" label="关联元素id" align="center"></el-table-column>
<el-table-column prop="linkName" label="关联元素名称" align="center"></el-table-column>
<el-table-column prop="linkNameDesc" 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;">
<p>编辑</p>
</div>
<div class="reset_btn" style="border: 0;margin-right: 8px;">
<p>停用</p>
</div>
<div class="add_btn" style="border: 0;margin-right: 8px;">
<p>发布</p>
</div>
<div class="reset_btn" style="border: 0;">
<p>删除</p>
</div>
</div>
</template>
</el-table-column> -->
</el-table>
</div>
<el-dialog
title="新建元素"
:visible.sync="add_dialog"
:center="false"
width="40%">
<div class="add_dialog_content">
<div class="dialog_form_item">
<div class="dialog_form_item_title">元素名称</div>
<el-input placeholder="请输入内容" class="dialog_form_item_content" v-model="let1"></el-input>
</div>
<div class="dialog_form_item">
<div class="dialog_form_item_title">架构层次</div>
<el-input placeholder="请输入内容" class="dialog_form_item_content" v-model="let2"></el-input>
</div>
<div class="dialog_form_item">
<div class="dialog_form_item_title">架构归属</div>
<el-select placeholder="请选择" class="search_item" v-model="let3">
<el-option label="业务架构" value="业务架构"></el-option>
<el-option label="应用架构" value="应用架构"></el-option>
<el-option label="内容架构" value="内容架构"></el-option>
<el-option label="技术架构" value="技术架构"></el-option>
<el-option label="安全架构" value="安全架构"></el-option>
</el-select>
</div>
<div class="dialog_form_item">
<div class="dialog_form_item_title">描述</div>
<el-input type="textarea" :rows="2" placeholder="请输入内容" class="dialog_form_item_content" v-model="let4"></el-input>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="add_dialog = false">发布</el-button>
<el-button type="primary" @click="add_dialog = false">暂存</el-button>
<el-button @click="add_dialog = false">取消</el-button>
</span>
</el-dialog>
</div>
</template>
......@@ -87,11 +27,6 @@ export default {
data() {
return {
tableData: [],
add_dialog: false,
let1: '',
let2: '',
let3: '',
let4: '',
loading: false,
routerId: null
};
......
<template>
<div class="canvas">
<!-- <Drawio :initGraphId="routerId"></Drawio> -->
</div>
</template>
<script>
import Drawio from '@/components/drawio.vue';
import { MessageBox, Message } from 'element-ui';
import {
} from '@/api/index.js';
export default {
name: 'Canvas',
components: {
Drawio
},
data() {
return {
routerId: null
};
},
mounted(){
},
methods: {
}
}
</script>
<style>
.confirmClass{
background-color: #0D867F !important;
}
.el-message-box__content{
padding: 60px 15px 60px 15px;
}
</style>
<style scoped>
.canvas{
width: 100%;
height: 100%;
}
</style>
<template>
<div class="Details">
<el-tabs type="border-card" @tab-click="tabs_click_func">
<el-tab-pane>
<span slot="label">
<i class="el-icon-picture"></i>
</span>
<YuanMoXingGuanLiCanvas ref="canvasComponent"></YuanMoXingGuanLiCanvas>
</el-tab-pane>
<el-tab-pane>
<span slot="label">
<i class="el-icon-s-grid"></i>
</span>
<YuanMoXingGuanLiTable ref="tableComponent"></YuanMoXingGuanLiTable>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import YuanMoXingGuanLiCanvas from './canvas/index.vue';
import YuanMoXingGuanLiTable from './table/index.vue';
export default {
name: 'Details',
components: {
YuanMoXingGuanLiCanvas,
YuanMoXingGuanLiTable
},
data() {
return {
};
},
mounted(){
},
methods: {
tabs_click_func(data) {
if(data.index == '0') {
console.log('画布页面')
}else{
console.log('表格页面')
this.$refs.tableComponent.get_table();
}
}
}
}
</script>
<style scoped>
.Details{
width: 100%;
height: 100%;
position: relative;
}
/deep/ .el-tabs__nav{
float: right;
}
.el-tabs{
height: 100%;
}
/deep/ .el-tabs__content{
height: calc(100% - 38px);
padding: 0;
}
.el-tab-pane{
height: 100%;
}
</style>
\ No newline at end of file
<template>
<div class="secureArchiViewManage">
<el-tabs v-model="activeId">
<el-tab-pane
v-for="item in tabData"
:key="item.viewTypeId"
:label="item.viewTypeName"
:name="item.viewTypeId">
用户管理
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import {
get_YeWu_YingYong_ShuJu_JiShu_AnQuan_ViewManage
} from '@/api/index.js';
import { MessageBox, Message } from 'element-ui';
import $ from 'jquery';
import GraphGallery from '@/components/graphGallery.vue';
export default {
name: 'SecureArchiViewManage',
components: {
GraphGallery
},
data() {
return {
activeId: null,
tabData: []
};
},
mounted(){
this.getData();
},
methods: {
getData() {
const params = {
"parentId": 5
}
get_YeWu_YingYong_ShuJu_JiShu_AnQuan_ViewManage(params).then(res => {
if(res.code == 200) {
res.data.map(item => {
item.viewTypeId = ''+item.viewTypeId;
})
this.activeId = res.data[0].viewTypeId;
this.tabData = res.data;
}
})
}
}
}
</script>
<style>
.confirmClass{
background-color: #0D867F !important;
}
.el-message-box__content{
padding: 60px 15px 60px 15px;
}
</style>
<style scoped>
/deep/ .el-tabs__item:hover {
color: #0D867F;
}
/deep/ .el-tabs__active-bar{
background-color: #0D867F;
}
/deep/ .el-tabs__item.is-active{
color: #0D867F;
}
/deep/ .el-form-item__content{
width: 80%;
}
/deep/ .el-dialog__header{
background-color: #0D867F;
text-align: left;
}
/deep/ .el-dialog__title{
color: #fff;
}
/deep/ .el-dialog__close {
color: #fff;
}
.secureArchiViewManage{
width: 100%;
height: 100%;
}
</style>
\ No newline at end of file
<template>
<div class="table">
<div class="table_container">
<el-table v-loading="loading" :data="tableData" stripe border height="500">
<el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
<el-table-column prop="sourceId" label="元素id" align="center"></el-table-column>
<el-table-column prop="source" label="元素名称" align="center"></el-table-column>
<el-table-column prop="target" label="关联关系名称" align="center"></el-table-column>
<el-table-column prop="targetId" label="关联元素id" align="center"></el-table-column>
<el-table-column prop="linkName" label="关联元素名称" align="center"></el-table-column>
<el-table-column prop="linkNameDesc" label="关联关系描述" align="center"></el-table-column>
</el-table>
</div>
</div>
</template>
<script>
import {
,
} from '@/api/index.js';
import { MessageBox, Message } from 'element-ui';
export default {
name: 'Table',
components: {
},
data() {
return {
tableData: [],
loading: false,
};
},
mounted(){
},
methods: {
get_table() {
this.loading = true;
}
}
}
</script>
<style scoped>
.table{
width: 100%;
height: 100%;
}
.table_container{
margin-top: 20px;
}
/deep/ .el-dialog__header{
text-align: left;
}
</style>
\ No newline at end of file
<template>
<div class="canvas">
<!-- <Drawio :initGraphId="routerId"></Drawio> -->
</div>
</template>
<script>
import Drawio from '@/components/drawio.vue';
import { MessageBox, Message } from 'element-ui';
import {
} from '@/api/index.js';
export default {
name: 'Canvas',
components: {
Drawio
},
data() {
return {
routerId: null
};
},
mounted(){
},
methods: {
}
}
</script>
<style>
.confirmClass{
background-color: #0D867F !important;
}
.el-message-box__content{
padding: 60px 15px 60px 15px;
}
</style>
<style scoped>
.canvas{
width: 100%;
height: 100%;
}
</style>
<template>
<div class="Details">
<el-tabs type="border-card" @tab-click="tabs_click_func">
<el-tab-pane>
<span slot="label">
<i class="el-icon-picture"></i>
</span>
<YuanMoXingGuanLiCanvas ref="canvasComponent"></YuanMoXingGuanLiCanvas>
</el-tab-pane>
<el-tab-pane>
<span slot="label">
<i class="el-icon-s-grid"></i>
</span>
<YuanMoXingGuanLiTable ref="tableComponent"></YuanMoXingGuanLiTable>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import YuanMoXingGuanLiCanvas from './canvas/index.vue';
import YuanMoXingGuanLiTable from './table/index.vue';
export default {
name: 'Details',
components: {
YuanMoXingGuanLiCanvas,
YuanMoXingGuanLiTable
},
data() {
return {
};
},
mounted(){
},
methods: {
tabs_click_func(data) {
if(data.index == '0') {
console.log('画布页面')
}else{
console.log('表格页面')
this.$refs.tableComponent.get_table();
}
}
}
}
</script>
<style scoped>
.Details{
width: 100%;
height: 100%;
position: relative;
}
/deep/ .el-tabs__nav{
float: right;
}
.el-tabs{
height: 100%;
}
/deep/ .el-tabs__content{
height: calc(100% - 38px);
padding: 0;
}
.el-tab-pane{
height: 100%;
}
</style>
\ No newline at end of file
<template>
<div class="techArchiViewManage">
<el-tabs v-model="activeId">
<el-tab-pane
v-for="item in tabData"
:key="item.viewTypeId"
:label="item.viewTypeName"
:name="item.viewTypeId">
用户管理
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import {
get_YeWu_YingYong_ShuJu_JiShu_AnQuan_ViewManage
} from '@/api/index.js';
import { MessageBox, Message } from 'element-ui';
import $ from 'jquery';
import GraphGallery from '@/components/graphGallery.vue';
export default {
name: 'TechArchiViewManage',
components: {
GraphGallery
},
data() {
return {
activeId: null,
tabData: []
};
},
mounted(){
this.getData();
},
methods: {
getData() {
const params = {
"parentId": 4
}
get_YeWu_YingYong_ShuJu_JiShu_AnQuan_ViewManage(params).then(res => {
if(res.code == 200) {
res.data.map(item => {
item.viewTypeId = ''+item.viewTypeId;
})
this.activeId = res.data[0].viewTypeId;
this.tabData = res.data;
}
})
}
}
}
</script>
<style>
.confirmClass{
background-color: #0D867F !important;
}
.el-message-box__content{
padding: 60px 15px 60px 15px;
}
</style>
<style scoped>
/deep/ .el-tabs__item:hover {
color: #0D867F;
}
/deep/ .el-tabs__active-bar{
background-color: #0D867F;
}
/deep/ .el-tabs__item.is-active{
color: #0D867F;
}
/deep/ .el-form-item__content{
width: 80%;
}
/deep/ .el-dialog__header{
background-color: #0D867F;
text-align: left;
}
/deep/ .el-dialog__title{
color: #fff;
}
/deep/ .el-dialog__close {
color: #fff;
}
.techArchiViewManage{
width: 100%;
height: 100%;
}
</style>
\ No newline at end of file
<template>
<div class="table">
<div class="table_container">
<el-table v-loading="loading" :data="tableData" stripe border height="500">
<el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
<el-table-column prop="sourceId" label="元素id" align="center"></el-table-column>
<el-table-column prop="source" label="元素名称" align="center"></el-table-column>
<el-table-column prop="target" label="关联关系名称" align="center"></el-table-column>
<el-table-column prop="targetId" label="关联元素id" align="center"></el-table-column>
<el-table-column prop="linkName" label="关联元素名称" align="center"></el-table-column>
<el-table-column prop="linkNameDesc" label="关联关系描述" align="center"></el-table-column>
</el-table>
</div>
</div>
</template>
<script>
import {
,
} from '@/api/index.js';
import { MessageBox, Message } from 'element-ui';
export default {
name: 'Table',
components: {
},
data() {
return {
tableData: [],
loading: false,
};
},
mounted(){
},
methods: {
get_table() {
this.loading = true;
}
}
}
</script>
<style scoped>
.table{
width: 100%;
height: 100%;
}
.table_container{
margin-top: 20px;
}
/deep/ .el-dialog__header{
text-align: left;
}
</style>
\ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!