From fd0c3f2eb838507755d17e151d07a7510f2ec23f Mon Sep 17 00:00:00 2001 From: jackhoo_98 Date: Mon, 27 Feb 2023 11:45:41 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix:=20=E8=BF=9C=E7=A8=8B=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E4=BF=AE=E5=A4=8D=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7=E9=87=8D=E5=A4=8D=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/device/firmware.ts | 6 +++-- src/views/device/Firmware/Save/index.vue | 34 ++++++++++++++++++++---- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/src/api/device/firmware.ts b/src/api/device/firmware.ts index a21e948a..19e3c7b0 100644 --- a/src/api/device/firmware.ts +++ b/src/api/device/firmware.ts @@ -49,8 +49,10 @@ export const queryProduct = (data?: any) => export const queryDevice = () => server.get(`/device/instance/_query/no-paging?paging=false`); -export const validateVersion = (productId: string, versionOrder: number) => - server.get(`/firmware/${productId}/${versionOrder}/exists`); +export const validateVersion = ( + productId: string, + versionOrder: number | string, +) => server.get(`/firmware/${productId}/${versionOrder}/exists`); export const queryDetailList = (data: Record) => server.post(`/device-instance/detail/_query`, data); diff --git a/src/views/device/Firmware/Save/index.vue b/src/views/device/Firmware/Save/index.vue index ab01402a..7b8d5e71 100644 --- a/src/views/device/Firmware/Save/index.vue +++ b/src/views/device/Firmware/Save/index.vue @@ -184,7 +184,12 @@ import { message, Form } from 'ant-design-vue'; import { getImage } from '@/utils/comm'; import FileUpload from './FileUpload.vue'; -import { save, update, queryProduct } from '@/api/device/firmware'; +import { + save, + update, + queryProduct, + validateVersion, +} from '@/api/device/firmware'; import type { FormInstance } from 'ant-design-vue'; import type { Properties } from '../type'; @@ -246,6 +251,21 @@ const validatorSign = async (_: Record, value: string) => { return Promise.resolve(); } }; +const validatorVersionOrder = async (_: Record, value: string) => { + const { signMethod, productId } = formData.value; + if (value && !!signMethod && productId) { + const res = await validateVersion(productId, value); + if (res.status === 200) { + if (id && props.data.versionOrder === value) { + formData.value.versionOrder = ''; + } else { + Promise.reject(res.result ? ['版本序号已存在'] : ''); + } + } + } else { + return Promise.resolve(); + } +}; const { resetFields, validate, validateInfos } = useForm( formData, @@ -258,8 +278,12 @@ const { resetFields, validate, validateInfos } = useForm( version: [ { required: true, message: '请输入版本号' }, { max: 64, message: '最多可输入64个字符', trigger: 'change' }, + { validator: validatorVersionOrder, trigger: 'blur' }, + ], + versionOrder: [ + { required: true, message: '请输入版本序号' }, + { validator: validatorVersionOrder, trigger: 'blur' }, ], - versionOrder: [{ required: true, message: '请输入版本序号' }], signMethod: [{ required: true, message: '请选择签名方式' }], sign: [ { required: true, message: '请输入签名' }, @@ -280,10 +304,10 @@ const onSubmit = async () => { validate() .then(async (res) => { const product = productOptions.value.find( - (item) => item.value === res.productId, + (item) => item?.value === res.productId, ); - const productName = product.label || props.data?.url; - const size = extraValue.value.length || props.data?.size; + const productName = product?.label || props.data?.url; + const size = extraValue.value?.length || props.data?.size; const params = { ...toRaw(formData.value), From 401634be3e547d76feaa5de847898f8e153d9686 Mon Sep 17 00:00:00 2001 From: jackhoo_98 Date: Mon, 27 Feb 2023 18:10:06 +0800 Subject: [PATCH 2/4] =?UTF-8?q?feat:=20=E8=BF=90=E7=BB=B4=E7=AE=A1?= =?UTF-8?q?=E7=90=86=20=E4=BB=AA=E8=A1=A8=E7=9B=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/link/dashboard.ts | 12 + src/views/link/DashBoard/components/Cpu.vue | 189 ++++++++++++ src/views/link/DashBoard/components/Jvm.vue | 196 ++++++++++++ .../link/DashBoard/components/Network.vue | 222 ++++++++++++++ .../link/DashBoard/components/TopCard.vue | 155 ++++++++++ .../components/TopEchartsItemNode.vue | 282 ++++++++++++++++++ src/views/link/DashBoard/components/tool.ts | 125 ++++++++ src/views/link/DashBoard/index.vue | 25 ++ 8 files changed, 1206 insertions(+) create mode 100644 src/api/link/dashboard.ts create mode 100644 src/views/link/DashBoard/components/Cpu.vue create mode 100644 src/views/link/DashBoard/components/Jvm.vue create mode 100644 src/views/link/DashBoard/components/Network.vue create mode 100644 src/views/link/DashBoard/components/TopCard.vue create mode 100644 src/views/link/DashBoard/components/TopEchartsItemNode.vue create mode 100644 src/views/link/DashBoard/components/tool.ts create mode 100644 src/views/link/DashBoard/index.vue diff --git a/src/api/link/dashboard.ts b/src/api/link/dashboard.ts new file mode 100644 index 00000000..5b39594f --- /dev/null +++ b/src/api/link/dashboard.ts @@ -0,0 +1,12 @@ +import server from '@/utils/request'; + +export const dashboard = (data: object) => + server.post(`/dashboard/_multi`, data); +export const productCount = (data: object) => + server.post(`/device-product/_count`, data); +export const getGeo = (data: object) => + server.post(`/geo/object/device/_search/geo.json`, data); +export const deviceCount = (data: object) => + server.get(`/device/instance/_count`, data); +export const serverNode = (data: object) => + server.get(`/dashboard/cluster/nodes`, data); diff --git a/src/views/link/DashBoard/components/Cpu.vue b/src/views/link/DashBoard/components/Cpu.vue new file mode 100644 index 00000000..0dd9da8f --- /dev/null +++ b/src/views/link/DashBoard/components/Cpu.vue @@ -0,0 +1,189 @@ + +m + + + diff --git a/src/views/link/DashBoard/components/Jvm.vue b/src/views/link/DashBoard/components/Jvm.vue new file mode 100644 index 00000000..c2425cf9 --- /dev/null +++ b/src/views/link/DashBoard/components/Jvm.vue @@ -0,0 +1,196 @@ + + + + + diff --git a/src/views/link/DashBoard/components/Network.vue b/src/views/link/DashBoard/components/Network.vue new file mode 100644 index 00000000..22639768 --- /dev/null +++ b/src/views/link/DashBoard/components/Network.vue @@ -0,0 +1,222 @@ + + + + + diff --git a/src/views/link/DashBoard/components/TopCard.vue b/src/views/link/DashBoard/components/TopCard.vue new file mode 100644 index 00000000..27ecab3e --- /dev/null +++ b/src/views/link/DashBoard/components/TopCard.vue @@ -0,0 +1,155 @@ + + + + + diff --git a/src/views/link/DashBoard/components/TopEchartsItemNode.vue b/src/views/link/DashBoard/components/TopEchartsItemNode.vue new file mode 100644 index 00000000..0a7af873 --- /dev/null +++ b/src/views/link/DashBoard/components/TopEchartsItemNode.vue @@ -0,0 +1,282 @@ + + + + + diff --git a/src/views/link/DashBoard/components/tool.ts b/src/views/link/DashBoard/components/tool.ts new file mode 100644 index 00000000..0a0d77fb --- /dev/null +++ b/src/views/link/DashBoard/components/tool.ts @@ -0,0 +1,125 @@ +import moment from 'moment'; +import * as echarts from 'echarts'; + +export const getInterval = (type) => { + switch (type) { + case 'year': + return '30d'; + case 'month': + case 'week': + return '1d'; + case 'hour': + return '1m'; + default: + return '1h'; + } +}; +export const getTimeFormat = (type) => { + switch (type) { + case 'year': + return 'YYYY-MM-DD'; + case 'month': + case 'week': + return 'MM-DD'; + case 'hour': + return 'HH:mm'; + default: + return 'HH'; + } +}; + +export const getTimeByType = (type) => { + switch (type) { + case 'hour': + return moment().subtract(1, 'hours'); + case 'week': + return moment().subtract(6, 'days'); + case 'month': + return moment().subtract(29, 'days'); + case 'year': + return moment().subtract(365, 'days'); + default: + return moment().startOf('day'); + } +}; + +export const arrayReverse = (data) => { + const newArray = []; + for (let i = data.length - 1; i >= 0; i--) { + newArray.push(data[i]); + } + return newArray; +}; + +export const networkParams = (val) => [ + { + dashboard: 'systemMonitor', + object: 'network', + measurement: 'traffic', + dimension: 'agg', + group: 'network', + params: { + type: val.type, + interval: getInterval(val.time.type), + from: moment(val.time.time[0]).valueOf(), + to: moment(val.time.time[1]).valueOf(), + }, + }, +]; +export const defulteParamsData = (group, val) => [ + { + dashboard: 'systemMonitor', + object: 'stats', + measurement: 'info', + dimension: 'history', + group, + params: { + from: moment(val.time[0]).valueOf(), + to: moment(val.time[1]).valueOf(), + }, + }, +]; + +export const areaStyle = { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { + offset: 1, + color: 'rgba(151, 154, 255, 0)', + }, + { + offset: 0, + color: 'rgba(151, 154, 255, .24)', + }, + ]), +}; +export const areaStyleCpu = { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { + offset: 1, + color: 'rgba(44, 182, 224, 0)', + }, + { + offset: 0, + color: 'rgba(44, 182, 224, .24)', + }, + ]), +}; +export const areaStyleJvm = { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { + offset: 1, + color: 'rgba(96, 223, 199, 0)', + }, + { + offset: 0, + color: 'rgba(96, 223, 199, .24)', + }, + ]), +}; + +export const typeDataLine = [ + { + data: [], + type: 'line', + }, +]; diff --git a/src/views/link/DashBoard/index.vue b/src/views/link/DashBoard/index.vue new file mode 100644 index 00000000..2b432a56 --- /dev/null +++ b/src/views/link/DashBoard/index.vue @@ -0,0 +1,25 @@ + + + + + From 568afdb69ec65dae1167fb7ba4e2a7744bc52224 Mon Sep 17 00:00:00 2001 From: jackhoo_98 Date: Mon, 27 Feb 2023 19:59:30 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix:=20=E8=BF=90=E7=BB=B4=E7=AE=A1=E7=90=86?= =?UTF-8?q?=20=E4=BB=AA=E8=A1=A8=E7=9B=98=E4=BB=A3=E7=A0=81=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/link/dashboard.ts | 3 +- src/views/link/DashBoard/components/Jvm.vue | 3 - .../link/DashBoard/components/Network.vue | 3 - .../link/DashBoard/components/TopCard.vue | 164 ++++++++---------- .../components/TopEchartsItemNode.vue | 112 +----------- src/views/link/DashBoard/components/tool.ts | 95 ++++++++++ src/views/link/DashBoard/index.vue | 6 +- 7 files changed, 174 insertions(+), 212 deletions(-) diff --git a/src/api/link/dashboard.ts b/src/api/link/dashboard.ts index 5b39594f..0d1920cc 100644 --- a/src/api/link/dashboard.ts +++ b/src/api/link/dashboard.ts @@ -8,5 +8,4 @@ export const getGeo = (data: object) => server.post(`/geo/object/device/_search/geo.json`, data); export const deviceCount = (data: object) => server.get(`/device/instance/_count`, data); -export const serverNode = (data: object) => - server.get(`/dashboard/cluster/nodes`, data); +export const serverNode = () => server.get(`/dashboard/cluster/nodes`); diff --git a/src/views/link/DashBoard/components/Jvm.vue b/src/views/link/DashBoard/components/Jvm.vue index c2425cf9..f876e0ae 100644 --- a/src/views/link/DashBoard/components/Jvm.vue +++ b/src/views/link/DashBoard/components/Jvm.vue @@ -110,9 +110,6 @@ const handleJVMOptions = (optionsData, xAxis) => { if (chart) { const myChart = echarts.init(chart); const dataKeys = Object.keys(optionsData); - - console.log(21, arrayReverse(xAxis), xAxis); - const options = { xAxis: { type: 'category', diff --git a/src/views/link/DashBoard/components/Network.vue b/src/views/link/DashBoard/components/Network.vue index 22639768..2db01cc6 100644 --- a/src/views/link/DashBoard/components/Network.vue +++ b/src/views/link/DashBoard/components/Network.vue @@ -190,9 +190,6 @@ watch( }, { immediate: true, deep: true }, ); -// onMounted(() => { -// createEcharts(); -// }); From 7143af3ff1edcf68d48eeb535f03f66ee74b3ede Mon Sep 17 00:00:00 2001 From: jackhoo_98 Date: Tue, 28 Feb 2023 21:15:54 +0800 Subject: [PATCH 4/4] =?UTF-8?q?feat:=20=E8=AE=BE=E5=A4=87=E6=8E=A5?= =?UTF-8?q?=E5=85=A5=E7=BD=91=E5=85=B3=20=E6=8E=A5=E5=8F=A3=E8=B0=83?= =?UTF-8?q?=E8=AF=95=20=E5=8A=A0=E5=85=A5=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/link/AccessConfig/Detail/index.vue | 88 +- .../AccessConfig/components/Channel/index.vue | 24 +- .../AccessConfig/components/Cloud/Ctwing.vue | 132 +- .../AccessConfig/components/Cloud/OneNet.vue | 148 +- .../AccessConfig/components/Edge/index.vue | 273 ++-- .../AccessConfig/components/Media/GB28181.vue | 31 +- .../AccessConfig/components/Media/index.vue | 17 +- .../link/AccessConfig/components/Network.vue | 1196 ----------------- .../AccessConfig/components/Network/index.vue | 701 ++++++++++ .../components/Provider/index.vue | 36 +- .../link/AccessConfig/{Detail => }/data.ts | 107 +- src/views/link/AccessConfig/index.vue | 163 +-- src/views/link/Protocol/index.vue | 10 +- src/views/link/Type/Detail/index.vue | 18 +- 14 files changed, 1077 insertions(+), 1867 deletions(-) delete mode 100644 src/views/link/AccessConfig/components/Network.vue create mode 100644 src/views/link/AccessConfig/components/Network/index.vue rename src/views/link/AccessConfig/{Detail => }/data.ts (63%) diff --git a/src/views/link/AccessConfig/Detail/index.vue b/src/views/link/AccessConfig/Detail/index.vue index f15fcdf3..1c8ee150 100644 --- a/src/views/link/AccessConfig/Detail/index.vue +++ b/src/views/link/AccessConfig/Detail/index.vue @@ -9,8 +9,10 @@ >
- - + 返回 +
+ diff --git a/src/views/link/AccessConfig/components/Channel/index.vue b/src/views/link/AccessConfig/components/Channel/index.vue index 08340b9b..f4e5d0d9 100644 --- a/src/views/link/AccessConfig/components/Channel/index.vue +++ b/src/views/link/AccessConfig/components/Channel/index.vue @@ -39,12 +39,16 @@ /> - 保存 + 保存 + @@ -86,10 +90,9 @@ diff --git a/src/views/link/AccessConfig/components/Network/index.vue b/src/views/link/AccessConfig/components/Network/index.vue new file mode 100644 index 00000000..6d72b9e7 --- /dev/null +++ b/src/views/link/AccessConfig/components/Network/index.vue @@ -0,0 +1,701 @@ + + + + + diff --git a/src/views/link/AccessConfig/components/Provider/index.vue b/src/views/link/AccessConfig/components/Provider/index.vue index 3412f3f2..04390ba4 100644 --- a/src/views/link/AccessConfig/components/Provider/index.vue +++ b/src/views/link/AccessConfig/components/Provider/index.vue @@ -1,6 +1,6 @@