OPO手机端1.0edit 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>
    <!-- 引入 Tailwind CSS 用于快速样式布局 -->
    <script src="https://cdn.tailwindcss.com"></script>
    <!-- 引入 FontAwesome 用于图标 -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <style>
        body {
            background-color: #f0f2f5;
            font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
            padding: 20px;
            gap: 40px;
            flex-wrap: wrap;
        }

        /* 模拟手机外壳 */
        .phone-frame {
            width: 375px;
            height: 812px;
            background-color: #fff;
            border-radius: 30px;
            box-shadow: 0 20px 50px -10px rgba(0, 0, 0, 0.3);
            border: 12px solid #1e293b;
            overflow: hidden;
            position: relative;
            display: flex;
            flex-direction: column;
        }

        /* 顶部刘海/状态栏区域 */
        .status-bar {
            height: 30px;
            background-color: #1e3a8a;
            color: white;
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 0 15px;
            font-size: 12px;
            z-index: 10;
        }

        /* 滚动区域 */
        .scroll-content {
            flex: 1;
            overflow-y: auto;
            background-color: #f8fafc;
        }

        /* 隐藏滚动条 */
        .scroll-content::-webkit-scrollbar {
            display: none;
        }

        /* 底部导航 */
        .bottom-nav {
            height: 70px;
            background-color: white;
            border-top: 1px solid #e2e8f0;
            display: flex;
            justify-content: space-around;
            align-items: center;
            padding-bottom: 10px;
        }

        .nav-item {
            display: flex;
            flex-direction: column;
            align-items: center;
            color: #64748b;
            font-size: 10px;
            gap: 4px;
            cursor: pointer;
        }

        .nav-item.active {
            color: #1e3a8a;
        }

        /* 自定义组件样式 */
        .card {
            background: white;
            border-radius: 12px;
            padding: 16px;
            margin-bottom: 12px;
            box-shadow: 0 2px 5px rgba(0,0,0,0.05);
        }

        .tag {
            padding: 2px 8px;
            border-radius: 4px;
            font-size: 10px;
            font-weight: bold;
        }

        .tag-urgent { background-color: #fee2e2; color: #ef4444; }
        .tag-process { background-color: #dbeafe; color: #1e40af; }
        .tag-ai { background-color: #f3e8ff; color: #7e22ce; border: 1px solid #d8b4fe; }

        .step-line {
            position: absolute;
            left: 22px;
            top: 35px;
            bottom: 0;
            width: 2px;
            background-color: #e2e8f0;
            z-index: 0;
        }

        .recording-wave {
            display: flex;
            gap: 3px;
            align-items: center;
            height: 20px;
        }
        .bar {
            width: 3px;
            background-color: #3b82f6;
            animation: wave 1s ease-in-out infinite;
        }
        @keyframes wave {
            0%, 100% { height: 5px; }
            50% { height: 15px; }
        }
    </style>
</head>
<body>

    <!-- 页面 1:智能协同工作台 -->
    <div class="phone-frame">
        <!-- 状态栏 -->
        <div class="status-bar">
            <span>14:32</span>
            <div class="flex gap-2">
                <i class="fa-solid fa-signal"></i>
                <i class="fa-solid fa-wifi"></i>
                <i class="fa-solid fa-battery-three-quarters"></i>
            </div>
        </div>

        <!-- 顶部Header -->
        <div class="bg-blue-900 text-white p-5 pb-8 rounded-b-[2rem] relative shadow-lg">
            <div class="flex justify-between items-start">
                <div>
                    <p class="text-blue-200 text-xs">OPO智慧协同系统 v2.0</p>
                    <h1 class="text-xl font-bold mt-1">你好, 李协调员</h1>
                    <div class="flex items-center gap-2 mt-2 text-xs bg-blue-800/50 px-2 py-1 rounded-full w-fit">
                        <div class="w-2 h-2 bg-green-400 rounded-full animate-pulse"></div>
                        <span>在线 | 南京鼓楼区由西向东行驶</span>
                    </div>
                </div>
                <img src="https://api.dicebear.com/7.x/avataaars/svg?seed=Felix" class="w-10 h-10 rounded-full border-2 border-white bg-white">
            </div>
            
            <!-- 悬浮的数据概览 -->
            <div class="absolute -bottom-8 left-4 right-4 bg-white text-gray-800 rounded-xl p-4 shadow-md flex justify-between text-center">
                <div>
                    <div class="text-xs text-gray-500">待办任务</div>
                    <div class="text-xl font-bold text-blue-600">3</div>
                </div>
                <div>
                    <div class="text-xs text-gray-500">合规预警</div>
                    <div class="text-xl font-bold text-orange-500">1</div>
                </div>
                <div>
                    <div class="text-xs text-gray-500">本月绩效</div>
                    <div class="text-xl font-bold text-green-600">98</div>
                </div>
            </div>
        </div>

        <div class="scroll-content pt-12 px-4">
            <!-- 紧急任务卡片 (智能调度) -->
            <div class="flex justify-between items-center mb-2 mt-2">
                <h3 class="font-bold text-gray-800">当前执行 (1)</h3>
                <span class="text-xs text-blue-600">智能调度推荐路径 ></span>
            </div>
            
            <div class="card border-l-4 border-red-500 relative overflow-hidden">
                <div class="absolute top-0 right-0 bg-red-100 text-red-600 text-[10px] px-2 py-1 rounded-bl-lg font-bold">
                    紧急程度:高
                </div>
                <div class="flex justify-between items-start mb-2">
                    <h4 class="font-bold text-gray-800">潜在捐献案例跟进</h4>
                </div>
                <div class="text-sm text-gray-600 space-y-1 mb-3">
                    <p><i class="fa-regular fa-hospital w-5"></i> 南京市第一医院(南院)</p>
                    <p><i class="fa-regular fa-clock w-5"></i> 预计到达: 15分钟后</p>
                    <p><i class="fa-solid fa-truck-medical w-5"></i> 状态: 转运途中</p>
                </div>
                <div class="flex gap-2">
                    <button class="flex-1 bg-blue-600 text-white py-2 rounded-lg text-sm font-medium shadow-sm active:scale-95 transition">
                        进入作业
                    </button>
                    <button class="w-10 bg-blue-50 text-blue-600 rounded-lg flex items-center justify-center shadow-sm border border-blue-100">
                        <i class="fa-solid fa-phone"></i>
                    </button>
                    <button class="w-10 bg-blue-50 text-blue-600 rounded-lg flex items-center justify-center shadow-sm border border-blue-100">
                        <i class="fa-solid fa-location-arrow"></i>
                    </button>
                </div>
            </div>

            <!-- 常用功能 Grid (二期重点:智能采集与通讯) -->
            <h3 class="font-bold text-gray-800 mb-2">快捷作业</h3>
            <div class="grid grid-cols-4 gap-3 mb-6">
                <div class="flex flex-col items-center gap-2">
                    <div class="w-12 h-12 bg-indigo-50 text-indigo-600 rounded-xl flex items-center justify-center text-lg shadow-sm">
                        <i class="fa-solid fa-wand-magic-sparkles"></i>
                    </div>
                    <span class="text-[10px] text-gray-600">AI录入</span>
                </div>
                <div class="flex flex-col items-center gap-2">
                    <div class="w-12 h-12 bg-blue-50 text-blue-600 rounded-xl flex items-center justify-center text-lg shadow-sm">
                        <i class="fa-solid fa-video"></i>
                    </div>
                    <span class="text-[10px] text-gray-600">多方会议</span>
                </div>
                <div class="flex flex-col items-center gap-2">
                    <div class="w-12 h-12 bg-orange-50 text-orange-600 rounded-xl flex items-center justify-center text-lg shadow-sm">
                        <i class="fa-solid fa-glasses"></i>
                    </div>
                    <span class="text-[10px] text-gray-600">眼镜互联</span>
                </div>
                <div class="flex flex-col items-center gap-2">
                    <div class="w-12 h-12 bg-green-50 text-green-600 rounded-xl flex items-center justify-center text-lg shadow-sm">
                        <i class="fa-solid fa-box-open"></i>
                    </div>
                    <span class="text-[10px] text-gray-600">物资领用</span>
                </div>
            </div>

            <!-- AI助手/数字人入口 -->
            <div class="card bg-gradient-to-r from-slate-800 to-slate-900 text-white flex items-center justify-between">
                <div>
                    <div class="text-xs text-blue-300 mb-1">AI智能助手</div>
                    <div class="text-sm font-bold">"有什么可以帮您?"</div>
                </div>
                <div class="w-10 h-10 rounded-full bg-white/20 flex items-center justify-center animate-pulse">
                    <i class="fa-solid fa-microphone-lines"></i>
                </div>
            </div>
        </div>

        <!-- 底部导航 -->
        <div class="bottom-nav">
            <div class="nav-item active">
                <i class="fa-solid fa-house text-lg"></i>
                <span>工作台</span>
            </div>
            <div class="nav-item">
                <i class="fa-solid fa-list-check text-lg"></i>
                <span>任务</span>
            </div>
            <div class="nav-item relative">
                <i class="fa-solid fa-comment-dots text-lg"></i>
                <div class="absolute -top-1 right-1 w-2 h-2 bg-red-500 rounded-full"></div>
                <span>消息</span>
            </div>
            <div class="nav-item">
                <i class="fa-solid fa-user text-lg"></i>
                <span>我的</span>
            </div>
        </div>
    </div>

    <!-- 页面 2:现场作业与AI采集 (深化功能) -->
    <div class="phone-frame">
        <!-- 状态栏 -->
        <div class="status-bar">
            <span>14:35</span>
            <div class="flex gap-2">
                <i class="fa-solid fa-signal"></i>
                <i class="fa-solid fa-wifi"></i>
                <i class="fa-solid fa-battery-full"></i>
            </div>
        </div>

        <!-- 顶部导航 -->
        <div class="bg-white border-b border-gray-200 p-4 flex items-center justify-between shadow-sm z-20">
            <i class="fa-solid fa-chevron-left text-gray-600 text-lg"></i>
            <div class="text-center">
                <h2 class="font-bold text-gray-800 text-base">案例 #2023-JS-091</h2>
                <span class="text-[10px] text-green-600 bg-green-50 px-2 rounded-full">进行中</span>
            </div>
            <i class="fa-solid fa-ellipsis text-gray-600 text-lg"></i>
        </div>

        <!-- 流程步骤条 -->
        <div class="bg-white px-4 py-3 shadow-sm mb-2">
            <div class="flex justify-between items-center relative">
                <div class="absolute top-1/2 left-0 w-full h-0.5 bg-gray-200 -z-10"></div>
                <div class="flex flex-col items-center gap-1 bg-white px-1">
                    <div class="w-6 h-6 rounded-full bg-green-500 text-white flex items-center justify-center text-xs"><i class="fa-solid fa-check"></i></div>
                    <span class="text-[10px] text-gray-500">接报</span>
                </div>
                <div class="flex flex-col items-center gap-1 bg-white px-1">
                    <div class="w-6 h-6 rounded-full bg-blue-600 text-white flex items-center justify-center text-xs">2</div>
                    <span class="text-[10px] text-blue-600 font-bold">维护/评估</span>
                </div>
                <div class="flex flex-col items-center gap-1 bg-white px-1">
                    <div class="w-6 h-6 rounded-full bg-gray-200 text-gray-500 flex items-center justify-center text-xs">3</div>
                    <span class="text-[10px] text-gray-400">获取</span>
                </div>
                <div class="flex flex-col items-center gap-1 bg-white px-1">
                    <div class="w-6 h-6 rounded-full bg-gray-200 text-gray-500 flex items-center justify-center text-xs">4</div>
                    <span class="text-[10px] text-gray-400">分配</span>
                </div>
            </div>
        </div>

        <div class="scroll-content px-4 py-2">
            
            <!-- AI合规提示 (二期重点:智能合规校验) -->
            <div class="bg-purple-50 border border-purple-100 rounded-lg p-3 mb-4 flex gap-3 items-start">
                <div class="text-purple-600 mt-0.5"><i class="fa-solid fa-robot"></i></div>
                <div class="flex-1">
                    <div class="text-xs font-bold text-purple-700 mb-1">AI 合规助手提示</div>
                    <p class="text-[10px] text-purple-600 leading-relaxed">
                        根据SOP要求,当前阶段必须上传《脑死亡判定书》及家属签署的《捐献确认书》。系统检测到您的语音记录中已提及"家属同意",请尽快补充书面材料。
                    </p>
                </div>
            </div>

            <!-- 关键材料智能采集 (二期重点:智能采集录入) -->
            <div class="mb-4">
                <h3 class="font-bold text-gray-800 text-sm mb-2 flex justify-between">
                    关键材料上传 
                    <span class="text-[10px] text-gray-400 font-normal">支持OCR自动识别</span>
                </h3>
                <div class="grid grid-cols-2 gap-3">
                    <!-- 已上传项 -->
                    <div class="relative bg-white p-2 rounded-lg border border-green-200 shadow-sm">
                        <div class="h-20 bg-gray-100 rounded mb-2 flex items-center justify-center overflow-hidden">
                             <!-- 模拟图片 -->
                             <div class="text-gray-300 text-2xl"><i class="fa-solid fa-file-medical"></i></div>
                        </div>
                        <div class="flex justify-between items-center">
                            <span class="text-[10px] font-bold text-gray-700">化验单据.jpg</span>
                            <i class="fa-solid fa-circle-check text-green-500 text-xs"></i>
                        </div>
                        <!-- 自动提取的数据 -->
                        <div class="mt-2 bg-green-50 p-1.5 rounded text-[9px] text-green-700">
                            <i class="fa-solid fa-bolt"></i> 肌酐: 98 umol/L (正常)
                        </div>
                    </div>

                    <!-- 待上传项 -->
                    <div class="border-2 border-dashed border-blue-300 bg-blue-50 rounded-lg flex flex-col items-center justify-center h-auto min-h-[120px] text-blue-500 gap-2 cursor-pointer active:bg-blue-100 transition">
                        <i class="fa-solid fa-camera text-2xl"></i>
                        <span class="text-xs font-medium">拍摄/扫描判定书</span>
                    </div>
                </div>
            </div>

            <!-- 现场语音/视频记录 (二期重点:智能语音/视频) -->
            <div class="card">
                <div class="flex justify-between items-center mb-3">
                    <h3 class="font-bold text-gray-800 text-sm">现场沟通记录</h3>
                    <div class="tag tag-urgent animate-pulse">录音中</div>
                </div>
                
                <!-- 声波动画 -->
                <div class="bg-gray-50 p-3 rounded-lg mb-3 flex items-center justify-between">
                    <div class="recording-wave">
                        <div class="bar" style="animation-delay: 0s"></div>
                        <div class="bar" style="animation-delay: 0.2s"></div>
                        <div class="bar" style="animation-delay: 0.4s"></div>
                        <div class="bar" style="animation-delay: 0.1s"></div>
                        <div class="bar" style="animation-delay: 0.3s"></div>
                        <div class="bar" style="animation-delay: 0s"></div>
                        <div class="bar" style="animation-delay: 0.2s"></div>
                    </div>
                    <span class="text-xs text-gray-500">00:14:22</span>
                </div>

                <!-- 实时转写 -->
                <div class="text-xs text-gray-600 space-y-2 border-l-2 border-blue-200 pl-2">
                    <p><span class="font-bold text-blue-800">协调员:</span> 请确认家属是否已经完全理解捐献流程?</p>
                    <p><span class="font-bold text-gray-800">医生:</span> 是的,已经解释清楚,目前生命体征平稳。</p>
                    <p class="text-gray-400 italic">...正在转写...</p>
                </div>

                <div class="flex gap-2 mt-3">
                    <button class="flex-1 border border-gray-300 py-2 rounded-lg text-xs text-gray-700"><i class="fa-solid fa-pause mr-1"></i> 暂停</button>
                    <button class="flex-1 border border-gray-300 py-2 rounded-lg text-xs text-gray-700"><i class="fa-solid fa-tag mr-1"></i> 标记重点</button>
                </div>
            </div>
        </div>

        <!-- 底部操作栏 -->
        <div class="bg-white border-t border-gray-200 p-4 pb-6 shadow-[0_-4px_6px_-1px_rgba(0,0,0,0.1)]">
            <div class="flex justify-between items-center mb-3">
                 <span class="text-xs text-gray-500">SOP 完成度: 3/5</span>
                 <span class="text-xs text-blue-600 font-bold">60%</span>
            </div>
            <!-- 进度条 -->
            <div class="w-full bg-gray-200 rounded-full h-1.5 mb-4">
                <div class="bg-blue-600 h-1.5 rounded-full" style="width: 60%"></div>
            </div>
            <button class="w-full bg-blue-600 text-white py-3 rounded-xl font-bold shadow-lg shadow-blue-200 active:scale-[0.98] transition">
                确认并提交本阶段数据
            </button>
        </div>
    </div>

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