Commit 43baef13 by “lijun”
2 parents 5f2c6ec4 830bfaac
File mode changed
// const ajaxUrl = '172.20.10.3:7003'; // const ajaxUrl = '172.20.10.3:7003';
// const ajaxUrl = '43.143.211.42'; // const ajaxUrl = '43.143.211.42';
// const ajaxUrl = "http://172.20.10.7:19000"; // const ajaxUrl = "http://172.20.10.7:19000";
const ajaxUrl = "192.168.0.102:80"; const ajaxUrl = "localhost:80";
/*
* @Description: 架构全景大屏及智能驾驶舱接口
* @Version: 2.0
* @Autor: pan
* @Date: 2024-05-29 16:04:01
* @LastEditors: pan
* @LastEditTime: 2024-06-05 14:44:06
*/
import { post } from '@/utils/http' import { post } from '@/utils/http'
import { import {
EADC_ARRCHITECTURE, EADC_ARRCHITECTURE,
EADC_SHARED_ABILITY EADC_SHARED_ABILITY
} from '@/config/micromodule' } from '@/config/micromodule'
const base = '/creen' const [base, cockpit] = ['/creen', '/smart-cockpit']
// 架构全景智能大屏------------------------
// 统推项目和自建项目占比 // 统推项目和自建项目占比
export function getProjPercent(params) { export function getProjPercent(params) {
return post(EADC_ARRCHITECTURE + `${base}/getProjPercent`, params) return post(EADC_ARRCHITECTURE + `${base}/getProjPercent`, params)
...@@ -38,3 +47,23 @@ export function getProinceList(params) { ...@@ -38,3 +47,23 @@ export function getProinceList(params) {
export function getAssetTypeDataByYearCount(params) { export function getAssetTypeDataByYearCount(params) {
return post(EADC_ARRCHITECTURE + `${base}/getAssetTypeDataByYearCount`, params) return post(EADC_ARRCHITECTURE + `${base}/getAssetTypeDataByYearCount`, params)
} }
// 智能驾驶舱---------------------
// 组织机构树
export function getOrgTree(params) {
return post(EADC_ARRCHITECTURE + `${cockpit}/orgTree`, params)
}
// 统计业务
export function getCountBusiness(params) {
return post(EADC_ARRCHITECTURE + `${cockpit}/countBusiness`, params)
}
// 项目管理信息
export function getPrjInfo(params) {
return post(EADC_ARRCHITECTURE + `${cockpit}/prjInfo`, params)
}
// 架构视图
export function getViewInfo(params) {
return post(EADC_ARRCHITECTURE + `${cockpit}/view`, params)
}
...@@ -18,7 +18,7 @@ export function getDrawioLeftCommonGraph(params) { ...@@ -18,7 +18,7 @@ export function getDrawioLeftCommonGraph(params) {
} }
export function save_drawio_attribute(params) { export function save_drawio_attribute(params) {
//保存画布属性 //保存画布属性
return post(EADC_ARRCHITECTURE + '/ma-ml/updateEleRelBatch', params) return post(EADC_ARRCHITECTURE + '/ele-rel/updEleBatch', params)
} }
// 导入列表 // 导入列表
export function offlineQuery(params) { export function offlineQuery(params) {
...@@ -118,7 +118,7 @@ export function getJGSTPZAdd(params) { ...@@ -118,7 +118,7 @@ export function getJGSTPZAdd(params) {
} }
// 编辑视图(state暂存2发布1) // 编辑视图(state暂存2发布1)
export function getJGSTPZUpdate(params) { export function getJGSTPZUpdate(params) {
return post(EADC_ARRCHITECTURE + '/archi-vw/upd-archi_vw', params) return post(EADC_ARRCHITECTURE + '/archi-vw/upd-archi-vw', params)
} }
// 批量发布 // 批量发布
export function getJGSTPZUpdateBatch(params) { export function getJGSTPZUpdateBatch(params) {
...@@ -134,11 +134,11 @@ export function getViewNameList(params) { ...@@ -134,11 +134,11 @@ export function getViewNameList(params) {
} }
// 获取元素和元素关系列表 // 获取元素和元素关系列表
export function getEleList(params) { export function getEleList(params) {
return post(EADC_ARRCHITECTURE + '/archi-vw/ele-list', params) return post(EADC_ARRCHITECTURE + '/ele/ele-list', params)
} }
export function gtEleRelList(params) { export function gtEleRelList(params) {
return post(EADC_ARRCHITECTURE + '/archi-vw/rel-list', params) return post(EADC_ARRCHITECTURE + '/ele-rel/rel-list', params)
} }``
// 元模型字典管理 // 元模型字典管理
// 列表查询 // 列表查询
...@@ -613,6 +613,11 @@ export function addSystemTable(params) { ...@@ -613,6 +613,11 @@ export function addSystemTable(params) {
export function editSystemTable(params) { export function editSystemTable(params) {
return post(EADC_ARRCHITECTURE + '/arc-ast-sys/upd', params) return post(EADC_ARRCHITECTURE + '/arc-ast-sys/upd', params)
} }
// 系统资产架构,停用
export function stopSystemTable(params) {
return post(EADC_ARRCHITECTURE + '/arc-ast-sys/stop', params)
}
// 系统资产架构,维护资产要素保存 // 系统资产架构,维护资产要素保存
export function systemArchiSaveFactor(params) { export function systemArchiSaveFactor(params) {
return post(EADC_ARRCHITECTURE + '/arc-ast-sys/extend', params) return post(EADC_ARRCHITECTURE + '/arc-ast-sys/extend', params)
......
<template>
<div class="chart-box">
<div class="chart-title">{{ chartTitle }}</div>
<div class="chart-height" :style="{ height }">
<slot></slot>
</div>
</div>
</template>
<script>
export default {
props: {
chartTitle: {
type: String,
default: '',
required: true,
},
height: {
type: String,
default: '240px',
},
},
}
</script>
<style scoped lang="scss">
.chart-title {
font-weight: 500;
font-size: 14px;
color: #000;
position: relative;
padding-left: 10px;
text-align: left;
margin-bottom: 14px;
&::before {
position: absolute;
content: '';
left: 0;
top: 3px;
width: 4px;
height: 15px;
background-color: rgba(13, 134, 127, 1);
border-radius: 2px;
}
}
</style>
<!--
* @Description: 选择项目组件
* @Version: 2.0
* @Autor: pan
* @Date: 2024-05-29 16:57:25
* @LastEditors: pan
* @LastEditTime: 2024-06-05 19:46:56
-->
<template> <template>
<el-dialog <el-dialog
title="选择项目" title="选择项目"
...@@ -26,7 +34,7 @@ ...@@ -26,7 +34,7 @@
</div> </div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="handleClose()" size="mini">取 消</el-button> <el-button @click="handleClose()" size="mini">取 消</el-button>
<el-button type="primary" @click="handleConfirm()" size="mini" <el-button type="primary" v-preventReClick @click="handleConfirm()" size="mini"
>确 定</el-button >确 定</el-button
> >
</span></el-dialog </span></el-dialog
...@@ -78,7 +86,7 @@ export default { ...@@ -78,7 +86,7 @@ export default {
initValue: '', // 字段初始值 initValue: '', // 字段初始值
placeholder: '请选择', // elementui组件属性 placeholder: '请选择', // elementui组件属性
options: this.sysOrgOptions, options: this.sysOrgOptions,
filterable: true filterable: true,
}, },
{ {
label: '部门', // label文字 label: '部门', // label文字
...@@ -87,7 +95,7 @@ export default { ...@@ -87,7 +95,7 @@ export default {
initValue: '', // 字段初始值 initValue: '', // 字段初始值
placeholder: '请选择', // elementui组件属性 placeholder: '请选择', // elementui组件属性
options: this.sysDeptOptions, options: this.sysDeptOptions,
filterable: true filterable: true,
}, },
{ {
label: '系统名称', // label文字 label: '系统名称', // label文字
......
...@@ -571,6 +571,48 @@ export const routes = [ ...@@ -571,6 +571,48 @@ export const routes = [
keepAlive: true, keepAlive: true,
}, },
}, },
{
path: "/main/digitalizeBuildAnalysis",
name: "digitalizeBuildAnalysis",
component: () => import("@/views/bigScreen/digitalizeBuildAnalysis/index.vue"),
meta: {
title: "电网数字化项目建设分析",
},
},
{
path: "/main/architectureBlueprintAnalysis",
name: "architectureBlueprintAnalysis",
component: () => import("@/views/bigScreen/architectureBlueprintAnalysis/index.vue"),
meta: {
title: "公司架构蓝图实现情况分析",
},
},
{
path: "/main/manageCockpit",
name: "manageCockpit",
component: () => import("@/views/bigScreen/cockpit/manageCockpit/index.vue"),
meta: {
title: "管理智能驾驶舱",
keepAlive: true,
},
},
{
path: "/main/businessCockpit",
name: "businessCockpit",
component: () => import("@/views/bigScreen/cockpit/businessCockpit/index.vue"),
meta: {
title: "业务智能驾驶舱",
keepAlive: true,
},
},
{
path: "/main/projectCockpit",
name: "projectCockpit",
component: () => import("@/views/bigScreen/cockpit/projectCockpit/index.vue"),
meta: {
title: "项目智能驾驶舱详情",
},
},
], ],
}, },
]; ];
......
...@@ -117,6 +117,15 @@ $color-primary: #0d867f; ...@@ -117,6 +117,15 @@ $color-primary: #0d867f;
.font-bold { .font-bold {
font-weight: bold; font-weight: bold;
} }
.align-l {
text-align: left;
}
.align-r {
text-align: right;
}
.align-c {
text-align: center;
}
.searchTable { .searchTable {
width: 100%; width: 100%;
......
...@@ -11,7 +11,7 @@ $color-primary: #0d857f; ...@@ -11,7 +11,7 @@ $color-primary: #0d857f;
color: #fff; color: #fff;
} }
/deep/ .el-dialog__close { /deep/ .el-dialog__close {
color: #fff; color: #fff!important;
} }
/deep/ .el-dialog__headerbtn:focus .el-dialog__close, /deep/ .el-dialog__headerbtn:focus .el-dialog__close,
/deep/ .el-dialog__headerbtn:hover .el-dialog__close { /deep/ .el-dialog__headerbtn:hover .el-dialog__close {
......
...@@ -31,9 +31,9 @@ export default { ...@@ -31,9 +31,9 @@ export default {
// position: relative; // position: relative;
// overflow: hidden; // overflow: hidden;
display: flex; display: flex;
height: calc(100% - 220px); height: calc(100% - 184px);
width: calc(100% - 40px); width: calc(100% - 24px);
margin: 70px 20px 20px 20px; margin: 0 12px 10px 12px;
border-top: 6px solid #0d867f; border-top: 6px solid #0d867f;
box-shadow: 10px 10px 30px 30px rgba(201, 226, 225, 1); box-shadow: 10px 10px 30px 30px rgba(201, 226, 225, 1);
} }
......
...@@ -237,7 +237,7 @@ export default { ...@@ -237,7 +237,7 @@ export default {
padding-right: 20px!important; padding-right: 20px!important;
} }
.tags-view-container { .tags-view-container {
height: 34px; height: 32px;
width: 100%; width: 100%;
background: #fff; background: #fff;
border-bottom: 1px solid #d8dce5; border-bottom: 1px solid #d8dce5;
...@@ -254,7 +254,7 @@ export default { ...@@ -254,7 +254,7 @@ export default {
color: #495060; color: #495060;
background: #fff; background: #fff;
padding: 0 8px; padding: 0 8px;
font-size: 12px; font-size: 14px;
margin-left: 5px; margin-left: 5px;
margin-top: 4px; margin-top: 4px;
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
} }
.top_menu_container { .top_menu_container {
/* margin-bottom: 20px; */ /* margin-bottom: 20px; */
height: 125px; // height: 125px;
} }
.left_menu_and_drawio_container { .left_menu_and_drawio_container {
display: flex; display: flex;
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
width: 6%; width: 6%;
} */ } */
.logo_title_container { .logo_title_container {
height: 64px; height: 55px;
display: flex; display: flex;
align-items: center; align-items: center;
background-color: rgb(13, 134, 127); background-color: rgb(13, 134, 127);
...@@ -155,7 +155,7 @@ ...@@ -155,7 +155,7 @@
&::after { &::after {
content: ''; content: '';
position: absolute; position: absolute;
bottom: -17px; bottom: -12px;
left: -20px; left: -20px;
width: calc(100% + 20px); width: calc(100% + 20px);
height: 4px; height: 4px;
...@@ -223,7 +223,7 @@ ...@@ -223,7 +223,7 @@
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
height: 60px; height: 50px;
} }
.menu_1_container { .menu_1_container {
display: flex; display: flex;
......
...@@ -7,12 +7,12 @@ export const menuOptions = [ ...@@ -7,12 +7,12 @@ export const menuOptions = [
name: '架构全景智能大屏', name: '架构全景智能大屏',
children: [ children: [
{ {
name: 'XX网数字化项目建设分析', name: '网数字化项目建设分析',
path: '', path: '/main/digitalizeBuildAnalysis',
}, },
{ {
name: '公司架构蓝图实现情况分析', name: '公司架构蓝图实现情况分析',
path: '', path: '/main/architectureBlueprintAnalysis',
}, },
], ],
}, },
...@@ -21,15 +21,15 @@ export const menuOptions = [ ...@@ -21,15 +21,15 @@ export const menuOptions = [
children: [ children: [
{ {
name: '管理智能驾驶舱', name: '管理智能驾驶舱',
path: '', path: '/main/manageCockpit',
}, },
{ {
name: '业务智能驾驶舱', name: '业务智能驾驶舱',
path: '', path: '/main/businessCockpit',
}, },
{ {
name: '项目智能驾驶舱', name: '项目智能驾驶舱',
path: '', path: '/main/projectCockpit',
}, },
], ],
}, },
......
...@@ -869,7 +869,7 @@ import { ...@@ -869,7 +869,7 @@ import {
queryProjectInfoManageTable, queryProjectInfoManageTable,
querysystemInfoManageTable, querysystemInfoManageTable,
queryZiChanJiaGouZuJianLeiXing, queryZiChanJiaGouZuJianLeiXing,
queryZuJianLeiXingBelongForm, queryZuJianLeiXingBelongForm, stopSystemTable,
systemArchiSaveFactor, systemArchiSaveFactor,
} from '@/api/index.js' } from '@/api/index.js'
import $ from 'jquery' import $ from 'jquery'
...@@ -1824,10 +1824,9 @@ export default { ...@@ -1824,10 +1824,9 @@ export default {
.then(() => { .then(() => {
const params = { const params = {
assetId: row.assetId, assetId: row.assetId,
state: 0, state: 0
archiType: this.archiType,
} }
editSystemTable(params).then((res) => { stopSystemTable(params).then((res) => {
if (res.code == 200) { if (res.code == 200) {
this.get_table() this.get_table()
Message({ Message({
......
...@@ -118,7 +118,7 @@ ...@@ -118,7 +118,7 @@
<el-table-column <el-table-column
type="index" type="index"
label="序号" label="序号"
width="80" width="50"
align="center" align="center"
:index="indexMethod" :index="indexMethod"
></el-table-column> ></el-table-column>
...@@ -126,8 +126,7 @@ ...@@ -126,8 +126,7 @@
prop="elementName" prop="elementName"
label="元素名称" label="元素名称"
align="center" align="center"
width="120" width="160"
show-overflow-tooltip
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
prop="archiLevelName" prop="archiLevelName"
...@@ -139,37 +138,25 @@ ...@@ -139,37 +138,25 @@
label="架构归属" label="架构归属"
align="center" align="center"
></el-table-column> ></el-table-column>
<!-- <el-table-column-->
<!-- prop="eaLevel"-->
<!-- label="元素层级"-->
<!-- align="center"-->
<!-- ></el-table-column>-->
<!-- <el-table-column
prop="content"
label="描述"
align="center"
width="200"
:show-overflow-tooltip="true"
></el-table-column> -->
<el-table-column <el-table-column
prop="definition" prop="definition"
label="定义" label="定义"
align="center" align="center"
width="200" width="150"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
prop="referenceRelationship" prop="referenceRelationship"
label="引用关系" label="引用关系"
align="center" align="center"
width="200" width="150"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
prop="example" prop="example"
label="示例" label="示例"
align="center" align="center"
width="200" width="150"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
></el-table-column> ></el-table-column>
<el-table-column width="100" label="图标" align="center"> <el-table-column width="100" label="图标" align="center">
...@@ -815,7 +802,7 @@ import { ...@@ -815,7 +802,7 @@ import {
} 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 { getDictTypeOptions, svgToBase64 } from '@/utils' import { getDictTypuueOptions, svgToBase64 } from '@/utils'
import { archiEleColor } from '@/config' import { archiEleColor } from '@/config'
export default { export default {
name: 'ArchiEleList', name: 'ArchiEleList',
......
...@@ -7,13 +7,13 @@ ...@@ -7,13 +7,13 @@
<span class="search_title">元素关系名称</span> <span class="search_title">元素关系名称</span>
<el-input v-model="params.rsName" placeholder="请输入内容" class="search_item"></el-input> <el-input v-model="params.rsName" placeholder="请输入内容" class="search_item"></el-input>
</div> </div>
<div class="search_menu_item"> <!-- <div class="search_menu_item">
<span class="search_title">适用范围</span> <span class="search_title">适用范围</span>
<el-select v-model="params.scope" placeholder="请选择" clearable class="search_item"> <el-select v-model="params.scope" placeholder="请选择" clearable class="search_item">
<el-option v-for="(item, idnex) in search_select1" :key="idnex" :label="item.label" <el-option v-for="(item, idnex) in search_select1" :key="idnex" :label="item.label"
:value="item.value"></el-option> :value="item.value"></el-option>
</el-select> </el-select>
</div> </div>-->
<div class="search_menu_item"> <div class="search_menu_item">
<span class="search_title">状态</span> <span class="search_title">状态</span>
<el-select v-model="params.state" placeholder="请选择" clearable class="search_item"> <el-select v-model="params.state" placeholder="请选择" clearable class="search_item">
......
...@@ -1107,7 +1107,7 @@ export default { ...@@ -1107,7 +1107,7 @@ export default {
return return
} }
let params = { let params = {
viewId: [], ids: [],
state: 2, state: 2,
} }
let hasArchiLevelId = true let hasArchiLevelId = true
...@@ -1115,7 +1115,7 @@ export default { ...@@ -1115,7 +1115,7 @@ export default {
if (!this.dicObj.archiLevelId[item.archiLevelId]) { if (!this.dicObj.archiLevelId[item.archiLevelId]) {
hasArchiLevelId = false hasArchiLevelId = false
} }
params.viewId.push(item.viewId) params.ids.push(item.viewId)
}) })
console.log('this.selectList', this.selectList) console.log('this.selectList', this.selectList)
if (!hasArchiLevelId) { if (!hasArchiLevelId) {
......
...@@ -105,27 +105,27 @@ export default { ...@@ -105,27 +105,27 @@ export default {
columns() { columns() {
return [ return [
{ label: '序号', type: 'index', width: '80px' }, { label: '序号', type: 'index', width: '80px' },
{ label: '批次年度', prop: 'year' }, { label: '批次名称', prop: 'batName', width: '500px', __slotName: 'batName', },
{ label: '批次名称', prop: 'batName', width: '300px', __slotName: 'batName', }, { label: '批次年度', prop: 'year', width: '150px'},
{
label: '计划评审日期',
width: '120px',
prop: 'planReviewDate',
},
{ {
label: '状态', label: '状态',
prop: 'state', prop: 'state',
width: '120px', width: '150px',
collectionType: 'approvalStatusOptions', collectionType: 'approvalStatusOptions',
options: approvalStatusOptions, options: approvalStatusOptions,
}, },
{ label: '备注', width: '100px', prop: 'remark' }, {
label: '计划评审日期',
width: '200px',
prop: 'planReviewDate',
},
// { label: '创建人', prop: 'createMan' }, // { label: '创建人', prop: 'createMan' },
{ label: '创建时间', prop: 'createTime', width: '120px' }, { label: '创建时间', prop: 'createTime', width: '200px' },
{ label: '备注', width: '400px', prop: 'remark' },
{ {
label: '操作', label: '操作',
type: 'operation', type: 'operation',
width: '360px', width: '450px',
actionButtons: [ actionButtons: [
{ {
title: '修改', title: '修改',
......
<!--
* @Description: 公司架构蓝图实现情况分析
* @Version: 2.0
* @Autor: pan
* @Date: 2024-05-28 18:59:07
* @LastEditors: pan
* @LastEditTime: 2024-06-03 08:28:59
-->
<template>
<div class="w-100 h-100 p-10 architectureBlueprintAnalysis">
<div class="filter-year m-b-10">
<el-date-picker
:editable="false"
v-model="year"
format="yyyy 年"
value-format="yyyy"
type="year"
placeholder="选择年"
:clearable="false"
@change="getAssetTypeDataByYearCount"
>
</el-date-picker>
</div>
<div class="container">
<el-row :gutter="20" type="flex" justify="center" style="flex-wrap: wrap">
<el-col
class="m-b-20"
:span="8"
v-for="(item, idx) in cardItems"
:key="idx"
>
<div class="card-item" :style="{ backgroundColor: item.bgColor }">
<div class="card-title font-14 m-b-10">{{ item.title }}</div>
<div class="flex-b-c">
<div
class="flex"
v-for="(countItem, idx2) in item.countItems"
:key="idx2"
>
<div class="count-item flex-column">
<div class="count-item-title font-14 m-b-10">
{{ countItem.title }}
</div>
<div class="count-item-value font-20 font-bold flex">
<count-to
:start-val="0"
:end-val="countItem.count1"
:duration="2000"
separator=","
autoplay
/>
<span>/</span>
<count-to
:start-val="0"
:end-val="countItem.count2"
:duration="2000"
separator=","
autoplay
/>
<span></span>
</div>
</div>
</div>
</div>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<chart-box height="330px" chart-title="视图数量">
<BaseChart :option="chartOptions" ref="chart" />
</chart-box>
</el-col>
</el-row>
</div>
</div>
</template>
<script>
import ChartBox from '@/components/Charts/ChartBox.vue'
import BaseChart from '@/components/Charts/BaseChart.vue'
import CountTo from '@/components/VueCountTo/index.vue'
import { getAssetTypeDataByYearCount } from '@/api/bigScreen'
export default {
name: 'architectureBlueprintAnalysis',
components: {
ChartBox,
BaseChart,
CountTo,
},
data() {
return {
year: new Date().format('yyyy'),
detailData: {},
}
},
computed: {
cardItems() {
const {
ARCHI_BUSINESS,
ARCHI_APPLICATION,
ARCHI_DATA,
ARCHI_TECHNOLOGY,
ARCHI_SAFE,
} = this.detailData
return [
{
title: '业务架构资产',
bgColor: '#8895ed',
countItems: [
{
title: '业务域',
count1: ARCHI_BUSINESS && ARCHI_BUSINESS['busDomainNum-sys'],
count2: ARCHI_BUSINESS && ARCHI_BUSINESS['busDomainNum'],
},
{
title: '业务职能',
count1: 595,
count2: 624,
},
{
title: '业务流程',
count1: ARCHI_BUSINESS && ARCHI_BUSINESS['busProcessNum-sys'],
count2: ARCHI_BUSINESS && ARCHI_BUSINESS['busProcessNum'],
},
],
},
{
title: '应用架构资产',
bgColor: '#b591e8',
countItems: [
{
title: '应用',
count1: 12,
count2: 14,
},
{
title: '一级功能',
count1:
ARCHI_APPLICATION && ARCHI_APPLICATION['oneLevelAppCount-sys'],
count2:
ARCHI_APPLICATION && ARCHI_APPLICATION['oneLevelAppCount'],
},
{
title: '二级功能',
count1:
ARCHI_APPLICATION && ARCHI_APPLICATION['twoLevelAppCount-sys'],
count2:
ARCHI_APPLICATION && ARCHI_APPLICATION['twoLevelAppCount'],
},
],
},
{
title: '数据架构资产',
bgColor: '#e192a6',
countItems: [
{
title: '一级主题域',
count1: ARCHI_DATA && ARCHI_DATA['oneLevelDataCount-sys'],
count2: ARCHI_DATA && ARCHI_DATA['oneLevelDataCount'],
},
{
title: '二级主题域',
count1: ARCHI_DATA && ARCHI_DATA['twoLevelDataCount-sys'],
count2: ARCHI_DATA && ARCHI_DATA['twoLevelDataCount'],
},
{
title: '概念实体',
count1: ARCHI_DATA && ARCHI_DATA['systemTotal'],
count2: ARCHI_DATA && ARCHI_DATA['totalityTotal'],
},
],
},
{
title: '技术架构资产',
bgColor: '#93afe9',
countItems: [
{
title: '技术域',
count1: ARCHI_TECHNOLOGY && ARCHI_TECHNOLOGY['tecDomainNum-sys'],
count2: ARCHI_TECHNOLOGY && ARCHI_TECHNOLOGY['tecDomainNum'],
},
{
title: '技术能力',
count1: ARCHI_TECHNOLOGY && ARCHI_TECHNOLOGY['tecAbilityNum-sys'],
count2: ARCHI_TECHNOLOGY && ARCHI_TECHNOLOGY['tecAbilityNum'],
},
{
title: '技术组件',
count1: ARCHI_TECHNOLOGY && ARCHI_TECHNOLOGY['tecModulNum-sys'],
count2: ARCHI_TECHNOLOGY && ARCHI_TECHNOLOGY['tecModulNum'],
},
],
},
{
title: '安全架构资产',
bgColor: '#a4ebaf',
countItems: [
{
title: '防护对象',
count1: 12,
count2: 14,
},
{
title: '防护要求',
count1: 595,
count2: 624,
},
{
title: '防护措施',
count1: 2869,
count2: 2967,
},
],
},
]
},
chartOptions() {
return {
color: ['#f2ad65', '#a0ddb8'],
tooltip: {
trigger: 'axis',
axisPointer: {
// 坐标轴指示器,坐标轴触发有效
type: 'shadow', // 默认为直线,可选为:'line' | 'shadow'
},
},
legend: {
data: ['总体', '系统'],
align: 'right',
left: '5%',
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true,
},
xAxis: [
{
type: 'category',
data: ['业务架构', '应用架构', '数据架构', '技术架构', '安全架构'],
},
],
yAxis: [
{
type: 'value',
axisLabel: {
formatter: '{value}',
},
},
],
series: [
{
name: '总体',
type: 'bar',
data: this.getTotal[1],
},
{
name: '系统',
type: 'bar',
data: this.getTotal[0],
},
],
}
},
getTotal() {
let [systemTotalList, totalityTotal] = [[], []]
if (Object.keys(this.detailData).length) {
for (const key in this.detailData) {
if (Object.hasOwnProperty.call(this.detailData, key)) {
const item = this.detailData[key]
systemTotalList.push(item.systemTotal || 0)
totalityTotal.push(item.totalityTotal || 0)
}
}
return [systemTotalList, totalityTotal]
} else {
return [
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
]
}
},
},
created() {
this.getAssetTypeDataByYearCount()
},
methods: {
getAssetTypeDataByYearCount() {
getAssetTypeDataByYearCount({ year: this.year }).then((res) => {
if (res.code === 200) {
this.detailData = res.data
} else {
this.detailData = {}
this.$message.warning(res.msg)
}
})
},
},
}
</script>
<style scoped lang="scss">
.architectureBlueprintAnalysis {
box-sizing: border-box;
overflow-y: auto;
.card-item {
border-radius: 5px;
color: #ffffff;
text-align: left;
padding: 10px 16px;
}
}
</style>
<!--
* @Description: 业务智能驾驶舱
* @Version: 2.0
* @Autor: pan
* @Date: 2024-06-05 09:51:26
* @LastEditors: pan
* @LastEditTime: 2024-06-11 16:29:47
-->
<template>
<div class="w-100 h-100 manageCockpit flex">
<div class="leftTree">
<div class="treeTitle">组织机构</div>
<el-tree
:highlight-current="true"
:data="treeData"
:props="treeProps"
@node-click="handleNodeClick"
></el-tree>
</div>
<div class="flex-1" style="min-width: 0">
<div class="header__wrap p-16">
<div class="header-title m-b-16 align-l">
<span class="font-18 font-bold">发展策划部</span>
<div class="flex m-t-10">
<div class="flex m-r-30">
<div class="label">支撑业务系统数量:</div>
<div class="font-bold font-18">{{ numberSystems }}</div>
</div>
<div class="flex m-r-30">
<div class="label">涉及业务流程数量:</div>
<div class="font-bold font-18">{{ businessProcess }}</div>
</div>
<div class="flex">
<div class="label">涉及业务活动数量:</div>
<div class="font-bold font-18">{{ businessActivities }}</div>
</div>
</div>
</div>
<div class="header-choosePrj align-l">
<el-button class="m-r-20" type="primary" @click="fnChoosePrj()"
>选择项目
</el-button>
<span>您已选择:{{ prjInfo.prjName }}</span>
</div>
</div>
<div class="content__wrap flex">
<ProjectInfo ref="project" style="width: 30%" />
<ViewInfo
style="width: 70%"
:prjId="prjInfo.prjId"
ref="view"
class="flex-1"
/>
</div>
</div>
<!-- 选择项目组件 -->
<ChoosePrjDialog
@selectData="selectData"
:visible.sync="choosePrjVisible"
/>
</div>
</template>
<script>
import ChoosePrjDialog from '@/components/ChoosePrjDialog.vue'
import ProjectInfo from '../components/ProjectInfo.vue'
import ViewInfo from '../components/ViewInfo.vue'
import { queryProjectInfoManageTable } from '@/api/index'
import { getOrgTree, getCountBusiness } from '@/api/bigScreen'
export default {
name: 'manageCockpit',
components: {
ProjectInfo,
ChoosePrjDialog,
ViewInfo,
},
data() {
return {
choosePrjVisible: false,
prjInfo: {},
treeData: [],
treeProps: {
children: 'children',
label: 'name',
},
businessActivities: 0,
businessProcess: 0,
numberSystems: 0,
}
},
created() {
this.queryProjectInfoManageTable()
this.getOrgTree()
this.getCountBusiness()
},
methods: {
init() {
this.$refs['project'].fnGetDetail(this.prjInfo.prjId)
this.$refs['view'].getViewInfo(this.prjInfo.prjId)
},
queryProjectInfoManageTable() {
const params = {
current: 1,
pageSize: 1,
}
queryProjectInfoManageTable(params).then((res) => {
if (res.code === 200) {
this.prjInfo = res.data.records[0]
this.init()
} else {
this.$message.warning(res.msg)
}
})
},
getOrgTree() {
getOrgTree().then((res) => {
if (res.code === 200) {
this.treeData = res.data
}
})
},
fnChoosePrj() {
this.choosePrjVisible = true
},
selectData(data) {
console.log(data)
this.prjInfo = data[0]
this.init()
},
handleNodeClick() {},
getCountBusiness() {
getCountBusiness().then(res => {
if(res.code === 200) {
this.businessActivities = res.data.businessActivities,
this.businessProcess = res.data.businessProcess
this.numberSystems = res.data.numberSystems
}
})
}
},
}
</script>
<style scoped lang="scss">
.manageCockpit {
.leftTree {
width: 273px;
display: flex;
flex-direction: column;
border-right: 1px solid #ebeef5;
// height: 100%;
.treeTitle {
height: 60px;
line-height: 60px;
padding: 0 15px;
box-sizing: border-box;
border-bottom: 1px solid #ebeef5;
text-align: left;
font-weight: bold;
}
/deep/ .el-tree {
flex: 1;
min-height: 0;
overflow: auto;
padding-right: 10px;
margin-bottom: 10px;
.el-tree-node__expand-icon.el-icon-caret-right.is-leaf {
background-color: #ffffff !important;
}
.el-tree-node__content:hover {
.is-leaf {
background-color: #f5f7fa !important;
}
}
}
/deep/
.el-tree--highlight-current
.el-tree-node.is-current
> .el-tree-node__content {
background-color: #c0ebe4 !important;
color: #999999;
.is-leaf {
background-color: #c0ebe4 !important;
}
}
}
.header__wrap {
border-bottom: 1px solid #ebeef5;
}
.content__wrap {
height: calc(100% - 114px);
}
}
</style>
<!--
* @Description: 智能驾驶舱模块 项目信息组件
* @Version: 2.0
* @Autor: pan
* @Date: 2024-06-05 09:54:56
* @LastEditors: pan
* @LastEditTime: 2024-06-07 09:29:16
-->
<template>
<el-scrollbar>
<div class="project-info p-16">
<div class="title font-18 font-bold m-b-10">项目信息</div>
<div
class="info-item flex m-b-6"
v-for="(item, idx) in items"
:key="idx"
>
<div class="label m-r-10">{{ item.label }}:</div>
<div class="value">{{ item.value }}</div>
</div>
</div>
</el-scrollbar>
</template>
<script>
import { getPrjInfo } from '@/api/bigScreen'
export default {
props: {},
data() {
return {
items: [
{
label: '单位',
value: '',
key: 'manageOrgName',
},
{
label: '部门',
value: '',
key: 'manageDeptName',
},
{
label: '系统名称',
value: '',
key: 'appName',
},
{
label: '建设类型',
value: '',
key: 'buildTypeName',
},
{
label: '项目名称',
value: '',
key: 'prjName',
},
{
label: '项目类型',
value: '',
key: 'prjPlanClassName',
},
{
label: '业务部门',
value: '',
key: 'manageOrgName',
},
{
label: '承建单位',
value: '',
key: 'manageDeptName',
},
{
label: '项目经理',
value: '',
key: 'projectManager',
},
{
label: '概设评审信息',
value: '完成',
},
{
label: '督查相关信息',
value: '完成',
},
{
label: '项目资料',
value: '',
},
],
}
},
components: {},
mounted() {},
methods: {
fnGetDetail(prjId) {
getPrjInfo({ prjId }).then((res) => {
if (res.code === 200) {
const detailData = res.data
this.items.forEach(v => {
for (const key in detailData) {
if (Object.hasOwnProperty.call(detailData, key)) {
if(v.key === key) {
v.value = detailData[key]
}
}
}
})
}
})
},
},
}
</script>
<style scoped lang="scss">
/deep/ .el-scrollbar__wrap {
margin-right: -8px !important;
}
.label {
width: 120px;
text-align: right;
}
.value {
flex: 1;
text-align: left;
}
.title {
text-align: left;
}
</style>
<!--
* @Description: 智能驾驶舱模块 视图信息组件
* @Version: 2.0
* @Autor: pan
* @Date: 2024-06-05 10:20:36
* @LastEditors: pan
* @LastEditTime: 2024-06-11 15:19:04
-->
<template>
<div>
<el-tabs v-model="activeName" @tab-click="handleSubClick">
<el-tab-pane
:label="item.label"
:name="item.value"
v-for="item in archiBelongOptions"
:key="item.value"
>
</el-tab-pane>
</el-tabs>
<div class="view__wrap flex" v-loading="loading">
<template v-if="viewList.length">
<el-scrollbar>
<div class="view_card p-r-10">
<el-card
class="m-b-16 card-item"
shadow="hover"
v-for="item in viewList"
:key="item.viewId"
@click.native="fnCheckGraph(item)"
>
<div class="view_name">{{ item.viewName }}</div>
<div class="svg">
<img
class="w-100 h-100"
:src="getSvg(item.metaModelSvg)"
alt=""
/>
</div>
</el-card>
</div>
</el-scrollbar>
<div class="mxGraph flex-1">
<img class="w-100 h-100" :src="metaModelData" alt="" />
<!-- <div id="mxGraph_root" class="w-100 h-100"></div> -->
</div>
</template>
<el-empty class="w-100" v-else description="暂无数据"></el-empty>
</div>
</div>
</template>
<script>
import { query_jia_gou_ceng_ci_new } from '@/api/index'
import { getViewInfo } from '@/api/bigScreen'
export default {
props: {
prjId: {
type: Number,
default: null,
},
},
data() {
return {
activeName: '1',
archiBelongOptions: [],
viewList: [],
graph: null,
loading: false,
metaModelData: ''
}
},
components: {},
created() {
this.getArchiBelong()
},
methods: {
getSvg(base64) {
return `data:image/svg+xml;base64,${base64}`
},
fnCheckGraph(item) {
// this.graph.destroy()
// this.initGraph(item.metaModelData)
this.metaModelData = this.getSvg(item.metaModelSvg)
},
handleSubClick() {
this.graph?.destroy()
this.getViewInfo(this.prjId)
},
getArchiBelong() {
query_jia_gou_ceng_ci_new({ typeValue: 'archi_belong' }).then((res) => {
if (res.code == 200) {
this.archiBelongOptions = res.data
this.activeName = this.archiBelongOptions[0].value
} else {
this.$message.warning(res.msg)
}
})
},
getViewInfo(prjId) {
const params = {
prjId,
archiBelongId: this.activeName,
}
this.loading = true
getViewInfo(params)
.then((res) => {
this.loading = false
if (res.code === 200) {
this.viewList = res.data
this.metaModelData = this.getSvg(this.viewList[0].metaModelSvg)
// this.$nextTick(() => {
// this.initGraph(this.viewList[0]?.metaModelData)
// })
} else {
this.viewList = []
}
})
.catch((err) => {
this.loading = false
})
},
// initGraph(xml) {
// if (!xml) return
// this.graph = new mxGraph(document.getElementById('mxGraph_root'))
// this.graph.centerZoom = false // 是否居中缩放
// this.graph.setEnabled(false) // 设置启用,就是允不允许你改变CELL的形状内容。
// const model = this.graph.getModel()
// model.beginUpdate()
// try {
// const parseXml = xml.replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/&amp;/g, '&')
// var doc = mxUtils.parseXml(xml)
// var codec = new mxCodec(doc)
// console.log('doc', parseXml)
// codec.decode(doc.documentElement, this.graph.getModel())
// } finally {
// model.endUpdate()
// }
// },
},
destroyed() {
// this.graph.destroy()
},
}
</script>
<style scoped lang="scss">
/deep/ .el-scrollbar__wrap {
margin-right: -8px !important;
}
.view__wrap {
height: calc(100% - 54px);
overflow: hidden;
padding-right: 10px;
.view_card {
.card-item {
background-color: #f5fffe;
cursor: pointer;
.svg {
width: 140px;
height: 100px;
}
}
}
.mxGraph {
overflow: auto;
}
}
</style>
<!--
* @Description: 管理智能驾驶舱
* @Version: 2.0
* @Autor: pan
* @Date: 2024-06-05 09:51:26
* @LastEditors: pan
* @LastEditTime: 2024-06-11 09:29:35
-->
<template>
<div class="w-100 h-100 manageCockpit flex">
<div class="leftTree">
<div class="treeTitle">组织机构</div>
<el-tree
:highlight-current="true"
:data="treeData"
:props="treeProps"
@node-click="handleNodeClick"
></el-tree>
</div>
<div class="flex-1" style="min-width: 0">
<div class="header__wrap p-16">
<div class="header-title m-b-16 align-l font-bold font-18">
发展策划部
</div>
<div class="header-choosePrj align-l">
<el-button class="m-r-20" type="primary" @click="fnChoosePrj()"
>选择项目</el-button
>
<span>您已选择:{{ prjInfo.prjName }}</span>
</div>
</div>
<div class="content__wrap flex">
<ProjectInfo ref="project" style="width: 30%" />
<ViewInfo
style="width: 70%"
:prjId="prjInfo.prjId"
ref="view"
class="flex-1"
/>
</div>
</div>
<!-- 选择项目组件 -->
<ChoosePrjDialog
@selectData="selectData"
:visible.sync="choosePrjVisible"
/>
</div>
</template>
<script>
import ChoosePrjDialog from '@/components/ChoosePrjDialog.vue'
import ProjectInfo from '../components/ProjectInfo.vue'
import ViewInfo from '../components/ViewInfo.vue'
import { queryProjectInfoManageTable } from '@/api/index'
import { getOrgTree } from '@/api/bigScreen'
export default {
name: 'manageCockpit',
components: {
ProjectInfo,
ChoosePrjDialog,
ViewInfo,
},
data() {
return {
choosePrjVisible: false,
prjInfo: {},
treeData: [],
treeProps: {
children: 'children',
label: 'name',
},
}
},
created() {
this.queryProjectInfoManageTable()
this.getOrgTree()
},
methods: {
init() {
this.$refs['project'].fnGetDetail(this.prjInfo.prjId)
this.$refs['view'].getViewInfo(this.prjInfo.prjId)
},
queryProjectInfoManageTable() {
const params = {
current: 1,
pageSize: 1,
}
queryProjectInfoManageTable(params).then((res) => {
if (res.code === 200) {
this.prjInfo = res.data.records[0]
this.init()
} else {
this.$message.warning(res.msg)
}
})
},
getOrgTree() {
getOrgTree().then((res) => {
if (res.code === 200) {
this.treeData = res.data
}
})
},
fnChoosePrj() {
this.choosePrjVisible = true
},
selectData(data) {
console.log(data)
this.prjInfo = data[0]
this.init()
},
handleNodeClick() {},
},
}
</script>
<style scoped lang="scss">
.manageCockpit {
.leftTree {
width: 273px;
display: flex;
flex-direction: column;
border-right: 1px solid #ebeef5;
// height: 100%;
.treeTitle {
height: 60px;
line-height: 60px;
padding: 0 15px;
box-sizing: border-box;
border-bottom: 1px solid #ebeef5;
text-align: left;
font-weight: bold;
}
/deep/ .el-tree {
flex: 1;
min-height: 0;
overflow: auto;
padding-right: 10px;
margin-bottom: 10px;
.el-tree-node__expand-icon.el-icon-caret-right.is-leaf {
background-color: #ffffff !important;
}
.el-tree-node__content:hover {
.is-leaf {
background-color: #f5f7fa !important;
}
}
}
/deep/
.el-tree--highlight-current
.el-tree-node.is-current
> .el-tree-node__content {
background-color: #c0ebe4 !important;
color: #999999;
.is-leaf {
background-color: #c0ebe4 !important;
}
}
}
.header__wrap {
border-bottom: 1px solid #ebeef5;
}
.content__wrap {
height: calc(100% - 114px);
}
}
</style>
<!--
* @Description: 项目智能驾驶舱
* @Version: 2.0
* @Autor: pan
* @Date: 2024-06-05 09:51:26
* @LastEditors: pan
* @LastEditTime: 2024-06-11 16:16:47
-->
<template>
<div class="w-100 h-100 manageCockpit flex">
<div class="leftTree">
<div class="treeTitle">组织机构</div>
<el-tree
:highlight-current="true"
:data="treeData"
:props="treeProps"
@node-click="handleNodeClick"
></el-tree>
</div>
<div class="flex-1" style="min-width: 0">
<div class="header__wrap p-16">
<div class="header-title m-b-16 align-l font-bold font-18">
发展策划部
</div>
<div class="header-choosePrj align-l">
<el-button class="m-r-20" type="primary" @click="fnChoosePrj()"
>选择项目</el-button
>
<span>您已选择:{{ prjInfo.prjName }}</span>
</div>
</div>
<div class="content__wrap flex">
<ProjectInfo ref="project" style="width: 30%" />
<ViewInfo
style="width: 70%"
:prjId="prjInfo.prjId"
ref="view"
class="flex-1"
/>
</div>
</div>
<!-- 选择项目组件 -->
<ChoosePrjDialog
@selectData="selectData"
:visible.sync="choosePrjVisible"
/>
</div>
</template>
<script>
import ChoosePrjDialog from '@/components/ChoosePrjDialog.vue'
import ProjectInfo from '../components/ProjectInfo.vue'
import ViewInfo from '../components/ViewInfo.vue'
import { queryProjectInfoManageTable } from '@/api/index'
import { getOrgTree } from '@/api/bigScreen'
export default {
name: 'manageCockpit',
components: {
ProjectInfo,
ChoosePrjDialog,
ViewInfo,
},
data() {
return {
choosePrjVisible: false,
prjInfo: {},
treeData: [],
treeProps: {
children: 'children',
label: 'name',
},
}
},
created() {
this.queryProjectInfoManageTable()
this.getOrgTree()
},
methods: {
init() {
this.$refs['project'].fnGetDetail(this.prjInfo.prjId)
this.$refs['view'].getViewInfo(this.prjInfo.prjId)
},
queryProjectInfoManageTable() {
const params = {
current: 1,
pageSize: 1,
}
queryProjectInfoManageTable(params).then((res) => {
if (res.code === 200) {
this.prjInfo = res.data.records[0]
this.init()
} else {
this.$message.warning(res.msg)
}
})
},
getOrgTree() {
getOrgTree().then((res) => {
if (res.code === 200) {
this.treeData = res.data
}
})
},
fnChoosePrj() {
this.choosePrjVisible = true
},
selectData(data) {
console.log(data)
this.prjInfo = data[0]
this.init()
},
handleNodeClick() {},
},
}
</script>
<style scoped lang="scss">
.manageCockpit {
.leftTree {
width: 273px;
display: flex;
flex-direction: column;
border-right: 1px solid #ebeef5;
// height: 100%;
.treeTitle {
height: 60px;
line-height: 60px;
padding: 0 15px;
box-sizing: border-box;
border-bottom: 1px solid #ebeef5;
text-align: left;
font-weight: bold;
}
/deep/ .el-tree {
flex: 1;
min-height: 0;
overflow: auto;
padding-right: 10px;
margin-bottom: 10px;
.el-tree-node__expand-icon.el-icon-caret-right.is-leaf {
background-color: #ffffff !important;
}
.el-tree-node__content:hover {
.is-leaf {
background-color: #f5f7fa !important;
}
}
}
/deep/
.el-tree--highlight-current
.el-tree-node.is-current
> .el-tree-node__content {
background-color: #c0ebe4 !important;
color: #999999;
.is-leaf {
background-color: #c0ebe4 !important;
}
}
}
.header__wrap {
border-bottom: 1px solid #ebeef5;
}
.content__wrap {
height: calc(100% - 114px);
}
}
</style>
import { getPastFiveYearList } from '@/utils'
const chartOptions = {
data() {
return {
chart1SumList: [],
chart1NumList: [],
chart3XAxisData: [],
buildingPrjNumList: [],
prjNumList: [],
prjSumList: [],
buildingPrjSumList: [],
chart4List: [],
chart5List: [],
}
},
computed: {
chart1Options() {
return {
backgroundColor: '#fff',
tooltip: {
show: true,
trigger: 'item',
formatter: '{b}: {c} ({d}%)',
},
legend: {
orient: 'vertical',
right: '0%',
bottom: 0,
data: [
'统推项目金额',
'自建项目金额',
'统推项目数量',
'自建项目数量',
],
},
series: [
{
type: 'pie',
selectedMode: 'single',
radius: ['58%', '83%'],
color: ['#627bf5', '#90a1f8', '#f09b69', '#f7cd96'],
label: {
position: 'inner',
formatter: '{d}%',
textStyle: {
color: '#fff',
fontWeight: 'bold',
fontSize: 12,
},
},
labelLine: {
show: false,
},
data: this.chart1SumList,
},
{
type: 'pie',
radius: ['25%', '58%'],
color: ['#627bf5', '#90a1f8', '#f09b69', '#f7cd96'],
label: {
position: 'inner',
formatter: '{d}%',
textStyle: {
color: '#ffffff',
fontWeight: 'bold',
fontSize: 12,
},
},
data: this.chart1NumList,
},
],
}
},
chart3Options() {
return {
color: ['#67a6a4', '#8e9dec'],
tooltip: {
trigger: 'axis',
axisPointer: { type: 'cross' },
},
grid: {
left: '5%',
},
legend: {
left: '5%',
data: ['在建数量', '项目数量', '在建项目金额', '项目金额'],
},
xAxis: [
{
type: 'category',
data: this.chart3XAxisData,
axisTick: {
show: false,
},
axisLine: {
show: false,
// lineStyle: {
// color: '#ccc'
// }
},
axisLabel: {
color: '#333',
},
},
],
yAxis: [
{
type: 'value',
name: '个',
// min: 0,
// max: Math.max(...this.buildingPrjNumList, ...this.prjNumList),
// interval: 20,
axisLabel: {
formatter: '{value}',
},
splitLine: {
show: false,
},
axisLine: {
show: false,
},
},
{
type: 'value',
name: '万元',
// min: 0,
// max: Math.max(...this.buildingPrjSumList, ...this.prjSumList),
// interval: Math.max(...this.buildingPrjNumList) / 10,
axisLabel: {
formatter: '{value}',
},
},
],
series: [
{
name: '在建数量',
type: 'bar',
yAxisIndex: 0,
data: this.buildingPrjNumList,
},
{
name: '项目数量',
type: 'bar',
yAxisIndex: 0,
data: this.prjNumList,
},
{
name: '在建项目金额',
type: 'line',
yAxisIndex: 1,
data: this.buildingPrjSumList,
},
{
name: '项目金额',
type: 'line',
yAxisIndex: 1,
data: this.prjSumList,
},
],
}
},
chart4Options() {
return {
color: '#f7c667',
tooltip: {
trigger: 'axis',
},
xAxis: {
type: 'category',
data: getPastFiveYearList(),
axisTick: {
show: false,
},
axisLine: {
show: false,
},
},
yAxis: {
type: 'value',
splitLine: {
lineStyle: {
type: 'dashed',
},
},
},
series: [
{
data: this.chart4List,
type: 'line',
},
],
}
},
chart5Options() {
return {
tooltip: {
trigger: 'axis',
},
xAxis: {
type: 'category',
data: getPastFiveYearList(),
axisTick: {
show: false,
},
axisLine: {
show: false,
},
},
yAxis: {
type: 'value',
splitLine: {
lineStyle: {
type: 'dashed',
},
},
},
series: this.chart5List,
}
},
},
methods: {},
}
export default chartOptions
...@@ -162,13 +162,13 @@ ...@@ -162,13 +162,13 @@
type="index" type="index"
:index="indexMethod" :index="indexMethod"
label="序号" label="序号"
width="80" width="60"
align="center" align="center"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
prop="assetName" prop="assetName"
label="资产名称" label="资产名称"
width="300" width="150"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
align="center" align="center"
></el-table-column> ></el-table-column>
...@@ -236,11 +236,6 @@ ...@@ -236,11 +236,6 @@
align="center" align="center"
width="100" width="100"
></el-table-column> ></el-table-column>
<el-table-column
prop="createMan"
label="创建人"
align="center"
></el-table-column>
<el-table-column label="操作" width="440" align="center"> <el-table-column label="操作" width="440" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div <div
......
<template>
<el-dialog
title="选择项目"
:visible.sync="showDialog"
:center="false"
:close-on-click-modal="false"
width="80%"
>
<div class="searchTable">
<list-page>
<!-- 查询表单插槽 -->
<template #formWrap>
<SearchForm @onSearch="querySearch" :form-options="formOptions" />
</template>
<!-- 表格插槽 -->
<template #tableWrap>
<table-config
ref="searchTable"
@selection-change="selectionChange"
:query="query"
:columns="columns"
>
</table-config>
</template>
</list-page>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="handleClose()" size="mini">取 消</el-button>
<el-button type="primary" @click="handleConfirm()" size="mini"
>确 定</el-button
>
</span></el-dialog
>
</template>
<script>
import ListPage from '@/components/ListPage.vue'
import SearchForm from '@/components/SearchForm.vue'
import TableConfig from '@/components/TableConfig.vue'
import { queryProjectInfo } from '@/api/interface'
import { buildType, prjPlanClass } from '@/utils/dictionary'
export default {
props: {
title: {
type: String,
default: '',
},
visible: {
type: Boolean,
default: false,
},
},
data() {
return {
query: {
url: queryProjectInfo,
method: 'post',
queryParam: {},
},
selectRows: [],
}
},
components: { ListPage, SearchForm, TableConfig },
computed: {
formOptions() {
return [
{
label: '单位', // label文字
prop: 'manageOrgId', // 字段名
element: 'el-input', // 指定elementui组件
initValue: '', // 字段初始值
placeholder: '请输入内容', // elementui组件属性
},
{
label: '部门', // label文字
prop: 'manageDeptId', // 字段名
element: 'el-input', // 指定elementui组件
initValue: '', // 字段初始值
placeholder: '请输入内容', // elementui组件属性
},
{
label: '系统名称', // label文字
prop: 'appName', // 字段名
element: 'el-input', // 指定elementui组件
initValue: '', // 字段初始值
placeholder: '请输入内容', // elementui组件属性
},
{
label: '建设类型', // label文字
prop: 'needType', // 字段名
element: 'el-select', // 指定elementui组件
initValue: '', // 字段初始值
placeholder: '请选择', // elementui组件属性
dictType: 'build_type',
},
]
},
columns() {
return [
{ type: 'selection', width: '55px' },
{ label: '序号', type: 'index', width: '80px' },
{ label: '单位', prop: 'manageOrgId' },
{ label: '部门', prop: 'manageDeptId' },
{ label: '系统名称', prop: 'appName', width: '200px' },
{
label: '建设类型',
width: '100px',
prop: 'buildType',
options: buildType,
collectionType: 'buildType',
},
{
label: '项目名称',
prop: 'prjName',
width: '320px',
},
{
label: '是否续建',
prop: 'prjPlanClass',
options: prjPlanClass,
collectionType: 'prjPlanClass',
},
{ label: '承建单位', prop: 'buildOrg' },
{ label: '项目经理', prop: 'projectManager' },
{ label: '创建人', prop: 'createMan' },
{ label: '创建时间', prop: 'createTime' },
]
},
showDialog: {
get() {
return this.visible
},
set(value) {
this.$emit('update:visible', value)
},
},
},
mounted() {},
methods: {
clearSelection() {
this.$refs['searchTable'].clearSelection()
},
handleClose() {
this.showDialog = false
this.selectRows = []
this.clearSelection()
},
handleConfirm() {
if (this.selectRows.length === 0) {
return this.$message.warning('请选择至少一条数据')
} else if (this.selectRows.length > 1) {
return this.$message.warning('只能选择一条数据')
}
this.$emit('selectData', this.selectRows)
this.handleClose()
},
// 表格勾选的数据
selectionChange(data) {
console.log('selectionChange', data)
this.selectRows = data
},
querySearch(data) {
this.query.queryParam = {
...this.query.queryParam,
...data,
}
this.$refs.searchTable.queryData()
},
},
}
</script>
<style scoped lang="scss">
@import '@/styles/common.scss';
::v-deep .el-dialog__body {
height: 500px;
}
</style>
...@@ -97,7 +97,7 @@ ...@@ -97,7 +97,7 @@
prop="manageOrgId" prop="manageOrgId"
label="建设单位" label="建设单位"
align="center" align="center"
width="160" width="280"
show-overflow-tooltip show-overflow-tooltip
:formatter=" :formatter="
(row, column, cellValue, index) => (row, column, cellValue, index) =>
...@@ -109,6 +109,7 @@ ...@@ -109,6 +109,7 @@
label="业务部门" label="业务部门"
show-overflow-tooltip show-overflow-tooltip
align="center" align="center"
width="280"
:formatter=" :formatter="
(row, column, cellValue, index) => (row, column, cellValue, index) =>
formatterDept(row, column, cellValue, index, 'sysDeptOptions') formatterDept(row, column, cellValue, index, 'sysDeptOptions')
...@@ -118,7 +119,7 @@ ...@@ -118,7 +119,7 @@
prop="appName" prop="appName"
label="系统名称" label="系统名称"
align="center" align="center"
width="200" width="280"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
></el-table-column> ></el-table-column>
<el-table-column label="建设类型" align="center"> <el-table-column label="建设类型" align="center">
...@@ -131,7 +132,7 @@ ...@@ -131,7 +132,7 @@
prop="prjName" prop="prjName"
label="项目名称" label="项目名称"
align="center" align="center"
width="200" width="280"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
> >
<template slot-scope="{ row }"> <template slot-scope="{ row }">
...@@ -146,18 +147,18 @@ ...@@ -146,18 +147,18 @@
<span v-else-if="scope.row.prjPlanClass == 2">续建</span> <span v-else-if="scope.row.prjPlanClass == 2">续建</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="buildOrg" label="承建单位" align="center"> <el-table-column :show-overflow-tooltip="true" prop="buildOrg" label="承建单位" width="280" align="center">
<template v-slot="scope"> <template v-slot="scope">
<span>{{ scope.row.buildOrg | orgNameFilter(that) }}</span> <span>{{ scope.row.buildOrg | orgNameFilter(that) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="projAmount" label="项目金额" align="right"> <el-table-column prop="projAmount" label="项目金额(万元)" width="150" align="right">
<template v-slot="scope"> <template v-slot="scope">
<span style="font-weight: bold">{{ scope.row.projAmount | formatMoney }}</span> <span style="font-weight: bold">{{ scope.row.projAmount | formatMoney }}</span>
</template> </template>
</el-table-column> </el-table-column>
<!--项目启动日期--> <!--项目启动日期-->
<el-table-column prop="projectInitiationTime" label="项目启动日期" align="center"> <el-table-column prop="projectInitiationTime" label="项目启动日期" width="120" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.projectInitiationTime }}</span> <span>{{ scope.row.projectInitiationTime }}</span>
</template> </template>
...@@ -244,7 +245,7 @@ ...@@ -244,7 +245,7 @@
></el-input> ></el-input>
</el-form-item> </el-form-item>
<!--项目金额-只可以输入金额,不能超过12位--> <!--项目金额-只可以输入金额,不能超过12位-->
<el-form-item label="项目金额:" prop="let6" style="width: 30%"> <el-form-item label="项目金额(万元):" prop="let6" style="width: 30%">
<el-input <el-input
v-model="ruleForm.let6" v-model="ruleForm.let6"
maxlength="12" maxlength="12"
...@@ -606,7 +607,7 @@ ...@@ -606,7 +607,7 @@
<span v-else></span> <span v-else></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="buildOrg" label="承建单位" align="center"> <el-table-column :show-overflow-tooltip="true" prop="buildOrg" label="承建单位" align="center">
<template v-slot="scope"> <template v-slot="scope">
<span>{{ scope.row.buildOrg | orgNameFilter(that) }}</span> <span>{{ scope.row.buildOrg | orgNameFilter(that) }}</span>
</template> </template>
...@@ -679,17 +680,17 @@ ...@@ -679,17 +680,17 @@
<script> <script>
import ProjectDetail from '@/views/projectInfoManage/ProjectDetail' import ProjectDetail from '@/views/projectInfoManage/ProjectDetail'
import { import {
queryProjectInfoManageTable,
getDianXingAnLiSelectData,
editDeleteProjectInfoManageTable,
querysystemInfoManageTable,
addProjectManageTable, addProjectManageTable,
getPrjInfoDetail, deleteProjectInfoManageTable,
editDeleteProjectInfoManageTable,
getDeptOption, getDeptOption,
getDianXingAnLiSelectData,
getOrgOption, getOrgOption,
deleteProjectInfoManageTable getPrjInfoDetail,
queryProjectInfoManageTable,
querysystemInfoManageTable
} from '@/api/index.js' } from '@/api/index.js'
import {MessageBox, Message} from 'element-ui' import {Message, MessageBox} from 'element-ui'
import $ from 'jquery' import $ from 'jquery'
import {getDictTypeOptions} from '@/utils' import {getDictTypeOptions} from '@/utils'
......
...@@ -82,7 +82,8 @@ ...@@ -82,7 +82,8 @@
</div> </div>
<div class="search_btn"> <div class="search_btn">
<el-button type="primary" size="medium" @click="toDetails" <el-button type="primary" size="medium" @click="toDetails"
>概设遵从情况</el-button >概设遵从情况
</el-button
> >
</div> </div>
<el-table <el-table
...@@ -102,28 +103,22 @@ ...@@ -102,28 +103,22 @@
align="center" align="center"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
prop="manageOrgId" prop="manageOrgName"
label="建设单位" label="建设单位"
align="center" align="center"
:formatter=" width="300"
(row, column, cellValue, index) =>
formatterColumn(row, column, cellValue, index, 'sysOrgOptions')
"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
prop="manageDeptId" prop="manageDeptName"
label="业务部门" label="业务部门"
align="center" align="center"
:formatter=" width="400"
(row, column, cellValue, index) =>
formatterColumn(row, column, cellValue, index, 'sysDeptOptions')
"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
prop="appName" prop="appName"
label="系统名称" label="系统名称"
align="center" align="center"
width="200" width="400"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
></el-table-column> ></el-table-column>
<el-table-column prop="buildType" label="建设类型" align="center"> <el-table-column prop="buildType" label="建设类型" align="center">
...@@ -136,7 +131,7 @@ ...@@ -136,7 +131,7 @@
prop="prjName" prop="prjName"
label="项目名称" label="项目名称"
align="center" align="center"
width="200" width="300"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
></el-table-column> ></el-table-column>
<el-table-column label="是否续建" align="center"> <el-table-column label="是否续建" align="center">
...@@ -146,9 +141,14 @@ ...@@ -146,9 +141,14 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="manageOrgId" prop="buildOrg"
label="承建单位" label="承建单位"
align="center" align="center"
width="400"
:formatter="
(row, column, cellValue, index) =>
formatterColumn(row, column, cellValue, index, 'sysBuildOrgOptions')
"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
prop="projectManager" prop="projectManager"
...@@ -158,35 +158,40 @@ ...@@ -158,35 +158,40 @@
<el-table-column prop="remark" label="安全架构遵从" align="center"> <el-table-column prop="remark" label="安全架构遵从" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="check(scope.row, '1')" <el-button type="text" @click="check(scope.row, '1')"
>查看</el-button >查看
</el-button
> >
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="remark" label="部署架构审查" align="center"> <el-table-column prop="remark" label="部署架构审查" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="check(scope.row, '2')" <el-button type="text" @click="check(scope.row, '2')"
>查看</el-button >查看
</el-button
> >
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="remark" label="技术架构遵从" align="center"> <el-table-column prop="remark" label="技术架构遵从" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="check(scope.row, '3')" <el-button type="text" @click="check(scope.row, '3')"
>查看</el-button >查看
</el-button
> >
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="remark" label="应用架构遵从" align="center"> <el-table-column prop="remark" label="应用架构遵从" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="check(scope.row, '4')" <el-button type="text" @click="check(scope.row, '4')"
>查看</el-button >查看
</el-button
> >
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="remark" label="物理数据架构遵从" align="center"> <el-table-column prop="remark" label="物理数据架构遵从" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="check(scope.row, '5')" <el-button type="text" @click="check(scope.row, '5')"
>查看</el-button >查看
</el-button
> >
</template> </template>
</el-table-column> </el-table-column>
...@@ -251,14 +256,10 @@ ...@@ -251,14 +256,10 @@
</template> </template>
<script> <script>
import { import {getDeptOption, getDianXingAnLiSelectData, getGaiSheJiaGouZunCongJiaChaTable, getOrgOption,} from '@/api/index.js'
getDianXingAnLiSelectData, import {Message} from 'element-ui'
getGaiSheJiaGouZunCongJiaChaTable,
getOrgOption,
getDeptOption,
} from '@/api/index.js'
import { MessageBox, Message } from 'element-ui'
import $ from 'jquery' import $ from 'jquery'
import {getDictTypeOptions} from "@/utils";
export default { export default {
name: 'reviewArchiFollowCheck', name: 'reviewArchiFollowCheck',
...@@ -314,7 +315,8 @@ export default { ...@@ -314,7 +315,8 @@ export default {
}, },
methods: { methods: {
formatterColumn(row, column, cellValue, index, options) { formatterColumn(row, column, cellValue, index, options) {
const obj = this[options]?.find((v) => v.orgId == cellValue) || {} console.log(cellValue)
const obj = this[options]?.find((v) => v.value == cellValue) || {}
return obj.label return obj.label
}, },
getDicts() { getDicts() {
...@@ -328,6 +330,9 @@ export default { ...@@ -328,6 +330,9 @@ export default {
this.sysOrgOptions = res.data this.sysOrgOptions = res.data
} }
}) })
getDictTypeOptions('build_company').then((res) => {
this.sysBuildOrgOptions = res
})
}, },
indexMethod(index) { indexMethod(index) {
return (this.pager.current - 1) * this.pager.size + index + 1 return (this.pager.current - 1) * this.pager.size + index + 1
...@@ -355,16 +360,20 @@ export default { ...@@ -355,16 +360,20 @@ export default {
const prjId = this.selectRows[0].prjId const prjId = this.selectRows[0].prjId
this.$router.push( this.$router.push(
`/main/reviewArchiFollowCheckDetails?prjId=${prjId}&type=1`, `/main/reviewArchiFollowCheckDetails?prjId=${prjId}&type=1`,
() => {}, () => {
() => {}, },
() => {
},
) )
}, },
check(row, type) { check(row, type) {
//查看点击 //查看点击
this.$router.push( this.$router.push(
`/main/reviewArchiFollowCheckDetails?prjId=${row.prjId}&type=${type}`, `/main/reviewArchiFollowCheckDetails?prjId=${row.prjId}&type=${type}`,
() => {}, () => {
() => {}, },
() => {
},
) )
}, },
save_dicy() { save_dicy() {
...@@ -516,9 +525,11 @@ export default { ...@@ -516,9 +525,11 @@ export default {
color: #0d867f; color: #0d867f;
border: 0; border: 0;
} }
.el-button--text { .el-button--text {
color: #0d867f; color: #0d867f;
} }
/deep/ .el-input-group__append { /deep/ .el-input-group__append {
background-color: #0d867f; background-color: #0d867f;
color: #fff; color: #fff;
......
...@@ -3,12 +3,13 @@ ...@@ -3,12 +3,13 @@
<list-page> <list-page>
<!-- 查询表单插槽 --> <!-- 查询表单插槽 -->
<template #formWrap> <template #formWrap>
<SearchForm @onSearch="querySearch" :form-options="formOptions" /> <SearchForm @onSearch="querySearch" :form-options="formOptions"/>
</template> </template>
<!-- 中部操作按钮 --> <!-- 中部操作按钮 -->
<template #operationWrap> <template #operationWrap>
<el-button type="primary" size="medium" plain @click="toDetails" <el-button type="primary" size="medium" plain @click="toDetails"
>架构政策审查</el-button >架构政策审查
</el-button
> >
</template> </template>
<!-- 表格插槽 --> <!-- 表格插槽 -->
...@@ -31,10 +32,11 @@ import ListPage from '@/components/ListPage.vue' ...@@ -31,10 +32,11 @@ import ListPage from '@/components/ListPage.vue'
import SearchForm from '@/components/SearchForm.vue' import SearchForm from '@/components/SearchForm.vue'
import TableConfig from '@/components/TableConfig.vue' import TableConfig from '@/components/TableConfig.vue'
import { queryAppArchiControlRequirements } from '@/api/interface' import {queryAppArchiControlRequirements} from '@/api/interface'
import { getOrgOption, getDeptOption } from '@/api/index' import {getDeptOption, getOrgOption} from '@/api/index'
import { prjPlanClass } from '@/utils/dictionary' import {prjPlanClass} from '@/utils/dictionary'
import { getDictTypeOptions } from '@/utils' import {getDictTypeOptions} from '@/utils'
export default { export default {
name: 'batchPlanManagement', name: 'batchPlanManagement',
components: { components: {
...@@ -93,30 +95,26 @@ export default { ...@@ -93,30 +95,26 @@ export default {
}, },
columns() { columns() {
return [ return [
{ type: 'selection', width: '55px' }, {type: 'selection', width: '55px'},
{ label: '序号', type: 'index', width: '80px' }, {label: '序号', type: 'index', width: '80px'},
{ {
label: '建设单位', label: '建设单位',
prop: 'manageOrgId', prop: 'manageOrgName',
options: this.sysOrgOptions, width: '300px',
collectionType: true,
width: '120px',
}, },
{ {
label: '业务部门', label: '业务部门',
prop: 'manageDeptId', prop: 'manageDeptName',
options: this.sysDeptOptions, width: '300px',
collectionType: true,
width: '120px',
}, },
{ label: '系统名称', width: '280px', prop: 'appName' }, {label: '系统名称', width: '280px', prop: 'appName'},
{ {
label: '建设类型', label: '建设类型',
prop: 'buildType', prop: 'buildType',
options: this.buildTypeOptions, options: this.buildTypeOptions,
collectionType: 'build_type', collectionType: 'build_type',
}, },
{ label: '项目名称', width: '295px', prop: 'prjName' }, {label: '项目名称', width: '295px', prop: 'prjName'},
{ {
label: '是否续建', label: '是否续建',
prop: 'prjPlanClass', prop: 'prjPlanClass',
...@@ -128,13 +126,13 @@ export default { ...@@ -128,13 +126,13 @@ export default {
prop: 'buildOrg', prop: 'buildOrg',
options: this.sysBuildOrgOptions, options: this.sysBuildOrgOptions,
collectionType: true, collectionType: true,
width: '120px', width: '300px',
}, },
{ {
label: '运安符合性审查', label: '运安符合性审查',
prop: 'version3', prop: 'version3',
type: 'operation', type: 'operation',
actionButtons: [{ title: '查看', type: 'text' }], actionButtons: [{title: '查看', type: 'text'}],
callback: (row, title) => { callback: (row, title) => {
this.fnToDetailsTab('1', row.prjId) this.fnToDetailsTab('1', row.prjId)
}, },
...@@ -143,7 +141,7 @@ export default { ...@@ -143,7 +141,7 @@ export default {
label: '功能满足审查', label: '功能满足审查',
prop: 'version4', prop: 'version4',
type: 'operation', type: 'operation',
actionButtons: [{ title: '查看', type: 'text' }], actionButtons: [{title: '查看', type: 'text'}],
callback: (row, title) => { callback: (row, title) => {
this.fnToDetailsTab('2', row.prjId) this.fnToDetailsTab('2', row.prjId)
}, },
...@@ -152,7 +150,7 @@ export default { ...@@ -152,7 +150,7 @@ export default {
label: '运行可靠性审查', label: '运行可靠性审查',
prop: 'version5', prop: 'version5',
type: 'operation', type: 'operation',
actionButtons: [{ title: '查看', type: 'text' }], actionButtons: [{title: '查看', type: 'text'}],
callback: (row, title) => { callback: (row, title) => {
this.fnToDetailsTab('3', row.prjId) this.fnToDetailsTab('3', row.prjId)
}, },
...@@ -161,7 +159,7 @@ export default { ...@@ -161,7 +159,7 @@ export default {
label: '系统实用性审查', label: '系统实用性审查',
prop: 'version6', prop: 'version6',
type: 'operation', type: 'operation',
actionButtons: [{ title: '查看', type: 'text' }], actionButtons: [{title: '查看', type: 'text'}],
callback: (row, title) => { callback: (row, title) => {
this.fnToDetailsTab('4', row.prjId) this.fnToDetailsTab('4', row.prjId)
}, },
...@@ -170,7 +168,7 @@ export default { ...@@ -170,7 +168,7 @@ export default {
label: '系统安全性审查', label: '系统安全性审查',
prop: 'version8', prop: 'version8',
type: 'operation', type: 'operation',
actionButtons: [{ title: '查看', type: 'text' }], actionButtons: [{title: '查看', type: 'text'}],
callback: (row, title) => { callback: (row, title) => {
this.fnToDetailsTab('5', row.prjId) this.fnToDetailsTab('5', row.prjId)
}, },
...@@ -179,7 +177,7 @@ export default { ...@@ -179,7 +177,7 @@ export default {
label: '资源复用性审查', label: '资源复用性审查',
prop: 'version7', prop: 'version7',
type: 'operation', type: 'operation',
actionButtons: [{ title: '查看', type: 'text' }], actionButtons: [{title: '查看', type: 'text'}],
callback: (row, title) => { callback: (row, title) => {
this.fnToDetailsTab('6', row.prjId) this.fnToDetailsTab('6', row.prjId)
}, },
...@@ -215,7 +213,7 @@ export default { ...@@ -215,7 +213,7 @@ export default {
}) })
} }
}) })
getDictTypeOptions('sys_build_org').then((res) => { getDictTypeOptions('build_company').then((res) => {
this.sysBuildOrgOptions = res this.sysBuildOrgOptions = res
}) })
}, },
...@@ -237,7 +235,7 @@ export default { ...@@ -237,7 +235,7 @@ export default {
if (this.selectRows.length > 1) { if (this.selectRows.length > 1) {
return this.$message.warning('只能选择一条数据') return this.$message.warning('只能选择一条数据')
} }
const { name, prjId } = this.selectRows[0] const {name, prjId} = this.selectRows[0]
this.$router.push({ this.$router.push({
path: '/main/reviewArchiPoliticeCheckDetails', path: '/main/reviewArchiPoliticeCheckDetails',
query: { query: {
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<list-page> <list-page>
<!-- 查询表单插槽 --> <!-- 查询表单插槽 -->
<template #formWrap> <template #formWrap>
<SearchForm @onSearch="querySearch" :form-options="formOptions" /> <SearchForm @onSearch="querySearch" :form-options="formOptions"/>
</template> </template>
<!-- 中部操作按钮 --> <!-- 中部操作按钮 -->
<template #operationWrap> <template #operationWrap>
...@@ -13,7 +13,8 @@ ...@@ -13,7 +13,8 @@
size="medium" size="medium"
plain plain
@click="toDetails()" @click="toDetails()"
>评审情况(概要设计)</el-button >评审情况(概要设计)
</el-button
> >
</template> </template>
<!-- 表格插槽 --> <!-- 表格插槽 -->
...@@ -35,10 +36,11 @@ import ListPage from '@/components/ListPage.vue' ...@@ -35,10 +36,11 @@ import ListPage from '@/components/ListPage.vue'
import SearchForm from '@/components/SearchForm.vue' import SearchForm from '@/components/SearchForm.vue'
import TableConfig from '@/components/TableConfig.vue' import TableConfig from '@/components/TableConfig.vue'
import { queryPrelDesInspecte } from '@/api/interface' import {queryPrelDesInspecte} from '@/api/interface'
import { getOrgOption, getDeptOption } from '@/api/index' import {getDeptOption, getOrgOption} from '@/api/index'
import { prjPlanClass, completionStatus } from '@/utils/dictionary' import {completionStatus, prjPlanClass} from '@/utils/dictionary'
import { getDictTypeOptions } from '@/utils' import {getDictTypeOptions} from '@/utils'
export default { export default {
name: 'reviewSituation', name: 'reviewSituation',
data() { data() {
...@@ -98,21 +100,17 @@ export default { ...@@ -98,21 +100,17 @@ export default {
}, },
columns() { columns() {
let arr = [ let arr = [
{ type: 'selection', width: '55px' }, {type: 'selection', width: '55px'},
{ label: '序号', type: 'index', width: '80px' }, {label: '序号', type: 'index', width: '80px'},
{ {
label: '建设单位', label: '建设单位',
prop: 'manageOrgId', prop: 'manageOrgName',
options: this.sysOrgOptions, width: '300px',
collectionType: true,
width: '120px',
}, },
{ {
label: '业务部门', label: '业务部门',
prop: 'manageDeptId', prop: 'manageDeptName',
options: this.sysDeptOptions, width: '300px',
collectionType: true,
width: '120px',
}, },
{ {
label: '系统名称', label: '系统名称',
...@@ -128,7 +126,7 @@ export default { ...@@ -128,7 +126,7 @@ export default {
}, },
{ {
label: '项目名称', label: '项目名称',
width: '200px', width: '320px',
prop: 'prjName', prop: 'prjName',
}, },
{ {
...@@ -143,7 +141,7 @@ export default { ...@@ -143,7 +141,7 @@ export default {
prop: 'buildOrg', prop: 'buildOrg',
options: this.sysBuildOrgOptions, options: this.sysBuildOrgOptions,
collectionType: true, collectionType: true,
width: '120px', width: '300px',
}, },
{ {
label: '项目经理', label: '项目经理',
...@@ -216,7 +214,7 @@ export default { ...@@ -216,7 +214,7 @@ export default {
}) })
} }
}) })
getDictTypeOptions('sys_build_org').then((res) => { getDictTypeOptions('build_company').then((res) => {
this.sysBuildOrgOptions = res this.sysBuildOrgOptions = res
}) })
}, },
......
...@@ -417,8 +417,8 @@ export default { ...@@ -417,8 +417,8 @@ export default {
item['caseType_'] = result1 ? result1.label : '' item['caseType_'] = result1 ? result1.label : ''
item['projectType_'] = result2 ? result2.label : '' item['projectType_'] = result2 ? result2.label : ''
item['problemType_'] = result2 ? result3.label : '' item['problemType_'] = result3 ? result3.label : ''
item['problemLevel_'] = result2 ? result4.label : '' item['problemLevel_'] = result4 ? result4.label : ''
}) })
this.pager.current = res.data.current this.pager.current = res.data.current
this.pager.total = res.data.total this.pager.total = res.data.total
......
...@@ -323,8 +323,8 @@ export default { ...@@ -323,8 +323,8 @@ export default {
item['caseType_'] = result1 ? result1.label : '' item['caseType_'] = result1 ? result1.label : ''
item['projectType_'] = result2 ? result2.label : '' item['projectType_'] = result2 ? result2.label : ''
item['problemType_'] = result2 ? result3.label : '' item['problemType_'] = result3 ? result3.label : ''
item['problemLevel_'] = result2 ? result4.label : '' item['problemLevel_'] = result4 ? result4.label : ''
}) })
this.pager.current = res.data.current this.pager.current = res.data.current
this.pager.total = res.data.total this.pager.total = res.data.total
......
...@@ -15,7 +15,7 @@ function resolve(dir) { ...@@ -15,7 +15,7 @@ function resolve(dir) {
// const ip = '192.168.137.146'; // 谢皓 // const ip = '192.168.137.146'; // 谢皓
// const ip = '2068224he2.51mypc.cn'; // 谢皓 // const ip = '2068224he2.51mypc.cn'; // 谢皓
const ip = '192.168.0.102' const ip = '192.168.8.120'
// const ip = '192.168.0.13'; // const ip = '192.168.0.13';
// const ip = '192.168.137.229' // const ip = '192.168.137.229'
module.exports = defineConfig({ module.exports = defineConfig({
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!