From f0609716bce60b886aaf1c5ec0fac137482140d7 Mon Sep 17 00:00:00 2001 From: re-JZzzz Date: Mon, 22 Sep 2025 16:15:50 +0800 Subject: [PATCH 01/11] =?UTF-8?q?1.=E5=AE=8C=E6=88=90=E7=94=9F=E4=BA=A7?= =?UTF-8?q?=E7=AE=A1=E7=90=86-=E7=94=B5=E9=87=8F=E5=88=86=E6=9E=90?= =?UTF-8?q?=E9=9D=99=E6=80=81=E7=95=8C=E9=9D=A2=202.=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E7=BB=BC=E5=90=88=E7=AE=A1=E7=90=86-=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E6=8E=92=E7=8F=AD=E7=AE=A1=E7=90=86=E4=BA=A4=E4=BA=92=203.?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=83=A8=E5=88=86=E9=80=BB=E8=BE=91=E5=92=8C?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/renyuanguanliDialog.vue | 257 +++++++++++++++++ .../attendManage/components/renyuanpaiban.vue | 43 +++ .../integratedManage/attendManage/index.vue | 269 ++++++++++++------ .../stateManage/components/stateTrend.vue | 1 - .../alarmAnalysis/components/data.vue | 83 ++---- .../pvSystem/alarmAnalysis/components/pie.vue | 3 + .../powerfenxi/components/detaildata.vue | 32 ++- .../powerfenxi/components/duibifenxiBar.vue | 53 ++-- .../powerfenxi/components/tongbifenxiLine.vue | 63 ++-- .../powerfenxi/components/zonglan.vue | 200 +++++++++++++ .../shengchanManage/powerfenxi/index.vue | 81 +++++- 11 files changed, 894 insertions(+), 191 deletions(-) create mode 100644 src/views/integratedManage/attendManage/components/renyuanguanliDialog.vue create mode 100644 src/views/shengchanManage/powerfenxi/components/zonglan.vue diff --git a/src/views/integratedManage/attendManage/components/renyuanguanliDialog.vue b/src/views/integratedManage/attendManage/components/renyuanguanliDialog.vue new file mode 100644 index 0000000..d716041 --- /dev/null +++ b/src/views/integratedManage/attendManage/components/renyuanguanliDialog.vue @@ -0,0 +1,257 @@ + + + + + \ No newline at end of file diff --git a/src/views/integratedManage/attendManage/components/renyuanpaiban.vue b/src/views/integratedManage/attendManage/components/renyuanpaiban.vue index 84e4684..afe193d 100644 --- a/src/views/integratedManage/attendManage/components/renyuanpaiban.vue +++ b/src/views/integratedManage/attendManage/components/renyuanpaiban.vue @@ -26,6 +26,15 @@
{{ dateInfo.weekDay }}
+ @@ -34,6 +43,10 @@ \ No newline at end of file diff --git a/src/views/shengchanManage/powerfenxi/components/tongbifenxiLine.vue b/src/views/shengchanManage/powerfenxi/components/tongbifenxiLine.vue index cea4673..d610267 100644 --- a/src/views/shengchanManage/powerfenxi/components/tongbifenxiLine.vue +++ b/src/views/shengchanManage/powerfenxi/components/tongbifenxiLine.vue @@ -1,43 +1,45 @@ + + \ No newline at end of file diff --git a/src/views/shengchanManage/powerfenxi/index.vue b/src/views/shengchanManage/powerfenxi/index.vue index c7cb7cc..2be3d4d 100644 --- a/src/views/shengchanManage/powerfenxi/index.vue +++ b/src/views/shengchanManage/powerfenxi/index.vue @@ -1,12 +1,81 @@ + + From c027533d4ff421c4b6e412d0dfee22357f6081d3 Mon Sep 17 00:00:00 2001 From: tcy <1193318383@qq.com> Date: Mon, 22 Sep 2025 16:49:50 +0800 Subject: [PATCH 02/11] =?UTF-8?q?feat(=E5=AF=B9=E8=AF=9D=E6=A1=86=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F):=20=E9=87=8D=E6=9E=84=E5=AF=B9=E8=AF=9D=E6=A1=86?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E5=B9=B6=E6=B7=BB=E5=8A=A0=E8=AF=A6=E7=BB=86?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 调整对话框布局和样式,增加顶部对齐 - 添加设备状态、运行信息等详细展示区域 - 实现不同状态的颜色区分显示 - 默认隐藏对话框,改为点击触发显示 --- src/assets/styles/dialog.scss | 101 +++++++++++++++++- .../siteOverview/components/status.vue | 89 ++++++++++++++- 2 files changed, 185 insertions(+), 5 deletions(-) diff --git a/src/assets/styles/dialog.scss b/src/assets/styles/dialog.scss index a00f472..5e92c76 100644 --- a/src/assets/styles/dialog.scss +++ b/src/assets/styles/dialog.scss @@ -1,8 +1,12 @@ #custom-dialog { padding: 0; + top: 0; .el-dialog__header { - display: none; + // display: none; + border: none; + padding: 0; + margin: 0; } .el-dialog__body { @@ -10,7 +14,100 @@ } .alert-content { - padding: 80px; 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); + } + } + } + + .alert-content .success { + color: rgba(0, 184, 122, 1) !important; + } + + .alert-content .orange { + color: rgba(255, 153, 0, 1) !important; + } + + .alert-content .red { + color: rgba(227, 39, 39, 1) !important; } } \ No newline at end of file diff --git a/src/views/pvSystem/siteOverview/components/status.vue b/src/views/pvSystem/siteOverview/components/status.vue index f99e9e3..db31309 100644 --- a/src/views/pvSystem/siteOverview/components/status.vue +++ b/src/views/pvSystem/siteOverview/components/status.vue @@ -54,11 +54,94 @@ - -
+ +
+
+
INV-2023-001
+
华为 SUN2000-60KTL-M0
+
+
+ + + + + + + + + + + + + + + + + +
正常运行
+
最后更新:刚刚
+
+
+
+
+
+
+
安装位置
+
光伏区A区-3排-08号
+
+
+
运行时长
+
402天18小时
+
+
+
+
+
安装日期
+
2022-06-15
+
+
+
上次维护
+
2025-05-20
+
+
+
+
+
通讯状态
+
正常
+
+
+
固件版本
+
V200R001CC00SPC105
+
+
+
+
+
IP地址
+
192.168.1.1
+
+
+
累计发电量
+
128,562.4Kwh
+
+
+
@@ -84,7 +167,7 @@ const formInline = ref({}) const total = ref(0); const loading = ref(false); -const dialogVisible = ref(true); +const dialogVisible = ref(false); const listData = [ { id: "INV-2023-001", shuchu: "12.8kw", xiaolv: "98.2%", wendu: "42℃", fadian: "158.5kWh", status: 1 }, { id: "INV-2023-001", shuchu: "12.8kw", xiaolv: "98.2%", wendu: "42℃", fadian: "158.5kWh", status: 1 }, From 6d960a1fc7d1eda31704343493e83acbc6ea57c0 Mon Sep 17 00:00:00 2001 From: tcy <1193318383@qq.com> Date: Mon, 22 Sep 2025 19:47:06 +0800 Subject: [PATCH 03/11] =?UTF-8?q?feat(=E7=AB=99=E7=82=B9=E6=A6=82=E8=A7=88?= =?UTF-8?q?):=20=E6=B7=BB=E5=8A=A0=E7=8A=B6=E6=80=81=E5=92=8C=E5=91=8A?= =?UTF-8?q?=E8=AD=A6=E8=87=AA=E5=AE=9A=E4=B9=89=E5=BC=B9=E7=AA=97=E7=BB=84?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit refactor(样式): 重构弹窗样式并分离状态和告警样式 style: 调整页面间距和布局 --- src/assets/styles/1.html | 16 +++ src/assets/styles/dialog.scss | 117 +++++++++++++++- src/components/TitleComponent/index.vue | 4 +- .../pvSystem/mainSystemDiagram/index.vue | 2 +- .../components/CustomDialogAlarm.vue | 93 +++++++++++++ .../components/CustomDialogStatus.vue | 102 ++++++++++++++ .../siteOverview/components/status.vue | 130 +++--------------- src/views/pvSystem/siteOverview/index.vue | 9 +- 8 files changed, 353 insertions(+), 120 deletions(-) create mode 100644 src/assets/styles/1.html create mode 100644 src/views/pvSystem/siteOverview/components/CustomDialogAlarm.vue create mode 100644 src/views/pvSystem/siteOverview/components/CustomDialogStatus.vue 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 5e92c76..6ed33de 100644 --- a/src/assets/styles/dialog.scss +++ b/src/assets/styles/dialog.scss @@ -1,3 +1,7 @@ +.no-header-dialog { + height: auto; +} + #custom-dialog { padding: 0; top: 0; @@ -11,9 +15,11 @@ .el-dialog__body { padding: 0 !important; + // height: auto !important; + max-height: none !important; } - .alert-content { + .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; @@ -99,15 +105,118 @@ } } - .alert-content .success { + .status-alert-content .success { color: rgba(0, 184, 122, 1) !important; } - .alert-content .orange { + .status-alert-content .orange { color: rgba(255, 153, 0, 1) !important; } - .alert-content .red { + .status-alert-content .red { + color: rgba(227, 39, 39, 1) !important; + } + + .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 @@ \ 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/status.vue b/src/views/pvSystem/siteOverview/components/status.vue index db31309..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 From 30f59412029102023393f285757321c05f194d01 Mon Sep 17 00:00:00 2001 From: re-JZzzz Date: Tue, 23 Sep 2025 20:15:50 +0800 Subject: [PATCH 07/11] =?UTF-8?q?=E6=8E=92=E7=8F=AD=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=AF=B9=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/renyuan/paiban/index.ts | 59 ++- src/api/renyuan/paiban/types.ts | 39 ++ src/utils/getDate.ts | 70 ++++ .../components/renyuanguanliDialog.vue | 271 +++++++------ .../attendManage/components/renyuanpaiban.vue | 354 +++++++++++------ .../integratedManage/attendManage/index.vue | 362 ++++++++++++++---- 6 files changed, 828 insertions(+), 327 deletions(-) create mode 100644 src/utils/getDate.ts diff --git a/src/api/renyuan/paiban/index.ts b/src/api/renyuan/paiban/index.ts index 9c0a83d..f279452 100644 --- a/src/api/renyuan/paiban/index.ts +++ b/src/api/renyuan/paiban/index.ts @@ -1,5 +1,6 @@ import request from '@/utils/request'; import { AxiosPromise } from 'axios'; +import { SchedulingVO } from './types'; /** @@ -16,11 +17,63 @@ export function getPaibanRenYuanList(deptId:string | number): AxiosPromise /** * 查询运维-人员排班列表 - * @param deptId */ -export function getPaibanRiLiList(deptId:string | number): AxiosPromise { +export function getPaibanRiLiList(query?: SchedulingVO): AxiosPromise { return request({ - url: `/ops/personnel/scheduling/getRiLiList/`+deptId, + url: `/ops/personnel/scheduling/getRiLiList`, method: 'get', + params: query + }); +} + +/** + * 运维-人员排班-查询排班列表 + */ +export function getPaibanListPage(query?: SchedulingVO): AxiosPromise { + return request({ + url: `/ops/personnel/scheduling/list`, + method: 'get', + params: query + }); +} +/** + * 运维-人员排班-安排排班 + */ +export function savePaiban(data: any): AxiosPromise { + return request({ + url: `/ops/personnel/scheduling/all`, + method: 'post', + data: data + }); +} + +/** + * 运维-人员排班-修改排班 + */ +export function updatePaiban(data:any): AxiosPromise { + return request({ + url: `/ops/personnel/scheduling`, + method: 'put', + data: data + }); +} + +/** + * 运维-人员排班-批量修改排班 + */ +export function updateAllPaiban(): AxiosPromise { + return request({ + url: `/ops/personnel/scheduling/all`, + method: 'put', + }); +} + +/** + * 运维-人员排班-删除排班 + */ +export function deletePaiban(ids: string): AxiosPromise { + return request({ + url: `/ops/personnel/scheduling/${ids}`, + method: 'delete', }); } diff --git a/src/api/renyuan/paiban/types.ts b/src/api/renyuan/paiban/types.ts index e69de29..76d0b6e 100644 --- a/src/api/renyuan/paiban/types.ts +++ b/src/api/renyuan/paiban/types.ts @@ -0,0 +1,39 @@ +export interface SchedulingVO { + /** + * 开始时间 + */ + schedulingStartDate: string; + + /** + * 结束时间 + */ + schedulingEndDate: string; + + /** + * 部门ID + */ + projectId?: string | number; + +} + + +// export interface SchedulingQuery extends PageQuery { + +// /** +// * 开始时间 +// */ +// schedulingStartDate: string; + +// /** +// * 结束时间 +// */ +// schedulingEndDate: string; + +// /** +// * 部门ID +// */ +// projectId?: string | number; +// } + + + diff --git a/src/utils/getDate.ts b/src/utils/getDate.ts new file mode 100644 index 0000000..b937589 --- /dev/null +++ b/src/utils/getDate.ts @@ -0,0 +1,70 @@ +// 获取指定月份的日期信息 +export interface DateInfo { + date: number; + weekDay: string; + fullDate: string; +} + +/** + * 获取当前月份的日期信息 + * @returns 包含当月所有日期信息的数组 + */ +export const getCurrentMonthDates = (): DateInfo[] => { + const today = new Date(); + const year = today.getFullYear(); + const month = today.getMonth(); // 0-11 + + // 获取当月第一天 + const firstDay = new Date(year, month, 1); + // 获取当月最后一天 + const lastDay = new Date(year, month + 1, 0); + // 当月总天数 + const daysInMonth = lastDay.getDate(); + + const weekdays = ['日', '一', '二', '三', '四', '五', '六']; + const dates: DateInfo[] = []; + + // 生成当月所有日期信息 + for (let i = 1; i <= daysInMonth; i++) { + const date = new Date(year, month, i); + const weekDayIndex = date.getDay(); // 0-6,0表示星期日 + dates.push({ + date: i, + weekDay: weekdays[weekDayIndex], + fullDate: `${year}-${String(month + 1).padStart(2, '0')}-${String(i).padStart(2, '0')}` + }); + } + + return dates; +}; + +/** + * 获取指定月份的日期信息 + * @param year 年份 + * @param month 月份(0-11) + * @returns 包含指定月份所有日期信息的数组 + */ +export const getMonthDates = (year: number, month: number): DateInfo[] => { + // 获取当月第一天 + const firstDay = new Date(year, month, 1); + // 获取当月最后一天 + const lastDay = new Date(year, month + 1, 0); + // 当月总天数 + const daysInMonth = lastDay.getDate(); + + const weekdays = ['日', '一', '二', '三', '四', '五', '六']; + const dates: DateInfo[] = []; + + // 生成当月所有日期信息 + for (let i = 1; i <= daysInMonth; i++) { + const date = new Date(year, month, i); + const weekDayIndex = date.getDay(); // 0-6,0表示星期日 + dates.push({ + date: i, + weekDay: weekdays[weekDayIndex], + fullDate: `${year}-${String(month + 1).padStart(2, '0')}-${String(i).padStart(2, '0')}` + }); + } + + return dates; +}; \ No newline at end of file diff --git a/src/views/integratedManage/attendManage/components/renyuanguanliDialog.vue b/src/views/integratedManage/attendManage/components/renyuanguanliDialog.vue index 88aa71a..5aae012 100644 --- a/src/views/integratedManage/attendManage/components/renyuanguanliDialog.vue +++ b/src/views/integratedManage/attendManage/components/renyuanguanliDialog.vue @@ -1,88 +1,69 @@ - + + \ No newline at end of file diff --git a/src/views/materialManagement/inventoryManagement.vue b/src/views/materialManagement/inventoryManagement.vue index 2d88994..e291202 100644 --- a/src/views/materialManagement/inventoryManagement.vue +++ b/src/views/materialManagement/inventoryManagement.vue @@ -61,7 +61,7 @@ : '添加入库单' }}
+ style="width: 100%;margin-top: 15px;">