From 720e0926fa1c94b952c26e111206c5d6e1ed5ba2 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期二, 21 四月 2026 15:59:49 +0800
Subject: [PATCH] Merge branch 'master' of http://47.97.1.152:5880/r/zy-wcs-master

---
 src/main/webapp/views/deviceLogs/deviceLogs.html |   67 +++++++++++++++++++++++++++++++--
 1 files changed, 62 insertions(+), 5 deletions(-)

diff --git a/src/main/webapp/views/deviceLogs/deviceLogs.html b/src/main/webapp/views/deviceLogs/deviceLogs.html
index bd4ff7d..13a6926 100644
--- a/src/main/webapp/views/deviceLogs/deviceLogs.html
+++ b/src/main/webapp/views/deviceLogs/deviceLogs.html
@@ -429,6 +429,25 @@
             gap: 8px;
         }
 
+        .dl-picker-actions {
+            display: flex;
+            justify-content: flex-end;
+            margin-bottom: 12px;
+        }
+
+        .dl-dialog-note {
+            margin-bottom: 14px;
+            font-size: 12px;
+            line-height: 1.6;
+            color: var(--dl-text-sub);
+        }
+
+        .dl-dialog-form {
+            display: flex;
+            flex-direction: column;
+            gap: 12px;
+        }
+
         .dl-btn {
             height: 34px;
             padding: 0 14px;
@@ -1122,6 +1141,9 @@
                         <div class="dl-panel-desc">{{ selectedDay ? ('鏃ュ織鏃ユ湡 ' + formatDayText(selectedDay) + '锛屽厛绛涢�夎澶囩被鍨嬶紝鍐嶇偣鍑讳竴鍙拌澶囪繘鍏ョ姸鎬佹煡鐪嬮〉銆�') : '鍏堜粠宸︿晶閫夋嫨涓�涓棩蹇楁棩鏈熴��' }}</div>
                     </div>
                     <div class="dl-panel-body">
+                        <div class="dl-picker-actions">
+                            <button type="button" class="dl-btn is-ghost" @click="openSystemLogDialog" :disabled="!selectedDay">涓嬭浇绯荤粺鏃ュ織</button>
+                        </div>
                         <div class="dl-picker-toolbar">
                             <div class="dl-type-tabs">
                                 <button
@@ -1140,12 +1162,19 @@
                                     褰撳墠鏃ユ湡
                                     <strong>{{ selectedDay ? formatDayText(selectedDay) : '鏈�夋嫨' }}</strong>
                                 </div>
-                                <div class="dl-device-search" style="margin-bottom: 0;">
+                                <div class="dl-device-search" style="margin-bottom: 0; display: flex; flex-direction: column; gap: 8px;">
                                     <el-input
                                         v-model.trim="searchDeviceNo"
                                         size="small"
                                         clearable
                                         placeholder="鎸夎澶囩紪鍙风瓫閫�">
+                                        <i slot="prefix" class="el-input__icon el-icon-search"></i>
+                                    </el-input>
+                                    <el-input
+                                        v-model.trim="searchStationId"
+                                        size="small"
+                                        clearable
+                                        placeholder="鎸夌珯鐐圭紪鍙风瓫閫�">
                                         <i slot="prefix" class="el-input__icon el-icon-search"></i>
                                     </el-input>
                                 </div>
@@ -1160,17 +1189,20 @@
                             <button
                                 v-else
                                 v-for="device in filteredDevices"
-                                :key="buildDeviceKey(device.type, device.deviceNo)"
+                                :key="buildDeviceKey(device.type, device.deviceNo, device.stationId)"
                                 type="button"
                                 class="dl-device-item"
                                 @click="selectDevice(device)">
                                 <div class="dl-device-name">
-                                    <span>{{ device.deviceNo }} 鍙穥{ device.typeLabel }}</span>
+                                    <span>{{ device.deviceNo }} 鍙穥{ device.typeLabel }}<template v-if="device.type === 'Devp' && device.stationId"> 路 绔欑偣 {{ device.stationId }}</template></span>
                                     <span class="dl-device-badge">{{ device.fileCount }} 鏂囦欢</span>
                                 </div>
                                 <div class="dl-device-meta">
                                     <span>棣栨潯: {{ formatTimestamp(device.firstTime, false) }}</span>
                                     <span>鏈潯: {{ formatTimestamp(device.lastTime, false) }}</span>
+                                    <span v-if="device.type === 'Devp' && device.stationIds && device.stationIds.length">绔欑偣鏁�: {{ device.stationIds.length }}</span>
+                                    <span v-if="device.type === 'Devp' && device.matchedStationId">鍛戒腑绔欑偣: {{ device.matchedStationId }}</span>
+                                    <span v-else-if="device.type === 'Devp' && device.matchedStationIds && device.matchedStationIds.length > 1">鍛戒腑 {{ device.matchedStationIds.length }} 涓珯鐐�</span>
                                 </div>
                             </button>
                         </div>
