Commit 43321c7e by 史敦盼

面包屑修改,系统管理,项目管理内容修改

1 parent 5b1f903f
......@@ -33,8 +33,10 @@ export default function initDirective(vue) {
const value = event.target.value
// 使用正则表达式检测特殊字(根据需要匹配相应限制字符)
const regex =
/(?:')|(?:-- )|(\/\*(?:.|[\n\r])*?\*\/)|(\b(select|update|and|or|delete|insert|truncate|char|into|substr|ascii|declare|exec|count|master|into|drop|execute)\b)/i
// const regex =
// /(?:')|(?:-- )|(\/\*(?:.|[\n\r])*?\*\/)|(\b(select|update|and|or|delete|insert|truncate|char|into|substr|ascii|declare|exec|count|master|into|drop|execute)\b)/i
const regex = /[<>?!]|(select\s[\w|*]+\sfrom)/i
// 如果输入值包含特殊字符,则替换为空格
if (regex.test(value)) {
// 使用 replace 方法替换特殊字为空格
......
......@@ -2,16 +2,15 @@ import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
import { getAllBreadcrumbList } from '@/utils'
import { menuOptions } from '@/views/Main/menu'
export default new Vuex.Store({
state: {
},
state: {},
getters: {
// 递归处理后的所有面包屑导航列表
breadcrumbListGet: (state) => getAllBreadcrumbList(menuOptions),
},
mutations: {
},
actions: {
},
modules: {
}
mutations: {},
actions: {},
modules: {},
})
/* 面包屑动画 */
.breadcrumb-enter-active,
.breadcrumb-leave-active {
transition: all 0.5s;
}
.breadcrumb-enter,
.breadcrumb-leave-active {
opacity: 0;
transform: translateX(20px);
}
.breadcrumb-move {
transition: all 0.5s;
}
.breadcrumb-leave-active {
position: absolute;
}
......@@ -99,12 +99,13 @@
</el-popover>
</div>
<el-breadcrumb separator="/">
<el-breadcrumb-item>{{ breadcrumb1 }}</el-breadcrumb-item>
<!-- <el-breadcrumb-item>{{ breadcrumb1 }}</el-breadcrumb-item>
<el-breadcrumb-item>{{ breadcrumb2 }}</el-breadcrumb-item>
<el-breadcrumb-item>{{ breadcrumb3 }}</el-breadcrumb-item>
<!-- <el-breadcrumb-item
<el-breadcrumb-item>{{ breadcrumb3 }}</el-breadcrumb-item> -->
<transition-group name="breadcrumb">
<el-breadcrumb-item
v-for="(item, index) in breadcrumbList"
:key="item.path"
:key="index"
class="flex"
>
<div
......@@ -113,7 +114,8 @@
>
<span class="breadcrumb-title">{{ item.name }}</span>
</div>
</el-breadcrumb-item> -->
</el-breadcrumb-item>
</transition-group>
</el-breadcrumb>
</div>
<div class="left_menu_and_drawio_container">
......@@ -125,7 +127,7 @@
</div>
</template>
<script>
import $ from 'jquery'
// import $ from 'jquery'
import { menuOptions } from './menu'
export default {
components: {},
......@@ -461,6 +463,7 @@ export default {
<style lang="scss" scoped>
@import '@/styles/common.scss';
@import '@/styles/transition.scss';
.isActive {
color: $color-primary !important;
}
......
......@@ -53,6 +53,12 @@ export const menuOptions = [
{
name: '元模型管理',
path: '/main/metaModelList',
children: [
{
name: '元模型管理详情',
path: '/main/metaModelListDetails',
},
],
},
{
name: '架构视图配置',
......@@ -74,6 +80,12 @@ export const menuOptions = [
{
name: '架构视图管理',
path: '/main/archiViewManage',
children: [
{
name: '架构视图管理详情',
path: '/main/archiViewManageDetails',
},
],
},
{
name: '企业中台服务清单',
......@@ -126,14 +138,32 @@ export const menuOptions = [
{
name: '系统架构视图设计',
path: '/main/systemArchiViewDesign',
children: [
{
name: '系统架构视图设计详情',
path: '/main/systemArchiViewDesignDetails',
},
],
},
{
name: '概设阶段架构设计',
path: '/main/summaryArchiDesign',
children: [
{
name: '概设阶段视图设计详情',
path: '/main/summaryArchiDesignDetails',
},
],
},
{
name: '其他视图设计',
path: '/main/otherArchiDesign',
children: [
{
name: '其他视图设计详情',
path: '/main/otherArchiDesignDetails',
},
],
},
],
},
......@@ -143,14 +173,32 @@ export const menuOptions = [
{
name: '评审情况(概要设计)',
path: '/main/reviewSituation',
children: [
{
name: '评审情况',
path: '/main/reviewSituationDetails',
},
],
},
{
name: '概设架构遵从检查',
path: '/main/reviewArchiFollowCheck',
children: [
{
name: '审查',
path: '/main/reviewArchiFollowCheckDetails',
},
],
},
{
name: '概设架构政策审查',
path: '/main/reviewArchiPoliticeCheck',
children: [
{
name: '审查',
path: '/main/reviewArchiPoliticeCheckDetails',
},
],
},
],
},
......@@ -178,6 +226,12 @@ export const menuOptions = [
{
name: '概设材料意见编制',
path: '/main/conceptualViewOrg',
children: [
{
name: '在线辅助审核',
path: '/main/onlineReview',
},
],
},
{
name: '概设关联业务管理',
......@@ -215,6 +269,12 @@ export const menuOptions = [
{
name: '架构遵从检查',
path: '/main/architectureFollowExamine',
children: [
{
name: '遵从检查',
path: '/main/architectureFollowExamineDetails',
},
],
},
{
name: '技术政策审查',
......@@ -279,6 +339,12 @@ export const menuOptions = [
{
name: '报告模板关联使用',
path: '/main/reportTemplateRelativeUse',
children: [
{
path: '/main/documentEdit',
name: '编辑文档',
},
],
},
],
},
......
......@@ -66,6 +66,7 @@
<script>
import OnlineReviewLeft from '@/views/conceptualViewOrg/OnlineReviewLeft'
import vabOnlyOffice from '@/components/onlyOffice/index.vue'
import {
getReviewNorm,
editConceptualViewOrg,
......@@ -78,6 +79,7 @@ export default {
name: 'OnlineReview',
components: {
OnlineReviewLeft,
vabOnlyOffice,
},
data() {
return {
......
......@@ -120,11 +120,19 @@
prop="manageOrgId"
label="单位"
align="center"
:formatter="
(row, column, cellValue, index) =>
formatterDept(row, column, cellValue, index, 'sysOrgOptions')
"
></el-table-column>
<el-table-column
prop="manageDeptId"
label="部门"
align="center"
:formatter="
(row, column, cellValue, index) =>
formatterDept(row, column, cellValue, index, 'sysDeptOptions')
"
></el-table-column>
<el-table-column
prop="appName"
......@@ -783,6 +791,10 @@ export default {
this.getDicts()
},
methods: {
formatterDept(row, column, cellValue, index, options) {
const obj = this[options]?.find((v) => v.value == cellValue) || {}
return obj.label
},
getDicts() {
getDictTypeOptions('prj_data').then((res) => {
this.tableData4 = res.map((v) => {
......@@ -997,7 +1009,7 @@ export default {
name: v.busiFileName,
url: v.fileUrl,
fileId: v.fileId,
fileName: v.busiFileName,
fileName: v.fileName,
fileUrl: v.fileUrl,
},
]
......@@ -1006,7 +1018,7 @@ export default {
name: v.busiFileName,
url: v.fileUrl,
fileId: v.fileId,
fileName: v.busiFileName,
fileName: v.fileName,
fileUrl: v.fileUrl,
},
]
......
......@@ -33,7 +33,8 @@ import TableConfig from '@/components/TableConfig.vue'
// import { getDianXingAnLiSelectData } from '@/api/index.js'
import { queryAppArchiControlRequirements } from '@/api/interface'
import { prjPlanClass, buildType } from '@/utils/dictionary'
import { prjPlanClass } from '@/utils/dictionary'
import { getDictTypeOptions } from '@/utils'
export default {
name: 'batchPlanManagement',
components: {
......@@ -50,6 +51,10 @@ export default {
method: 'post',
queryParam: {},
},
buildTypeOptions: [],
sysOrgOptions: [],
sysDeptOptions: [],
sysBuildOrgOptions: [],
}
},
computed: {
......@@ -58,29 +63,27 @@ export default {
{
label: '单位', // label文字
prop: 'manageOrgId', // 字段名
element: 'el-input', // 指定elementui组件
initValue: '', // 字段初始值
placeholder: '请输入内容', // elementui组件属性
element: 'el-select', // 指定elementui组件
placeholder: '请选择', // elementui组件属性
dictType: 'sys_org',
},
{
label: '部门', // label文字
prop: 'manageDeptId', // 字段名
element: 'el-input', // 指定elementui组件
initValue: '', // 字段初始值
placeholder: '请输入内容', // elementui组件属性
element: 'el-select', // 指定elementui组件
placeholder: '请选择', // elementui组件属性
dictType: 'sys_dept',
},
{
label: '系统名称', // label文字
prop: 'appName', // 字段名
element: 'el-input', // 指定elementui组件
initValue: '', // 字段初始值
placeholder: '请输入内容', // elementui组件属性
},
{
label: '建设类型', // label文字
prop: 'buildType', // 字段名
element: 'el-select', // 指定elementui组件
initValue: '', // 字段初始值
placeholder: '请选择', // elementui组件属性
dictType: 'build_type',
},
......@@ -90,14 +93,26 @@ export default {
return [
{ type: 'selection', width: '55px' },
{ label: '序号', type: 'index', width: '80px' },
{ label: '单位', prop: 'manageOrgId' },
{ label: '部门', prop: 'manageDeptId' },
{
label: '单位',
prop: 'manageOrgId',
options: this.sysOrgOptions,
collectionType: true,
width: '120px',
},
{
label: '部门',
prop: 'manageDeptId',
options: this.sysDeptOptions,
collectionType: true,
width: '120px',
},
{ label: '系统名称', width: '280px', prop: 'appName' },
{
label: '建设类型',
prop: 'buildType',
options: buildType,
collectionType: 'buildType',
options: this.buildTypeOptions,
collectionType: 'build_type',
},
{ label: '项目名称', width: '295px', prop: 'prjName' },
{
......@@ -106,7 +121,13 @@ export default {
options: prjPlanClass,
collectionType: 'prjPlanClass',
},
{ label: '承建单位', prop: 'buildOrg' },
{
label: '承建单位',
prop: 'buildOrg',
options: this.sysBuildOrgOptions,
collectionType: true,
width: '120px',
},
{
label: '运安符合性审查',
prop: 'version3',
......@@ -164,8 +185,24 @@ export default {
]
},
},
created() {},
created() {
this.getDicts()
},
methods: {
getDicts() {
getDictTypeOptions('build_type').then((res) => {
this.buildTypeOptions = res
})
getDictTypeOptions('sys_org').then((res) => {
this.sysOrgOptions = res
})
getDictTypeOptions('sys_dept').then((res) => {
this.sysDeptOptions = res
})
getDictTypeOptions('sys_build_org').then((res) => {
this.sysBuildOrgOptions = res
})
},
// 表格勾选的数据
selectionChange(data) {
this.selectRows = data
......
......@@ -36,7 +36,8 @@ import SearchForm from '@/components/SearchForm.vue'
import TableConfig from '@/components/TableConfig.vue'
import { queryPrelDesInspecte } from '@/api/interface'
import { buildType, prjPlanClass, completionStatus } from '@/utils/dictionary'
import { prjPlanClass, completionStatus } from '@/utils/dictionary'
import { getDictTypeOptions } from '@/utils'
export default {
name: 'reviewSituation',
data() {
......@@ -47,6 +48,10 @@ export default {
queryParam: {},
},
selectRows: [],
buildTypeOptions: [],
sysOrgOptions: [],
sysDeptOptions: [],
sysBuildOrgOptions: [],
}
},
components: {
......@@ -60,14 +65,16 @@ export default {
{
label: '单位', // label文字
prop: 'manageOrgId', // 字段名
element: 'el-input', // 指定elementui组件
placeholder: '请输入内容', // elementui组件属性
element: 'el-select', // 指定elementui组件
placeholder: '请选择', // elementui组件属性
dictType: 'sys_org',
},
{
label: '部门', // label文字
prop: 'manageDeptId', // 字段名
element: 'el-input', // 指定elementui组件
placeholder: '请输入内容', // elementui组件属性
element: 'el-select', // 指定elementui组件
placeholder: '请选择', // elementui组件属性
dictType: 'sys_dept',
},
{
label: '系统名称', // label文字
......@@ -90,8 +97,20 @@ export default {
let arr = [
{ type: 'selection', width: '55px' },
{ label: '序号', type: 'index', width: '80px' },
{ label: '单位', prop: 'manageOrgId' },
{ label: '部门', prop: 'manageDeptId', width: '200px' },
{
label: '单位',
prop: 'manageOrgId',
options: this.sysOrgOptions,
collectionType: true,
width: '120px',
},
{
label: '部门',
prop: 'manageDeptId',
options: this.sysDeptOptions,
collectionType: true,
width: '120px',
},
{
label: '系统名称',
prop: 'appName',
......@@ -101,8 +120,8 @@ export default {
label: '建设类型',
width: '100px',
prop: 'buildType',
options: buildType,
collectionType: 'buildType',
options: this.buildTypeOptions,
collectionType: 'build_type',
},
{
label: '项目名称',
......@@ -118,8 +137,10 @@ export default {
},
{
label: '承建单位',
width: '200px',
prop: 'buildOrg',
options: this.sysBuildOrgOptions,
collectionType: true,
width: '120px',
},
{
label: '项目经理',
......@@ -164,8 +185,24 @@ export default {
return arr
},
},
mounted() {},
created() {
this.getDicts()
},
methods: {
getDicts() {
getDictTypeOptions('build_type').then((res) => {
this.buildTypeOptions = res
})
getDictTypeOptions('sys_org').then((res) => {
this.sysOrgOptions = res
})
getDictTypeOptions('sys_dept').then((res) => {
this.sysDeptOptions = res
})
getDictTypeOptions('sys_build_org').then((res) => {
this.sysBuildOrgOptions = res
})
},
toDetails() {
if (this.selectRows.length == 0) {
return this.$message.warning('请选择一条数据!')
......
......@@ -4,7 +4,7 @@
* @Autor: pan
* @Date: 2024-03-29 11:44:57
* @LastEditors: pan
* @LastEditTime: 2024-03-29 14:24:42
* @LastEditTime: 2024-03-29 16:28:15
-->
<template>
......@@ -26,51 +26,57 @@
<el-row class="m-t-20">
<el-col :span="6" class="flex">
<div class="label">单位</div>
<div class="value">总部</div>
<div class="value">{{ systemInfoDetail.manageOrgId }}</div>
</el-col>
<el-col :span="6" class="flex">
<div class="label">部门</div>
<div class="value">发展策划部</div>
<div class="value">{{ systemInfoDetail.manageDeptId }}</div>
</el-col>
<el-col :span="6" class="flex">
<div class="label">系统名称</div>
<div class="value">
电力营销-2023年网上国网(网上国网V1.0)
{{ systemInfoDetail.appName }}
</div>
</el-col>
<el-col :span="6" class="flex">
<div class="label">建设类型</div>
<div class="value">统建</div>
<div class="value">{{ systemInfoDetail.buildType }}</div>
</el-col>
</el-row>
<el-row class="m-t-20">
<el-col :span="6" class="flex">
<div class="label">承建单位</div>
<div class="value">Sora大模型系统</div>
<div class="value">{{ systemInfoDetail.buildOrg }}</div>
</el-col>
<el-col :span="6" class="flex">
<div class="label">项目经理</div>
<div class="value"></div>
<div class="value">
{{ systemInfoDetail.projectManager }}
</div>
</el-col>
<el-col :span="6" class="flex">
<div class="label">创建人</div>
<div class="value">
电力营销-2023年网上国网(网上国网V1.0)
{{ systemInfoDetail.createMan }}
</div>
</el-col>
<el-col :span="6" class="flex">
<div class="label">创建时间</div>
<div class="value">国网数字科技有限公司</div>
<div class="value">{{ systemInfoDetail.createTime }}</div>
</el-col>
</el-row>
<el-row class="m-t-20">
<el-col :span="6" class="flex">
<div class="label">修改人</div>
<div class="value">李雷</div>
<div class="value">
{{ systemInfoDetail.lastUpdateMan }}
</div>
</el-col>
<el-col :span="6" class="flex">
<div class="label">修改时间</div>
<div class="value">2024-03-28</div>
<div class="value">
{{ systemInfoDetail.lastUpdateTime }}
</div>
</el-col>
</el-row>
</div>
......@@ -107,6 +113,7 @@
</template>
<script>
import { getSystemInfoDetail } from '@/api'
export default {
props: {
visible: {
......@@ -122,6 +129,7 @@ export default {
return {
activeName: '1',
tableData: [],
systemInfoDetail: {},
}
},
components: {},
......@@ -143,7 +151,13 @@ export default {
handleClose() {
this.showDialog = false
},
handleOpen() {},
handleOpen() {
getSystemInfoDetail(this.rowData).then((res) => {
if (res.code === 200) {
this.systemInfoDetail = res.data
}
})
},
handleClick() {},
},
}
......
......@@ -120,12 +120,22 @@
prop="manageOrgId"
label="单位"
align="center"
></el-table-column>
:formatter="
(row, column, cellValue, index) =>
formatterDept(row, column, cellValue, index, 'sysOrgOptions')
"
>
</el-table-column>
<el-table-column
prop="manageDeptId"
label="部门"
align="center"
></el-table-column>
:formatter="
(row, column, cellValue, index) =>
formatterDept(row, column, cellValue, index, 'sysDeptOptions')
"
>
</el-table-column>
<el-table-column
prop="appName"
label="系统名称"
......@@ -145,10 +155,15 @@
<span v-else-if="scope.row.buildType == 2">自建</span>
</template>
</el-table-column>
<el-table-column prop="buildOrg" label="承建单位" align="center">
<template slot-scope="{ row }">
<span>{{ toBuildOrgName(row.buildOrg) }}</span>
</template>
<el-table-column
prop="buildOrg"
label="承建单位"
align="center"
:formatter="
(row, column, cellValue, index) =>
formatterDept(row, column, cellValue, index, 'sysBuildOrgOptions')
"
>
</el-table-column>
<el-table-column
prop="projectManager"
......@@ -379,8 +394,8 @@ export default {
this.rowData = row
this.appDetailVisible = true
},
toBuildOrgName(code) {
const obj = this.sysBuildOrgOptions?.find((v) => v.value == code) || {}
formatterDept(row, column, cellValue, index, options) {
const obj = this[options]?.find((v) => v.value == cellValue) || {}
return obj.label
},
getDicts() {
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!