浏览代码

Added printer image to printer card

maziggy 5 月之前
父节点
当前提交
53e196c38f
共有 31 个文件被更改,包括 41 次插入13 次删除
  1. 二进制
      frontend/public/img/printers/a1.png
  2. 二进制
      frontend/public/img/printers/a1f.png
  3. 二进制
      frontend/public/img/printers/a1mini.png
  4. 二进制
      frontend/public/img/printers/default.png
  5. 二进制
      frontend/public/img/printers/h2d.png
  6. 二进制
      frontend/public/img/printers/o1c.png
  7. 二进制
      frontend/public/img/printers/o1e.png
  8. 二进制
      frontend/public/img/printers/o1s.png
  9. 二进制
      frontend/public/img/printers/p1p.png
  10. 二进制
      frontend/public/img/printers/p1s.png
  11. 二进制
      frontend/public/img/printers/printer_placeholder.png
  12. 二进制
      frontend/public/img/printers/x1c.png
  13. 二进制
      frontend/public/img/printers/x1e.png
  14. 39 11
      frontend/src/pages/PrintersPage.tsx
  15. 0 0
      static/assets/index-B5zVKOmX.js
  16. 0 0
      static/assets/index-BCXYYo2S.css
  17. 0 0
      static/assets/index-BkIG8nsB.css
  18. 二进制
      static/img/printers/a1.png
  19. 二进制
      static/img/printers/a1f.png
  20. 二进制
      static/img/printers/a1mini.png
  21. 二进制
      static/img/printers/default.png
  22. 二进制
      static/img/printers/h2d.png
  23. 二进制
      static/img/printers/o1c.png
  24. 二进制
      static/img/printers/o1e.png
  25. 二进制
      static/img/printers/o1s.png
  26. 二进制
      static/img/printers/p1p.png
  27. 二进制
      static/img/printers/p1s.png
  28. 二进制
      static/img/printers/printer_placeholder.png
  29. 二进制
      static/img/printers/x1c.png
  30. 二进制
      static/img/printers/x1e.png
  31. 2 2
      static/index.html

二进制
frontend/public/img/printers/a1.png


二进制
frontend/public/img/printers/a1f.png


二进制
frontend/public/img/printers/a1mini.png


二进制
frontend/public/img/printers/default.png


二进制
frontend/public/img/printers/h2d.png


二进制
frontend/public/img/printers/o1c.png


二进制
frontend/public/img/printers/o1e.png


二进制
frontend/public/img/printers/o1s.png


二进制
frontend/public/img/printers/p1p.png


二进制
frontend/public/img/printers/p1s.png


二进制
frontend/public/img/printers/printer_placeholder.png


二进制
frontend/public/img/printers/x1c.png


二进制
frontend/public/img/printers/x1e.png


+ 39 - 11
frontend/src/pages/PrintersPage.tsx

@@ -38,6 +38,26 @@ function formatTime(seconds: number): string {
   return hours > 0 ? `${hours}h ${minutes}m` : `${minutes}m`;
   return hours > 0 ? `${hours}h ${minutes}m` : `${minutes}m`;
 }
 }
 
 
