From 9646ba4b026e4dbee0c0d5ac3d52b428bfef7b29 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 28 八月 2026 10:49:44 +0800
Subject: [PATCH] 新疆-新聚 1.销售台账中的销售合同按框架合同处理 2.设备台账需按车间/区域汇总设备,车间/位置可自行新增,且支持子父级递归 3.计量器具台账支持通过 Excel 文件批量新增数据 4.设备保养定时任务新增“年度保养”任务频率

---
 src/views/equipmentManagement/upkeep/Form/formDia.vue |   47 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 47 insertions(+), 0 deletions(-)

diff --git a/src/views/equipmentManagement/upkeep/Form/formDia.vue b/src/views/equipmentManagement/upkeep/Form/formDia.vue
index 6856ae1..0415d3a 100644
--- a/src/views/equipmentManagement/upkeep/Form/formDia.vue
+++ b/src/views/equipmentManagement/upkeep/Form/formDia.vue
@@ -95,6 +95,7 @@
 							<el-option label="姣忓懆" value="WEEKLY"/>
 							<el-option label="姣忔湀" value="MONTHLY"/>
 							<el-option label="瀛e害" value="QUARTERLY"/>
+							<el-option label="骞村害淇濆吇" value="YEARLY"/>
 						</el-select>
 					</el-form-item>
 				</el-col>
@@ -143,6 +144,20 @@
 						/>
 					</el-form-item>
 				</el-col>
+				<el-col :span="12" v-if="form.frequencyType === 'YEARLY'">
+					<el-form-item label="鎵ц鏃ユ湡" prop="frequencyDetail">
+						<div style="display: flex; gap: 4px; width: 100%">
+							<el-select v-model="form.yearMonth" placeholder="鏈�" clearable style="flex: 1">
+								<el-option v-for="m in 12" :key="m" :label="m + '鏈�'" :value="m" />
+							</el-select>
+							<el-select v-model="form.yearDay" placeholder="鏃�" clearable style="flex: 1">
+								<el-option v-for="d in 31" :key="d" :label="d + '鏃�'" :value="d" />
+							</el-select>
+							<el-time-picker v-model="form.yearTime" placeholder="鏃堕棿" format="HH:mm" value-format="HH:mm" style="flex: 1.2" />
+						</div>
+					</el-form-item>
+				</el-col>
+
 			</el-row>
 			<el-row>
 				<el-col :span="12">
@@ -182,6 +197,9 @@
 		frequencyDetail: '',
 		week: '',
 		time: '',
+		yearMonth: undefined,
+		yearDay: undefined,
+		yearTime: '',
 		deviceModel: undefined, // 瑙勬牸鍨嬪彿
 		registrationDate: '',
 		maintenancePerson: '' // 淇濆吇浜�
@@ -238,6 +256,13 @@
 		if (form.value.taskId) {
 			setDeviceModel(form.value.taskId);
 		}
+		// YEARLY 棰戠巼鍥炴樉锛氳В鏋� 鏈堜唤,鏃ユ湡,鏃堕棿
+		if (form.value.frequencyType === 'YEARLY' && form.value.frequencyDetail) {
+			const parts = String(form.value.frequencyDetail).split(',');
+			form.value.yearMonth = Number(parts[0]);
+			form.value.yearDay = Number(parts[1]);
+			form.value.yearTime = parts[2] || '';
+		}
 	} else if (type === 'add') {
 		// 鏂板鏃惰缃櫥璁版棩鏈熶负褰撳ぉ
 		form.value.registrationDate = getCurrentDate();
@@ -269,6 +294,9 @@
 		frequencyDetail: '',
 		week: '',
 		time: '',
+		yearMonth: undefined,
+		yearDay: undefined,
+		yearTime: '',
 		deviceModel: undefined,
 		registrationDate: '',
 		maintenancePerson: ''
@@ -300,6 +328,25 @@
 					frequencyDetail = payload.week + ',' + payload.time
 					payload.frequencyDetail = frequencyDetail
 				}
+
+				if (payload.frequencyType === 'YEARLY') {
+					const month = Number(payload.yearMonth);
+					const day = Number(payload.yearDay);
+					const time = payload.yearTime;
+					if (!month || month < 1 || month > 12) {
+						proxy.$modal.msgError('鏈堜唤蹇呴』鍦�1-12涔嬮棿');
+						return;
+					}
+					if (!day || day < 1 || day > 31) {
+						proxy.$modal.msgError('鏃ユ湡蹇呴』鍦�1-31涔嬮棿');
+						return;
+					}
+					if (!time || !/^\d{2}:\d{2}$/.test(time)) {
+						proxy.$modal.msgError('鏃堕棿鏍煎紡蹇呴』涓� HH:mm');
+						return;
+					}
+					payload.frequencyDetail = month + ',' + day + ',' + time;
+				}
 				
 				// 褰曞叆鏃ユ湡锛氱洿鎺ヤ娇鐢ㄨ〃鍗曢噷鐨� registrationDate 瀛楁
 				// 涓�浜涢粯璁ょ姸鎬佸瓧娈�

--
Gitblit v1.9.3