From ea4f72780fe5f1cde31e2dbf527a7b6867fea450 Mon Sep 17 00:00:00 2001 From: odjbin <1042039504@qq.com> Date: Wed, 28 Feb 2024 18:08:44 +0800 Subject: [PATCH] =?UTF-8?q?feat=20:=20=E6=96=B0=E5=A2=9Eecharts=E4=B8=AD?= =?UTF-8?q?=E6=8C=87=E5=AE=9A=E6=97=A5=E6=9C=9F=E5=B1=95=E7=A4=BA=E5=8F=8A?= =?UTF-8?q?=E7=BB=86=E8=8A=82=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/largeScreen.js | 33 +- src/assets/images/topAndDown/title-bg.png | Bin 0 -> 53409 bytes src/assets/styles/index.scss | 45 +- src/components/chooseMonth/index.vue | 41 ++ src/components/chooseTime/index.vue | 111 ++++ src/components/content/airInfo/AirInfo.vue | 44 +- .../content/badGasInfo/BadGasInfo.vue | 82 +-- .../badGasInfo/childComps/GasInfoItem.vue | 5 +- src/components/content/fanInfo/FanInfo.vue | 493 +++++++++--------- .../content/windPressure/WindPressureList.vue | 39 +- src/components/timeRangeBtn/index.vue | 1 - src/components/tunnelTitle/index.vue | 9 + src/router/index.js | 11 +- src/views/device-manage/index.vue | 72 +-- src/views/edit/edit.vue | 12 +- src/views/site/index.vue | 9 +- src/views/tunnel-manage/index.vue | 38 +- src/views/tunnel/index.vue | 158 ++++-- src/views/user/index.vue | 45 +- 19 files changed, 810 insertions(+), 438 deletions(-) create mode 100644 src/assets/images/topAndDown/title-bg.png create mode 100644 src/components/chooseMonth/index.vue create mode 100644 src/components/chooseTime/index.vue create mode 100644 src/components/tunnelTitle/index.vue diff --git a/src/api/largeScreen.js b/src/api/largeScreen.js index 8677be3..3da056b 100644 --- a/src/api/largeScreen.js +++ b/src/api/largeScreen.js @@ -22,24 +22,39 @@ export const getTunnelBySiteId = (siteId) => { }) } // 传感器echarts数据 -export const getEchartsInfo = (equipmentId,type) => { +export const getEchartsInfo = (id,time,type) => { return request({ - url: `/tunnel/large/screen/echarts/sensor/${equipmentId}/${type}`, - method: 'get' + url: '/tunnel/large/screen/echarts/sensor', + method: 'get', + params: { + id: id, + time: time, + type: type + } }) } // 有害气体echarts数据 -export const getBadGasEchartsInfo = (tunnelId,type) => { +export const getBadGasEchartsInfo = (id,time,type) => { return request({ - url: `/tunnel/large/screen/echarts/gas/sensor/${tunnelId}/${type}`, - method: 'get' + url: '/tunnel/large/screen/echarts/gas/sensor/', + method: 'get', + params: { + id: id, + time: time, + type: type + } }) } //电流监控数据 -export const getFanEchartsInfo = (equipmentId,type) => { +export const getFanEchartsInfo = (id,time,type) => { return request({ - url: `/tunnel/large/screen/echarts/current/${equipmentId}/${type}`, - method: 'get' + url: '/tunnel/large/screen/echarts/current', + method: 'get', + params: { + id: id, + time: time, + type: type + } }) } //风机频率修改 diff --git a/src/assets/images/topAndDown/title-bg.png b/src/assets/images/topAndDown/title-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..9046aaeb371fc2342c8bc8673a7da1617d1f507a GIT binary patch literal 53409 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 span { + letter-spacing: 5px; + font-weight: bold; + background-image: -webkit-linear-gradient(top, #FFFFFF, #56bcda, #0BE9FA); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + } } .box-top { @@ -316,6 +327,7 @@ body, height: 1200px; //width: 1300px; } + #containerWindDirection { flex: 1; height: 1160px; @@ -395,6 +407,37 @@ body, position: absolute; top: 47px; right: 119px; + display: flex; + + .choose-time { + margin-right: 40px; + + .el-date-editor { + width: 370px; + height: 92px; + } + + .el-input__wrapper { + height: 92px; + background-color: transparent; + border-radius: 10px; + border: 2px solid #0F82AF; + box-shadow: none; + //padding: 18px 24px; + .el-input__prefix, .el-input__suffix { + .el-icon { + font-size: 40px; + color: #FFFFFF; + } + } + + .el-input__inner { + height: 80px; + font-size: 40px; + color: #FFFFFF; + } + } + } } .left-bottom-icon { diff --git a/src/components/chooseMonth/index.vue b/src/components/chooseMonth/index.vue new file mode 100644 index 0000000..eb78122 --- /dev/null +++ b/src/components/chooseMonth/index.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/src/components/chooseTime/index.vue b/src/components/chooseTime/index.vue new file mode 100644 index 0000000..a0d44db --- /dev/null +++ b/src/components/chooseTime/index.vue @@ -0,0 +1,111 @@ + + + + + diff --git a/src/components/content/airInfo/AirInfo.vue b/src/components/content/airInfo/AirInfo.vue index 8e03332..d9d92e4 100644 --- a/src/components/content/airInfo/AirInfo.vue +++ b/src/components/content/airInfo/AirInfo.vue @@ -33,6 +33,8 @@
+ + props.airData, (now) => { windSpeed.value = 0 } }, {deep: true}); - -const getChartInfo = (equipmentId, type = 'day') => { +const daySelect = (val) => { + dayValue.value = val + getChartInfo(openDialogId.value, 'day',val) +} +const monthSelect = (val) => { + monthValue.value = val + getChartInfo(openDialogId.value, 'month',val) +} +const getChartInfo = (equipmentId, type = 'day',time='') => { isWindSpeedVisited.value = true showSpeedLoading.value = true - getEchartsInfo(equipmentId, type).then(res => { + getEchartsInfo(equipmentId,time, type).then(res => { if (res?.code === 1000) { showSpeedLoading.value = false nextTick(() => { @@ -124,15 +137,20 @@ const handleOpenChart = (id, type) => { getChartInfo(id, 'day') } } - -const timeSelect = (index) => { - if (index === 0) { - getChartInfo(openDialogId.value, 'years') - } else if (index === 1) { - getChartInfo(openDialogId.value, 'month') - } else if (index === 2) { - getChartInfo(openDialogId.value, 'day') +const changeDate = (index) => { + switch (index) { + case 0: + return 'years' + case 1: + return 'month' + case 2: + return 'day' } +} +const timeSelect = (index) => { + dayValue.value = '' + monthValue.value = '' + getChartInfo(openDialogId.value, changeDate(index)) }; const changeData = (item) => { @@ -148,8 +166,6 @@ const changeData = (item) => { } const changeIcon = (type) => { switch (type) { - case "dust": - return 'dust-icon.png'; case "oxygen": return 'o2-icon.png'; case "temperature": @@ -163,7 +179,7 @@ const getAirInfo = (now) => { let airObj = {} let airArr = [] now?.map(item => { - if (item.equipmentType === "dust" || item.equipmentType === "oxygen" || item.equipmentType === "temperature" || item.equipmentType === "humidness") { + if (item.equipmentType === "oxygen" || item.equipmentType === "temperature" || item.equipmentType === "humidness") { airObj = changeData(item) airArr.push(airObj) } else if (item.equipmentType === "windSpeed") { diff --git a/src/components/content/badGasInfo/BadGasInfo.vue b/src/components/content/badGasInfo/BadGasInfo.vue index 20bee1c..fb5812a 100644 --- a/src/components/content/badGasInfo/BadGasInfo.vue +++ b/src/components/content/badGasInfo/BadGasInfo.vue @@ -34,6 +34,8 @@
+ + { - if (index === 0) { - getBadGasChartInfo('years') - } else if (index === 1) { - getBadGasChartInfo('month') - } else if (index === 2) { - getBadGasChartInfo('day') +const daySelect = (val) => { + dayValue.value = val + getBadGasChartInfo('day', val) +} +const monthSelect = (val) => { + monthValue.value = val + getBadGasChartInfo('month', val) +} +const changeDate = (index) => { + switch (index) { + case 0: + return 'years' + case 1: + return 'month' + case 2: + return 'day' } +} +const timeSelect = (index) => { + dayValue.value = '' + monthValue.value = '' + getBadGasChartInfo(changeDate(index)) }; const getBadGasInfo = (now) => { if (now === null) return; @@ -114,6 +133,7 @@ const getBadGasInfo = (now) => { let windPressureArr = []; now?.map((item) => { if ( + item.equipmentType === "dust" || item.equipmentType === "carbonDioxide" || item.equipmentType === "carbonMonoxide" || item.equipmentType === "hydrogenSulfide" || @@ -137,11 +157,11 @@ const changeData = (item) => { unit: item.unit, }; }; -const getBadGasChartInfo = (type) => { +const getBadGasChartInfo = (type, time = '') => { isBadGasVisited.value = true showLoading.value = true let id = props.tunnelId - getBadGasEchartsInfo(id, type).then(res => { + getBadGasEchartsInfo(id, time, type).then(res => { if (res?.code === 1000) { showLoading.value = false nextTick(() => { @@ -232,33 +252,6 @@ const initChart = (type, values) => { //X轴 xAxis: { type: "category", - // data: [ - // "00:00", - // "01:00", - // "02:00", - // "03:00", - // "04:00", - // "05:00", - // "06:00", - // "07:00", - // "08:00", - // "09:00", - // "10:00", - // "11:00", - // "12:00", - // "13:00", - // "14:00", - // "15:00", - // "16:00", - // "17:00", - // "18:00", - // "19:00", - // "20:00", - // "21:00", - // "22:00", - // "23:00", - // "24:00", - // ], data: type, axisLabel: { textStyle: { @@ -280,6 +273,19 @@ const initChart = (type, values) => { //配置项 series: [ { + name: "粉尘", + // data: [ + // 56, 12, 89, 34, 71, 43, 67, 20, 98, 72, 19, 61, 3, 85, 47, 92, 17, 76, + // 69, 25, 31, 49, 81, 63, + // ], + data: values.dustValues, + type: "line", + smooth: true, + symbolSize: 24, + lineStyle: { + width: 5, + }, + },{ name: "二氧化碳", // data: [ // 56, 12, 89, 34, 71, 43, 67, 20, 98, 72, 19, 61, 3, 85, 47, 92, 17, 76, @@ -399,7 +405,7 @@ const initChart = (type, values) => { //height: calc(621px - 45px - 22px); display: flex; flex-wrap: wrap; - justify-content: space-around; + justify-content: flex-start; padding: 16px 0 0 10px; } } diff --git a/src/components/content/badGasInfo/childComps/GasInfoItem.vue b/src/components/content/badGasInfo/childComps/GasInfoItem.vue index 6693c76..73c3aba 100644 --- a/src/components/content/badGasInfo/childComps/GasInfoItem.vue +++ b/src/components/content/badGasInfo/childComps/GasInfoItem.vue @@ -122,11 +122,14 @@ function setPoint() { #gas-info-item { width: 231px; text-align: center; + margin-right: 26px; + &:nth-child(3n){ + margin-right: 0; + } //旋转定位阈值位于的刻度 .point { width: 200px; height: 200px; - position: relative; } //用伪元素标记阈值 diff --git a/src/components/content/fanInfo/FanInfo.vue b/src/components/content/fanInfo/FanInfo.vue index 69d57b5..289b471 100644 --- a/src/components/content/fanInfo/FanInfo.vue +++ b/src/components/content/fanInfo/FanInfo.vue @@ -5,70 +5,60 @@
{{ loading === 0 ? '加载中...' : '暂无数据~' }}
+
-
-
{{ changeNum(item) }}号风机
-
-
-
-
-
- 状态:{{ item.breakdown ? '故障' : '运行' }} +
+
+
+ 状态:{{ item.breakdown ? '故障' : '运行' }} +
+
+
+ 启动
-
-
- 启动 -
-
- 停止 -
+
+ 停止
-
-
- - 自动 - 手动 - -
-
-
- 给定频率 - - - - - - - - - - - -
- - - -
- +
+
+
+ + 自动 + 手动 + +
+
+ 给定频率 + + + + + + + + + + +
@@ -107,6 +97,8 @@
+ + props.list, (now) => { }) handleOnMounted() }, {deep: true}); -const timeSelect = (index) => { - if (index === 0) { - getFanInfo(openEquipmentId.value, 'years') - } else if (index === 1) { - getFanInfo(openEquipmentId.value, 'month') - } else if (index === 2) { - getFanInfo(openEquipmentId.value, 'day') +const daySelect = (val) => { + console.log('daySelect') + dayValue.value = val + getFanInfo(openEquipmentId.value, 'day',val) +} +const monthSelect = (val) => { + monthValue.value = val + getFanInfo(openEquipmentId.value, 'month',val) +} +const changeDate = (index) => { + switch (index) { + case 0: + return 'years' + case 1: + return 'month' + case 2: + return 'day' } +} +const timeSelect = (index) => { + dayValue.value = '' + monthValue.value = '' + getFanInfo(openEquipmentId.value, changeDate(index)) }; const packageData = (item, type, flag) => { let number = 0 @@ -238,49 +249,67 @@ const packageData = (item, type, flag) => { } //启动/停止 const editOperate = (item, type) => { - ElMessageBox.confirm(`是否${type}该风机?`, '系统提示', { + ElMessageBox.confirm(`确认${type}${changeNum(item)}号风机吗?`, '系统提示', { type: 'warning', closeOnClickModal: false }).then(() => { const data = packageData(item, item.running) editFrequencyOperationSwitch(data).then(res => { - console.log('修改风机启动', res) if (res.code === 1000) { ElMessage.success(res.msg) } else { ElMessage.error(res.msg) } }) - }) + }).catch(() => { + item.running = !item.running + }); } const changeFrequency = (item) => { - console.log('修改频率') - const data = packageData(item, item.frequencySetting, true) - editFrequency(data).then(res => { - console.log('修改风机频率', res) - if (res.code === 1000) { - ElMessage.success(res.msg) - } else { - ElMessage.warning(res.msg) - } - }) + ElMessageBox.confirm(`确认修改${changeNum(item)}号风机的频率为${item.frequencySetting}Hz吗?`, '系统提示', { + type: 'warning', + closeOnClickModal: false + }).then(() => { + const data = packageData(item, item.frequencySetting, true) + editFrequency(data).then(res => { + if (res.code === 1000) { + ElMessage.success(res.msg) + } else { + ElMessage.warning(res.msg) + } + }) + }).catch(() => { + // item.running=!item.running + }); } const changeModel = (item) => { - const data = packageData(item, item.autoMode) - editFrequencyModelSwitch(data).then(res => { - console.log('修改自动模式', res) - if (res.code === 1000) { - ElMessage.success(res.msg) - } else { - ElMessage.warning(res.msg) - } - }) + let flag + if (item.autoMode) { + flag = '自动' + } else { + flag = '手动' + } + ElMessageBox.confirm(`确认修改${changeNum(item)}号风机的模式为${flag}模式吗?`, '系统提示', { + type: 'warning', + closeOnClickModal: false + }).then(() => { + const data = packageData(item, item.autoMode) + editFrequencyModelSwitch(data).then(res => { + if (res.code === 1000) { + ElMessage.success(res.msg) + } else { + ElMessage.warning(res.msg) + } + }) + }).catch(() => { + item.autoMode = !item.autoMode + }); } -const getFanInfo = (equipmentId, type = 'day') => { +const getFanInfo = (equipmentId, type = 'day', time = '') => { isVisited.value = true showLoading.value = true - getFanEchartsInfo(equipmentId, type).then(res => { + getFanEchartsInfo(equipmentId, time, type).then(res => { if (res?.code === 1000) { showLoading.value = false nextTick(() => { @@ -290,6 +319,7 @@ const getFanInfo = (equipmentId, type = 'day') => { }) } const handleOpenChart = (item) => { + selectTimeButton.value = 2 openEquipmentId.value = item.equipmentId getFanInfo(item.equipmentId, 'day') if (item.equipmentId === 22) { @@ -330,7 +360,6 @@ const getImage = (type) => { } } const changeNum = (item) => { - console.log('1号变频器') switch (item.equipmentId) { case 22: return '一'; @@ -450,7 +479,7 @@ const handleOnMounted = () => { }, data: [ { - value: socketData.value[i].frequencySetting, + value: socketData.value[i].frequencyFeedback, fontSize: 2100, detail: { valueAnimation: true, @@ -543,7 +572,7 @@ const initChart = (type, valueA, valueB, valueC) => { }, dataZoom: [{ type: 'inside', - }, + }, { type: 'slider', top: 1050, @@ -809,173 +838,157 @@ input[type="number"] { } .option-nav { - //display: flex; - //flex-direction: column; width: 70%; + display: flex; + align-items: center; - > div:first-child { - margin-top: 48px; + .state { + flex: 1; display: flex; - align-items: center; + flex-direction: column; + justify-content: center; + font-size: 28px; + color: #38cafb; + line-height: 35px; + gap: 40px; - .state { - flex: 1; + .stopColor { + background-color: red !important; + } + + .blue-state { display: flex; - flex-direction: column; - justify-content: center; - font-size: 28px; - color: #38cafb; - line-height: 35px; - gap: 40px; + align-items: center; + height: 45px; + margin-right: 15px; + color: #fff; + background-color: #3eab3f; + padding-left: 10px; + border-radius: 8px; + margin-left: -5px; - .stopColor { - background-color: red !important; + .state-icon { + width: 28px; + height: 28px; + background-image: url('../../../assets/images/fanInfo/white-state-icon.png') !important; + margin-right: 10px; } - .blue-state { - display: flex; - align-items: center; - height: 45px; - margin-right: 15px; - color: #fff; - background-color: #3eab3f; - padding-left: 10px; - border-radius: 8px; - margin-left: -5px; - - .state-icon { - width: 28px; - height: 28px; - background-image: url('../../../assets/images/fanInfo/white-state-icon.png') !important; - margin-right: 10px; - } - - .fan-state { - color: #FFFFFF; - } - } - - - .switch { - display: flex; - width: 165px; - height: 45px; - border-radius: 22px; - border: 2px solid #0f82af; - overflow: hidden; - font-weight: bold; - color: #127399; - line-height: 40px; - - & > div { - flex: 1; - text-align: center; - cursor: pointer; - } + .fan-state { + color: #FFFFFF; } } - .power { - flex: 1.3; + + .switch { display: flex; - flex-direction: column; - justify-content: center; - //padding: 0 20px; - font-size: 28px; - color: #38cafb; - line-height: 37px; - gap: 40px; + width: 165px; + height: 45px; + border-radius: 22px; + border: 2px solid #0f82af; + overflow: hidden; + font-weight: bold; + color: #127399; + line-height: 40px; - .check-box { - display: flex; - align-items: center; - justify-content: center; - //margin-left: 20px; - } - - .edit-power { - margin-top: 10px; - display: flex; - flex-direction: column; - - .changeMargin { - - } - - > div:first-child { - display: flex; - - > span:first-child { - white-space: pre; - margin-right: 14px; - } - - :deep(.is-focus) { - .el-input__inner { - font-weight: normal !important; - color: #fff !important; - } - } - - :deep(.el-input__wrapper) { - width: 160px; - height: 44px; - background-color: transparent; - box-shadow: none; - border: 1px solid #38CAFB; - transform: none; - transition: none; - margin-right: 10px; - - .el-input__inner { - height: 44px; - font-size: 30px; - font-weight: bold; - color: #38CAFB; - } - - - .el-input__suffix-inner { - font-size: 30px; - color: #38CAFB; - line-height: 40px; - font-weight: bold; - } - } - - } - - - //.units { - // position: relative; - //} - // - //.units::after { - // content: "Hz"; - // position: absolute; - // right: 6px; - // top: 50%; - // transform: translateY(-50%); - // font-size: 28px; - // color: #38cafb; - // line-height: 37px; - //} - // - //input { - // width: 130px; - // height: 44px; - // border: 2px solid #0f82af; - // background: transparent; - // margin-left: 14px; - // outline: none; - // font-size: 28px; - // font-weight: bold; - // color: #38cafb; - // line-height: 37px; - //} + & > div { + flex: 1; + text-align: center; + cursor: pointer; } } } + + .power { + flex: 1.3; + display: flex; + flex-direction: column; + justify-content: center; + //padding: 0 20px; + font-size: 28px; + color: #38cafb; + line-height: 37px; + gap: 40px; + + .check-box { + display: flex; + align-items: center; + justify-content: center; + //margin-left: 20px; + } + + .edit-power { + margin-top: 10px; + display: flex; + //flex-direction: column; + > span:first-child { + white-space: pre; + margin-right: 14px; + } + + :deep(.is-focus) { + .el-input__inner { + font-weight: normal !important; + color: #fff !important; + } + } + + :deep(.el-input__wrapper) { + width: 160px; + height: 44px; + background-color: transparent; + box-shadow: none; + border: 1px solid #38CAFB; + transform: none; + transition: none; + margin-right: 10px; + + .el-input__inner { + height: 44px; + font-size: 30px; + font-weight: bold; + color: #38CAFB; + } + + + .el-input__suffix-inner { + font-size: 30px; + color: #38CAFB; + line-height: 40px; + font-weight: bold; + } + } + + //.units { + // position: relative; + //} + // + //.units::after { + // content: "Hz"; + // position: absolute; + // right: 6px; + // top: 50%; + // transform: translateY(-50%); + // font-size: 28px; + // color: #38cafb; + // line-height: 37px; + //} + // + //input { + // width: 130px; + // height: 44px; + // border: 2px solid #0f82af; + // background: transparent; + // margin-left: 14px; + // outline: none; + // font-size: 28px; + // font-weight: bold; + // color: #38cafb; + // line-height: 37px; + //} + } + + } } } diff --git a/src/components/content/windPressure/WindPressureList.vue b/src/components/content/windPressure/WindPressureList.vue index 0cf3646..2b300a0 100644 --- a/src/components/content/windPressure/WindPressureList.vue +++ b/src/components/content/windPressure/WindPressureList.vue @@ -23,6 +23,8 @@
+ + props.list, (now) => { watch(() => props.winData, (now) => { getScreenInfo(now.windPressureSensorList) }, {deep: true}); - -const getWindInfo = (equipmentId, type = 'day') => { +const daySelect = (val) => { + dayValue.value = val + getWindInfo(windSortId.value, 'day', val) +} +const monthSelect = (val) => { + monthValue.value = val + getWindInfo(windSortId.value, 'month', val) +} +const getWindInfo = (equipmentId, type = 'day', time = '') => { isVisited.value = true showLoading.value = true - getEchartsInfo(equipmentId, type).then(res => { + getEchartsInfo(equipmentId, time, type).then(res => { if (res?.code === 1000) { showLoading.value = false nextTick(() => { @@ -88,14 +101,20 @@ const handleOpenChart = (item) => { windSort.value = item.equipmentName windSortId.value = item.equipmentId } -const timeSelect = (index) => { - if (index === 0) { - getWindInfo(windSortId.value, 'years') - } else if (index === 1) { - getWindInfo(windSortId.value, 'month') - } else if (index === 2) { - getWindInfo(windSortId.value, 'day') +const changeDate = (index) => { + switch (index) { + case 0: + return 'years' + case 1: + return 'month' + case 2: + return 'day' } +} +const timeSelect = (index) => { + dayValue.value = '' + monthValue.value = '' + getWindInfo(windSortId.value, changeDate(index)) }; const getScreenInfo = (now) => { let windPressureObj = {} diff --git a/src/components/timeRangeBtn/index.vue b/src/components/timeRangeBtn/index.vue index 2984499..4c07544 100644 --- a/src/components/timeRangeBtn/index.vue +++ b/src/components/timeRangeBtn/index.vue @@ -30,7 +30,6 @@ const props = defineProps({ }, }); const emit = defineEmits(["update:modelValue", "select"]); - const selectButton = ref(props.modelValue); const select = (index) => { diff --git a/src/components/tunnelTitle/index.vue b/src/components/tunnelTitle/index.vue new file mode 100644 index 0000000..1abf7b0 --- /dev/null +++ b/src/components/tunnelTitle/index.vue @@ -0,0 +1,9 @@ + + + diff --git a/src/router/index.js b/src/router/index.js index 816999e..6f0a0f0 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -23,6 +23,15 @@ const routes = [ breadcrumb: true }, }, + { + path: '/:tunnelId/:siteId', + name: 'changeSitePreview', + component: () => import('@/views/tunnel/index.vue'), + meta: { + title: '站点预览', + breadcrumb: true + }, + }, { path: '/:tunnelId', name: 'previewTunnel', @@ -51,7 +60,7 @@ const routes = [ } }, { - path: '/site/:userId(\\d+)', + path: '/site/:userId(\\d+)/:siteId(\\d+)', name: 'site', component: () => import('@/views/site/index.vue'), meta: { diff --git a/src/views/device-manage/index.vue b/src/views/device-manage/index.vue index 0673fd8..7fa55fe 100644 --- a/src/views/device-manage/index.vue +++ b/src/views/device-manage/index.vue @@ -8,7 +8,7 @@
{{ tunnelName }}
-
+
@@ -49,25 +49,34 @@ :header-cell-style="{backgroundColor: '#064B66',color: '#fff',fontSize: '40px',borderBottom: 'none' }" :cell-style="{textAlign: 'center',borderBottom: 'none'}" :data="fanData"> + + + - +