+function getPrinterImage(model: string | null | undefined): string {
+  if (!model) return '/img/printers/default.png';
+
+  const modelLower = model.toLowerCase().replace(/\s+/g, '');
+
+  // Map model names to image files
+  if (modelLower.includes('x1e')) return '/img/printers/x1e.png';
+  if (modelLower.includes('x1c') || modelLower.includes('x1carbon')) return '/img/printers/x1c.png';
+  if (modelLower.includes('x1')) return '/img/printers/x1c.png';
+  if (modelLower.includes('h2d')) return '/img/printers/h2d.png';
+  if (modelLower.includes('h2c') || modelLower.includes('h2s')) return '/img/printers/h2d.png';
+  if (modelLower.includes('p2s')) return '/img/printers/p1s.png';
+  if (modelLower.includes('p1s')) return '/img/printers/p1s.png';
+  if (modelLower.includes('p1p')) return '/img/printers/p1p.png';
+  if (modelLower.includes('a1mini')) return '/img/printers/a1mini.png';
+  if (modelLower.includes('a1')) return '/img/printers/a1.png';
+
+  return '/img/printers/default.png';
+}
+
 function getWifiStrength(rssi: number | null | undefined): { label: string; color: string; bars: number } {
 function getWifiStrength(rssi: number | null | undefined): { label: string; color: string; bars: number } {
   if (rssi == null) return { label: '', color: 'text-bambu-gray', bars: 0 };
   if (rssi == null) return { label: '', color: 'text-bambu-gray', bars: 0 };
   if (rssi >= -50) return { label: 'Excellent', color: 'text-bambu-green', bars: 4 };
   if (rssi >= -50) return { label: 'Excellent', color: 'text-bambu-green', bars: 4 };
@@ -196,17 +216,25 @@ function PrinterCard({
       <CardContent>
       <CardContent>
         {/* Header */}
         {/* Header */}
         <div className="flex items-start justify-between mb-4">
         <div className="flex items-start justify-between mb-4">
-          <div>
-            <h3 className="text-lg font-semibold text-white">{printer.name}</h3>
-            <p className="text-sm text-bambu-gray">
-              {printer.model || 'Unknown Model'}
-              {maintenanceInfo && maintenanceInfo.total_print_hours > 0 && (
-                <span className="ml-2 text-bambu-gray">
-                  <Clock className="w-3 h-3 inline-block mr-1" />
-                  {Math.round(maintenanceInfo.total_print_hours)}h
-                </span>
-              )}
-            </p>
+          <div className="flex items-center gap-3">
+            {/* Printer Model Image */}
+            <img
+              src={getPrinterImage(printer.model)}
+              alt={printer.model || 'Printer'}
+              className="w-14 h-14 object-contain rounded-lg bg-bambu-dark"
+            />
+            <div>
+              <h3 className="text-lg font-semibold text-white">{printer.name}</h3>
+              <p className="text-sm text-bambu-gray">
+                {printer.model || 'Unknown Model'}
+                {maintenanceInfo && maintenanceInfo.total_print_hours > 0 && (
+                  <span className="ml-2 text-bambu-gray">
+                    <Clock className="w-3 h-3 inline-block mr-1" />
+                    {Math.round(maintenanceInfo.total_print_hours)}h
+                  </span>
+                )}
+              </p>
+            </div>
           </div>
           </div>
           <div className="flex items-center gap-2">
           <div className="flex items-center gap-2">
             {/* Connection status badge */}
             {/* Connection status badge */}

文件差异内容过多而无法显示
+ 0 - 0
static/assets/index-B5zVKOmX.js


文件差异内容过多而无法显示
+ 0 - 0
static/assets/index-BCXYYo2S.css


文件差异内容过多而无法显示
+ 0 - 0
static/assets/index-BkIG8nsB.css


二进制
static/img/printers/a1.png


二进制
static/img/printers/a1f.png


二进制
static/img/printers/a1mini.png


二进制
static/img/printers/default.png


二进制
static/img/printers/h2d.png


二进制
static/img/printers/o1c.png


二进制
static/img/printers/o1e.png


二进制
static/img/printers/o1s.png


二进制
static/img/printers/p1p.png


二进制
static/img/printers/p1s.png


二进制
static/img/printers/printer_placeholder.png


二进制
static/img/printers/x1c.png


二进制
static/img/printers/x1e.png


+ 2 - 2
static/index.html

@@ -7,8 +7,8 @@
     <link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png" />
     <link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png" />
     <link rel="icon" type="image/png" sizes="16x16" href="/img/favicon-16x16.png" />
     <link rel="icon" type="image/png" sizes="16x16" href="/img/favicon-16x16.png" />
     <link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png" />
     <link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png" />
-    <script type="module" crossorigin src="/assets/index-BAbdSDeh.js"></script>
-    <link rel="stylesheet" crossorigin href="/assets/index-BCXYYo2S.css">
+    <script type="module" crossorigin src="/assets/index-B5zVKOmX.js"></script>
+    <link rel="stylesheet" crossorigin href="/assets/index-BkIG8nsB.css">
   </head>
   </head>
   <body>
   <body>
     <div id="root"></div>
     <div id="root"></div>

部分文件因为文件数量过多而无法显示