Commit 78cc68f4 by 史敦盼

架构遵从检查

1 parent f045bb57
......@@ -760,6 +760,18 @@ export function addOrgInfo(params) {
export function updOrgInfo(params) {
return post(EADC_ARRCHITECTURE + '/org-info/upd', params)
}
// 架构遵从检查-保存评审意见
export function saveArchitectureFollows(params) {
return post(EADC_ARRCHITECTURE + '/architectureFollows/ad', params)
}
// 架构遵从检查-查询评审意见
export function viewArchitectureFollows(params) {
return post(EADC_ARRCHITECTURE + '/architectureFollows/qReview', params)
}
// 架构遵从检查-查询对应架构视图
export function qViewArchitectureFollows(params) {
return post(EADC_ARRCHITECTURE + '/architectureFollows/qView', params)
}
export function postRequest(url, params) {
return post(EADC_ARRCHITECTURE + url, params)
}
......@@ -34,3 +34,6 @@ export const querySupervisionProblem =
export const queryConceptualBaseManagement = EADC_ARRCHITECTURE + '/int-info/'
// 概设评审基础管理-组织机构管理
export const queryConceptualBaseOrg = EADC_ARRCHITECTURE + '/org-info/'
// 架构遵从检查列表
export const queryArchitectureFollowExamine =
EADC_ARRCHITECTURE + '/architectureFollows/'
......@@ -296,25 +296,32 @@ const routes = [
component: () => import('@/views/architectureFollowExamine/index.vue'),
},
{
path: '/main/architectureFollowExamineDetails', // 架构督查 - 架构遵从检查-详情
name: 'architectureFollowExamineDetails',
component: () =>
import('@/views/architectureFollowExamine/details.vue'),
},
{
path: '/main/artPolicyExamine', // 架构督查-技术政策审查
name: 'artPolicyExamine',
component: () => import('@/views/artPolicyExamine/index.vue'),
},
{
path:'/main/collectDataConfiguration',// 架构督查 - 收集资料配置
name:'collectDataConfiguration',
component:()=> import('@/views/collectDataConfiguration/index.vue'),
path: '/main/collectDataConfiguration', // 架构督查 - 收集资料配置
name: 'collectDataConfiguration',
component: () => import('@/views/collectDataConfiguration/index.vue'),
},
{
path:'/main/supervisionDatacollection', // 架构督查 - 督查资料收集
name:'supervisionDataCollection',
component:()=>import('@/views/supervisionDataCollection/index.vue')
path: '/main/supervisionDatacollection', // 架构督查 - 督查资料收集
name: 'supervisionDataCollection',
component: () => import('@/views/supervisionDataCollection/index.vue'),
},
{
path:'/main/architectureInspectionAnalysis',// 架构督查 - 架构督查分析
name:'architectureInspectionAnalysis',
component:()=> import('@/views/architectureInspectionAnalysis/index.vue'),
path: '/main/architectureInspectionAnalysis', // 架构督查 - 架构督查分析
name: 'architectureInspectionAnalysis',
component: () =>
import('@/views/architectureInspectionAnalysis/index.vue'),
},
],
},
......
......@@ -98,3 +98,22 @@ export const analysisState = [
{ label: '已解析', value: 1 },
{ label: '解析失败', value: 2 },
]
export const architectureFollowsReviewEnum = [
{
label: '业务架构遵从',
value: 'BUSINESS_ARCHITECTURE_CONFORMANCE_SUPERVISE',
},
{
label: '应用架构遵从',
value: 'APPLICATION_ARCHITECTURE_CONFORMANCE_SUPERVISE',
},
{
label: '技术架构遵从',
value: 'TECHNICAL_ARCHITECTURE_CONFORMANCE_SUPERVISE',
},
{ label: '数据架构遵从', value: 'DATA_ARCHITECTURE_CONFORMANCE_SUPERVISE' },
{
label: '安全架构遵从',
value: 'SECURITY_ARCHITECTURE_CONFORMANCE_SUPERVISE',
},
]
<!--
* @Description: 架构督查-架构遵从检查
* @Version: 2.0
* @Autor: pan
* @Date: 2024-03-26 18:27:18
* @LastEditors: pan
* @LastEditTime: 2024-03-28 14:18:52
-->
<template>
<div class="architectureFollowExamine">
<el-tabs class="m-lr-10" v-model="activeName">
<el-tab-pane
:label="item.label"
:name="item.name"
v-for="item in tabOptions"
:key="item.name"
lazy
>
<keep-alive>
<component :is="item.componentTag"></component>
</keep-alive>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import Tab1 from './tab1.vue'
import Tab2 from './tab2.vue'
import Tab3 from './tab3.vue'
import Tab4 from './tab4.vue'
import Tab5 from './tab5.vue'
import { getArchiViewManage } from '@/api/index.js'
export default {
name: 'architectureFollowExamine',
data() {
return {
activeName: '1',
tabOptions: [
{ label: '业务架构遵从', name: '1', componentTag: 'Tab1' },
{ label: '应用架构遵从', name: '2', componentTag: 'Tab2' },
{ label: '数据架构遵从', name: '3', componentTag: 'Tab3' },
{ label: '技术架构遵从', name: '4', componentTag: 'Tab4' },
{ label: '安全数据架构遵从', name: '5', componentTag: 'Tab5' },
],
componentTag: '',
leftSelectOptions: [],
rightSelectOptions: [],
leftSelect: undefined,
rightSelect: undefined,
}
},
components: {
Tab1,
Tab2,
Tab3,
Tab4,
Tab5,
},
created() {
// this.getLeftTree()
// this.getRightTree()
},
methods: {
getLeftTree() {
getArchiViewManage({ archiStage: 2 }).then((res) => {
if (res.code === 200) {
this.leftSelectOptions = res.data
this.leftSelect = this.leftSelectOptions[0].viewId
}
})
},
getRightTree() {
getArchiViewManage({ archiStage: 3 }).then((res) => {
if (res.code === 200) {
this.rightSelectOptions = res.data
this.rightSelect = this.rightSelectOptions[0].viewId
}
})
},
},
}
</script>
<style scoped lang="scss">
@import '@/styles/common.scss';
.architectureFollowExamine {
width: 100%;
& > div {
height: 100%;
}
::v-deep .el-tabs__content {
height: calc(100% - 55px);
.el-tab-pane {
height: 100%;
}
}
}
</style>
<!--
* @Description: 架构督查-架构遵从检查
* @Description: 架构督查-架构遵从检查列表
* @Version: 2.0
* @Autor: pan
* @Date: 2024-03-26 18:27:18
* @Date: 2024-03-26 19:31:32
* @LastEditors: pan
* @LastEditTime: 2024-03-26 19:08:43
* @LastEditTime: 2024-03-28 09:44:32
-->
<template>
<div class="architectureFollowExamine">
<el-tabs class="m-lr-10" v-model="activeName" @tab-click="handleClick">
<el-tab-pane
:label="item.label"
:name="item.name"
v-for="item in tabOptions"
:key="item.name"
lazy
>
<keep-alive>
<component :is="item.componentTag"></component>
</keep-alive>
</el-tab-pane>
</el-tabs>
<div class="searchTable">
<list-page>
<!-- 查询表单插槽 -->
<template #formWrap>
<SearchForm @onSearch="querySearch" :form-options="formOptions" />
</template>
<!-- 表格插槽 -->
<template #tableWrap>
<table-config
ref="searchTable"
:query="query"
:columns="columns"
id-key="elementId"
>
</table-config>
</template>
</list-page>
</div>
</template>
<script>
import Tab1 from './tab1.vue'
import Tab2 from './tab2.vue'
import Tab3 from './tab3.vue'
import Tab4 from './tab4.vue'
import Tab5 from './tab5.vue'
import ListPage from '@/components/ListPage.vue'
import SearchForm from '@/components/SearchForm.vue'
import TableConfig from '@/components/TableConfig.vue'
import { updReportManage, delReportManage } from '@/api/index.js'
import { queryArchitectureFollowExamine } from '@/api/interface'
import { buildType } from '@/utils/dictionary'
export default {
name: 'architectureFollowExamine',
components: {
ListPage,
SearchForm,
TableConfig,
},
data() {
return {
activeName: '1',
tabOptions: [
{ label: '业务架构遵从', name: '1', componentTag: 'Tab1' },
{ label: '应用架构遵从', name: '2', componentTag: 'Tab2' },
{ label: '数据架构遵从', name: '3', componentTag: 'Tab3' },
{ label: '技术架构遵从', name: '4', componentTag: 'Tab4' },
{ label: '安全数据架构遵从', name: '5', componentTag: 'Tab5' },
],
componentTag: '',
selectRows: [],
query: {
url: queryArchitectureFollowExamine,
method: 'post',
queryParam: {},
},
visible: false,
rowData: {},
dialogTitle: '',
approvalVisible: false,
}
},
components: {
Tab1,
Tab2,
Tab3,
Tab4,
Tab5,
computed: {
formOptions() {
return [
{
label: '项目名称', // label文字
prop: 'prjName', // 字段名
element: 'el-input', // 指定elementui组件
placeholder: '请输入内容', // elementui组件属性
},
{
label: '建设类型',
width: '100px',
prop: 'buildType',
element: 'el-select', // 指定elementui组件
dictType: 'build_type',
placeholder: '请选择', // elementui组件属性
},
]
},
columns() {
return [
{ label: '序号', type: 'index', width: '80px' },
{
label: '系统名称',
prop: 'appName',
},
{
label: '建设类型', // label文字
prop: 'buildType', // 字段名
options: buildType,
collectionType: true,
width: '120px',
},
{
label: '项目名称',
prop: 'projectName',
},
{
label: '承建单位',
prop: 'buildOrgName',
},
{
label: '项目经理',
prop: 'projectManager',
},
{
label: '创建人',
prop: 'createMan',
},
{
label: '创建时间',
prop: 'createTime',
},
{
label: '操作',
type: 'operation',
width: '240px',
actionButtons: [
{
title: '遵从检查',
type: 'primary',
size: 'mini',
plain: true,
icon: 'el-icon-edit',
},
],
callback: (row, title) => {
this.fnOperation(row, title)
},
},
]
},
},
created() {},
methods: {
querySearch(data) {
this.query.queryParam = {
...this.query.queryParam,
...data,
}
this.$refs.searchTable.queryData()
},
/**
* @description: 操作按钮
* @param {Object} row 当前操作行数据
* @param {String} title 当前操作按钮名称
* @author: pan
*/
fnOperation(row, title) {
this.$router.push({
path: '/main/architectureFollowExamineDetails',
query: {
row: JSON.stringify(row),
},
})
},
},
mounted() {},
methods: {},
}
</script>
<style scoped lang="scss">
@import '@/styles/common.scss';
.architectureFollowExamine {
width: 100%;
& > div {
height: 100%;
}
::v-deep .el-tabs__content {
height: calc(100% - 55px);
.el-tab-pane {
height: 100%;
}
}
}
</style>
......@@ -3,15 +3,34 @@
<div class="content flex">
<div class="left_container m-r-10 flex-column">
<div class="left_container_title">
<i class="el-icon-caret-right icon"></i>
<span>系统业务架构视图</span>
<div class="flex">
<i class="el-icon-caret-right icon"></i>
<span>系统业务架构视图</span>
</div>
<el-select
class="select-title"
@change="leftSelectChange"
v-model="leftSelect"
>
<el-option
:label="item.viewName"
:value="item.viewId"
v-for="item in leftSelectOptions"
:key="item.viewId"
></el-option>
</el-select>
</div>
<div class="left_container_content flex-1">
<div
class="left_container_content flex-1"
v-loading="leftLoading"
element-loading-text="加载中"
>
<img
v-for="(item, idx) in leftBaseOptions"
:key="idx"
:src="item"
alt=""
class="w-100 h-100"
/>
</div>
</div>
......@@ -21,13 +40,26 @@
<i class="el-icon-caret-right icon"></i>
<span>概设阶段业务架构视图</span>
</div>
<el-select class="select-title" v-model="rightSelect">
<el-option
:label="item.viewName"
:value="item.viewId"
v-for="item in rightSelectOptions"
:key="item.viewId"
></el-option>
</el-select>
</div>
<div class="right_container_content flex-1">
<div
class="right_container_content flex-1"
v-loading="rightLoading"
element-loading-text="加载中"
>
<img
v-for="(item, idx) in rightBaseOptions"
:key="idx"
:src="item"
alt=""
class="w-100 h-100"
/>
</div>
</div>
......@@ -55,8 +87,10 @@
<script>
import {
saveReviewArchiFollowCheckRightSuggestion,
queryReviewArchiFollowCheckRightSuggestionDetails,
saveArchitectureFollows,
viewArchitectureFollows,
qViewArchitectureFollows,
getArchiViewManage,
} from '@/api/index.js'
export default {
name: 'tab1',
......@@ -66,37 +100,106 @@ export default {
resultContent: '',
leftBaseOptions: [],
rightBaseOptions: [],
leftLoading: false,
rightLoading: false,
leftSelect: undefined,
leftSelectOptions: [],
rightSelect: undefined,
rightSelectOptions: [],
row: {},
}
},
created() {
this.getDetail()
this.row = JSON.parse(this.$route.query.row)
this.getLeftTree().then((res) => {
this.getDetail()
})
this.getRightTree()
this.getLeftQview()
this.getRightQview()
},
methods: {
leftSelectChange() {
this.getDetail()
},
commonParams() {
return {
reviewEnum: 'BUSINESS_ARCHITECTURE_CONFORMANCE_SUPERVISE',
appId: this.row.appId,
reviewState: 0,
}
},
getDetail() {
const params = {
reviewEnum: 'OPERATIONAL_SAFETY_COMPLIANCE_REVIEW',
prjId: this.$route.query.prjId,
...this.commonParams(),
subViewId: this.leftSelect,
}
queryReviewArchiFollowCheckRightSuggestionDetails(params).then((res) => {
viewArchitectureFollows(params).then((res) => {
if (res.code === 200) {
this.resultContent = res.data.reviewSuggestion
this.isMeet = res.data.reviewState
}
})
},
getLeftTree() {
return getArchiViewManage({ archiStage: 2 }).then((res) => {
if (res.code === 200) {
this.leftSelectOptions = res.data
this.leftSelect = this.leftSelectOptions[0].viewId
}
})
},
getRightTree() {
getArchiViewManage({ archiStage: 3 }).then((res) => {
if (res.code === 200) {
this.rightSelectOptions = res.data
this.rightSelect = this.rightSelectOptions[0].viewId
}
})
},
getLeftQview() {
const params = {
appId: this.row.appId,
archiBelongId: 1,
archiStage: 2,
}
this.leftLoading = true
qViewArchitectureFollows(params).then((res) => {
this.leftLoading = false
if (res.code === 200) {
this.leftBaseOptions = res.data.map(
(v) => v.metaModelSvg && `data:image/png;base64,${v.metaModelSvg}`,
)
}
})
},
getRightQview() {
const params = {
appId: this.row.appId,
archiBelongId: 1,
archiStage: 3,
}
this.rightLoading = true
qViewArchitectureFollows(params).then((res) => {
this.rightLoading = false
if (res.code === 200) {
this.rightBaseOptions = res.data.map(
(v) => v.metaModelSvg && `data:image/png;base64,${v.metaModelSvg}`,
)
}
})
},
handleSave() {
const params = {
reviewEnum: 'OPERATIONAL_SAFETY_COMPLIANCE_REVIEW',
prjId: this.$route.query.prjId,
reviewState: this.isMeet,
...this.commonParams(),
reviewSuggestion: this.resultContent,
subViewId: this.leftSelect,
}
const loading = this.$loading({
lock: true,
text: '保存中',
spinner: 'el-icon-loading',
})
saveReviewArchiFollowCheckRightSuggestion(params).then((res) => {
saveArchitectureFollows(params).then((res) => {
loading.close()
if (res.code == 200) {
this.$message.success('保存成功')
......
......@@ -3,15 +3,34 @@
<div class="content flex">
<div class="left_container m-r-10 flex-column">
<div class="left_container_title">
<i class="el-icon-caret-right icon"></i>
<span>系统应用架构视图</span>
<div class="flex">
<i class="el-icon-caret-right icon"></i>
<span>系统业务架构视图</span>
</div>
<el-select
class="select-title"
@change="leftSelectChange"
v-model="leftSelect"
>
<el-option
:label="item.viewName"
:value="item.viewId"
v-for="item in leftSelectOptions"
:key="item.viewId"
></el-option>
</el-select>
</div>
<div class="left_container_content flex-1">
<div
class="left_container_content flex-1"
v-loading="leftLoading"
element-loading-text="加载中"
>
<img
v-for="(item, idx) in leftBaseOptions"
:key="idx"
:src="item"
alt=""
class="w-100 h-100"
/>
</div>
</div>
......@@ -19,15 +38,28 @@
<div class="right_container_title flex-b-c">
<div class="flex">
<i class="el-icon-caret-right icon"></i>
<span>概设阶段应用架构视图</span>
<span>概设阶段业务架构视图</span>
</div>
<el-select class="select-title" v-model="rightSelect">
<el-option
:label="item.viewName"
:value="item.viewId"
v-for="item in rightSelectOptions"
:key="item.viewId"
></el-option>
</el-select>
</div>
<div class="right_container_content flex-1">
<div
class="right_container_content flex-1"
v-loading="rightLoading"
element-loading-text="加载中"
>
<img
v-for="(item, idx) in rightBaseOptions"
:key="idx"
:src="item"
alt=""
class="w-100 h-100"
/>
</div>
</div>
......@@ -55,8 +87,10 @@
<script>
import {
saveReviewArchiFollowCheckRightSuggestion,
queryReviewArchiFollowCheckRightSuggestionDetails,
saveArchitectureFollows,
viewArchitectureFollows,
qViewArchitectureFollows,
getArchiViewManage,
} from '@/api/index.js'
export default {
name: 'tab2',
......@@ -66,37 +100,106 @@ export default {
resultContent: '',
leftBaseOptions: [],
rightBaseOptions: [],
leftLoading: false,
rightLoading: false,
leftSelect: undefined,
leftSelectOptions: [],
rightSelect: undefined,
rightSelectOptions: [],
row: {},
}
},
created() {
this.getDetail()
this.row = JSON.parse(this.$route.query.row)
this.getLeftTree().then((res) => {
this.getDetail()
})
this.getRightTree()
this.getLeftQview()
this.getRightQview()
},
methods: {
leftSelectChange() {
this.getDetail()
},
commonParams() {
return {
reviewEnum: 'APPLICATION_ARCHITECTURE_CONFORMANCE_SUPERVISE',
appId: this.row.appId,
reviewState: 0,
}
},
getDetail() {
const params = {
reviewEnum: 'FUNCTIONAL_SATISFACTION_REVIEW',
prjId: this.$route.query.prjId,
...this.commonParams(),
subViewId: this.leftSelect,
}
queryReviewArchiFollowCheckRightSuggestionDetails(params).then((res) => {
viewArchitectureFollows(params).then((res) => {
if (res.code === 200) {
this.resultContent = res.data.reviewSuggestion
this.isMeet = res.data.reviewState
}
})
},
getLeftTree() {
return getArchiViewManage({ archiStage: 2 }).then((res) => {
if (res.code === 200) {
this.leftSelectOptions = res.data
this.leftSelect = this.leftSelectOptions[0].viewId
}
})
},
getRightTree() {
getArchiViewManage({ archiStage: 3 }).then((res) => {
if (res.code === 200) {
this.rightSelectOptions = res.data
this.rightSelect = this.rightSelectOptions[0].viewId
}
})
},
getLeftQview() {
const params = {
appId: this.row.appId,
archiBelongId: 2,
archiStage: 2,
}
this.leftLoading = true
qViewArchitectureFollows(params).then((res) => {
this.leftLoading = false
if (res.code === 200) {
this.leftBaseOptions = res.data.map(
(v) => v.metaModelSvg && `data:image/png;base64,${v.metaModelSvg}`,
)
}
})
},
getRightQview() {
const params = {
appId: this.row.appId,
archiBelongId: 2,
archiStage: 3,
}
this.rightLoading = true
qViewArchitectureFollows(params).then((res) => {
this.rightLoading = false
if (res.code === 200) {
this.rightBaseOptions = res.data.map(
(v) => v.metaModelSvg && `data:image/png;base64,${v.metaModelSvg}`,
)
}
})
},
handleSave() {
const params = {
reviewEnum: 'FUNCTIONAL_SATISFACTION_REVIEW',
prjId: this.$route.query.prjId,
reviewState: '0',
...this.commonParams(),
reviewSuggestion: this.resultContent,
subViewId: this.leftSelect,
}
const loading = this.$loading({
lock: true,
text: '保存中',
spinner: 'el-icon-loading',
})
saveReviewArchiFollowCheckRightSuggestion(params).then((res) => {
saveArchitectureFollows(params).then((res) => {
loading.close()
if (res.code == 200) {
this.$message.success('保存成功')
......
......@@ -3,15 +3,34 @@
<div class="content flex">
<div class="left_container m-r-10 flex-column">
<div class="left_container_title">
<i class="el-icon-caret-right icon"></i>
<span>系统数据架构视图</span>
<div class="flex">
<i class="el-icon-caret-right icon"></i>
<span>系统业务架构视图</span>
</div>
<el-select
class="select-title"
@change="leftSelectChange"
v-model="leftSelect"
>
<el-option
:label="item.viewName"
:value="item.viewId"
v-for="item in leftSelectOptions"
:key="item.viewId"
></el-option>
</el-select>
</div>
<div class="left_container_content flex-1">
<div
class="left_container_content flex-1"
v-loading="leftLoading"
element-loading-text="加载中"
>
<img
v-for="(item, idx) in leftBaseOptions"
:key="idx"
:src="item"
alt=""
class="w-100 h-100"
/>
</div>
</div>
......@@ -19,15 +38,28 @@
<div class="right_container_title flex-b-c">
<div class="flex">
<i class="el-icon-caret-right icon"></i>
<span>概设阶段数据架构视图</span>
<span>概设阶段业务架构视图</span>
</div>
<el-select class="select-title" v-model="rightSelect">
<el-option
:label="item.viewName"
:value="item.viewId"
v-for="item in rightSelectOptions"
:key="item.viewId"
></el-option>
</el-select>
</div>
<div class="right_container_content flex-1">
<div
class="right_container_content flex-1"
v-loading="rightLoading"
element-loading-text="加载中"
>
<img
v-for="(item, idx) in rightBaseOptions"
:key="idx"
:src="item"
alt=""
class="w-100 h-100"
/>
</div>
</div>
......@@ -55,8 +87,10 @@
<script>
import {
saveReviewArchiFollowCheckRightSuggestion,
queryReviewArchiFollowCheckRightSuggestionDetails,
saveArchitectureFollows,
viewArchitectureFollows,
qViewArchitectureFollows,
getArchiViewManage,
} from '@/api/index.js'
export default {
name: 'tab3',
......@@ -66,37 +100,106 @@ export default {
resultContent: '',
leftBaseOptions: [],
rightBaseOptions: [],
leftLoading: false,
rightLoading: false,
leftSelect: undefined,
leftSelectOptions: [],
rightSelect: undefined,
rightSelectOptions: [],
row: {},
}
},
created() {
this.getDetail()
this.row = JSON.parse(this.$route.query.row)
this.getLeftTree().then((res) => {
this.getDetail()
})
this.getRightTree()
this.getLeftQview()
this.getRightQview()
},
methods: {
leftSelectChange() {
this.getDetail()
},
commonParams() {
return {
reviewEnum: 'TECHNICAL_ARCHITECTURE_CONFORMANCE_SUPERVISE',
appId: this.row.appId,
reviewState: 0,
}
},
getDetail() {
const params = {
reviewEnum: 'OPERATIONAL_RELIABILITY_REVIEW',
prjId: this.$route.query.prjId,
...this.commonParams(),
subViewId: this.leftSelect,
}
queryReviewArchiFollowCheckRightSuggestionDetails(params).then((res) => {
viewArchitectureFollows(params).then((res) => {
if (res.code === 200) {
this.resultContent = res.data.reviewSuggestion
this.isMeet = res.data.reviewState
}
})
},
getLeftTree() {
return getArchiViewManage({ archiStage: 2 }).then((res) => {
if (res.code === 200) {
this.leftSelectOptions = res.data
this.leftSelect = this.leftSelectOptions[0].viewId
}
})
},
getRightTree() {
getArchiViewManage({ archiStage: 3 }).then((res) => {
if (res.code === 200) {
this.rightSelectOptions = res.data
this.rightSelect = this.rightSelectOptions[0].viewId
}
})
},
getLeftQview() {
const params = {
appId: this.row.appId,
archiBelongId: 3,
archiStage: 2,
}
this.leftLoading = true
qViewArchitectureFollows(params).then((res) => {
this.leftLoading = false
if (res.code === 200) {
this.leftBaseOptions = res.data.map(
(v) => v.metaModelSvg && `data:image/png;base64,${v.metaModelSvg}`,
)
}
})
},
getRightQview() {
const params = {
appId: this.row.appId,
archiBelongId: 3,
archiStage: 3,
}
this.rightLoading = true
qViewArchitectureFollows(params).then((res) => {
this.rightLoading = false
if (res.code === 200) {
this.rightBaseOptions = res.data.map(
(v) => v.metaModelSvg && `data:image/png;base64,${v.metaModelSvg}`,
)
}
})
},
handleSave() {
const params = {
reviewEnum: 'OPERATIONAL_RELIABILITY_REVIEW',
prjId: this.$route.query.prjId,
reviewState: '0',
...this.commonParams(),
reviewSuggestion: this.resultContent,
subViewId: this.leftSelect,
}
const loading = this.$loading({
lock: true,
text: '保存中',
spinner: 'el-icon-loading',
})
saveReviewArchiFollowCheckRightSuggestion(params).then((res) => {
saveArchitectureFollows(params).then((res) => {
loading.close()
if (res.code == 200) {
this.$message.success('保存成功')
......
......@@ -3,15 +3,34 @@
<div class="content flex">
<div class="left_container m-r-10 flex-column">
<div class="left_container_title">
<i class="el-icon-caret-right icon"></i>
<span>系统技术架构视图</span>
<div class="flex">
<i class="el-icon-caret-right icon"></i>
<span>系统业务架构视图</span>
</div>
<el-select
class="select-title"
@change="leftSelectChange"
v-model="leftSelect"
>
<el-option
:label="item.viewName"
:value="item.viewId"
v-for="item in leftSelectOptions"
:key="item.viewId"
></el-option>
</el-select>
</div>
<div class="left_container_content flex-1">
<div
class="left_container_content flex-1"
v-loading="leftLoading"
element-loading-text="加载中"
>
<img
v-for="(item, idx) in leftBaseOptions"
:key="idx"
:src="item"
alt=""
class="w-100 h-100"
/>
</div>
</div>
......@@ -19,15 +38,28 @@
<div class="right_container_title flex-b-c">
<div class="flex">
<i class="el-icon-caret-right icon"></i>
<span>概设阶段技术架构视图</span>
<span>概设阶段业务架构视图</span>
</div>
<el-select class="select-title" v-model="rightSelect">
<el-option
:label="item.viewName"
:value="item.viewId"
v-for="item in rightSelectOptions"
:key="item.viewId"
></el-option>
</el-select>
</div>
<div class="right_container_content flex-1">
<div
class="right_container_content flex-1"
v-loading="rightLoading"
element-loading-text="加载中"
>
<img
v-for="(item, idx) in rightBaseOptions"
:key="idx"
:src="item"
alt=""
class="w-100 h-100"
/>
</div>
</div>
......@@ -55,8 +87,10 @@
<script>
import {
saveReviewArchiFollowCheckRightSuggestion,
queryReviewArchiFollowCheckRightSuggestionDetails,
saveArchitectureFollows,
viewArchitectureFollows,
qViewArchitectureFollows,
getArchiViewManage,
} from '@/api/index.js'
export default {
name: 'tab4',
......@@ -66,37 +100,106 @@ export default {
resultContent: '',
leftBaseOptions: [],
rightBaseOptions: [],
leftLoading: false,
rightLoading: false,
leftSelect: undefined,
leftSelectOptions: [],
rightSelect: undefined,
rightSelectOptions: [],
row: {},
}
},
created() {
this.getDetail()
this.row = JSON.parse(this.$route.query.row)
this.getLeftTree().then((res) => {
this.getDetail()
})
this.getRightTree()
this.getLeftQview()
this.getRightQview()
},
methods: {
leftSelectChange() {
this.getDetail()
},
commonParams() {
return {
reviewEnum: 'DATA_ARCHITECTURE_CONFORMANCE_SUPERVISE',
appId: this.row.appId,
reviewState: 0,
}
},
getDetail() {
const params = {
reviewEnum: 'SYSTEM_PRACTICALITY_REVIEW',
prjId: this.$route.query.prjId,
...this.commonParams(),
subViewId: this.leftSelect,
}
queryReviewArchiFollowCheckRightSuggestionDetails(params).then((res) => {
viewArchitectureFollows(params).then((res) => {
if (res.code === 200) {
this.resultContent = res.data.reviewSuggestion
this.isMeet = res.data.reviewState
}
})
},
getLeftTree() {
return getArchiViewManage({ archiStage: 2 }).then((res) => {
if (res.code === 200) {
this.leftSelectOptions = res.data
this.leftSelect = this.leftSelectOptions[0].viewId
}
})
},
getRightTree() {
getArchiViewManage({ archiStage: 3 }).then((res) => {
if (res.code === 200) {
this.rightSelectOptions = res.data
this.rightSelect = this.rightSelectOptions[0].viewId
}
})
},
getLeftQview() {
const params = {
appId: this.row.appId,
archiBelongId: 4,
archiStage: 2,
}
this.leftLoading = true
qViewArchitectureFollows(params).then((res) => {
this.leftLoading = false
if (res.code === 200) {
this.leftBaseOptions = res.data.map(
(v) => v.metaModelSvg && `data:image/png;base64,${v.metaModelSvg}`,
)
}
})
},
getRightQview() {
const params = {
appId: this.row.appId,
archiBelongId: 4,
archiStage: 3,
}
this.rightLoading = true
qViewArchitectureFollows(params).then((res) => {
this.rightLoading = false
if (res.code === 200) {
this.rightBaseOptions = res.data.map(
(v) => v.metaModelSvg && `data:image/png;base64,${v.metaModelSvg}`,
)
}
})
},
handleSave() {
const params = {
reviewEnum: 'SYSTEM_PRACTICALITY_REVIEW',
prjId: this.$route.query.prjId,
reviewState: '0',
...this.commonParams(),
reviewSuggestion: this.resultContent,
subViewId: this.leftSelect,
}
const loading = this.$loading({
lock: true,
text: '保存中',
spinner: 'el-icon-loading',
})
saveReviewArchiFollowCheckRightSuggestion(params).then((res) => {
saveArchitectureFollows(params).then((res) => {
loading.close()
if (res.code == 200) {
this.$message.success('保存成功')
......
......@@ -3,15 +3,34 @@
<div class="content flex">
<div class="left_container m-r-10 flex-column">
<div class="left_container_title">
<i class="el-icon-caret-right icon"></i>
<span>系统安全架构视图</span>
<div class="flex">
<i class="el-icon-caret-right icon"></i>
<span>系统业务架构视图</span>
</div>
<el-select
class="select-title"
@change="leftSelectChange"
v-model="leftSelect"
>
<el-option
:label="item.viewName"
:value="item.viewId"
v-for="item in leftSelectOptions"
:key="item.viewId"
></el-option>
</el-select>
</div>
<div class="left_container_content flex-1">
<div
class="left_container_content flex-1"
v-loading="leftLoading"
element-loading-text="加载中"
>
<img
v-for="(item, idx) in leftBaseOptions"
:key="idx"
:src="item"
alt=""
class="w-100 h-100"
/>
</div>
</div>
......@@ -19,15 +38,28 @@
<div class="right_container_title flex-b-c">
<div class="flex">
<i class="el-icon-caret-right icon"></i>
<span>概设阶段安全架构视图</span>
<span>概设阶段业务架构视图</span>
</div>
<el-select class="select-title" v-model="rightSelect">
<el-option
:label="item.viewName"
:value="item.viewId"
v-for="item in rightSelectOptions"
:key="item.viewId"
></el-option>
</el-select>
</div>
<div class="right_container_content flex-1">
<div
class="right_container_content flex-1"
v-loading="rightLoading"
element-loading-text="加载中"
>
<img
v-for="(item, idx) in rightBaseOptions"
:key="idx"
:src="item"
alt=""
class="w-100 h-100"
/>
</div>
</div>
......@@ -55,8 +87,10 @@
<script>
import {
saveReviewArchiFollowCheckRightSuggestion,
queryReviewArchiFollowCheckRightSuggestionDetails,
saveArchitectureFollows,
viewArchitectureFollows,
qViewArchitectureFollows,
getArchiViewManage,
} from '@/api/index.js'
export default {
name: 'tab5',
......@@ -66,37 +100,106 @@ export default {
resultContent: '',
leftBaseOptions: [],
rightBaseOptions: [],
leftLoading: false,
rightLoading: false,
leftSelect: undefined,
leftSelectOptions: [],
rightSelect: undefined,
rightSelectOptions: [],
row: {},
}
},
created() {
this.getDetail()
this.row = JSON.parse(this.$route.query.row)
this.getLeftTree().then((res) => {
this.getDetail()
})
this.getRightTree()
this.getLeftQview()
this.getRightQview()
},
methods: {
leftSelectChange() {
this.getDetail()
},
commonParams() {
return {
reviewEnum: 'SECURITY_ARCHITECTURE_CONFORMANCE_SUPERVISE',
appId: this.row.appId,
reviewState: 0,
}
},
getDetail() {
const params = {
reviewEnum: 'SYSTEM_SECURITY_REVIEW',
prjId: this.$route.query.prjId,
...this.commonParams(),
subViewId: this.leftSelect,
}
queryReviewArchiFollowCheckRightSuggestionDetails(params).then((res) => {
viewArchitectureFollows(params).then((res) => {
if (res.code === 200) {
this.resultContent = res.data.reviewSuggestion
this.isMeet = res.data.reviewState
}
})
},
getLeftTree() {
return getArchiViewManage({ archiStage: 2 }).then((res) => {
if (res.code === 200) {
this.leftSelectOptions = res.data
this.leftSelect = this.leftSelectOptions[0].viewId
}
})
},
getRightTree() {
getArchiViewManage({ archiStage: 3 }).then((res) => {
if (res.code === 200) {
this.rightSelectOptions = res.data
this.rightSelect = this.rightSelectOptions[0].viewId
}
})
},
getLeftQview() {
const params = {
appId: this.row.appId,
archiBelongId: 5,
archiStage: 2,
}
this.leftLoading = true
qViewArchitectureFollows(params).then((res) => {
this.leftLoading = false
if (res.code === 200) {
this.leftBaseOptions = res.data.map(
(v) => v.metaModelSvg && `data:image/png;base64,${v.metaModelSvg}`,
)
}
})
},
getRightQview() {
const params = {
appId: this.row.appId,
archiBelongId: 5,
archiStage: 3,
}
this.rightLoading = true
qViewArchitectureFollows(params).then((res) => {
this.rightLoading = false
if (res.code === 200) {
this.rightBaseOptions = res.data.map(
(v) => v.metaModelSvg && `data:image/png;base64,${v.metaModelSvg}`,
)
}
})
},
handleSave() {
const params = {
reviewEnum: 'SYSTEM_SECURITY_REVIEW',
prjId: this.$route.query.prjId,
reviewState: '0',
...this.commonParams(),
reviewSuggestion: this.resultContent,
subViewId: this.leftSelect,
}
const loading = this.$loading({
lock: true,
text: '保存中',
spinner: 'el-icon-loading',
})
saveReviewArchiFollowCheckRightSuggestion(params).then((res) => {
saveArchitectureFollows(params).then((res) => {
loading.close()
if (res.code == 200) {
this.$message.success('保存成功')
......
......@@ -7,7 +7,17 @@
@close="handleClose()"
@open="handleOpen()"
>
<div></div>
<div>
<div class="prjName">项目名称:{{ rowData.prjName }}</div>
<el-tabs tab-position="left">
<el-tab-pane :label="item.name" v-for="item in options" :key="item.name"
><div class="content">
{{ item.name }}
</div></el-tab-pane
>
</el-tabs>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="handleClose()" size="mini">关 闭</el-button>
</span></el-dialog
......@@ -32,7 +42,25 @@ export default {
},
},
data() {
return {}
return {
options: [
{
name: '技术路线表',
},
{
name: '架构遵从表',
},
{
name: '功能清单',
},
{
name: '数据实体清单',
},
{
name: '集成系统清单',
},
],
}
},
components: {},
computed: {
......@@ -61,4 +89,14 @@ export default {
</script>
<style scoped lang="scss">
@import '@/styles/elementui.scss';
.prjName {
font-weight: bold;
text-align: left;
font-size: 20px;
margin-bottom: 20px;
}
.content {
height: 300px;
overflow-y: auto;
}
</style>
......@@ -20,12 +20,19 @@
v-loading="leftLoading"
element-loading-text="加载中"
>
<img
<!-- <img
v-for="(item, idx) in leftBaseOptions"
:key="idx"
:src="item"
alt=""
/>
/> -->
<div class="office w-100 h-100">
<vab-only-office
id="office-preview"
:documentServerUrl="documentServerUrl"
:config="config"
/>
</div>
</div>
</div>
</div>
......@@ -60,6 +67,8 @@
<script>
import OnlineReviewLeft from '@/views/conceptualViewOrg/OnlineReviewLeft'
import { getReviewNorm, editConceptualViewOrg, exportRiskReport } from '@/api'
import { documentServerUrl, documentServerUrl2 } from '@/config'
import { EADC_SHARED_ABILITY } from '@/config/micromodule'
export default {
name: 'OnlineReview',
components: {
......@@ -73,6 +82,46 @@ export default {
leftBaseOptions: [],
rightBaseOptions: [],
onlineReviewState: 1,
documentServerUrl: documentServerUrl2,
config: {
document: {
fileType: 'docx',
// 给服务端用的唯一id,同一个id就会获取服务器缓存里的文件(有这个key,就会先根据它去缓存里找),这项如果最开始只是先试用,可以先给个空字符串
key: '',
// 文件名
title: '概要设计说明书.docx',
//相关权限
// permissions: {
// copy: true, //定义内容是否可以复制到剪贴板。如果该参数设置为false,则只能在当前文档编辑器中粘贴内容。默认值为true。
// download: true, //定义文档是可以下载还是只能在线查看或编辑。如果下载权限设置为“假”的下载为...菜单选项将是缺席的文件菜单。默认值为true。
// edit: true, //定义文档是可以编辑还是只能查看。如果编辑权限设置为“true”,则文件菜单将包含编辑文档菜单选项;请注意,如果编辑权限设置为“false”,文档将在查看器中打开,即使模式参数设置为edit,您也无法将其切换到编辑器。默认值为true。
// print: true, //定义是否可以打印文档。如果打印权限设置为“false”的打印菜单选项将是缺席的文件菜单。默认值为true
// },
// 所要渲染的文件的绝对路径,这个参数很重要,它传的不是文件的本地地址,而是需要把文件传到项目所依赖的服务器,然后拿到文件在服务器的url地址(这个一般情况需要后端支持)才可以用,这个参数决定了能不能实例化出来onlyoffice对象
url: `${documentServerUrl}${EADC_SHARED_ABILITY}/downloadFile/302`,
},
documentType: 'word',
height: '100%',
width: '100%',
editorConfig: {
//语言:zh-CN简体中文/en英文
lang: 'zh-CN',
//阅读状态 view/edit
mode: 'edit',
customization: {
//是否显示插件
plugins: false,
forcesave: true,
autosave: false,
},
user: {
// 当前正在view/edit此文档的用户信息
name: '管理员',
},
// 指定文档存储服务器的绝对路径
callbackUrl: `${documentServerUrl}${EADC_SHARED_ABILITY}/callback?fileId=302`,
},
},
}
},
created() {
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!