From fd0c3f2eb838507755d17e151d07a7510f2ec23f Mon Sep 17 00:00:00 2001 From: jackhoo_98 Date: Mon, 27 Feb 2023 11:45:41 +0800 Subject: [PATCH 01/19] =?UTF-8?q?fix:=20=E8=BF=9C=E7=A8=8B=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E6=96=B0=E5=A2=9E=20=E4=BF=AE=E5=A4=8D=E7=89=88?= =?UTF-8?q?=E6=9C=AC=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 02/19] =?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 03/19] =?UTF-8?q?fix:=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=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E4=BC=98=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 18b0f25993e005852352ae7075bc5fe70a58d572 Mon Sep 17 00:00:00 2001 From: JiangQiming <291854119@qq.com> Date: Tue, 28 Feb 2023 13:41:04 +0800 Subject: [PATCH 04/19] fix: bug#10231 --- src/views/notice/Config/index.vue | 4 +++- src/views/notice/Template/index.vue | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/views/notice/Config/index.vue b/src/views/notice/Config/index.vue index cd89502e..2ac2df0e 100644 --- a/src/views/notice/Config/index.vue +++ b/src/views/notice/Config/index.vue @@ -70,7 +70,9 @@
说明
-
{{ slotProps.description }}
+ + {{ slotProps.description }} +
diff --git a/src/views/notice/Template/index.vue b/src/views/notice/Template/index.vue index f5ecbb08..e18ec895 100644 --- a/src/views/notice/Template/index.vue +++ b/src/views/notice/Template/index.vue @@ -70,7 +70,9 @@
说明
-
{{ slotProps.description }}
+ + {{ slotProps.description }} +
From 7dbf13888f8c2fbdf5ac709378cfd8b62d482a14 Mon Sep 17 00:00:00 2001 From: 100011797 <2642441182@qq.com> Date: Tue, 28 Feb 2023 14:25:38 +0800 Subject: [PATCH 05/19] =?UTF-8?q?feat:=20=E5=9C=B0=E5=9B=BE=E8=BD=A8?= =?UTF-8?q?=E8=BF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AMapComponent/PathSimplifier.vue | 106 ++++++++++++++ src/components/AMapComponent/index.vue | 71 ++++++++++ src/components/AMapComponent/types.d.ts | 130 ++++++++++++++++++ src/components/AMapComponent/utils.ts | 26 ++++ src/components/index.ts | 4 + .../Detail/Running/Property/Detail/AMap.vue | 54 -------- .../Running/Property/Detail/PropertyAMap.vue | 23 +++- .../Detail/Running/Property/Detail/index.vue | 2 +- 8 files changed, 356 insertions(+), 60 deletions(-) create mode 100644 src/components/AMapComponent/PathSimplifier.vue create mode 100644 src/components/AMapComponent/index.vue create mode 100644 src/components/AMapComponent/types.d.ts create mode 100644 src/components/AMapComponent/utils.ts delete mode 100644 src/views/device/Instance/Detail/Running/Property/Detail/AMap.vue diff --git a/src/components/AMapComponent/PathSimplifier.vue b/src/components/AMapComponent/PathSimplifier.vue new file mode 100644 index 00000000..a34d05d1 --- /dev/null +++ b/src/components/AMapComponent/PathSimplifier.vue @@ -0,0 +1,106 @@ + + + \ No newline at end of file diff --git a/src/components/AMapComponent/index.vue b/src/components/AMapComponent/index.vue new file mode 100644 index 00000000..03e9befd --- /dev/null +++ b/src/components/AMapComponent/index.vue @@ -0,0 +1,71 @@ + + + + + \ No newline at end of file diff --git a/src/components/AMapComponent/types.d.ts b/src/components/AMapComponent/types.d.ts new file mode 100644 index 00000000..db4f66b6 --- /dev/null +++ b/src/components/AMapComponent/types.d.ts @@ -0,0 +1,130 @@ +export type PathDataType = number[][]; + +export type PathSimplifierOptions = { + map?: any; + zIndex?: number; + data?: number[][]; + getPath?: (pathData: {}, pathIndex: number) => PathDataType; + getZIndex?: (pathData: any, pathIndex: number) => number; + getHoverTitle?: (pathData: any, pathIndex: number, pointIndex: number) => string; + autoSetFitView?: boolean; + clickToSelectPath?: boolean; + onTopWhenSelected?: boolean; + renderConstructor?: Function; + renderOptions?: {}; +}; + +export type PathDataItemType = { + name?: string; + path: PathDataType; +}; + +export interface PathSimplifier { + new (options: PathSimplifierOptions); + + readonly supportCanvas: boolean; + + getZIndexOfPath: (pathIndex: number) => number; + + setZIndexOfPath: (pathIndex: number, zIndex: number) => void; + + /** + * 是否置顶显示pathIndex对应的轨迹 + * @param pathIndex + * @param isTop isTop为真,设置 zIndex 为 现存最大zIndex+1; isTop为假,设置 zIndex 为 构造参数中 getZIndex 的返回值 + */ + toggleTopOfPath: (pathIndex: number, isTop: boolean) => void; + + getPathData: (pathIndex: number) => any; + + createPathNavigator: (pathIndex: number, options: {}) => PathNavigator; + + getPathNavigators: () => any[]; + + clearPathNavigators: () => void; + + getSelectedPathData: () => any; + + getSelectedPathIndex: () => number; + + isSelectedPathIndex: (pathIndex: number) => boolean; + + setSelectedPathIndex: (pathIndex: number) => void; + + render: () => void; + + renderLater: (delay: number[]) => void; + + setData: (data: any[]) => void; + + setFitView: (pathIndex: number) => void; + + on: (eventName: string, handler: Function) => void; + + off: (eventName: string, handler: Function) => void; + + hide: () => void; + + show: () => void; + + isHidden: () => boolean; + + getRender: () => boolean; + + getRenderOptions: () => any; +} + +export interface PathNavigatorOptions { + loop?: boolean; + speed?: number; + pathNavigatorStyle?: {}; + animInterval?: number; + dirToPosInMillsecs?: number; + range?: [number, number]; +} + +export interface PathNavigator { + new (options: PathNavigatorOptions); + + start: (pointIndex?: number) => void; + + pause: () => void; + + resume: () => void; + + stop: () => void; + + destroy: () => void; + + getCursor: () => any; + + getNaviStatus: () => string; + + getPathIndex: () => number; + + getPosition: () => [number, number]; + + getSpeed: () => number; + + getMovedDistance: () => number; + + getPathStartIdx: () => number; + + getPathEndIdx: () => number; + + moveByDistance: (distance: number) => void; + + moveToPoint: (idx: number, tail: number) => void; + + isCursorAtPathEnd: () => boolean; + + isCursorAtPathStart: () => boolean; + + setSpeed: (speed: number) => void; + + setRange: (startIndex: number, endIndex: number) => void; + + on: (eventName: string, handler: Function) => void; + + off: (eventName: string, handler: Function) => void; +} diff --git a/src/components/AMapComponent/utils.ts b/src/components/AMapComponent/utils.ts new file mode 100644 index 00000000..dd7f91ec --- /dev/null +++ b/src/components/AMapComponent/utils.ts @@ -0,0 +1,26 @@ +const protocol = window.location.protocol; + +const buildScriptTag = (src: string): HTMLScriptElement => { + const script = document.createElement('script'); + script.type = 'text/javascript'; + script.async = true; + script.defer = true; + script.src = src; + return script; +}; + +export const getAMapUiPromise = (version: string = '1.0'): Promise => { + if ((window as any).AMapUI) { + return Promise.resolve(); + } + const script = buildScriptTag(`${protocol}//webapi.amap.com/ui/${version}/main-async.js`); + const pro = new Promise((resolve) => { + script.onload = () => { + (window as any).initAMapUI(); + resolve(true); + }; + }); + + document.body.append(script); + return pro; +}; \ No newline at end of file diff --git a/src/components/index.ts b/src/components/index.ts index 28d5bdb1..fe3c80f6 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -12,6 +12,8 @@ import JUpload from './JUpload/index.vue' import { BasicLayoutPage, BlankLayoutPage, PageContainer } from './Layout' import Ellipsis from './Ellipsis/index.vue' import JEmpty from './Empty/index.vue' +import AMapComponent from './AMapComponent/index.vue' +import PathSimplifier from './AMapComponent/PathSimplifier.vue' export default { install(app: App) { @@ -30,5 +32,7 @@ export default { .component('PageContainer', PageContainer) .component('Ellipsis', Ellipsis) .component('JEmpty', JEmpty) + .component('AMapComponent', AMapComponent) + .component('PathSimplifier', PathSimplifier) } } diff --git a/src/views/device/Instance/Detail/Running/Property/Detail/AMap.vue b/src/views/device/Instance/Detail/Running/Property/Detail/AMap.vue deleted file mode 100644 index e0656cec..00000000 --- a/src/views/device/Instance/Detail/Running/Property/Detail/AMap.vue +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - diff --git a/src/views/device/Instance/Detail/Running/Property/Detail/PropertyAMap.vue b/src/views/device/Instance/Detail/Running/Property/Detail/PropertyAMap.vue index b7860f91..e6380a17 100644 --- a/src/views/device/Instance/Detail/Running/Property/Detail/PropertyAMap.vue +++ b/src/views/device/Instance/Detail/Running/Property/Detail/PropertyAMap.vue @@ -3,12 +3,14 @@
- 开始动画 - 停止动画 + 开始动画 + 停止动画
- + + + @@ -16,7 +18,6 @@ import { getPropertyData } from '@/api/device/instance'; import { useInstanceStore } from '@/store/instance'; import encodeQuery from '@/utils/encodeQuery'; -import AMap from './AMap.vue'; const instanceStore = useInstanceStore(); @@ -33,6 +34,15 @@ const prop = defineProps({ const geoList = ref([]); const loading = ref(false); +const amapPath = ref() + +const onStart = () => { + amapPath.value.start() +} + +const onStop = () => { + amapPath.value.stop() +} const query = async () => { loading.value = true; @@ -53,7 +63,10 @@ const query = async () => { ((resp.result as any)?.data || []).forEach((item: any) => { list.push([item.value.lon, item.value.lat]); }); - geoList.value = list + geoList.value = [{ + name: prop?.data?.name, + path: list + }] } }; diff --git a/src/views/device/Instance/Detail/Running/Property/Detail/index.vue b/src/views/device/Instance/Detail/Running/Property/Detail/index.vue index 6bdb9c4b..39d3d376 100644 --- a/src/views/device/Instance/Detail/Running/Property/Detail/index.vue +++ b/src/views/device/Instance/Detail/Running/Property/Detail/index.vue @@ -2,7 +2,7 @@
- + From e0be36fe33b9567ed6296de497fc084d15e72e7f Mon Sep 17 00:00:00 2001 From: JiangQiming <291854119@qq.com> Date: Tue, 28 Feb 2023 15:01:16 +0800 Subject: [PATCH 06/19] =?UTF-8?q?feat:=20=E9=80=9A=E9=81=93=E6=96=B0?= =?UTF-8?q?=E5=A2=9E/=E7=BC=96=E8=BE=91/=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/media/channel.ts | 5 +- src/views/media/Device/Channel/Save.vue | 172 +++++++++++++++++++---- src/views/media/Device/Channel/index.vue | 13 +- 3 files changed, 157 insertions(+), 33 deletions(-) diff --git a/src/api/media/channel.ts b/src/api/media/channel.ts index 3c4a67bd..da64173a 100644 --- a/src/api/media/channel.ts +++ b/src/api/media/channel.ts @@ -6,10 +6,11 @@ export default { // 详情 detail: (id: string): any => server.get(`/media/channel/${id}`), // 验证通道ID是否存在 - validateField: (params: string): any => server.get(`/media/channel/channelId/_validate`, params), + validateField: (params: any): any => server.get(`/media/channel/channelId/_validate`, params), // 新增 save: (data: any) => server.post(`/media/channel`, data), // 修改 - update: (data: any) => server.put(`/media/channel`, data), + update: (id: string, data: any) => server.put(`/media/channel/${id}`, data), + // 删除 del: (id: string) => server.remove(`media/channel/${id}`), } \ No newline at end of file diff --git a/src/views/media/Device/Channel/Save.vue b/src/views/media/Device/Channel/Save.vue index 51762e16..3a6de43c 100644 --- a/src/views/media/Device/Channel/Save.vue +++ b/src/views/media/Device/Channel/Save.vue @@ -12,7 +12,18 @@ - + - + - + - - - - - - + + + + + + - + @@ -88,13 +128,18 @@ - - diff --git a/src/views/media/Device/Channel/index.vue b/src/views/media/Device/Channel/index.vue index 0e17cec7..a01bb5ae 100644 --- a/src/views/media/Device/Channel/index.vue +++ b/src/views/media/Device/Channel/index.vue @@ -1,3 +1,4 @@ + @@ -62,7 +62,6 @@ import { useInstanceStore } from '@/store/instance' import { useProductStore } from '@/store/product' import { useMetadataStore } from '@/store/metadata' import PermissionButton from '@/components/PermissionButton/index.vue' -import { DeleteOutlined, EditOutlined, PlusOutlined } from '@ant-design/icons-vue' import { message } from 'ant-design-vue/es' import { SystemConst } from '@/utils/consts' import { Store } from 'jetlinks-store' diff --git a/src/views/device/components/Metadata/Import/index.vue b/src/views/device/components/Metadata/Import/index.vue index eb5de412..7d8867b1 100644 --- a/src/views/device/components/Metadata/Import/index.vue +++ b/src/views/device/components/Metadata/Import/index.vue @@ -3,7 +3,7 @@ @ok="handleImport" :confirm-loading="loading">

- + 导入的物模型会覆盖原来的属性、功能、事件、标签,请谨慎操作。

@@ -37,8 +37,7 @@ - - + @@ -62,9 +61,8 @@ import { Store } from 'jetlinks-store'; import { SystemConst } from '@/utils/consts'; import { useInstanceStore } from '@/store/instance' import { useProductStore } from '@/store/product'; -import { UploadOutlined, ExclamationCircleOutlined } from '@ant-design/icons-vue'; import { FILE_UPLOAD } from '@/api/comm'; -import { LocalStore, getToken } from '@/utils/comm'; +import { getToken } from '@/utils/comm'; import MonacoEditor from '@/components/MonacoEditor/index.vue' const route = useRoute() @@ -258,13 +256,15 @@ const handleImport = async () => { if (resp.status === 200) { if (props?.type === 'device') { const metadata: DeviceMetadata = JSON.parse(paramsDevice || '{}') + // TODO导入 // MetadataAction.insert(metadata); - instanceStore.setCurrent(metadata) + // instanceStore.setCurrent(metadata) message.success('导入成功') } else { const metadata: ProductItem = JSON.parse(params?.metadata || '{}') + // TODO导入 // MetadataAction.insert(metadata); - productStore.setCurrent(metadata) + // productStore.setCurrent(metadata) message.success('导入成功') } } diff --git a/src/views/device/components/Metadata/index.vue b/src/views/device/components/Metadata/index.vue index 42f3d46d..36ea3747 100644 --- a/src/views/device/components/Metadata/index.vue +++ b/src/views/device/components/Metadata/index.vue @@ -6,7 +6,7 @@ ? '该设备已脱离产品物模型,修改产品物模型对该设备无影响' : '设备会默认继承产品的物模型,修改设备物模型后将脱离产品物模型'">
- + {{ instanceStore.detail?.independentMetadata && type === 'device' ? '该设备已脱离产品物模型,修改产品物模型对该设备无影响' @@ -47,7 +47,6 @@ + + diff --git a/src/views/system/Apply/index.vue b/src/views/system/Apply/index.vue index 153eebba..967e61de 100644 --- a/src/views/system/Apply/index.vue +++ b/src/views/system/Apply/index.vue @@ -390,7 +390,13 @@ const table = { title: '查看API', }, icon: 'icon-chakanAPI', - onClick: () => {}, + onClick: () => { + menuStory.jumpPage( + 'system/Apply/View', + {}, + { code: data.id }, + ); + }, }, ); // 其他不为空 diff --git a/src/views/system/Platforms/Api/components/HomePage.vue b/src/views/system/Platforms/Api/components/HomePage.vue index e39b1d1f..8576eb8d 100644 --- a/src/views/system/Platforms/Api/components/HomePage.vue +++ b/src/views/system/Platforms/Api/components/HomePage.vue @@ -60,9 +60,10 @@

示例数据

-
+ -
+

验签说明

使用和签名相同的算法(不需要对响应结果排序)

-
@@ -122,19 +119,19 @@

添加 SDK 依赖

将以下Maven依赖加入到pom.xml文件中
-

SDK 客户端的初始化和请求方式

-
@@ -144,7 +141,7 @@ diff --git a/src/views/system/Platforms/Api/components/LeftTree.vue b/src/views/system/Platforms/Api/components/LeftTree.vue index 7c63f1bd..7420a355 100644 --- a/src/views/system/Platforms/Api/components/LeftTree.vue +++ b/src/views/system/Platforms/Api/components/LeftTree.vue @@ -2,6 +2,7 @@ @@ -14,17 +15,23 @@ diff --git a/src/views/media/Cascade/index.vue b/src/views/media/Cascade/index.vue index a5eb66c0..21ac2e94 100644 --- a/src/views/media/Cascade/index.vue +++ b/src/views/media/Cascade/index.vue @@ -2,17 +2,19 @@ + + + + + @@ -131,6 +198,7 @@ \ No newline at end of file diff --git a/src/views/device/components/Metadata/Base/Edit/ExpandsForm.vue b/src/views/device/components/Metadata/Base/Edit/ExpandsForm.vue index cf6d62a3..d3376921 100644 --- a/src/views/device/components/Metadata/Base/Edit/ExpandsForm.vue +++ b/src/views/device/components/Metadata/Base/Edit/ExpandsForm.vue @@ -10,7 +10,7 @@ - + @@ -24,7 +24,7 @@ From 7143af3ff1edcf68d48eeb535f03f66ee74b3ede Mon Sep 17 00:00:00 2001 From: jackhoo_98 Date: Tue, 28 Feb 2023 21:15:54 +0800 Subject: [PATCH 17/19] =?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 @@ diff --git a/src/views/rule-engine/Scene/index.vue b/src/views/rule-engine/Scene/index.vue index e317f0ce..a274a89a 100644 --- a/src/views/rule-engine/Scene/index.vue +++ b/src/views/rule-engine/Scene/index.vue @@ -1,68 +1,340 @@ \ No newline at end of file diff --git a/src/views/system/Menu/Setting/baseMenu.ts b/src/views/system/Menu/Setting/baseMenu.ts index 6fb8cdbf..58de80c7 100644 --- a/src/views/system/Menu/Setting/baseMenu.ts +++ b/src/views/system/Menu/Setting/baseMenu.ts @@ -1906,7 +1906,7 @@ export default [ ], }, { - id: 'tigger', + id: 'trigger', name: '手动触发', permissions: [ { @@ -2323,7 +2323,7 @@ export default [ ], }, { - id: 'tigger', + id: 'trigger', name: '手动触发', permissions: [ { From 1634d01c2a7563fc674f8326282e00135bd0978a Mon Sep 17 00:00:00 2001 From: 100011797 <2642441182@qq.com> Date: Tue, 28 Feb 2023 21:37:56 +0800 Subject: [PATCH 19/19] =?UTF-8?q?fix:=20=E5=9C=BA=E6=99=AF=E8=81=94?= =?UTF-8?q?=E5=8A=A8=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/rule-engine/Scene/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/rule-engine/Scene/index.vue b/src/views/rule-engine/Scene/index.vue index a274a89a..093f192c 100644 --- a/src/views/rule-engine/Scene/index.vue +++ b/src/views/rule-engine/Scene/index.vue @@ -110,7 +110,7 @@ @click="i.onClick" type="link" style="padding: 0px" - :hasPermission="'device/Instance:' + i.key" + :hasPermission="'rule-engine/Scene:' + i.key" >