Compare commits

...

3 Commits

Author SHA1 Message Date
tao
1b60395899 优化登录逻辑
优化日志消息展示
2025-12-12 10:26:31 +08:00
tao
594ab0186c 优化日志函数 2025-12-11 17:09:27 +08:00
tao
ea26dc64ab 修复时间选择器 bug 2025-12-11 16:15:50 +08:00
7 changed files with 29 additions and 72 deletions

View File

@@ -51,11 +51,7 @@ watch(() => props.logs, (newLogs) => {
// 滚动到底部 // 滚动到底部
const scrollToBottom = () => { const scrollToBottom = () => {
if (logContainer.value) { if (logContainer.value) {
setTimeout(() => { logContainer.value.scrollTop = logContainer.value.scrollHeight;
if (logContainer.value) {
logContainer.value.scrollTop = logContainer.value.scrollHeight;
}
}, 0);
} }
}; };

View File

@@ -9,7 +9,7 @@
<a-form layout="inline" :model="formData"> <a-form layout="inline" :model="formData">
<a-form-item label="日期范围"> <a-form-item label="日期范围">
<a-range-picker v-model:value="formData.dateRange" :placeholder="['开始日期', '结束日期']" <a-range-picker v-model:value="formData.dateRange" :placeholder="['开始日期', '结束日期']"
format="YYYY-MM-DD hh:mm:ss" show-time /> format="YYYY-MM-DD HH:mm:ss" show-time />
</a-form-item> </a-form-item>
<a-form-item> <a-form-item>
<a-space> <a-space>
@@ -165,8 +165,8 @@ const fetchData = async () => {
// 添加日期范围筛选 // 添加日期范围筛选
if (formData.dateRange && formData.dateRange.length === 2) { if (formData.dateRange && formData.dateRange.length === 2) {
params.createTimeBegin = formData.dateRange[0].format("YYYY-MM-DD hh:mm:ss"); params.createTimeBegin = formData.dateRange[0].format("YYYY-MM-DD HH:mm:ss");
params.createTimeEnd = formData.dateRange[1].format("YYYY-MM-DD hh:mm:ss"); params.createTimeEnd = formData.dateRange[1].format("YYYY-MM-DD HH:mm:ss");
} }
const res = await getL1Data(params); const res = await getL1Data(params);

View File

@@ -9,7 +9,7 @@
<a-form layout="inline" :model="formData"> <a-form layout="inline" :model="formData">
<a-form-item label="日期范围"> <a-form-item label="日期范围">
<a-range-picker v-model:value="formData.dateRange" :placeholder="['开始日期', '结束日期']" <a-range-picker v-model:value="formData.dateRange" :placeholder="['开始日期', '结束日期']"
format="YYYY-MM-DD hh:mm:ss" show-time /> format="YYYY-MM-DD HH:mm:ss" show-time />
</a-form-item> </a-form-item>
<a-form-item> <a-form-item>
<a-space> <a-space>
@@ -199,8 +199,8 @@ const fetchData = async () => {
// 添加日期范围筛选 // 添加日期范围筛选
if (formData.dateRange && formData.dateRange.length === 2) { if (formData.dateRange && formData.dateRange.length === 2) {
params.createTimeBegin = formData.dateRange[0].format("YYYY-MM-DD hh:mm:ss"); params.createTimeBegin = formData.dateRange[0].format("YYYY-MM-DD HH:mm:ss");
params.createTimeEnd = formData.dateRange[1].format("YYYY-MM-DD hh:mm:ss"); params.createTimeEnd = formData.dateRange[1].format("YYYY-MM-DD HH:mm:ss");
} }
const response = await getL4Data(params); const response = await getL4Data(params);

View File

@@ -9,7 +9,7 @@
<a-form layout="inline" :model="formData"> <a-form layout="inline" :model="formData">
<a-form-item label="日期范围"> <a-form-item label="日期范围">
<a-range-picker v-model:value="formData.dateRange" :placeholder="['开始日期', '结束日期']" <a-range-picker v-model:value="formData.dateRange" :placeholder="['开始日期', '结束日期']"
format="YYYY-MM-DD hh:mm:ss" show-time /> format="YYYY-MM-DD HH:mm:ss" show-time />
</a-form-item> </a-form-item>
<a-form-item> <a-form-item>
<a-space> <a-space>
@@ -112,8 +112,8 @@ const fetchData = async () => {
// 添加日期范围筛选 // 添加日期范围筛选
if (formData.dateRange && formData.dateRange.length === 2) { if (formData.dateRange && formData.dateRange.length === 2) {
params.createTimeBegin = formData.dateRange[0].format("YYYY-MM-DD hh:mm:ss"); params.createTimeBegin = formData.dateRange[0].format("YYYY-MM-DD HH:mm:ss");
params.createTimeEnd = formData.dateRange[1].format("YYYY-MM-DD hh:mm:ss"); params.createTimeEnd = formData.dateRange[1].format("YYYY-MM-DD HH:mm:ss");
} }
const res = await getAlarmRecords(params); const res = await getAlarmRecords(params);

View File

@@ -49,14 +49,6 @@ const executionLogs = ref<string[]>([]);
const packageLogs = ref<string[]>([]); const packageLogs = ref<string[]>([]);
// 滚动到检测设备日志底部的函数
const scrollToExecutionBottom = () => {
const logsContainer = document.querySelector('.execution-logs-content');
if (logsContainer) {
logsContainer.scrollTop = logsContainer.scrollHeight;
}
};
// 底部操作按钮配置 // 底部操作按钮配置
const actionButtons = ref([ const actionButtons = ref([
{ label: '工序过站', handler: 'handleProcessPass', type: 'primary' as const, status: 'idle' as const }, { label: '工序过站', handler: 'handleProcessPass', type: 'primary' as const, status: 'idle' as const },
@@ -87,25 +79,12 @@ const addDetectionLog = (message: string) => {
const timestamp = new Date().toLocaleTimeString('zh-CN', { hour12: false }); const timestamp = new Date().toLocaleTimeString('zh-CN', { hour12: false });
const logEntry = `${timestamp} - ${message}`; const logEntry = `${timestamp} - ${message}`;
executionLogs.value.push(logEntry); executionLogs.value.push(logEntry);
// 自动滚动到底部
nextTick(() => {
scrollToExecutionBottom();
});
}; };
const addPackageLog = (message: string) => { const addPackageLog = (message: string) => {
const timestamp = new Date().toLocaleTimeString('zh-CN', { hour12: false }); const timestamp = new Date().toLocaleTimeString('zh-CN', { hour12: false });
const logEntry = `${timestamp} - ${message}`; const logEntry = `${timestamp} - ${message}`;
packageLogs.value.push(logEntry); packageLogs.value.push(logEntry);
// 自动滚动到底部
nextTick(() => {
const logContainers = document.querySelectorAll('.log-container');
logContainers.forEach(container => {
container.scrollTop = container.scrollHeight;
});
});
}; };
// 清空检测设备执行日志 // 清空检测设备执行日志
@@ -161,12 +140,12 @@ const handlePackagePass = () => {
// SSE事件处理函数 // SSE事件处理函数
const handleL1Event = (data: any) => { const handleL1Event = (data: any) => {
// L1_EVENT放到自动包装日志区 // L1_EVENT放到自动包装日志区
addPackageLog(`L1事件: ${JSON.stringify(data)}`); addPackageLog(`L1 事件 ${data.message}`);
}; };
const handleL4Event = (data: any) => { const handleL4Event = (data: any) => {
// L4_EVENT放到检测设备日志区 // L4_EVENT放到检测设备日志区
addDetectionLog(`L4事件: ${JSON.stringify(data)}`); addDetectionLog(`L4 事件 ${data.message}`);
if(data.code === 201) { if(data.code === 201) {
detectForm.confirmSequence = data.data detectForm.confirmSequence = data.data
} }
@@ -174,7 +153,7 @@ const handleL4Event = (data: any) => {
const handleMESEvent = (data: any) => { const handleMESEvent = (data: any) => {
// MES_EVENT放到检测设备日志区 // MES_EVENT放到检测设备日志区
addDetectionLog(`MES事件: ${JSON.stringify(data)}`); addDetectionLog(`MES 事件 ${data.message}`);
}; };
const handleSseMessage = (data: string) => { const handleSseMessage = (data: string) => {

View File

@@ -49,14 +49,6 @@ const executionLogs = ref<string[]>([]);
const packageLogs = ref<string[]>([]); const packageLogs = ref<string[]>([]);
// 滚动到检测设备日志底部的函数
const scrollToExecutionBottom = () => {
const logsContainer = document.querySelector('.execution-logs-content');
if (logsContainer) {
logsContainer.scrollTop = logsContainer.scrollHeight;
}
};
// 底部操作按钮配置 // 底部操作按钮配置
const actionButtons = ref([ const actionButtons = ref([
{ label: '工序过站', handler: 'handleProcessPass', type: 'primary' as const, status: 'idle' as const }, { label: '工序过站', handler: 'handleProcessPass', type: 'primary' as const, status: 'idle' as const },
@@ -87,25 +79,12 @@ const addDetectionLog = (message: string) => {
const timestamp = new Date().toLocaleTimeString('zh-CN', { hour12: false }); const timestamp = new Date().toLocaleTimeString('zh-CN', { hour12: false });
const logEntry = `${timestamp} - ${message}`; const logEntry = `${timestamp} - ${message}`;
executionLogs.value.push(logEntry); executionLogs.value.push(logEntry);
// 自动滚动到底部
nextTick(() => {
scrollToExecutionBottom();
});
}; };
const addPackageLog = (message: string) => { const addPackageLog = (message: string) => {
const timestamp = new Date().toLocaleTimeString('zh-CN', { hour12: false }); const timestamp = new Date().toLocaleTimeString('zh-CN', { hour12: false });
const logEntry = `${timestamp} - ${message}`; const logEntry = `${timestamp} - ${message}`;
packageLogs.value.push(logEntry); packageLogs.value.push(logEntry);
// 自动滚动到底部
nextTick(() => {
const logContainers = document.querySelectorAll('.log-container');
logContainers.forEach(container => {
container.scrollTop = container.scrollHeight;
});
});
}; };
// 清空检测设备执行日志 // 清空检测设备执行日志
@@ -161,12 +140,12 @@ const handlePackagePass = () => {
// SSE事件处理函数 // SSE事件处理函数
const handleL1Event = (data: any) => { const handleL1Event = (data: any) => {
// L1_EVENT放到自动包装日志区 // L1_EVENT放到自动包装日志区
addPackageLog(`L1事件: ${JSON.stringify(data)}`); addPackageLog(`L1事件: ${data.message}`);
}; };
const handleL4Event = (data: any) => { const handleL4Event = (data: any) => {
// L4_EVENT放到检测设备日志区 // L4_EVENT放到检测设备日志区
addDetectionLog(`L4事件: ${JSON.stringify(data)}`); addDetectionLog(`L4事件: ${data.message}`);
if (data.code === 201) { if (data.code === 201) {
detectForm.confirmSequence = data.data detectForm.confirmSequence = data.data
} }
@@ -174,7 +153,7 @@ const handleL4Event = (data: any) => {
const handleMESEvent = (data: any) => { const handleMESEvent = (data: any) => {
// MES_EVENT放到检测设备日志区 // MES_EVENT放到检测设备日志区
addDetectionLog(`MES事件: ${JSON.stringify(data)}`); addDetectionLog(`MES事件: ${data.message}`);
}; };
const handleSseMessage = (data: string) => { const handleSseMessage = (data: string) => {
@@ -466,27 +445,27 @@ onBeforeUnmount(() => {
<a-row :gutter="32"> <a-row :gutter="32">
<a-col :span="12"> <a-col :span="12">
<a-form-item label="员工工号" name="employeeCode"> <a-form-item label="员工工号" name="employeeCode">
<a-input v-model:value="packageForm.employeeCode" class="edit-input" :disabled="!isPackageEditMode" /> <a-input v-model:value="packageForm.employeeCode" class="edit-input" :disabled="!isPackageEditMode" placeholder="未启用" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="工序名称" name="processName"> <a-form-item label="工序名称" name="processName">
<a-input v-model:value="packageForm.processName" class="edit-input" :disabled="!isPackageEditMode" /> <a-input v-model:value="packageForm.processName" class="edit-input" :disabled="!isPackageEditMode" placeholder="未启用" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="资源名称" name="resourceName"> <a-form-item label="资源名称" name="resourceName">
<a-input v-model:value="packageForm.resourceName" class="edit-input" :disabled="!isPackageEditMode" /> <a-input v-model:value="packageForm.resourceName" class="edit-input" :disabled="!isPackageEditMode" placeholder="未启用" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="设备编码" name="equipmentCode"> <a-form-item label="设备编码" name="equipmentCode">
<a-input v-model:value="packageForm.equipmentCode" class="edit-input" :disabled="!isPackageEditMode" /> <a-input v-model:value="packageForm.equipmentCode" class="edit-input" :disabled="!isPackageEditMode" placeholder="未启用" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="治具编码" name="fixtureCode"> <a-form-item label="治具编码" name="fixtureCode">
<a-input v-model:value="packageForm.fixtureCode" class="edit-input" :disabled="!isPackageEditMode" /> <a-input v-model:value="packageForm.fixtureCode" class="edit-input" :disabled="!isPackageEditMode" placeholder="未启用" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
@@ -500,22 +479,22 @@ onBeforeUnmount(() => {
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="序号" name="fixtureCode"> <a-form-item label="序号" name="fixtureCode">
<a-input v-model:value="packageForm.sequenceNumber" class="edit-input" disabled /> <a-input v-model:value="packageForm.sequenceNumber" class="edit-input" disabled placeholder="未启用" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="过站数量" name="fixtureCode"> <a-form-item label="过站数量" name="fixtureCode">
<a-input v-model:value="packageForm.passStationCount" class="edit-input" disabled /> <a-input v-model:value="packageForm.passStationCount" class="edit-input" disabled placeholder="未启用" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="满箱数量" name="fixtureCode"> <a-form-item label="满箱数量" name="fixtureCode">
<a-input v-model:value="packageForm.fullBoxCount" class="edit-input" disabled /> <a-input v-model:value="packageForm.fullBoxCount" class="edit-input" disabled placeholder="未启用" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="过站序号" name="fixtureCode"> <a-form-item label="过站序号" name="fixtureCode">
<a-input v-model:value="packageForm.passStationSequence" class="edit-input" disabled /> <a-input v-model:value="packageForm.passStationSequence" class="edit-input" disabled placeholder="未启用" />
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>

View File

@@ -42,6 +42,9 @@ const refreshCaptcha = async () => {
await getCaptcha().then((res: any) => { await getCaptcha().then((res: any) => {
if (res.captchaOnOff) { if (res.captchaOnOff) {
captchaImg.value = "data:image/gif;base64," + res.img captchaImg.value = "data:image/gif;base64," + res.img
rules.code[0].required = true;
} else {
rules.code[0].required = false;
} }
formData.uuid = res.uuid formData.uuid = res.uuid
formData.code = '' // 清空验证码输入 formData.code = '' // 清空验证码输入
@@ -136,7 +139,7 @@ refreshCaptcha()
</a-form-item> </a-form-item>
<!-- 验证码 --> <!-- 验证码 -->
<a-form-item name="code" class="form-item"> <a-form-item name="code" class="form-item" v-if="rules.code[0].required">
<div class="captcha-container"> <div class="captcha-container">
<a-input <a-input
v-model:value="formData.code" v-model:value="formData.code"