修改路径、换图片、图形分析

This commit is contained in:
康冉冉
2025-08-28 18:55:38 +08:00
parent 513d77f40f
commit fd38d86bf1
38 changed files with 1059 additions and 1020 deletions

View File

@@ -1,5 +1,5 @@
# 页面标题
VUE_APP_TITLE = SAAS管理平台
VUE_APP_TITLE = SAAS综合管理平台
# 开发环境配置
ENV = 'development'

View File

@@ -1,5 +1,5 @@
# 页面标题
VUE_APP_TITLE = SAAS管理平台
VUE_APP_TITLE = SAAS综合管理平台
# 生产环境配置
ENV = 'production'

View File

@@ -1,5 +1,5 @@
# 页面标题
VUE_APP_TITLE = SAAS管理平台
VUE_APP_TITLE = SAAS综合管理平台
BABEL_ENV = production

View File

@@ -1,7 +1,7 @@
{
"name": "ruoyi",
"version": "3.6.6",
"description": "SAAS管理平台",
"description": "SAAS综合管理平台",
"author": "若依",
"license": "MIT",
"scripts": {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 662 KiB

BIN
public/favicon1.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 17 KiB

BIN
src/assets/logo/logo1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

BIN
src/assets/logo/logo2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 662 KiB

View File

@@ -80,6 +80,12 @@ div:focus {
.plr-50 {
padding: 0 50px;
}
.p15 {
padding: 15px;
}
.p20 {
padding: 20px;
}
.fontSize15 {
font-size: 15px;
}
@@ -229,9 +235,20 @@ aside {
.w100 {
width: 100%;
}
.h40 {
height: 40%;
}
.h100 {
height: 100%;
}
.textAlignCenter {
text-align: center;
}
.pageTopForm .el-form-item--medium .el-form-item__label {
width: 80px;
overflow: hidden;
height: 36px;
}
.pageTopForm .el-form-item {
margin-left: 10px!important;
}

View File

@@ -8,9 +8,9 @@
range-separator=""
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
style="display: inline-block!important;width: 55%!important;"
style="display: inline-block!important;width: 45%!important;vertical-align: middle;"
@change="dateChange"/>
<ul style="display: inline-block">
<ul style="display: inline-block;padding-left: 10px;vertical-align: middle;">
<li :class="{ 'activesbgs' : isActive == 'DAY' }" @click="toggle('DAY',7)">前7天</li>
<li :class="{ 'activesbgs' : isActive == 'WEEK' }" @click="toggle('WEEK',15)">前15天</li>
<li :class="{ 'activesbgs' : isActive == 'MONTH' }" @click="toggle('MONTH')">前一个月</li>
@@ -97,11 +97,11 @@
</script>
<style scoped>
.ultabs {
width: 500px;
float: right;
position: relative;
z-index: 9;
margin-top: 30px;
margin-right: 2%;
margin-top: -10px;
}
.ultabs ul li {
@@ -132,10 +132,4 @@
line-height: 40px !important;
border: 1px solid #5D78FF;
}
::v-deep .ultabs .el-range-editor--medium .el-range-input{
vertical-align: super!important;
}
::v-deep .ultabs .el-range-editor--medium .el-range-separator{
vertical-align: super!important;
}
</style>

View File

@@ -37,10 +37,22 @@
const pieDataListIntance = echarts.init(document.getElementById('pieChart' + this.num));
let option = {
color: dataList.color,
// title: [
// {
// text: `${dataList.centerVal}${dataList.unit}`,
// left: "16%",
// top: "43%",
// textStyle: {
// fontSize: 18,
// fontWeight: "bold",
// color: "#333",
// },
// }
// ],
legend: {
orient: 'vertical', // 垂直排列
top: 'center', // 垂直居中
right: 40, // 距离右侧40px
// orient: 'vertical', // 垂直排列
top: 'bottom', // 垂直居中
// right: 1, // 距离右侧40px
itemWidth: 12, // 图例标记宽度
itemHeight: 12, // 图例标记高度
itemGap: 20, // 图例项间距
@@ -58,8 +70,8 @@
series: [{
name: 'Access From',
type: 'pie',
radius: ['40%', '70%'],
center: dataList && dataList.center || ['20%', '50%'],
radius: dataList && dataList.radius || ['40%', '70%'],
// center: dataList && dataList.center || ['20%', '50%'],
label: {
show: false,
position: 'center'
@@ -74,18 +86,18 @@
},
data: dataList.data
}],
// graphic: [{
// type: 'text',
// left: 'center',
// top: 'middle',
// style: {
// text: `${dataList.centerVal}${dataList.unit}`,
// textBaseline: 'middle',
// textAlign: 'center',
// fontSize: 20,
// fill: '#333'
// }
// }],
graphic: [{
type: 'text',
left: 'center',
top: 'middle',
style: {
text: `${dataList.centerVal}${dataList.unit}`,
textBaseline: 'middle',
textAlign: 'center',
fontSize: 20,
fill: '#333'
}
}],
};
pieDataListIntance.setOption(option);
// window.addEventListener("resize", () => {

View File

@@ -95,7 +95,6 @@
methods: {
// 所有方法都抛出到父组件里去
handleClick(item, row) {
console.log('row==',row);
this.$emit("fnClick", item, row, this.ids, this.selectList);
},
@@ -132,7 +131,6 @@
this.selectList.forEach(val => {
this.$refs.selChangeList.toggleRowSelection(val,true);
});
console.log('selectList==',this.selectList);
},
// 提供给父组件调用的方法:返回当前表格的选中数据
getSelectedData() {

View File

@@ -9,13 +9,13 @@
<template v-if="device!=='mobile'">
<search id="header-search" class="right-menu-item" />
<el-tooltip content="源码地址" effect="dark" placement="bottom">
<ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" />
</el-tooltip>
<!-- <el-tooltip content="源码地址" effect="dark" placement="bottom">-->
<!-- <ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" />-->
<!-- </el-tooltip>-->
<el-tooltip content="文档地址" effect="dark" placement="bottom">
<ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" />
</el-tooltip>
<!-- <el-tooltip content="文档地址" effect="dark" placement="bottom">-->
<!-- <ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" />-->
<!-- </el-tooltip>-->
<screenfull id="screenfull" class="right-menu-item hover-effect" />

View File

@@ -5,6 +5,7 @@ Vue.use(Router)
/* Layout */
import Layout from '@/layout'
import DialogView from '@/views/disRevenue/earnManage/server/dialogView.vue'
/**
* Note: 路由配置项
@@ -87,6 +88,11 @@ export const constantRoutes = [
meta: { title: '个人中心', icon: 'user' }
}
]
},
{
path: '/dialog-view',
component: DialogView,
name: 'DialogView'
}
]
@@ -191,6 +197,20 @@ export const dynamicRoutes = [
}
]
},
{
path: '/disRevenue/earnManage/server/graphicAnalysis',
component: Layout,
hidden: true,
permissions: ['disRevenue:earnManage:server:graphicAnalysis'],
children: [
{
path: 'index/:dialogVal?',
component: () => import('@/views/disRevenue/earnManage/server/dialogView'),
name: 'DialogView',
meta: { title: '图形分析', activeMenu: '/disRevenue/earnManage/server' }
}
]
},
// 交换机宽带收益
{
path: '/disRevenue/earnManage/switch/list',

View File

@@ -56,13 +56,13 @@ service.interceptors.request.use(config => {
const s_data = sessionObj.data // 请求数据
const s_time = sessionObj.time // 请求时间
const interval = 1000 // 间隔时间(ms),小于此时间视为重复提交
if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) {
const message = '数据正在处理,请勿重复提交'
console.warn(`[${s_url}]: ` + message)
return Promise.reject(new Error(message))
} else {
// if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) {
// const message = '数据正在处理,请勿重复提交'
// console.warn(`[${s_url}]: ` + message)
// return Promise.reject(new Error(message))
// } else {
cache.session.setJSON('sessionObj', requestObj)
}
// }
}
}
return config

View File

@@ -52,7 +52,7 @@
countBusinessName(dataVal).then(response => {
addBusiness(dataVal).then(response => {
this.$modal.msgSuccess(response.msg);
this.$router.push("/disRevenue/earnManage/business");
this.$router.push("/earnManage/business");
this.loading = false;
}).catch(() => {
this.$modal.msgError("操作失败");
@@ -64,7 +64,7 @@
});
break;
case 'cancle':
this.$router.push("/disRevenue/earnManage/business");
this.$router.push("/earnManage/business");
break;
default:
}

View File

@@ -1,5 +1,5 @@
<template>
<div class="app-container">
<div class="app-container pageTopForm">
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" :inline="true" label-width="130px">
<el-form-item label="业务名称" prop="businessName">
<el-col :span="4">

View File

@@ -1,5 +1,5 @@
<template>
<div class="app-container">
<div class="app-container pageTopForm">
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" :inline="true" label-width="130px">
<el-form-item label="节点名称" prop="nodeName">
<el-col :span="4">

View File

@@ -74,7 +74,7 @@
calculateAvg(dataVal).then(response => {
this.$modal.msgSuccess(response.msg);
if (this.paramsData && this.paramsData.resourceType === '1') {
this.$router.push("/disRevenue/earnManage/server");
this.$router.push("/earnManage/server");
}
// else {
// this.$router.push("/disRevenue/earnManage/switch");
@@ -85,7 +85,7 @@
break;
case 'cancle':
if (this.paramsData && this.paramsData.resourceType === '1') {
this.$router.push("/disRevenue/earnManage/server");
this.$router.push("/earnManage/server");
}
// else {
// this.$router.push("/disRevenue/earnManage/switch");

View File

@@ -0,0 +1,121 @@
<template>
<div class="app-container">
<div style="height: 90px;">
<el-form ref="noticeRef" :model="form" label-width="80px">
<el-form-item label="节点名称" prop="noticeType">
<el-select v-model="form.noticeType" multiple placeholder="请选择节点名称">
<el-option
v-for="item in selectChangeList"
:key="item.id"
:label="item.nodeName"
:value="item.id"/>
</el-select>
</el-form-item>
</el-form>
<el-switch v-for="item of switchData" v-model="item.type" :activeText="item.name" class="mr20" />
</div>
<div style="height: calc(100vh - 130px);overflow: scroll;">
<template v-for="(item,index) of selectChoose">
<EchartsLine v-show="switchData[0].type" :chartData="chartDataEvent"
:lineData="lineDataParams" :title="'【' + item.nodeName + '】【' + item.businessName + '】' + switchData[0].name" class="w100 h40 mt20 mb20" style="border: 1.5px solid #878787;"></EchartsLine>
<EchartsLine v-show="switchData[1].type" :chartData="chartDataEvent"
:lineData="lineDataParams" :title="'【' + item.nodeName + '】【' + item.businessName + '】' + switchData[1].name" class="w100 h40 mt20 mb20" style="border: 1.5px solid #878787;"></EchartsLine>
<EchartsBar v-show="switchData[2].type" :chartData="chartDataEvent"
:barData="lineDataParams" :title="'【' + item.nodeName + '】【' + item.businessName + '】' + switchData[2].name" class="w100 h40 mt20 mb20" style="border: 1.5px solid #878787;"></EchartsBar>
</template>
</div>
<!-- <template #footer>-->
<!-- <div class="dialog-footer">-->
<!-- &lt;!&ndash; <el-button type="primary" @click="submitForm"> </el-button>&ndash;&gt;-->
<!-- <el-button @click="cancel"> </el-button>-->
<!-- </div>-->
<!-- </template>-->
</div>
</template>
<script setup>
import Form from '@/components/form/index.vue';
import EchartsLine from "@/components/echartsList/line.vue";
import EchartsBar from "@/components/echartsList/bar.vue";
export default {
name: 'DialogView',
components: {Form, EchartsLine, EchartsBar},
data() {
return {
paramsData: {},
form: {},
storageKey: '',
selectChangeList: [],
switchData: [
{id: 'ninetyFiveDay', type: true, name: '95宽带值Mbps/日'},
{id: 'ninetyFiveMonth', type: true, name: '95宽带值Mbps/月'},
{id: 'packageEnd', type: true, name: '包端宽带值Mbps/日'}
],
selectChoose: [],
lineDataParams: {
lineXData: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
data: [820, 932, 901, 934, 1290, 1330, 1320]
},
}
},
created() {},
mounted() {
this.storageKey = this.$route.query && this.$route.query['storageKey'];
if (this.storageKey) {
this.paramsData = localStorage.getItem(this.storageKey);
if (this.paramsData) {
this.processData(JSON.parse(this.paramsData));
}
}
},
destroyed() {
localStorage.removeItem(this.storageKey);
},
methods: {
processData(list) {
this.selectChangeList = list;
if (list.length >=2) {
this.form.noticeType = [list[0].id, list[1].id];
} else {
this.form.noticeType = [list[0].id];
}
this.form.noticeType.forEach(item => {
list.some(val => {
if (item === val.id) {
this.selectChoose.push(val);
return true;
}
});
});
},
chartDataEvent(val) {
// console.log('val===',val);
return val;
},
// 监听事件
callback(result, dataVal, formVal) {
if (result && result.fnCode) {
switch (result.fnCode) {
case 'submit':
break;
case 'cancle':
break;
default:
}
}
}
}
}
</script>
<style scoped>
::v-deep .ultabs .el-range-editor .el-range-input {
vertical-align: super!important;
}
::v-deep .ultabs .el-date-editor .el-range-separator {
vertical-align: super!important;
}
::-webkit-scrollbar {
width: 0px!important;
height: 0px!important;
}
</style>

View File

@@ -1,7 +1,7 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" label-width="auto" class="demo-ruleForm">
<el-col :span="7">
<div class="app-container pageTopForm">
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" label-width="70px" class="demo-ruleForm">
<el-col :span="8">
<el-form-item label="节点名称" prop="nodeName">
<el-input
v-model="queryParams.nodeName"
@@ -11,17 +11,7 @@
</el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="硬件SN" prop="hardwareSn">
<el-input
v-model="queryParams.hardwareSn"
placeholder="请输入硬件SN"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
</el-col>
<el-col :span="7">
<el-col :span="8">
<el-form-item label="类型" prop="bandwidthType">
<el-select
v-model="queryParams.bandwidthType"
@@ -35,8 +25,8 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="7" v-show="queryParams.bandwidthType === '1'">
<el-form-item label="95宽带值Mbps/日" prop="bandwidth95Daily">
<el-col :span="8" v-show="queryParams.bandwidthType === '1'">
<el-form-item label="95宽带值Mbps/日" title="95宽带值Mbps/日" prop="bandwidth95Daily">
<el-date-picker
v-model="queryParams.bandwidth95Daily"
type="daterange"
@@ -47,7 +37,7 @@
end-placeholder="结束日期"/>
</el-form-item>
</el-col>
<el-col :span="7" v-show="queryParams.bandwidthType === '2'">
<el-col :span="8" v-show="queryParams.bandwidthType === '2'">
<el-form-item label="95宽带值Mbps/月" prop="bandwidth95Monthly">
<el-date-picker
v-model="queryParams.bandwidth95Monthly"
@@ -58,7 +48,7 @@
end-placeholder="结束月份"/>
</el-form-item>
</el-col>
<el-col :span="7" v-show="queryParams.bandwidthType === '3'">
<el-col :span="8" v-show="queryParams.bandwidthType === '3'">
<el-form-item label="包端带宽值Mbps/日" prop="packageBandwidthDaily">
<el-date-picker
v-model="queryParams.packageBandwidthDaily"
@@ -70,7 +60,17 @@
end-placeholder="结束日期"/>
</el-form-item>
</el-col>
<el-col :span="7">
<el-col :span="8">
<el-form-item label="硬件SN" prop="hardwareSn">
<el-input
v-model="queryParams.hardwareSn"
placeholder="请输入硬件SN"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="lastBtnSty">
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
@@ -80,37 +80,6 @@
<!-- 表格数据 -->
<TableList :columns="columns" :config="config" :queryParams="queryParams" :tableList="tableList" @fnClick="callback" @fnRenderList="getList" @value-change="handleValueChange"></TableList>
<!-- 图形分析 -->
<el-dialog :title="title" :visible.sync="open" width="780px" append-to-body fullscreen>
<el-form v-if="open" ref="noticeRef" :model="form" label-width="80px">
<el-form-item label="节点名称" prop="noticeType">
<el-select v-model="form.noticeType" multiple placeholder="请选择节点名称">
<el-option
v-for="item in selectChangeList"
:key="item.id"
:label="item.nodeName"
:value="item.id"/>
</el-select>
</el-form-item>
</el-form>
<div>
<el-switch v-for="item of switchData" v-model="item.type" :activeText="item.name" class="mr20" />
<div v-for="(item,index) of selectChoose">
<EchartsLine v-show="switchData[0].type" :chartData="chartDataEvent"
:lineData="lineDataParams" :title="'【' + item.nodeName + '】【' + item.businessName + '】' + switchData[0].name" class="mt20 mb20" style="width: 100%;height: 420px;border: 1.5px solid #878787;"></EchartsLine>
<EchartsLine v-show="switchData[1].type" :chartData="chartDataEvent"
:lineData="lineDataParams" :title="'【' + item.nodeName + '】【' + item.businessName + '】' + switchData[1].name" class="mt20 mb20" style="width: 100%;height: 420px;border: 1.5px solid #878787;"></EchartsLine>
<EchartsBar v-show="switchData[2].type" :chartData="chartDataEvent"
:barData="lineDataParams" :title="'【' + item.nodeName + '】【' + item.businessName + '】' + switchData[2].name" class="mt20 mb20" style="width: 100%;height: 420px;border: 1.5px solid #878787;"></EchartsBar>
</div>
</div>
<template #footer>
<div class="dialog-footer">
<!-- <el-button type="primary" @click="submitForm"> </el-button>-->
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
@@ -126,23 +95,8 @@
data() {
return {
tableList: [],
selectChangeList: [],
loading: true,
showSearch: true,
ids: [],
single: true,
multiple: true,
total: 0,
dateRange: [],
open: false,
title: '',
switchData: [
{id: 'ninetyFiveDay', type: true, name: '95宽带值Mbps/日'},
{id: 'ninetyFiveMonth', type: true, name: '95宽带值Mbps/月'},
{id: 'packageEnd', type: true, name: '包端宽带值Mbps/日'}
],
lineDataParams: {},
selectChoose: [],
// 列显隐信息
columns: {
id: {label: `ID`},
@@ -179,7 +133,6 @@
]
}
},
form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
@@ -231,40 +184,24 @@
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryRef");
this.handleQuery();
},
/** 图形分析 */
graphicAnalysis(list) {
this.open = true;
this.title = "图形分析";
this.selectChangeList = list;
if (list.length >=2) {
this.form.noticeType = [list[0].id, list[1].id];
} else {
this.form.noticeType = [list[0].id];
}
this.form.noticeType.forEach(item => {
list.some(val => {
if (item === val.id) {
this.selectChoose.push(val);
return true;
}
});
});
this.lineDataParams = {
lineXData: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
data: [820, 932, 901, 934, 1290, 1330, 1320]
}
},
/** 取消按钮 */
cancel() {
this.$nextTick(() => {
this.open = false;
// 生成唯一 key避免数据冲突
const storageKey = `temp_data_${Date.now()}`;
// 1. 将数据存入 localStorage需序列化
localStorage.setItem(storageKey, JSON.stringify(list));
// 1. 用 Vue Router 解析目标路由的完整 URL
const routeLocation = this.$router.resolve({
name: 'DialogView',
query: { storageKey }
});
// 2. 打开新窗口routeLocation.href 是完整路径)
window.open(routeLocation.href, '_blank');
// _blank新标签页_self当前窗口默认
},
chartDataEvent(val) {

View File

@@ -1,5 +1,5 @@
<template>
<div class="app-container">
<div class="app-container pageTopForm">
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" :inline="true" label-width="auto" class="demo-ruleForm">
<!-- <el-col :span="7">-->
<el-form-item label="节点名称" prop="nodeName">

View File

@@ -1,5 +1,5 @@
<template>
<div class="app-container">
<div class="app-container pageTopForm">
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" label-width="auto" class="demo-ruleForm">
<el-col :span="6">
<el-form-item label="交换机名称" prop="uplinkSwitch">
@@ -101,35 +101,6 @@
<dict-tag :options="dict.type.rm_topology_type" :value="row.interfaceLinkDeviceType"/>
</template>
</TableList>
<!-- 图形分析 -->
<el-dialog :title="title" :visible.sync="open" width="780px" append-to-body fullscreen>
<el-form v-if="open" ref="noticeRef" :model="form" label-width="80px">
<el-form-item label="节点名称" prop="noticeType">
<el-select v-model="form.noticeType" multiple placeholder="请选择节点名称">
<el-option
v-for="item in selectChangeList"
:key="item.id"
:label="item.uplinkSwitch"
:value="item.id"/>
</el-select>
</el-form-item>
</el-form>
<div>
<el-switch v-for="item of switchData" v-model="item.type" :activeText="item.name" class="mr20" />
<div v-for="(item,index) of selectChoose">
<EchartsLine v-show="switchData[0].type" :chartData="chartDataEvent"
:lineData="lineDataParams" :title="'【' + item.nodeName + '】【' + item.businessName + '】' + switchData[0].name" class="mt20 mb20" style="width: 100%;height: 420px;border: 1.5px solid #878787;"></EchartsLine>
<EchartsLine v-show="switchData[1].type" :chartData="chartDataEvent"
:lineData="lineDataParams" :title="'【' + item.nodeName + '】【' + item.businessName + '】' + switchData[1].name" class="mt20 mb20" style="width: 100%;height: 420px;border: 1.5px solid #878787;"></EchartsLine>
</div>
</div>
<template #footer>
<div class="dialog-footer">
<!-- <el-button type="primary" @click="submitForm"> </el-button>-->
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
@@ -145,22 +116,8 @@
data() {
return {
tableList: [],
selectChangeList: [],
loading: true,
showSearch: true,
ids: [],
single: true,
multiple: true,
total: 0,
dateRange: [],
open: false,
title: '',
switchData: [
{id: 'ninetyFiveDay', type: true, name: '95宽带值Mbps/日'},
{id: 'ninetyFiveMonth', type: true, name: '95宽带值Mbps/月'},
],
lineDataParams: {},
selectChoose: [],
uplinkList:[], // 交换机名称
// 列显隐信息
columns: {
@@ -199,7 +156,6 @@
]
}
},
form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
@@ -242,40 +198,24 @@
/** 重置按钮操作 */
resetQuery() {
this.dateRange.value = [];
this.resetForm("queryRef");
this.handleQuery();
},
/** 图形分析 */
graphicAnalysis(list) {
this.open = true;
this.title = "图形分析";
this.selectChangeList = list;
if (list.length >=2) {
this.form.noticeType = [list[0].id, list[1].id];
} else {
this.form.noticeType = [list[0].id];
}
this.form.noticeType.forEach(item => {
list.some(val => {
if (item === val.id) {
this.selectChoose.push(val);
return true;
}
});
});
this.lineDataParams = {
lineXData: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
data: [820, 932, 901, 934, 1290, 1330, 1320]
}
},
/** 取消按钮 */
cancel() {
this.$nextTick(() => {
this.open = false;
// 生成唯一 key避免数据冲突
const storageKey = `temp_data_${Date.now()}`;
// 1. 将数据存入 localStorage需序列化
localStorage.setItem(storageKey, JSON.stringify(list));
// 1. 用 Vue Router 解析目标路由的完整 URL
const routeLocation = this.$router.resolve({
name: 'DialogView',
query: { storageKey }
});
// 2. 打开新窗口routeLocation.href 是完整路径)
window.open(routeLocation.href, '_blank');
// _blank新标签页_self当前窗口默认
},
chartDataEvent(val) {
// console.log('val===',val);

View File

@@ -71,13 +71,13 @@
}
fnType(dataVal).then(response => {
this.$modal.msgSuccess(response.msg);
this.$router.push("/disRevenue/resource/group")
this.$router.push("/resource/group")
}).catch(() => {
this.$modal.msgError("操作失败")
});
break;
case 'cancle':
this.$router.push("/disRevenue/resource/group");
this.$router.push("/resource/group");
break;
default:
}

View File

@@ -1,5 +1,5 @@
<template>
<div class="app-container">
<div class="app-container pageTopForm">
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" :inline="true" label-width="130px">
<el-form-item label="资源组名称" prop="groupName">
<el-col :span="4">

View File

@@ -351,7 +351,7 @@
},
// 返回
goBack() {
this.$router.push({path:'/disRevenue/resource/monitorStategy'});
this.$router.push({path:'/resource/monitorStategy'});
},
// 监听事件
callback(result, dataVal, formVal) {

View File

@@ -1,5 +1,5 @@
<template>
<div class="app-container">
<div class="app-container pageTopForm">
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" label-width="auto">
<el-col :span="8">
<el-form-item label="搜索" prop="switchName">

View File

@@ -326,7 +326,7 @@
},
// 返回
goBack() {
this.$router.push({path:'/disRevenue/resource/monitorTemp'});
this.$router.push({path:'/resource/monitorTemp'});
},
// 监听事件
callback(result, dataVal, formVal) {

View File

@@ -1,5 +1,5 @@
<template>
<div class="app-container">
<div class="app-container pageTopForm">
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" :inline="true" label-width="130px">
<el-form-item label="模版名称" prop="switchName">
<el-col :span="4">

View File

@@ -112,13 +112,13 @@
}
fnType(dataVal).then(response => {
this.$modal.msgSuccess(response.msg);
this.$router.push("/disRevenue/resource/register")
this.$router.push("/resource/register")
}).catch(() => {
this.$modal.msgError("操作失败")
});
break;
case 'cancle':
this.$router.push("/disRevenue/resource/register")
this.$router.push("/resource/register")
break;
default:

View File

@@ -1,5 +1,5 @@
<template>
<div class="app-container">
<div class="app-container pageTopForm">
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" :inline="true" label-width="auto">
<el-form-item label="名称" prop="nameKey">
<el-col>

View File

@@ -1,7 +1,7 @@
<template>
<div class="app-container">
<div class="app-container pageTopForm">
<div style="height: 200px;">
<EchartsPie v-for="item of dataList" :dataList="item" class="w30 h100 disInlineBlock"></EchartsPie>
<EchartsPie v-for="item of dataList" :dataList="item" style="width: 33%;" class="h100 disInlineBlock"></EchartsPie>
</div>
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" label-width="auto">
<el-col :span="7">
@@ -102,7 +102,7 @@
dataList: [{
centerVal: '56',
unit: '台',
center: ['30%', '50%'],
center: ['20%', '50%'],
color: ['#31bb42', '#f96602'],
data: [
{ value: 36, name: '在线服务器' },
@@ -111,7 +111,7 @@
},{
centerVal: '10',
unit: '台',
center: ['30%', '50%'],
center: ['20%', '50%'],
color: ['#1c7dbc', '#f80a4f'],
data: [
{ value: 8, name: '在线交换机' },

View File

@@ -73,13 +73,13 @@
}
fnType(dataVal).then(response => {
this.$modal.msgSuccess(response.msg);
this.$router.push("/disRevenue/resource/topology")
this.$router.push("/resource/topology")
}).catch(() => {
this.$modal.msgError("操作失败")
});
break;
case 'cancle':
this.$router.push("/disRevenue/resource/topology");
this.$router.push("/resource/topology");
break;
default:
}

View File

@@ -1,5 +1,5 @@
<template>
<div class="app-container">
<div class="app-container pageTopForm">
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" :inline="true" label-width="130px">
<el-form-item label="交换机名称" prop="switchName">
<el-col :span="4">

View File

@@ -56,7 +56,7 @@
</el-form>
<!-- 底部 -->
<div class="el-login-footer">
<span>Copyright © 2018-2025 ruoyi.vip All Rights Reserved.</span>
<span>Copyright © 2018-2025 ZhiRongYun All Rights Reserved.</span>
</div>
</div>
</template>

View File

@@ -61,7 +61,7 @@
</el-form>
<!-- 底部 -->
<div class="el-register-footer">
<span>Copyright © 2018-2025 ruoyi.vip All Rights Reserved.</span>
<span>Copyright © 2018-2025 ZhiRongYun All Rights Reserved.</span>
</div>
</div>
</template>

View File

@@ -7,7 +7,7 @@ function resolve(dir) {
const CompressionPlugin = require('compression-webpack-plugin')
const name = process.env.VUE_APP_TITLE || 'SAAS管理平台' // 网页标题
const name = process.env.VUE_APP_TITLE || 'SAAS综合管理平台' // 网页标题
const port = process.env.port || process.env.npm_config_port || 80 // 端口
@@ -32,9 +32,9 @@ module.exports = {
port: port,
open: true,
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
// detail: https://cli.vuejs.org/config/#devserver-proxy http://192.168.9.143:8080
[process.env.VUE_APP_BASE_API]: {
target: `http://192.168.9.143:8080`,
target: `http://192.168.9.137:8080`,
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''