diff --git a/.env.development b/.env.development index f7ff9da..e617ab3 100644 --- a/.env.development +++ b/.env.development @@ -5,7 +5,7 @@ VITE_APP_TITLE = 新能源场站智慧运维平台 VITE_APP_ENV = 'development' # 开发环境 -VITE_APP_BASE_API = 'http://192.168.110.149:18899' +VITE_APP_BASE_API = 'http://192.168.110.194:18899' # 应用访问路径 例如使用前缀 /admin/ VITE_APP_CONTEXT_PATH = '/' diff --git a/package.json b/package.json index 2078035..7ed8e4f 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "echarts": "5.6.0", "echarts-liquidfill": "^3.1.0", "element-plus": "2.9.8", + "ezuikit-js": "^8.1.10", "file-saver": "2.0.5", "highlight.js": "11.9.0", "image-conversion": "2.1.1", diff --git a/public/assets/dialog2.png b/public/assets/dialog2.png new file mode 100644 index 0000000..46a663d Binary files /dev/null and b/public/assets/dialog2.png differ diff --git a/src/api/devicePreset/index.ts b/src/api/devicePreset/index.ts new file mode 100644 index 0000000..d5baf2e --- /dev/null +++ b/src/api/devicePreset/index.ts @@ -0,0 +1,74 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { DevicePresetVO, DevicePresetForm, DevicePresetQuery } from '@/api/camera/devicePreset/types'; + +/** + * 查询摄像头预置位列表 + * @param query + * @returns {*} + */ + +export const listDevicePreset = (query?: DevicePresetQuery): AxiosPromise => { + return request({ + url: '/camera/devicePreset/list', + method: 'get', + params: query + }); +}; + +/** + * 查询摄像头预置位详细 + * @param id + */ +export const getDevicePreset = (id: string | number): AxiosPromise => { + return request({ + url: '/camera/devicePreset/' + id, + method: 'get' + }); +}; + +/** + * 新增摄像头预置位 + * @param data + */ +export const addDevicePreset = (data: DevicePresetForm) => { + return request({ + url: '/camera/devicePreset', + method: 'post', + data: data + }); +}; + +/** + * 修改摄像头预置位 + * @param data + */ +export const updateDevicePreset = (data: DevicePresetForm) => { + return request({ + url: '/camera/devicePreset', + method: 'put', + data: data + }); +}; + +/** + * 删除摄像头预置位 + * @param id + */ +export const delDevicePreset = (id: string | number | Array) => { + return request({ + url: '/camera/devicePreset/' + id, + method: 'delete' + }); +}; +/** + * 调用摄像头预置位 + * @param data + */ +export const callDevicePreset = (data: DevicePresetForm) => { + return request({ + url: '/camera/devicePreset/call', + method: 'post', + data: data + }); +}; diff --git a/src/api/devicePreset/types.ts b/src/api/devicePreset/types.ts new file mode 100644 index 0000000..87dfe79 --- /dev/null +++ b/src/api/devicePreset/types.ts @@ -0,0 +1,86 @@ +export interface DevicePresetVO { + /** + * 主键id + */ + id: string | number; + + /** + * 设备序列号 + */ + deviceSerial: string; + + /** + * 通道号 + */ + channelNo: number; + + /** + * 预置点序号 + */ + presetIndex: number; + + /** + * 预置点 + */ + presetName: string; + +} + +export interface DevicePresetForm extends BaseEntity { + /** + * 主键id + */ + id?: string | number; + + /** + * 设备序列号 + */ + deviceSerial?: string; + + /** + * 通道号 + */ + channelNo?: number; + + /** + * 预置点序号 + */ + presetIndex?: number; + + /** + * 预置点 + */ + presetName?: string; + +} + +export interface DevicePresetQuery extends PageQuery { + + /** + * 设备序列号 + */ + deviceSerial?: string; + + /** + * 通道号 + */ + channelNo?: number; + + /** + * 预置点序号 + */ + presetIndex?: number; + + /** + * 预置点 + */ + presetName?: string; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/api/securitySurveillance/index.js b/src/api/securitySurveillance/index.js new file mode 100644 index 0000000..1ec5c7e --- /dev/null +++ b/src/api/securitySurveillance/index.js @@ -0,0 +1,16 @@ +import request from '@/utils/request'; +// 获取萤石云Token +export function getToken() { + return request({ + url: '/ops/monitoriing/getToken', + method: 'get', + }) +} +// 获取摄像头列表 +export function getMonitoringList(data) { + return request({ + url: '/ops/monitoriing/getMonitoringList', + method: 'post', + data + }) +} diff --git a/src/assets/styles/1.html b/src/assets/styles/1.html new file mode 100644 index 0000000..880c800 --- /dev/null +++ b/src/assets/styles/1.html @@ -0,0 +1,16 @@ +
+
+ +
+
+ + \ No newline at end of file diff --git a/src/assets/styles/dialog.scss b/src/assets/styles/dialog.scss index a00f472..4161719 100644 --- a/src/assets/styles/dialog.scss +++ b/src/assets/styles/dialog.scss @@ -1,16 +1,230 @@ +.no-header-dialog { + height: auto; +} + #custom-dialog { padding: 0; + top: 0; .el-dialog__header { - display: none; + // display: none; + border: none; + padding: 0; + margin: 0; } .el-dialog__body { padding: 0 !important; + // height: auto !important; + max-height: none !important; } - .alert-content { - padding: 80px; + .status-alert-content { background: linear-gradient(180deg, rgba(0, 119, 255, 0.23) 0%, rgba(255, 255, 255, 0) 100%); + display: flex; + align-items: center; + justify-content: space-between; + padding-left: 20px; + padding-right: 50px; + + .info { + display: flex; + flex-direction: column; + gap: 10px; + + .title { + color: rgba(0, 30, 59, 1); + font-size: 20px; + font-weight: bold; + } + + .name { + color: rgba(0, 30, 59, 1); + font-weight: bold; + } + + .icon { + display: flex; + align-items: center; + font-size: 12px; + + .last-update { + // font-size: ; + color: rgba(113, 128, 150, 1); + margin-left: 15px; + } + + svg { + width: 15px; + height: 15px; + } + + .text { + font-size: 12px; + margin-left: 10px; + } + + + } + + + } + + .img { + width: 240px; + height: 240px; + + img { + width: 100%; + height: 100%; + display: block; + } + } + + .info-box { + font-size: 12px; + display: flex; + gap: 40px; + margin-left: 30px; + + .item { + display: flex; + flex-direction: column; + gap: 20px; + } + + .title { + color: rgba(113, 128, 150, 1); + margin-bottom: 10px; + } + + .text { + font-weight: bold; + color: rgba(0, 30, 59, 1); + } + } + } + + .status-alert-content .success { + color: rgba(0, 184, 122, 1) !important; + } + + .status-alert-content .orange { + color: rgba(255, 153, 0, 1) !important; + } + + .status-alert-content .red { + color: rgba(227, 39, 39, 1) !important; + } + + .back { + background-image: url("/assets/dialog2.png"); + background-size: 455px; + background-repeat: no-repeat; + background-position: 780px -65px; + } + + .alarm-alert-content { + background: linear-gradient(180deg, rgba(255, 87, 51, 0.23) 0%, rgba(255, 219, 219, 0) 100%); + padding-left: 50px; + padding-right: 50px; + padding-bottom: 50px; + + .top { + display: flex; + gap: 50px; + align-items: center; + padding: 50px 0; + padding-bottom: 20px; + + + .info { + display: flex; + flex-direction: column; + gap: 15px; + + .title { + color: rgba(227, 39, 39, 1); + font-size: 28px; + font-weight: bold; + } + + .alarm-id { + color: rgba(0, 30, 59, 1); + font-size: 18px; + font-weight: bold; + } + + .status-box { + display: flex; + gap: 20px; + + .status { + font-weight: bold; + } + + .last-update { + color: rgba(113, 128, 150, 1); + } + } + } + + .info-box { + .list { + display: flex; + gap: 90px; + + .item { + display: flex; + flex-direction: column; + gap: 30px; + + .title { + color: rgba(113, 128, 150, 1); + margin-bottom: 10px; + } + + .text { + color: rgba(0, 30, 59, 1); + font-weight: bold; + } + } + } + } + } + + .progress-box { + .title { + color: rgba(0, 30, 59, 1); + font-weight: bold; + font-size: 20px; + margin-bottom: 24px; + } + } + + .notice-box { + display: flex; + justify-content: space-between; + } + + .item { + display: flex; + flex-direction: column; + gap: 10px; + color: rgba(113, 128, 150, 1); + + .time { + font-size: 12px; + } + } + + .title.active { + color: rgba(247, 89, 10, 1); + font-weight: bold; + } + } + + .alarm-alert-content .red { + color: rgba(227, 39, 39, 1) !important; } } \ No newline at end of file diff --git a/src/components/TitleComponent/index.vue b/src/components/TitleComponent/index.vue index 8b44219..4eddf81 100644 --- a/src/components/TitleComponent/index.vue +++ b/src/components/TitleComponent/index.vue @@ -1,5 +1,5 @@ + + diff --git a/src/views/camera/index.vue b/src/views/camera/index.vue new file mode 100644 index 0000000..a052ae5 --- /dev/null +++ b/src/views/camera/index.vue @@ -0,0 +1,371 @@ + + + diff --git a/src/views/pvSystem/mainSystemDiagram/index.vue b/src/views/pvSystem/mainSystemDiagram/index.vue index 5114f37..7aeb4b9 100644 --- a/src/views/pvSystem/mainSystemDiagram/index.vue +++ b/src/views/pvSystem/mainSystemDiagram/index.vue @@ -2,7 +2,7 @@
- + diff --git a/src/views/pvSystem/siteOverview/components/CustomDialogAlarm.vue b/src/views/pvSystem/siteOverview/components/CustomDialogAlarm.vue new file mode 100644 index 0000000..b549b5d --- /dev/null +++ b/src/views/pvSystem/siteOverview/components/CustomDialogAlarm.vue @@ -0,0 +1,95 @@ + + + \ No newline at end of file diff --git a/src/views/pvSystem/siteOverview/components/CustomDialogStatus.vue b/src/views/pvSystem/siteOverview/components/CustomDialogStatus.vue new file mode 100644 index 0000000..79cac99 --- /dev/null +++ b/src/views/pvSystem/siteOverview/components/CustomDialogStatus.vue @@ -0,0 +1,102 @@ + + + \ No newline at end of file diff --git a/src/views/pvSystem/siteOverview/components/qixiang.vue b/src/views/pvSystem/siteOverview/components/qixiang.vue index 8606c6f..1e23630 100644 --- a/src/views/pvSystem/siteOverview/components/qixiang.vue +++ b/src/views/pvSystem/siteOverview/components/qixiang.vue @@ -2,13 +2,16 @@
-
- + style="display: flex; flex-direction: column; align-items: center; background-color: #fafafa; border-radius: 10px; padding-bottom: 40px;padding: 20px;"> +
+
+ +
+
31℃
+
晴朗
+
紫外线强度:
-
31℃
-
晴朗
-
紫外线强度:
diff --git a/src/views/pvSystem/siteOverview/components/status.vue b/src/views/pvSystem/siteOverview/components/status.vue index f99e9e3..7f027a2 100644 --- a/src/views/pvSystem/siteOverview/components/status.vue +++ b/src/views/pvSystem/siteOverview/components/status.vue @@ -1,7 +1,8 @@ - \ No newline at end of file diff --git a/src/views/securitySurveillance/index.vue b/src/views/securitySurveillance/index.vue index a0fccf8..f64a04d 100644 --- a/src/views/securitySurveillance/index.vue +++ b/src/views/securitySurveillance/index.vue @@ -24,7 +24,7 @@ - +