opo-任务面板edit icon

作者:
Fadinghaze
Fork(复制)
下载
嵌入
BUG反馈
index.html
style.css
index.js
现在支持上传本地图片了!
index.html
            
            <!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>OPO 任务预览面板原型 (修订版)</title>
    
    <!-- 引入 Font Awesome 图标库 -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css">
    
    <!-- 引入 Noto Sans SC 字体 -->
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700&display=swap" rel="stylesheet">

    <style>
        /* --- 全局与背景样式 --- */
        body {
            background-color: #0c1a2e;
            background-image: 
                radial-gradient(circle at 1px 1px, rgba(255, 255, 255, 0.05) 1px, transparent 0),
                radial-gradient(circle at 25px 25px, rgba(255, 255, 255, 0.05) 1px, transparent 0);
            background-size: 50px 50px;
            font-family: 'Noto Sans SC', sans-serif;
            color: #e0e0e0;
            padding: 40px;
            display: flex;
            justify-content: center;
            align-items: flex-start;
            gap: 40px;
            flex-wrap: wrap;
        }

        /* --- 面板通用基础样式 --- */
        .task-panel {
            width: 360px;
            height: 420px; /* 固定高度,确保所有面板大小一致 */
            background: rgba(10, 25, 47, 0.85);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 12px;
            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
            display: flex;
            flex-direction: column;
            transition: all 0.3s ease;
            overflow: hidden; /* 防止内容溢出 */
        }
        
        /* --- 面板内容区 --- */
        .panel-content {
            padding: 20px;
            display: flex;
            flex-direction: column;
            gap: 18px; /* 模块间距 */
            flex-grow: 1;
        }

        /* --- 面板头部样式 --- */
        .panel-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            border-bottom: 1px solid rgba(255, 255, 255, 0.1);
            padding-bottom: 12px;
            margin: -20px -20px 0; /* 扩展至面板边缘 */
            padding: 15px 20px;
        }
        .panel-header .title {
            display: flex;
            align-items: center;
            gap: 10px;
            font-size: 18px; /* 强化任务ID */
            font-weight: 700;
            letter-spacing: 1px;
        }
        .panel-header .status-tag {
            font-size: 12px;
            font-weight: 500;
            padding: 4px 10px;
            border-radius: 15px;
            color: #fff;
        }

        /* --- 信息区域样式 --- */
        .info-section {
            display: flex;
            flex-direction: column;
            gap: 12px;
        }
        .info-row {
            display: flex;
            align-items: center;
            gap: 10px;
            font-size: 14px;
        }
        .info-row i.fa {
            width: 20px;
            text-align: center;
            color: #8899b3;
        }
        .info-row strong {
            font-weight: 500;
            color: #ffffff;
        }
        .info-row .sub-text {
            color: #8899b3;
            font-size: 13px;
        }
        
        /* --- 文书/结果 状态 --- */
        .status-list {
            padding-left: 30px; /* 对齐图标 */
            display: flex;
            flex-direction: column;
            gap: 8px;
            font-size: 13px;
        }
        .status-list .item {
            display: flex;
            align-items: center;
            gap: 8px;
        }
        .status-list i.fa-circle-check { color: #28a745; }

        /* --- 进度条样式 --- */
        .progress-bar {
            width: 100%; height: 8px;
            background-color: rgba(255, 255, 255, 0.1);
            border-radius: 4px; overflow: hidden;
        }
        .progress-bar-inner { height: 100%; border-radius: 4px; }

        /* --- 统一操作区 (CTA) 样式 --- */
        .cta-section {
            margin-top: auto; /* 将按钮推到底部 */
            padding: 15px 20px;
            border-top: 1px solid rgba(255, 255, 255, 0.1);
            background: rgba(0, 0, 0, 0.1);
            display: flex;
            gap: 10px;
        }
        .cta-button {
            flex: 1; /* 按钮平分宽度 */
            padding: 12px 0;
            border: none;
            border-radius: 8px;
            color: #fff;
            font-size: 15px;
            font-weight: 500;
            cursor: pointer;
            transition: all 0.2s ease;
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 8px;
        }
        .cta-button:hover { opacity: 0.9; transform: translateY(-1px); }
        .cta-button.primary { /* 主按钮 */ }
        .cta-button.secondary { /* 次按钮 */
            background-color: rgba(255, 255, 255, 0.1);
            border: 1px solid rgba(255, 255, 255, 0.2);
        }
        .cta-button.secondary:hover { background-color: rgba(255, 255, 255, 0.15); }

        /* ========== 1. 待启动 - 正常状态 ========== */
        .panel-initiated { border-top: 5px solid #007BFF; }
        .panel-initiated .status-tag { background-color: #007BFF; }
        .panel-initiated .primary { background-color: #007BFF; }

        /* ========== 2. 启动中 - 正常状态 ========== */
        .panel-inprogress { border-top: 5px solid #28a745; }
        .panel-inprogress .status-tag { background-color: #28a745; }
        .panel-inprogress .progress-bar-inner { background-color: #28a745; }
        .panel-inprogress .primary { background-color: #28a745; }

        /* ========== 3. 启动中 - 异常状态 ========== */
        @keyframes red-glow {
            0%, 100% { box-shadow: 0 0 10px rgba(220, 53, 69, 0.5), inset 0 0 10px rgba(220, 53, 69, 0.3); }
            50% { box-shadow: 0 0 15px rgba(220, 53, 69, 0.8), inset 0 0 15px rgba(220, 53, 69, 0.5); }
        }
        .panel-alert {
            border: 1px solid #dc3545;
            border-top: 5px solid #dc3545;
            animation: red-glow 1.5s infinite ease-in-out;
        }
        .panel-alert .status-tag { background-color: #dc3545; }
        .alert-info-box {
            background: rgba(220, 53, 69, 0.15);
            border-left: 3px solid #dc3545;
            border-radius: 4px;
            padding: 12px;
            display: flex;
            flex-direction: column;
            gap: 8px;
        }
        .alert-info-box .alert-title {
            display: flex; align-items: center; gap: 8px;
            font-size: 15px; font-weight: 700; color: #ff8a8a;
        }
        .alert-info-box .alert-details {
            font-size: 13px; padding-left: 28px; color: #ffc2c2;
        }
        .panel-alert .primary { background-color: #c82333; }
        
        /* ========== 4. 已结束 - 正常状态 ========== */
        .panel-completed { border-top: 5px solid #6c757d; }
        .panel-completed .status-tag { background-color: #6c757d; }
        .panel-completed .primary { background-color: #495057; border: 1px solid #6c757d; }
        .panel-completed .primary:hover { background-color: #5a6268; }

    </style>
</head>
<body>

    <!-- Panel 1: 待启动 - 正常状态 -->
    <div class="task-panel panel-initiated">
        <div class="panel-content">
            <div class="panel-header">
                <div class="title"><i class="fa-solid fa-file-import"></i><span>T240808-01</span></div>
                <div class="status-tag">待启动</div>
            </div>
            <div class="info-section">
                <div class="info-row"><i class="fa-solid fa-location-arrow"></i><span><strong>起点:</strong> 江苏省人民医院 - OR 3</span></div>
                <div class="info-row"><i class="fa-solid fa-location-dot"></i><span><strong>终点:</strong> 南京市第一医院 - OR 8</span></div>
            </div>
            <div class="info-section">
                <div class="info-row"><i class="fa-solid fa-lungs"></i><span><strong>器官类型:</strong> 肝脏 x 1, 肾脏 x 2</span></div>
                <div class="info-row"><i class="fa-solid fa-id-card"></i><span><strong>捐献者ID:</strong> D240808-01</span></div>
                <div class="info-row"><i class="fa-solid fa-user-check"></i><span><strong>受赠者ID:</strong> R240808-01, R240808-02</span></div>
            </div>
            <div class="info-section">
                <div class="info-row"><i class="fa-solid fa-file-signature"></i><strong>前置文书:</strong></div>
                <div class="status-list">
                    <div class="item"><i class="fa-solid fa-circle-check"></i> 捐赠协议</div>
                    <div class="item"><i class="fa-solid fa-circle-check"></i> 死亡证明</div>
                </div>
            </div>
        </div>
        <div class="cta-section">
            <button class="cta-button secondary"><i class="fa-solid fa-circle-info"></i>查看详情</button>
            <button class="cta-button primary"><i class="fa-solid fa-rocket"></i>启动任务</button>
        </div>
    </div>

    <!-- Panel 2: 启动中 - 正常状态 -->
    <div class="task-panel panel-inprogress">
        <div class="panel-content">
            <div class="panel-header">
                <div class="title"><i class="fa-solid fa-shipping-fast"></i><span>T240808-02</span></div>
                <div class="status-tag">进行中</div>
            </div>
            <div class="info-section">
                <div class="info-row"><i class="fa-solid fa-user-tie"></i><span><strong>协调员:</strong> 张三 <span class="sub-text">(138****5678)</span></span></div>
                <div class="info-row"><i class="fa-solid fa-box"></i><span><strong>转运设备:</strong> T08 <span class="sub-text">(电量: 85%)</span></span></div>
            </div>
            <div class="info-section">
                <div class="info-row"><i class="fa-solid fa-route"></i><span><strong>当前状态:</strong> 前往器官获取点</span></div>
                <div class="info-row"><i class="fa-solid fa-hourglass-half"></i><span><strong>预计到达 (ETA):</strong> 14:30</span></div>
            </div>
            <div class="info-section">
                <div class="info-row"><i class="fa-solid fa-stopwatch"></i><span><strong>冷缺血时间:</strong> <strong style="color: #28a745;">00:15:22</strong> / 08:00:00</span></div>
                <div class="progress-bar">
                    <div class="progress-bar-inner" style="width: 3%;"></div>
                </div>
            </div>
        </div>
        <div class="cta-section">
            <button class="cta-button secondary"><i class="fa-solid fa-circle-info"></i>查看详情</button>
            <button class="cta-button primary"><i class="fa-solid fa-video"></i>视频通话</button>
        </div>
    </div>

    <!-- Panel 3: 启动中 - 异常状态 -->
    <div class="task-panel panel-alert">
        <div class="panel-content">
            <div class="panel-header">
                <div class="title"><i class="fa-solid fa-triangle-exclamation"></i><span>T240808-03</span></div>
                <div class="status-tag">异常预警</div>
            </div>
            <div class="alert-info-box">
                <div class="alert-title"><i class="fa-solid fa-temperature-high"></i>转运箱温度超标</div>
                <div class="alert-details">
                    <div><strong>当前:</strong> 8.2°C / <strong>阈值:</strong> 8.0°C | <strong>级别:</strong> 高</div>
                </div>
            </div>
            <div class="info-section">
                <div class="info-row"><i class="fa-solid fa-user-tie"></i><span><strong>协调员:</strong> 李四</span></div>
                <div class="info-row"><i class="fa-solid fa-box"></i><span><strong>转运设备:</strong> T03 <span class="sub-text" style="color:#ff8a8a; font-weight:bold;">(状态: 异常)</span></span></div>
            </div>
            <div class="info-section">
                <div class="info-row"><i class="fa-solid fa-stopwatch"></i><span><strong>冷缺血时间:</strong> <strong style="color: #dc3545;">04:30:18</strong> / 08:00:00</span></div>
                <div class="progress-bar">
                    <div class="progress-bar-inner" style="width: 56%; background-color: #dc3545;"></div>
                </div>
            </div>
        </div>
        <div class="cta-section">
            <button class="cta-button secondary"><i class="fa-solid fa-circle-info"></i>查看详情</button>
            <button class="cta-button primary"><i class="fa-solid fa-siren-on"></i>启动预案</button>
        </div>
    </div>

    <!-- Panel 4: 已结束 -->
    <div class="task-panel panel-completed">
        <div class="panel-content">
            <div class="panel-header">
                <div class="title"><i class="fa-solid fa-flag-checkered"></i><span>T240808-04</span></div>
                <div class="status-tag">已结束</div>
            </div>
            <div class="info-section">
                <div class="info-row"><i class="fa-solid fa-circle-check"></i><span><strong>完成状态:</strong> 交付成功</span></div>
                <div class="info-row"><i class="fa-solid fa-calendar-check"></i><span><strong>完成时间:</strong> 2024-08-08 16:30</span></div>
                <div class="info-row"><i class="fa-solid fa-clock"></i><span><strong>总耗时:</strong> 2小时45分钟</span></div>
            </div>
            <div class="info-section">
                 <div class="info-row"><i class="fa-solid fa-user-tie"></i><span><strong>协调员:</strong> 王五</span></div>
                 <div class="info-row"><i class="fa-solid fa-box"></i><span><strong>转运设备:</strong> T05</span></div>
            </div>
            <div class="info-section">
                <div class="info-row"><i class="fa-solid fa-file-invoice"></i><strong>最终交付文书:</strong></div>
                <div class="status-list">
                    <div class="item"><i class="fa-solid fa-circle-check"></i> 器官接收确认单</div>
                </div>
            </div>
        </div>
        <div class="cta-section">
            <button class="cta-button secondary"><i class="fa-solid fa-circle-info"></i>查看详情</button>
            <button class="cta-button primary"><i class="fa-solid fa-route"></i>轨迹回放</button>
        </div>
    </div>

</body>
</html>
        
编辑器加载中
预览
控制台