Commit cd72f565 by liuyong

修改代码

1 parent d682231d
Showing with 870 additions and 1418 deletions
...@@ -5,25 +5,12 @@ const initDrawioGraph = function(that) {//一进入画布显示的图形 ...@@ -5,25 +5,12 @@ const initDrawioGraph = function(that) {//一进入画布显示的图形
that.loadFile(`-2`, true, file); that.loadFile(`-2`, true, file);
}else { }else {
$.ajax({ const xmlData = localStorage.getItem('xmlData');
method: "post", const xmlTitle = localStorage.getItem('xmlTitle');
url: `http://${ajaxUrl}/ma-ml/gBMMId`,
data: JSON.stringify({ const file = new LocalFile(that, xmlData, xmlTitle, that.mode);
metaModelId: urlParams['id'] that.loadFile(`-1`, true, file);
}),
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 ajaxUrl = '192.168.148.129:7003'; const ajaxUrl = '43.143.211.42:7003';
\ No newline at end of file \ No newline at end of file
...@@ -3740,8 +3740,10 @@ App.prototype.showSplash = function(force) ...@@ -3740,8 +3740,10 @@ App.prototype.showSplash = function(force)
this.showSplash(); this.showSplash();
})); }));
}else if (urlParams['id']) { }else if (urlParams['id']) {
const that = this; const that = this;
initDrawioGraph(that); initDrawioGraph(that);
}else if (!mxClient.IS_CHROMEAPP && (this.mode == null || force)) }else if (!mxClient.IS_CHROMEAPP && (this.mode == null || force))
{ {
var rowLimit = (serviceCount == 4) ? 2 : 3; var rowLimit = (serviceCount == 4) ? 2 : 3;
......
...@@ -286,7 +286,7 @@ exportOptionsDisabled=已禁止导出 ...@@ -286,7 +286,7 @@ exportOptionsDisabled=已禁止导出
exportOptionsDisabledDetails=所有者已禁止评论者及浏览者下载、打印或复制该文件。 exportOptionsDisabledDetails=所有者已禁止评论者及浏览者下载、打印或复制该文件。
externalChanges=外部修改 externalChanges=外部修改
extras=其它 extras=其它
customSaveFileMenu=自定义保存文件 customSaveFileMenu=保存文件
customSubMenu1=功能1 customSubMenu1=功能1
customSubMenu2=功能2 customSubMenu2=功能2
facebook=Facebook facebook=Facebook
......
...@@ -70,6 +70,10 @@ export function get_yuan_mo_xing_list(params) { ...@@ -70,6 +70,10 @@ export function get_yuan_mo_xing_list(params) {
export function delete_yuan_mo_xing_list(params) { export function delete_yuan_mo_xing_list(params) {
return post('/network/ma-ml/del', 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) { ...@@ -153,9 +157,37 @@ export function getYMXZDGLProyUpdate(params) {
export function getYMXZDGLProyDel(params) { export function getYMXZDGLProyDel(params) {
return post('/network/ma-ml-dicy/del-proy', params); return post('/network/ma-ml-dicy/del-proy', params);
} }
// 业务,应用,数据,技术,安全架构视图管理 // 架构视图管理,树数据
export function get_YeWu_YingYong_ShuJu_JiShu_AnQuan_ViewManage(params) { export function getArchiViewManage(params) {
return post('/network/archi-view/lsViewTypes', 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) { export function getJiShuZhengCeJieGouHuaTable(params) {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<iframe <iframe
class="drawio_show" class="drawio_show"
name="content_frame" name="content_frame"
:src="'/drawio/index.html?id='+id+'&version='+version+'&state='+state" :src="'/drawio/index.html?id='+id"
frameborder=0 frameborder=0
scrolling="no"> scrolling="no">
</iframe> </iframe>
...@@ -15,9 +15,6 @@ ...@@ -15,9 +15,6 @@
data() { data() {
return { return {
id: null, id: null,
version: null,
state: null,
}; };
}, },
watch: { watch: {
...@@ -25,8 +22,6 @@ ...@@ -25,8 +22,6 @@
handler(newVal, oldVal) { handler(newVal, oldVal) {
// console.log(newVal) // console.log(newVal)
this.id = newVal.id; this.id = newVal.id;
this.version = newVal.version;
this.state = newVal.state;
}, },
} }
}, },
......
...@@ -116,30 +116,15 @@ const routes = [ ...@@ -116,30 +116,15 @@ const routes = [
component: () => import('@/views/report-template-relative-use/index.vue'), component: () => import('@/views/report-template-relative-use/index.vue'),
}, },
{ {
path: '/main/businessArchiViewManage',//业务架构视图管理 path: '/main/archiViewManage',//架构视图管理
name: 'businessArchiViewManage', name: 'archiViewManage',
component: () => import('@/views/business-archi-view-manage/index.vue'), component: () => import('@/views/archi-view-manage/index.vue'),
}, },
{ {
path: '/main/applicationArchiViewManage',//应用架构视图管理 path: '/main/archiViewManageDetails/:id',//架构视图管理详情
name: 'applicationArchiViewManage', name: 'archiViewManageDetails',
component: () => import('@/views/application-archi-view-manage/index.vue'), component: () => import('@/views/archi-view-manage/details.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'),
},
] ]
} }
] ]
......
...@@ -52,10 +52,6 @@ ...@@ -52,10 +52,6 @@
<img src="@/assets/main/3img.png" alt=""> <img src="@/assets/main/3img.png" alt="">
<span style="margin-left: 5px;">元模型管理</span> <span style="margin-left: 5px;">元模型管理</span>
</div> </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=""> <img src="@/assets/main/3img.png" alt="">
<span style="margin-left: 5px;">元模型字典管理</span> <span style="margin-left: 5px;">元模型字典管理</span>
...@@ -68,25 +64,13 @@ ...@@ -68,25 +64,13 @@
<span style="margin-left: 5px;">架构视图管理</span> <span style="margin-left: 5px;">架构视图管理</span>
</div> </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=""> <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('总体架构资产设计与维护', '架构视图管理', '数据架构视图管理')">
<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>
<div class="menu_1_item_subtitle" @click="jumpPage('总体架构资产设计与维护', '架构视图管理', '安全架构视图管理')"> <div class="menu_1_item_subtitle" @click="jumpPage('总体架构资产设计与维护', '架构视图管理', '架构视图管理')">
<img src="@/assets/main/3img.png" alt=""> <img src="@/assets/main/3img.png" alt="">
<span style="margin-left: 5px;">安全架构视图管理</span> <span style="margin-left: 5px;">架构视图管理</span>
</div> </div>
</div> </div>
<img class="menu_1_item_line" src="@/assets/main/line.png" alt="" /> <img class="menu_1_item_line" src="@/assets/main/line.png" alt="" />
...@@ -595,24 +579,8 @@ ...@@ -595,24 +579,8 @@
this.$router.push( '/main/reportTemplateRelativeUse', () => {}, () => {} ); this.$router.push( '/main/reportTemplateRelativeUse', () => {}, () => {} );
this.visible5 = false; this.visible5 = false;
break; break;
case '业务架构视图管理': case '架构视图管理':
this.$router.push( '/main/businessArchiViewManage', () => {}, () => {} ); this.$router.push( '/main/archiViewManage', () => {}, () => {} );
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', () => {}, () => {} );
this.visible1 = false; this.visible1 = false;
break; 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>
<template>
<div class="archiViewManage">
<el-tree
class="filter-tree"
:data="treeData"
node-key="viewId"
@node-click="treeClick"
:props="{ children: 'subList', label: 'viewName', id: 'viewId' }"
:default-expanded-keys="[0]"
ref="tree">
</el-tree>
<div class="right_container">
<el-tabs v-model="activeName" type="border-card">
<el-tab-pane label="已发布" name="已发布">
<div class="card_container">
<div class="card_body">
<el-card class="card_item" v-for="item in yiFaBu" :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>
</el-card>
<div class="add_container" @click="add_dialog = true">
<i class="el-icon-plus"></i>
</div>
</div>
</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">
<div class="card_body">
<el-card class="card_item" v-for="item in zanCun" :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>
</el-card>
<div class="add_container" @click="add_dialog = true">
<i class="el-icon-plus"></i>
</div>
</div>
</div>
<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-tab-pane label="停用" name="停用">
<div class="card_container">
<div class="card_body">
<el-card class="card_item" v-for="item in tingYong" :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>
</el-card>
<div class="add_container" @click="add_dialog = true">
<i class="el-icon-plus"></i>
</div>
</div>
</div>
<el-pagination
background
@size-change="val => handleSizeChange(val, '停用')"
@current-change="val => handleCurrentChange(val, '停用')"
:current-page="pager3.current"
:page-sizes="pager3.sizes"
:page-size="pager3.size"
layout="total, sizes, prev, pager, next, jumper"
:total="pager3.total">
</el-pagination>
</el-tab-pane>
</el-tabs>
</div>
<el-dialog
title="新建架构视图"
:visible.sync="add_dialog"
:center="false"
width="40%">
<div class="add_dialog_content">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm">
<el-form-item label="版本名称" prop="name">
<el-input v-model="ruleForm.name"></el-input>
</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button class="greenButton" @click="ok">确定</el-button>
<el-button @click="add_dialog = false">取消</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {
getArchiViewManage,
getArchiViewManageDetail,
addArchiViewManage,
deleteArchiViewManage,
queryArchiViewManageCardDetails
} from '@/api/index.js';
import { MessageBox, Message } from 'element-ui';
import $ from 'jquery';
import GraphGallery from '@/components/graphGallery.vue';
export default {
name: 'ArchiViewManage',
components: {
GraphGallery
},
data() {
return {
activeId: null,
treeData: [
{
viewId: 0,
viewName: '架构视图管理',
subList: []
}
],
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 //总条数
},
pager3: {
current: 1,
sizes: [10, 20, 50, 100, 200],
size: 10,
total: 0 //总条数
},
viewId: null,
yiFaBu: [],
zanCun: [],
tingYong: [],
add_dialog: false,
ruleForm: {
name: '',
},
rules: {
name: [
{ required: true, message: '请输入版本名称', trigger: 'blur' },
],
},
};
},
mounted(){
this.getData();
},
methods: {
to_current_details(item) {//跳转到详情
const params = {
viewDetailsId: item.viewDetailsId
}
queryArchiViewManageCardDetails(params).then(res => {
if(res.code == 200) {
const xmlData = res.data.metaModelData;
const xmlTitle = res.data.verName;
const version = res.data.version;
const id = res.data.viewDetailsId;
localStorage.setItem('xmlData', xmlData);
localStorage.setItem('xmlTitle', xmlTitle);
this.$router.push( `/main/archiViewManageDetails/id=${id}&version=${version}`, () => {}, () => {} );
}
});
},
deleteItem(item) {//删除
MessageBox.confirm('确定删除?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
customClass: 'messageClass',
confirmButtonClass: 'confirmClass',
type: 'warning'
}).then(() => {
const params = {
ids: [item.viewDetailsId],
}
deleteArchiViewManage(params).then(res => {
if(res.code == 200) {
this.get_list1();
this.get_list2();
this.get_list3();
Message({
type: 'success',
message: '删除成功!',
});
}else {
Message({
type: 'error',
message: res.msg
});
}
})
}).catch(() => {
Message({
type: 'info',
message: '已取消'
});
});
},
ok() {//弹框点击确定
this.$refs.ruleForm.validate(valid => {
if(valid) {
const params = {
version: this.ruleForm.name,
viewId: this.viewId
};
addArchiViewManage(params).then(res => {
if(res.code == 200) {
this.add_dialog = false;
this.get_list();
Message({
type: 'success',
message: '新增成功!'
});
}else {
Message({
type: 'error',
message: res.msg
});
}
})
} else {
console.log('error submit!!');
return false;
}
});
},
// 每页条数改变
handleSizeChange(val, status) {
switch(status){
case '已发布':
this.pager1.current = 1;
this.pager1.size = val;
this.get_list1();
break;
case '暂存':
this.pager2.current = 1;
this.pager2.size = val;
this.get_list2();
break;
case '停用':
this.pager3.current = 1;
this.pager3.size = val;
this.get_list3();
break;
}
},
//当前页码改变
handleCurrentChange(val, status) {
switch(status){
case '已发布':
this.pager1.current = val;
this.get_list1();
break;
case '暂存':
this.pager2.current = val;
this.get_list2();
break;
case '停用':
this.pager3.current = val;
this.get_list3();
break;
}
},
get_list1(){//获取已发布数据
const params = {
current: this.pager1.current,
pageSize: this.pager1.size,
viewId: this.viewId,
state: 1
}
getArchiViewManageDetail(params).then(res => {
if(res.code == 200) {
this.yiFaBu = res.data.records;
this.pager1.current = res.data.current;
this.pager1.total = res.data.total;
}
})
},
get_list2(){//获取暂存数据
const params = {
current: this.pager2.current,
pageSize: this.pager2.size,
viewId: this.viewId,
state: 2
}
getArchiViewManageDetail(params).then(res => {
if(res.code == 200) {
this.zanCun = res.data.records;
this.pager2.current = res.data.current;
this.pager2.total = res.data.total;
}
})
},
get_list3(){//获取停用数据
const params = {
current: this.pager3.current,
pageSize: this.pager3.size,
viewId: this.viewId,
state: 0
}
getArchiViewManageDetail(params).then(res => {
if(res.code == 200) {
this.tingYong = res.data.records
this.pager3.current = res.data.current;
this.pager3.total = res.data.total;
}
})
},
treeClick(data) {//树点击的时候
if(!data.subList) {
this.viewId = data.viewId;
this.pager1.current = 1;
this.pager2.current = 1;
this.pager3.current = 1;
this.get_list1();
this.get_list2();
this.get_list3();
}else {
this.viewId = null;
}
},
getData() {//获取树节点内容
const params = {
}
getArchiViewManage(params).then(res => {
if(res.code == 200) {
this.treeData[0].subList = res.data;
}
})
}
}
}
</script>
<style>
.confirmClass{
background-color: #0D867F !important;
}
.el-message-box__content{
padding: 60px 15px 60px 15px;
}
</style>
<style lang="scss" scoped>
/deep/ .el-dialog__header{
background-color: #0D867F;
text-align: left;
}
/deep/ .el-dialog__title{
color: #fff;
}
/deep/ .el-dialog__close {
color: #fff;
}
.el-form-item{
display: flex;
}
/deep/ .el-form-item__content{
width: 80%;
}
.greenButton{
background-color: #0D867F;
color: #fff;
}
.archiViewManage{
width: 100%;
height: 100%;
display: flex;
.filter-tree{
width: 300px;
height: 100%;
overflow-y: auto;
// border: 1px solid pink;
}
.right_container{
width: calc(100% - 300px);
height: 100%;
// border: 1px solid blue;
.el-tabs{
height: 100%;
}
.el-tab-pane{
height: 100%;
position: relative;
}
.el-pagination{
position: absolute;
bottom: 5%;
left: 35%;
background-color: #fff;
}
.card_container{
overflow-x: hidden;
height: 100%;
overflow-y: auto;
text-align: left;
.card_body{
height: 2000px;
.add_container{
width: 350px;
height: 240px;
margin: 15px;
background-color: #F2FFFE;
cursor: pointer;
float: left;
display: flex;
justify-content: center;
align-items: center;
i{
font-size: 60px;
}
}
.card_item{
width: 350px;
height: 240px;
margin: 15px;
background-color: #F2FFFE;
cursor: pointer;
float: left;
.card_image{
width: 165px;
height: 127px;
}
.card_info{
display: flex;
align-items: center;
justify-content: space-between;
margin: 30px 0 0 0;
.card_icon{
cursor: pointer;
}
}
}
}
}
/deep/ .el-tabs__content{
height: calc(100% - 38px);
padding: 0;
}
.el-pagination{
margin-top: 15px;
}
/deep/ .el-pagination.is-background .el-pager li:not(.disabled).active{
background-color: #0D867F;
}
}
}
</style>
\ No newline at end of file
...@@ -3,12 +3,10 @@ ...@@ -3,12 +3,10 @@
<div class="table_container"> <div class="table_container">
<el-table v-loading="loading" :data="tableData" stripe border height="500"> <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 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="elementType" label="元素类型" align="center"></el-table-column>
<el-table-column prop="source" label="元素名称" align="center"></el-table-column> <el-table-column prop="elementEncoding" label="元素编码" align="center"></el-table-column>
<el-table-column prop="target" label="关联关系名称" align="center"></el-table-column> <el-table-column prop="upstreamElements" label="上游元素" align="center"></el-table-column>
<el-table-column prop="targetId" label="关联元素id" align="center"></el-table-column> <el-table-column prop="relationship" label="关系" 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> </el-table>
</div> </div>
</div> </div>
...@@ -16,7 +14,7 @@ ...@@ -16,7 +14,7 @@
<script> <script>
import { import {
, getArchiViewManageTable
} from '@/api/index.js'; } from '@/api/index.js';
import { MessageBox, Message } from 'element-ui'; import { MessageBox, Message } from 'element-ui';
export default { export default {
...@@ -28,15 +26,25 @@ export default { ...@@ -28,15 +26,25 @@ export default {
return { return {
tableData: [], tableData: [],
loading: false, loading: false,
routerId: null
}; };
}, },
mounted(){ mounted(){
this.routerId = window.location.href.split("id=")[1].split("&")[0];
}, },
methods: { methods: {
get_table() { get_table() {
this.loading = true; 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 @@ ...@@ -24,11 +24,9 @@
mounted(){ mounted(){
const id = window.location.href.split("id=")[1].split("&")[0]; const id = window.location.href.split("id=")[1].split("&")[0];
const version = window.location.href.split("id=")[1].split("&")[1].split("=")[1]; 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 = { this.routerId = {
id, id,
version,
state
} }
window.addEventListener("message", event => {//会一直调用 window.addEventListener("message", event => {//会一直调用
...@@ -64,7 +62,6 @@ ...@@ -64,7 +62,6 @@
message: '已取消' message: '已取消'
}); });
}); });
} }
} }
}); });
...@@ -85,7 +82,7 @@ ...@@ -85,7 +82,7 @@
}else { }else {
Message({ Message({
type: 'error', type: 'error',
message: '保存失败!' message: res.msg
}); });
} }
}) })
...@@ -105,7 +102,7 @@ ...@@ -105,7 +102,7 @@
}else { }else {
Message({ Message({
type: 'error', type: 'error',
message: '版本发布失败!' message: res.msg
}); });
} }
}) })
......
...@@ -16,57 +16,69 @@ ...@@ -16,57 +16,69 @@
<p>版本分析</p> <p>版本分析</p>
</div> </div>
</div> </div>
<!-- <div class="version_container"> <el-tabs v-model="activeName" type="border-card" @tab-click="tabs_click_func">
<div class="version_content"> <el-tab-pane label="已发布" name="已发布">
<div class="line_title_container">
<div class="title_container">
<el-divider direction="vertical"></el-divider>
<span>已发布</span>
</div>
<el-divider></el-divider>
</div>
<div class="card_container"> <div class="card_container">
<el-card class="card_item" v-for="item in yi_fa_bu" :key="item.metaModelId"> <div class="card_body">
<img class="card_image" @click="to_current_details(item)" :src="item.metaModelSvg_" alt="" /> <el-card class="card_item" v-for="item in yi_fa_bu" :key="item.metaModelId">
<div class="card_info"> <img class="card_image" @click="to_current_details(item)" :src="item.metaModelSvg_" alt="" />
<div class="card_title"> <div class="card_info">
<i class="el-icon-location"></i> <div class="card_title">
{{ item.verName }}&nbsp;&nbsp;&nbsp;{{ item.version }} <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>
<div class="card_icon" @click.stop="deleteItem(item)"> </el-card>
<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>
</div> </div>
<el-divider></el-divider>
</div> </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"> <div class="card_container">
<el-card class="card_item" v-for="item in zan_cun" :key="item.metaModelId"> <div class="card_body">
<img class="card_image" @click="to_current_details(item)" :src="item.metaModelSvg_" alt="" /> <el-card class="card_item" v-for="item in zan_cun" :key="item.metaModelId">
<div class="card_info"> <img class="card_image" @click="to_current_details(item)" :src="item.metaModelSvg_" alt="" />
<div class="card_title"> <div class="card_info">
<i class="el-icon-location"></i> <div class="card_title">
{{ item.verName }}&nbsp;&nbsp;&nbsp;{{ item.version }} <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>
<div class="card_icon" @click.stop="deleteItem(item)"> </el-card>
<i class="el-icon-delete"></i> </div>
</div>
</div>
</el-card>
</div> </div>
</div> <el-pagination
</div> --> background
<GraphGallery @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" :yiFaBu="yi_fa_bu"
:zanCun="zan_cun" :zanCun="zan_cun"
@imgClick="to_current_details" @imgClick="to_current_details"
@deleteClick="deleteItem" /> @deleteClick="deleteItem" /> -->
<el-dialog <el-dialog
title="新建元模型视图" title="新建元模型视图"
:visible.sync="add_dialog" :visible.sync="add_dialog"
...@@ -91,16 +103,16 @@ ...@@ -91,16 +103,16 @@
import { import {
add_yuan_mo_xing, add_yuan_mo_xing,
get_yuan_mo_xing_list, get_yuan_mo_xing_list,
delete_yuan_mo_xing_list delete_yuan_mo_xing_list,
query_yuan_mo_xing_details
} from '@/api/index.js'; } from '@/api/index.js';
import { MessageBox, Message } from 'element-ui'; import { MessageBox, Message } from 'element-ui';
import $ from 'jquery'; import $ from 'jquery';
import GraphGallery from '@/components/graphGallery.vue';
export default { export default {
name: 'metaModelList', name: 'metaModelList',
components: { components: {
GraphGallery
}, },
data() { data() {
return { return {
...@@ -116,14 +128,34 @@ export default { ...@@ -116,14 +128,34 @@ export default {
}, },
yi_fa_bu: [], yi_fa_bu: [],
zan_cun: [], 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(){ mounted(){
this.get_list(); this.get_list1();
this.get_list2();
}, },
methods: { methods: {
tabs_click_func(data) {
},
search_list() {//搜索 search_list() {//搜索
this.get_list(); this.pager1.current = 1;
this.pager2.current = 1;
this.get_list1();
this.get_list2();
}, },
deleteItem(item) {//删除 deleteItem(item) {//删除
MessageBox.confirm('确定删除?', '提示', { MessageBox.confirm('确定删除?', '提示', {
...@@ -139,7 +171,8 @@ export default { ...@@ -139,7 +171,8 @@ export default {
} }
delete_yuan_mo_xing_list(params).then(res => { delete_yuan_mo_xing_list(params).then(res => {
if(res.code == 200) { if(res.code == 200) {
this.get_list(); this.get_list1();
this.get_list2();
Message({ Message({
type: 'success', type: 'success',
message: '删除成功!', message: '删除成功!',
...@@ -158,27 +191,61 @@ export default { ...@@ -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 = { 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 => { get_yuan_mo_xing_list(params).then(res => {
if(res.code == 200) { if(res.code == 200) {
res.data.records.map(item => { res.data.records.map(item => {
item['metaModelSvg_'] = 'data:image/svg+xml;base64,'+ item.metaModelSvg; item['metaModelSvg_'] = 'data:image/svg+xml;base64,'+ item.metaModelSvg;
}); });
this.yi_fa_bu = res.data.records.filter(item => item.state == 1); this.pager1.current = res.data.current;
this.zan_cun = res.data.records.filter(item => item.state == 2); this.pager1.total = res.data.total;
this.yi_fa_bu = res.data.records;
// Message({ }
// type: 'success', })
// message: '版本发布成功!' },
// }); get_list2() {//查询已发布列表
}else { const params = {
// Message({ verName: this.query_item1,
// type: 'error', current: this.pager2.current,
// message: '版本发布失败!' 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 { ...@@ -211,7 +278,18 @@ export default {
}); });
}, },
to_current_details(item) {//跳转到详情 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) {//新建按钮点击 handleCommand(command) {//新建按钮点击
if(command == '自由绘图') { if(command == '自由绘图') {
...@@ -244,6 +322,38 @@ export default { ...@@ -244,6 +322,38 @@ export default {
.version_content{ .version_content{
height: 1500px; 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{ .el-form-item{
display: flex; display: flex;
} }
...@@ -330,10 +440,4 @@ export default { ...@@ -330,10 +440,4 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.card_container{
margin-bottom: 10px;
overflow-x: hidden;
display: flex;
flex-wrap: wrap;
}
</style> </style>
\ No newline at end of file
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
<div class="table"> <div class="table">
<div class="table_container"> <div class="table_container">
<el-table v-loading="loading" :data="tableData" stripe border height="500"> <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 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="sourceId" label="元素id" align="center"></el-table-column>
<el-table-column prop="source" label="元素名称" align="center"></el-table-column> <el-table-column prop="source" label="元素名称" align="center"></el-table-column>
...@@ -10,67 +9,8 @@ ...@@ -10,67 +9,8 @@
<el-table-column prop="targetId" label="关联元素id" 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="linkName" label="关联元素名称" align="center"></el-table-column>
<el-table-column prop="linkNameDesc" 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> </el-table>
</div> </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> </div>
</template> </template>
...@@ -87,11 +27,6 @@ export default { ...@@ -87,11 +27,6 @@ export default {
data() { data() {
return { return {
tableData: [], tableData: [],
add_dialog: false,
let1: '',
let2: '',
let3: '',
let4: '',
loading: false, loading: false,
routerId: null 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!