Commit 33de6631 by liuyong
2 parents 555553b9 b0ec858c
......@@ -124,7 +124,12 @@ const routes = [
path: '/main/archiViewManageDetails/:id',//架构视图管理详情
name: 'archiViewManageDetails',
component: () => import('@/views/archi-view-manage/details.vue'),
},
},
{
path: '/main/archiAssetManage/',//总体架构资产管理
name: 'archiAssetManage',
component: () => import('@/views/archi-asset-manage/index.vue'),
},
]
}
]
......
......@@ -112,7 +112,7 @@
<span style="margin-left: 5px;">系统架构资产维护</span>
</div>
<div class="menu_1_item_subtitle">
<div class="menu_1_item_subtitle" @click="jumpPage('总体架构资产设计与维护', '系统架构资产维护', '系统架构资产维护')">
<img src="@/assets/main/3img.png" alt="">
<span style="margin-left: 5px;">系统架构资产维护</span>
</div>
......@@ -583,6 +583,10 @@
this.$router.push( '/main/archiViewManage', () => {}, () => {} );
this.visible1 = false;
break;
case '系统架构资产维护':
this.$router.push( '/main/archiAssetManage', () => {}, () => {} );
this.visible1 = false;
break;
}
}
}
......
<template>
<div class="typicalExampleManage">
<div class="table_container">
<div class="search_menu">
<div class="search_menu_item_container">
<div class="search_menu_item">
<span class="search_title">业务组件名称</span>
<el-input v-model="params.tcName" placeholder="请输入内容" class="search_item"></el-input>
</div>
<div class="search_menu_item">
<span class="search_title">创建人</span>
<el-input v-model="params.tcName" placeholder="请输入内容" class="search_item"></el-input>
</div>
<!-- <div class="search_menu_item">
<span class="search_title">案例类型</span>
<el-select v-model="params.tcType" placeholder="请选择" class="search_item">
<el-option v-for="item in selectData1" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</div>
<div class="search_menu_item">
<span class="search_title">问题类型</span>
<el-select v-model="params.problemType" placeholder="请选择" class="search_item">
<el-option v-for="item in selectData2" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</div> -->
</div>
<div class="search_menu_btn_container">
<div class="query_btn" @click="getList">
<img class="btn_icon" src="@/assets/archi-ele-list/search.png" alt="" />
<p>查询</p>
</div>
<div class="reset_btn" @click="reset">
<img class="btn_icon" src="@/assets/archi-ele-list/reset.png" alt="" />
<p>重置</p>
</div>
</div>
</div>
<div class="search_btn">
<el-button type="primary" size="medium" icon="el-icon-document-add" @click="operate('add')">新建</el-button>
<!-- <el-button type="primary" size="medium" icon="el-icon-delete" @click="operate('delMultiple')">删除</el-button>
<el-button type="primary" size="medium" icon="el-icon-plus" @click="exportFile">导出</el-button> -->
</div>
<el-table :height="tableHeight" @selection-change="handleSelectionChange" v-loading="loading" :data="tableData" stripe border>
<!-- <el-table-column type="selection" width="55" :selectable="selectable"></el-table-column> -->
<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="tcName" label="业务组件名称" align="center"></el-table-column>
<el-table-column prop="tcName" label="业务组件类型" align="center"></el-table-column>
<el-table-column prop="tcName" label="上级业务组件" align="center"></el-table-column>
<el-table-column prop="tcName" label="创建人" align="center"></el-table-column>
<el-table-column prop="tcName" label="创建时间" align="center"></el-table-column>
<!-- <el-table-column prop="tcType" label="案例类型" align="center">
<template slot-scope="scope">
<span >{{dicObj.tcType[String(scope.row.tcType)]}}</span>
</template>
</el-table-column>
<el-table-column prop="prjType" label="项目类型" align="center">
<template slot-scope="scope">
<span >{{dicObj.prjType[String(scope.row.prjType)]}}</span>
</template>
</el-table-column>
<el-table-column prop="buildContent" label="建设内容" align="center"></el-table-column>
<el-table-column prop="archiDetail" label="架构详情" align="center" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="problemType" label="问题类型" align="center">
<template slot-scope="scope">
<span >{{dicObj.problemType[String(scope.row.problemType)]}}</span>
</template>
</el-table-column>
<el-table-column prop="problemLevel" label="问题等级" align="center">
<template slot-scope="scope">
<span >{{dicObj.problemLevel[String(scope.row.problemLevel)]}}</span>
</template>
</el-table-column>
<el-table-column prop="problemContent" label="问题描述" align="center" :show-overflow-tooltip="true"></el-table-column> -->
<el-table-column label="操作" width="260" align="center">
<template slot-scope="scope">
<div style="display: flex;align-items: center;justify-content: center;">
<el-button icon="el-icon-edit" type="primary" size="mini" @click="operate('edit',scope.row)">编辑</el-button>
<el-button class="shanChu_btn" icon="el-icon-delete" size="mini" @click="operate('del',scope.row)">删除</el-button>
</div>
</template>
</el-table-column>
</el-table>
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="pager.current"
:page-sizes="pager.sizes"
:page-size="pager.size"
layout="total, sizes, prev, pager, next, jumper"
:total="pager.total">
</el-pagination>
</div>
<el-dialog
:title="title"
:visible.sync="add_dialog"
:center="false"
width="60%">
<div class="add_dialog_content">
<div class="add_dialog_content">
<el-form :model="formData" ref="form">
<div class="form_item_container">
<el-form-item label="案例名称:" prop="tcName">
<el-input v-model="formData.tcName"></el-input>
</el-form-item>
<el-form-item label="案例类型:" prop="tcType">
<el-select v-model="formData.tcType" placeholder="请选择">
<el-option v-for="item in selectData1" :key="item.label" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="项目类型:" prop="prjType">
<el-select v-model="formData.prjType" placeholder="请选择">
<el-option v-for="item in selectData3" :key="item.label" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="建设内容:" prop="buildContent">
<el-input v-model="formData.buildContent"></el-input>
</el-form-item>
<el-form-item label="问题类型:" prop="problemType">
<el-select v-model="formData.problemType" placeholder="请选择">
<el-option v-for="item in selectData2" :key="item.label" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="问题等级:" prop="problemLevel">
<el-select v-model="formData.problemLevel" placeholder="请选择">
<el-option v-for="item in selectData4" :key="item.label" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item class="cross1" label="架构详情:" prop="archiDetail">
<el-input type="textarea" v-model="formData.archiDetail" maxlength="200" show-word-limit></el-input>
</el-form-item>
<el-form-item class="cross1" label="问题描述:" prop="problemContent">
<el-input type="textarea" v-model="formData.problemContent" maxlength="200" show-word-limit></el-input>
</el-form-item>
</div>
</el-form>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button class="greenButton" @click="operate('create')">确定</el-button>
<el-button @click="add_dialog = false">取消</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {
getDianXingAnLiSelectData,
getTypicalExampleList,
getTypicalExampleAdd,
getTypicalExampleUpdate,
getTypicalExampleDel,
getTypicalExampleExcel,
} from '@/api/index.js';
import { MessageBox, Message } from 'element-ui';
import $ from 'jquery';
export default {
name: 'TypicalExampleManage',
components: {
},
data() {
return {
tableData: [],
add_dialog: false,
title: "",
loading: false,
selectList: [],
selectData1: [
{
label: "移动应用典型案例",
value: 1,
},
{
label: "数据模型典型案例",
value: 2,
},
{
label: "数据中台典型案例",
value: 3,
},
],
selectData2: [
{
label: "一致性",
value: 1,
},
{
label: "架构遵从",
value: 2,
},
{
label: "重复风险",
value: 3,
},
],
selectData3: [
{
label: "暂时未例举",
value: 1,
},
],
selectData4: [
{
label: "一级",
value: 1,
},
{
label: "二级",
value: 2,
},
{
label: "三级",
value: 3,
},
],
params: {
current: 1,
pageSize: 10,
tcName: "",
tcType: "",
problemType: "",
},
pager: {
current: 1,
sizes: [10, 20, 50, 100, 200],
size: 10,
total: 0, //总条数
},
formData: {
tcName: '',
tcType: '',
prjType: '',
buildContent: '',
problemType: '',
problemLevel: '',
problemContent: '',
archiDetail: "",
},
tableHeight: null,
dicObj: {
tcType: {
// 1: "在库",
// 2: "出库",
// 3: "出库",
},
prjType: {},
problemType: {},
problemLevel: {},
},
};
},
mounted(){
window.addEventListener('resize', () => {
this.set_table_height();
})
this.set_table_height();
this.selectData1.forEach(item => {
this.dicObj.tcType[item.value] = item.label;
});
this.selectData2.forEach(item => {
this.dicObj.problemType[item.value] = item.label;
});
this.selectData3.forEach(item => {
this.dicObj.prjType[item.value] = item.label;
});
this.selectData4.forEach(item => {
this.dicObj.problemLevel[item.value] = item.label;
});
// 初始化查询列表
this.getList();
// 获取元素列表
this.get_an_li_lei_xing_select();
this.get_wen_ti_lei_xing_select();
this.get_xiang_mu_lei_xing_select();
this.get_wen_ti_deng_ji_select();
},
methods: {
// 查询列表
getList() {
getTypicalExampleList(this.params).then(res => {
if (res.code == 200) {
this.pager.total = res.data.total;
this.tableData = res.data.records;
}
});
},
// 重置
reset() {
this.params = {
current: 1,
pageSize: 10,
tcName: "",
tcType: "",
problemType: "",
}
},
// 所有操作
operate(type,item){
this.openType = type;
if (type == "add") {
this.add_dialog = true;
this.title = "新建案例";
this.resetForm();
}else if (type == "edit") {
this.add_dialog = true;
this.title = "编辑案例";
this.formData = item;
this.formData.tcType = String(this.formData.tcType);
this.formData.problemType = String(this.formData.problemType);
this.formData.prjType = String(this.formData.prjType);
this.formData.problemLevel = String(this.formData.problemLevel);
}else if (type == "create") {
if (this.formData.ktcId) {
// 编辑保存
getTypicalExampleUpdate(this.formData).then(res => {
if (res.code == 200) {
this.$message.success("保存成功");
this.add_dialog = false;
this.getList();
}else{
this.add_dialog = false;
this.$message.error(res.msg);
}
});
}else{
// 新建保存
getTypicalExampleAdd(this.formData).then(res => {
if (res.code == 200) {
this.$message.success("保存成功");
this.add_dialog = false;
this.getList();
}else{
this.add_dialog = false;
this.$message.error(res.msg);
}
});
}
}else if (type == "del") {
// 删除
this.$confirm("确认删除吗", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
let params = {
ids: [item.ktcId],
};
getTypicalExampleDel(params).then(res => {
if (res.code == 200) {
this.$message.success("删除成功");
this.getList();
}else{
this.$message.error(res.msg);
}
});
}).catch(() => {
});
}else if (type == "delMultiple") {
if (this.selectList.length <= 0) {
this.$message.error("请选择一项进行删除");
return;
}
let params = {
ids: [],
};
this.selectList.map(item => {
params.ids.push(item.ktcId)
})
this.$confirm("确认批量删除吗", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
getTypicalExampleDel(params).then(res => {
if (res.code == 200) {
this.$message.success("批量删除成功");
this.getList();
}else{
this.$message.error(res.msg);
}
});
}).catch(() => {
});
}
},
// 新建清空表单
resetForm(){
this.formData = {
tcName: '',
tcType: '',
prjType: '',
buildContent: '',
problemType: '',
problemLevel: '',
problemContent: '',
archiDetail: "",
}
},
exportFile() {//导出
getTypicalExampleExcel(this.params).then(res => {
let blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
let url = URL.createObjectURL(blob);
let link = document.createElement('a');
link.href = url;
document.body.appendChild(link);
link.click();
})
},
get_an_li_lei_xing_select() {//案例类型下拉
const params = {
key: "kl_case_type"
}
getDianXingAnLiSelectData(params).then(res => {
if(res.code == 200) {
this.selectData1 = res.data;
}
})
},
get_wen_ti_lei_xing_select() {//问题类型下拉
const params = {
key: "kl_question_type"
}
getDianXingAnLiSelectData(params).then(res => {
if(res.code == 200) {
this.selectData2 = res.data;
}
})
},
get_xiang_mu_lei_xing_select() {//项目类型下拉
const params = {
key: "kl_project_type"
}
getDianXingAnLiSelectData(params).then(res => {
if(res.code == 200) {
this.selectData3 = res.data;
}
})
},
get_wen_ti_deng_ji_select() {//问题等级下拉
const params = {
key: "kl_question_level"
}
getDianXingAnLiSelectData(params).then(res => {
if(res.code == 200) {
this.selectData4 = res.data;
}
})
},
set_table_height() {//动态设置表格高度
const table_container_height = $(".table_container").height();
const search_menu_height = $(".search_menu").height();
const search_btn_height = $(".search_btn").outerHeight(true);
this.tableHeight = table_container_height - search_menu_height - search_btn_height - 90 + 'px';
},
selectable(row) {//表格勾选框禁用
if(row.state == 1) {
return false; // 禁用
} else {
return true; //不禁用
}
},
// 表格多选
handleSelectionChange(e) {
this.selectList = e;
},
// 每页条数改变
handleSizeChange(val) {
this.pager.current = 1;
this.params.current = 1;
this.pager.size = val;
this.params.pageSize = val;
this.getList();
},
//当前页码改变
handleCurrentChange(val) {
this.pager.current = val;
this.params.current = val;
this.getList();
},
}
}
</script>
<style>
.confirmClass{
background-color: #0D867F !important;
}
.el-message-box__content{
padding: 60px 15px 60px 15px;
}
</style>
<style scoped>
.form_item_container{
display: flex;
flex-wrap: wrap;
}
.el-form-item{
display: flex;
width: 33%;
}
.cross1{
width: 100%;
}
/deep/ .cross1 > .el-form-item__content{
width: 86.4% !important;
}
.typicalExampleManage{
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
}
.dialog_content_1{
display: flex;
justify-content: space-between;
}
.el-button--primary{
background: rgba(13,134,127,0.1);
color: #0D867F;
border: 0;
}
.add_select_item_icon_container{
margin-top: 10px;
text-align: center;
cursor: pointer;
}
/deep/ .el-dialog__header{
background-color: #0D867F;
text-align: left;
}
/deep/ .el-input-group__append{
background-color: #0D867F;
color: #fff;
cursor: pointer;
}
/deep/ .el-dialog__title{
color: #fff;
}
/deep/ .el-dialog__close {
color: #fff;
}
.search_menu{
display: flex;
justify-content: space-between;
}
.search_menu_item_container{
display: flex;
align-items: center;
}
.search_menu_btn_container{
display: flex;
align-items: center;
}
.search_menu_item{
display: flex;
align-items: center;
width: 344px;
}
.search_title{
/* width: 20%; */
flex-shrink: 0;
margin-right: 15px;
}
.search_item{
width: 60%;
}
.search_btn{
width: 100%;
display: flex;
margin-top: 50px;
margin-bottom: 20px;
}
.el-button--default{
border: 0;
}
.shanChu_btn{
color: #DD6A15;
background-color: #F8EBE2;
}
.tingYong_btn{
color: #DEA82A;
background-color: #FDF6E6;
}
.el-button.is-disabled{
color: #C0C4CC !important;
background-color: #fff !important;
}
.add_btn{
display: flex;
align-items: center;
justify-content: center;
width: 76px;
height: 32px;
background: rgba(13,134,127,0.1);
border-radius: 6px 6px 6px 6px;
border: 1px solid #0D867F;
font-size: 14px;
color: #0D867F;
cursor: pointer;
}
.version_btn{
display: flex;
align-items: center;
justify-content: center;
width: 104px;
height: 32px;
background: rgba(13,134,127,0.1);
border-radius: 6px 6px 6px 6px;
border: 1px solid #0D867F;
font-size: 14px;
color: #0D867F;
cursor: pointer;
margin-left: 15px;
}
.query_btn{
display: flex;
align-items: center;
justify-content: center;
width: 76px;
height: 32px;
background: rgba(13,134,127,1);
border-radius: 6px 6px 6px 6px;
border: 1px solid #0D867F;
font-size: 14px;
color: #fff;
margin-right: 10px;
cursor: pointer;
}
.reset_btn{
display: flex;
align-items: center;
justify-content: center;
width: 76px;
height: 32px;
background: rgba(244,244,244,1);
border-radius: 6px 6px 6px 6px;
border: 1px solid #ccc;
font-size: 14px;
color: #666;
cursor: pointer;
}
.btn_icon{
margin-right: 10px;
}
.table_container{
width: 97%;
height: calc(100% - 40px);
margin-top: 20px;
}
.el-pagination{
margin-top: 30px;
}
/deep/ .el-pagination.is-background .el-pager li:not(.disabled).active{
background-color: #0D867F;
}
.greenButton{
background-color: #0D867F;
color: #fff;
}
</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!