@@ -1185,10 +1217,11 @@
                     <div class="dl-viewer-header-main">
                         <button type="button" class="dl-btn is-ghost" @click="returnToSelector">杩斿洖绛涢��</button>
                         <div class="dl-viewer-copy">
-                            <div class="dl-panel-title">{{ selectedDeviceSummary ? (selectedDeviceSummary.typeLabel + ' ' + selectedDeviceSummary.deviceNo + '鍙�') : '璁惧鐘舵�佹煡鐪�' }}</div>
-                            <div class="dl-panel-desc">{{ selectedDay ? ('鏃ュ織鏃ユ湡 ' + formatDayText(selectedDay)) : '璇烽�夋嫨鏃ユ湡鍜岃澶�' }}</div>
+                            <div class="dl-panel-title">{{ selectedDeviceSummary ? (selectedDeviceSummary.typeLabel + ' ' + selectedDeviceSummary.deviceNo + '鍙�' + ((selectedDeviceSummary.type === 'Devp' && selectedStationLabel) ? (' 路 绔欑偣 ' + selectedStationLabel) : '')) : '璁惧鐘舵�佹煡鐪�' }}</div>
+                            <div class="dl-panel-desc">{{ selectedDay ? ('鏃ュ織鏃ユ湡 ' + formatDayText(selectedDay)) : '璇烽�夋嫨鏃ユ湡鍜岃澶�' }}<template v-if="selectedType === 'Devp' && selectedStationId === '' && selectedStationLabel"> 路 褰撳墠浠呮寜绔欑偣瀹氫綅灞曠ず璁惧瀹炴椂鐘舵�侊紝鏈粦瀹氬崟绔欑偣鏃ュ織鏂囦欢</template></div>
                             <div v-if="selectedDeviceSummary" class="dl-viewer-meta">
                                 <span class="dl-viewer-meta-item">绫诲瀷 <strong>{{ selectedDeviceSummary.typeLabel }}</strong></span>
+                                <span v-if="selectedDeviceSummary.type === 'Devp' && selectedStationLabel" class="dl-viewer-meta-item">绔欑偣 <strong>{{ selectedStationLabel }}</strong></span>
                                 <span class="dl-viewer-meta-item">鏂囦欢 <strong>{{ selectedDeviceSummary.fileCount }}</strong></span>
                                 <span class="dl-viewer-meta-item">宸茶浇 <strong>{{ loadedSegmentCount }}</strong></span>
                                 <span class="dl-viewer-meta-item">鑼冨洿 <strong>{{ timelineRangeText }}</strong></span>
@@ -1345,6 +1378,30 @@
         </section>
     </div>
 
+    <el-dialog title="涓嬭浇绯荤粺鏃ュ織" :visible.sync="systemLogDialogVisible" width="520px">
+        <div class="dl-dialog-note">璇烽�夋嫨鏃ュ織绫诲瀷鍜屾椂闂磋寖鍥达紝鐒跺悗涓嬭浇鎸囧畾鏃堕棿娈靛唴鐨勭郴缁熸棩蹇椼��</div>
+        <div class="dl-dialog-form">
+            <el-select v-model="systemLogType" size="small" placeholder="鏃ュ織绫诲瀷">
+                <el-option label="info.log" value="info"></el-option>
+                <el-option label="error.log" value="error"></el-option>
+            </el-select>
+            <el-date-picker
+                v-model="systemLogRange"
+                size="small"
+                type="datetimerange"
+                unlink-panels
+                range-separator="鑷�"
+                start-placeholder="寮�濮嬫椂闂�"
+                end-placeholder="缁撴潫鏃堕棿"
+                value-format="yyyy-MM-dd HH:mm:ss">
+            </el-date-picker>
+        </div>
+        <span slot="footer" class="dialog-footer">
+            <el-button size="small" @click="systemLogDialogVisible = false">鍙栨秷</el-button>
+            <el-button size="small" type="primary" @click="handleSystemLogDownload" :disabled="!canDownloadSystemLog">涓嬭浇</el-button>
+        </span>
+    </el-dialog>
+
     <el-dialog :title="downloadDialogTitle" :visible.sync="downloadDialogVisible" width="400px" :close-on-click-modal="false" :show-close="false">
         <div style="padding: 10px;">
             <div style="margin-bottom: 5px; font-size: 14px;">鍘嬬缉鐢熸垚杩涘害</div>

--
Gitblit v1.9.1