From 65334c48a449f958bb901a24e2652675220e9d62 Mon Sep 17 00:00:00 2001 From: lynn Date: Tue, 29 Apr 2025 17:33:49 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E5=AE=8C=E6=88=90=E8=BF=90=E7=BB=B4?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=89=8D=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/maintenance/maintain.html | 928 ++++++++++++++++++ src/views/maintenance/maintenance_records.vue | 806 +++++++++++++++ src/views/maintenance/maintenance_rules.html | 620 ++++++++++++ src/views/maintenance/maintenance_rules.vue | 410 ++++++++ .../storages/components/addFixAssets.vue | 12 +- 5 files changed, 2770 insertions(+), 6 deletions(-) create mode 100644 src/views/maintenance/maintain.html create mode 100644 src/views/maintenance/maintenance_records.vue create mode 100644 src/views/maintenance/maintenance_rules.html create mode 100644 src/views/maintenance/maintenance_rules.vue diff --git a/src/views/maintenance/maintain.html b/src/views/maintenance/maintain.html new file mode 100644 index 0000000..abeb05f --- /dev/null +++ b/src/views/maintenance/maintain.html @@ -0,0 +1,928 @@ + + + + + + 维护管理 + + + +
+ + +
+ + +
+ +
+
+ + +
+
+ + +
+
+ + + - + +
+
+ + +
+
+ + +
+
+ + +
+
+
全部记录
+
-
+
+
+
未完成
+
-
+
+
+
已完成
+
-
+
+
+ +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
记录编号维护物资计划维护日期实际维护日期负责人状态操作
WX202308150013号水泵2023-08-142023-08-15张三已完成
WX20230816002柴油发电机2025-08-15 李四待处理
WX20230818003防汛挡板2023-08-172023-08-18王五已完成
WX20241225004冲锋舟2024-12-25 赵六进行中
WX20230701005救生衣检查2023-07-01 孙七待处理
WX20240810006应急照明灯2024-08-10 周八进行中
+ + +
+ + + + +
+
+ + + + + + + + \ No newline at end of file diff --git a/src/views/maintenance/maintenance_records.vue b/src/views/maintenance/maintenance_records.vue new file mode 100644 index 0000000..523a804 --- /dev/null +++ b/src/views/maintenance/maintenance_records.vue @@ -0,0 +1,806 @@ + + + + + diff --git a/src/views/maintenance/maintenance_rules.html b/src/views/maintenance/maintenance_rules.html new file mode 100644 index 0000000..1b4871a --- /dev/null +++ b/src/views/maintenance/maintenance_rules.html @@ -0,0 +1,620 @@ + + + + + + 维护规则 + + + +
+ + +
+ + +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
规则名称重复周期起始日期设定生成计划时机已用于物资数未完成时下次计划操作
水泵月度检查每月每年第一天开始运算提前 7 天5暂停生成
发电机季度保养每季度首次关联物资时提前 14 天2强制生成
挡板年度检修每年每年第一天开始运算提前 30 天12暂停生成
+ +
+
+
+ + + + + + + \ No newline at end of file diff --git a/src/views/maintenance/maintenance_rules.vue b/src/views/maintenance/maintenance_rules.vue new file mode 100644 index 0000000..32a79fb --- /dev/null +++ b/src/views/maintenance/maintenance_rules.vue @@ -0,0 +1,410 @@ + + + + + diff --git a/src/views/storages/components/addFixAssets.vue b/src/views/storages/components/addFixAssets.vue index 1a70304..ea878ca 100644 --- a/src/views/storages/components/addFixAssets.vue +++ b/src/views/storages/components/addFixAssets.vue @@ -49,8 +49,8 @@
原值:
-
- + +
使用科室:
@@ -59,8 +59,8 @@
保管人:
-
-
+
+
存放地点:
@@ -70,12 +70,12 @@
所属库:
-
+
使用方向:
-
+
备注:
From 1dab99204b2b04cbc0d7e8e1d3341a7fc1959ad3 Mon Sep 17 00:00:00 2001 From: lynn Date: Tue, 29 Apr 2025 17:35:04 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E5=AE=8C=E6=88=90=E8=BF=90=E7=BB=B4?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=89=8D=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/maintenance/maintain.html | 928 ------------------- src/views/maintenance/maintenance_rules.html | 620 ------------- 2 files changed, 1548 deletions(-) delete mode 100644 src/views/maintenance/maintain.html delete mode 100644 src/views/maintenance/maintenance_rules.html diff --git a/src/views/maintenance/maintain.html b/src/views/maintenance/maintain.html deleted file mode 100644 index abeb05f..0000000 --- a/src/views/maintenance/maintain.html +++ /dev/null @@ -1,928 +0,0 @@ - - - - - - 维护管理 - - - -
- - -
- - -
- -
-
- - -
-
- - -
-
- - - - - -
-
- - -
-
- - -
-
- - -
-
-
全部记录
-
-
-
-
-
未完成
-
-
-
-
-
已完成
-
-
-
-
- -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
记录编号维护物资计划维护日期实际维护日期负责人状态操作
WX202308150013号水泵2023-08-142023-08-15张三已完成
WX20230816002柴油发电机2025-08-15 李四待处理
WX20230818003防汛挡板2023-08-172023-08-18王五已完成
WX20241225004冲锋舟2024-12-25 赵六进行中
WX20230701005救生衣检查2023-07-01 孙七待处理
WX20240810006应急照明灯2024-08-10 周八进行中
- - -
- - - - -
-
- - - - - - - - \ No newline at end of file diff --git a/src/views/maintenance/maintenance_rules.html b/src/views/maintenance/maintenance_rules.html deleted file mode 100644 index 1b4871a..0000000 --- a/src/views/maintenance/maintenance_rules.html +++ /dev/null @@ -1,620 +0,0 @@ - - - - - - 维护规则 - - - -
- - -
- - -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
规则名称重复周期起始日期设定生成计划时机已用于物资数未完成时下次计划操作
水泵月度检查每月每年第一天开始运算提前 7 天5暂停生成
发电机季度保养每季度首次关联物资时提前 14 天2强制生成
挡板年度检修每年每年第一天开始运算提前 30 天12暂停生成
- -
-
-
- - - - - - - \ No newline at end of file From 74d5a4acc2a2fd5414504d4b0466554e37310a7f Mon Sep 17 00:00:00 2001 From: lynn Date: Tue, 29 Apr 2025 18:06:59 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E5=AE=8C=E6=88=90=E8=BF=90=E7=BB=B4?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=89=8D=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/maintenance/maintenance.js | 67 ++++++++++ src/views/maintenance/maintenance_records.vue | 119 ++++++++++++++++-- 2 files changed, 175 insertions(+), 11 deletions(-) create mode 100644 src/api/maintenance/maintenance.js diff --git a/src/api/maintenance/maintenance.js b/src/api/maintenance/maintenance.js new file mode 100644 index 0000000..64557ac --- /dev/null +++ b/src/api/maintenance/maintenance.js @@ -0,0 +1,67 @@ +import request from '@/utils/request'; + +// 设备运维规则配置 +export function getMaintainConfigList(params) { + return request({ + url: '/api/admin/equipment-maintain-config/index', + method: 'get', + params + }); +} + +export function getMaintainConfigDetail(params) { + return request({ + url: '/api/admin/equipment-maintain-config/show', + method: 'get', + params + }); +} + +export function saveMaintainConfig(data) { + return request({ + url: '/api/admin/equipment-maintain-config/save', + method: 'post', + data + }); +} + +export function deleteMaintainConfig(params) { + return request({ + url: '/api/admin/equipment-maintain-config/destroy', + method: 'get', + params + }); +} + +// 设备运维记录 +export function getOperationList(params) { + return request({ + url: '/api/admin/equipment-operation/index', + method: 'get', + params + }); +} + +export function getOperationDetail(params) { + return request({ + url: '/api/admin/equipment-operation/show', + method: 'get', + params + }); +} + +export function saveOperation(data) { + return request({ + url: '/api/admin/equipment-operation/save', + method: 'post', + data + }); +} + +export function deleteOperation(params) { + return request({ + url: '/api/admin/equipment-operation/destroy', + method: 'get', + params + }); +} diff --git a/src/views/maintenance/maintenance_records.vue b/src/views/maintenance/maintenance_records.vue index 523a804..c8e87df 100644 --- a/src/views/maintenance/maintenance_records.vue +++ b/src/views/maintenance/maintenance_records.vue @@ -165,7 +165,10 @@
-
当前用户: {{ currentUser }}
+
+ + +
@@ -339,6 +342,7 @@ export default { mounted() { this.calcTableHeight(); window.addEventListener('resize', this.calcTableHeight); + this.initSignaturePad(); }, beforeDestroy() { window.removeEventListener('resize', this.calcTableHeight); @@ -503,6 +507,85 @@ export default { closeViewModal() { this.showViewModal = false; this.currentRecord = {}; + }, + initSignaturePad() { + const canvas = this.$refs.signaturePad; + if (!canvas) return; + const ctx = canvas.getContext('2d'); + // 适配高分屏 + const dpr = window.devicePixelRatio || 1; + const container = canvas.parentNode; + const displayWidth = container.offsetWidth || 400; + canvas.width = displayWidth * dpr; + canvas.height = 120 * dpr; + canvas.style.width = displayWidth + 'px'; + canvas.style.height = '120px'; + ctx.scale(dpr, dpr); + ctx.lineWidth = 2; + ctx.lineCap = 'round'; + let drawing = false; + let lastX = 0, lastY = 0; + const getPos = e => { + if (e.touches && e.touches.length) { + const rect = canvas.getBoundingClientRect(); + return { + x: e.touches[0].clientX - rect.left, + y: e.touches[0].clientY - rect.top + }; + } else { + const rect = canvas.getBoundingClientRect(); + return { + x: e.clientX - rect.left, + y: e.clientY - rect.top + }; + } + }; + const start = e => { + drawing = true; + const pos = getPos(e); + lastX = pos.x; + lastY = pos.y; + }; + const move = e => { + if (!drawing) return; + const pos = getPos(e); + ctx.beginPath(); + ctx.moveTo(lastX, lastY); + ctx.lineTo(pos.x, pos.y); + ctx.stroke(); + lastX = pos.x; + lastY = pos.y; + }; + const end = () => { drawing = false; }; + canvas.addEventListener('mousedown', start); + canvas.addEventListener('mousemove', move); + canvas.addEventListener('mouseup', end); + canvas.addEventListener('mouseleave', end); + canvas.addEventListener('touchstart', start); + canvas.addEventListener('touchmove', move); + canvas.addEventListener('touchend', end); + this.signaturePadCtx = ctx; + this.signaturePadCanvas = canvas; + }, + clearSignature() { + if (this.signaturePadCtx && this.signaturePadCanvas) { + this.signaturePadCtx.clearRect(0, 0, this.signaturePadCanvas.width, this.signaturePadCanvas.height); + } + }, + getSignatureDataUrl() { + if (this.signaturePadCanvas) { + return this.signaturePadCanvas.toDataURL('image/png'); + } + return ''; + } + }, + watch: { + showModal(val) { + if (val) { + this.$nextTick(() => { + this.initSignaturePad(); + }); + } } } } @@ -719,6 +802,8 @@ export default { } .form-group { + width: 100%; + min-width: 0; margin-bottom: 1rem; } @@ -759,17 +844,29 @@ export default { color: #6c757d; } -.signature-area .signature-display { - background-color: #f8f9fa; - border: 1px dashed #ced4da; - padding: 1rem; - text-align: center; - color: #6c757d; - border-radius: 0.25rem; - min-height: 80px; +.signature-area { + width: 100%; + min-width: 0; +} +.signature-pad-wrapper { + width: 100%; + min-width: 0; display: flex; - align-items: center; - justify-content: center; + flex-direction: column; + align-items: flex-start; +} +.signature-canvas { + border: 1px dashed #ced4da; + background: #fff; + border-radius: 4px; + width: 100%; + height: 120px; + cursor: crosshair; + display: block; + box-sizing: border-box; + margin: 0; + padding: 0; + min-width: 0; } .form-value { From 359f882f969f5091bf57adeb2bbb8c4172382f8e Mon Sep 17 00:00:00 2001 From: lynn Date: Wed, 30 Apr 2025 13:56:29 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E5=AE=8C=E6=88=90=E8=BF=90=E7=BB=B4?= =?UTF-8?q?=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/stocks-item.js | 10 + src/views/maintenance/maintenance_rules.vue | 582 ++++++++++++++++---- 2 files changed, 477 insertions(+), 115 deletions(-) create mode 100644 src/api/stocks-item.js diff --git a/src/api/stocks-item.js b/src/api/stocks-item.js new file mode 100644 index 0000000..a0db1eb --- /dev/null +++ b/src/api/stocks-item.js @@ -0,0 +1,10 @@ +import request from '@/utils/request'; + +// 绑定/更新物资与运维规则的关系 +export function saveStocksItem(data) { + return request({ + url: '/api/admin/stocks-item/save', + method: 'post', + data + }); +} \ No newline at end of file diff --git a/src/views/maintenance/maintenance_rules.vue b/src/views/maintenance/maintenance_rules.vue index 32a79fb..65d6f5b 100644 --- a/src/views/maintenance/maintenance_rules.vue +++ b/src/views/maintenance/maintenance_rules.vue @@ -28,23 +28,19 @@ - +
@@ -60,14 +56,17 @@
+
+ + +
@@ -78,16 +77,12 @@ @@ -103,8 +98,7 @@ @@ -113,29 +107,83 @@
- - -

确定要删除该维护规则吗?此操作不可恢复。

-
- - +
-