prompt_chem&H5.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>安科院项目 - 化学品预警 & RFID标签业务及H5首页</title>
  7. <style>
  8. *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  9. body { font-family: "PingFang SC", "Microsoft YaHei", sans-serif; background: #f4f6fa; color: #222; line-height: 1.7; }
  10. .banner { background: linear-gradient(135deg, #1a3a6b 0%, #2563eb 100%); color: #fff; padding: 40px 48px 32px; }
  11. .banner .tag { display: inline-block; background: rgba(255,255,255,0.18); border: 1px solid rgba(255,255,255,0.35); border-radius: 4px; font-size: 12px; padding: 2px 10px; margin-bottom: 12px; letter-spacing: 1px; }
  12. .banner h1 { font-size: 26px; font-weight: 700; margin-bottom: 8px; }
  13. .banner p { font-size: 14px; opacity: .8; }
  14. .banner .meta { margin-top: 20px; display: flex; gap: 24px; flex-wrap: wrap; }
  15. .banner .meta span { background: rgba(255,255,255,0.12); border-radius: 6px; padding: 4px 14px; font-size: 13px; }
  16. .container { max-width: 960px; margin: 0 auto; padding: 40px 24px 80px; }
  17. .section { background: #fff; border-radius: 12px; box-shadow: 0 2px 12px rgba(0,0,0,.07); margin-bottom: 32px; overflow: hidden; }
  18. .section-header { display: flex; align-items: center; gap: 12px; padding: 20px 28px; border-bottom: 1px solid #eef0f5; }
  19. .section-header .num { width: 32px; height: 32px; background: #2563eb; color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; flex-shrink: 0; }
  20. .section-header h2 { font-size: 17px; font-weight: 700; color: #1a3a6b; }
  21. .section-body { padding: 24px 28px; }
  22. .sub { margin-bottom: 28px; }
  23. .sub:last-child { margin-bottom: 0; }
  24. .sub h3 { font-size: 14px; font-weight: 700; color: #2563eb; margin-bottom: 10px; padding-left: 10px; border-left: 3px solid #2563eb; }
  25. .sub p, .sub ul { font-size: 14px; color: #444; margin-bottom: 8px; }
  26. .sub ul { padding-left: 20px; }
  27. .sub li { margin-bottom: 4px; }
  28. .flow { display: flex; flex-wrap: wrap; align-items: center; margin: 12px 0; }
  29. .flow-step { background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 6px; padding: 6px 14px; font-size: 13px; color: #1d4ed8; white-space: nowrap; }
  30. .flow-arrow { color: #93c5fd; font-size: 18px; padding: 0 4px; }
  31. table { width: 100%; border-collapse: collapse; font-size: 13px; margin: 10px 0; }
  32. th { background: #eff6ff; color: #1a3a6b; padding: 8px 14px; text-align: left; border: 1px solid #dbeafe; }
  33. td { padding: 8px 14px; border: 1px solid #e5e7eb; color: #374151; }
  34. tr:nth-child(even) td { background: #f9fafb; }
  35. .tip { background: #f0fdf4; border-left: 4px solid #22c55e; border-radius: 0 6px 6px 0; padding: 10px 16px; font-size: 13px; color: #166534; margin: 10px 0; }
  36. .tip-warn { background: #fff7ed; border-left-color: #f97316; color: #9a3412; }
  37. .path { display: inline-flex; align-items: center; gap: 6px; background: #f1f5f9; border-radius: 6px; padding: 6px 14px; font-size: 13px; color: #475569; margin: 6px 0; }
  38. .path span { color: #94a3b8; }
  39. .img-group { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 14px; }
  40. .img-card { flex: 1 1 260px; border: 1px solid #e5e7eb; border-radius: 10px; overflow: hidden; background: #fafafa; }
  41. .img-card img { width: 100%; display: block; object-fit: contain; max-height: 480px; }
  42. .img-card .img-label { text-align: center; font-size: 12px; color: #6b7280; padding: 6px 0 8px; background: #f9fafb; border-top: 1px solid #e5e7eb; }
  43. .checklist { list-style: none; padding: 0; }
  44. .checklist li { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid #f0f0f0; font-size: 14px; color: #374151; }
  45. .checklist li:last-child { border-bottom: none; }
  46. .checklist li::before { content: "✔"; color: #22c55e; font-weight: 700; font-size: 15px; }
  47. </style>
  48. </head>
  49. <body>
  50. <div class="banner">
  51. <div class="tag">增补需求 · 需求设计说明</div>
  52. <h1>安科院项目 — 化学品预警 &amp; RFID标签业务及H5首页</h1>
  53. <p>安科院实验室安全管理系统 · 强化危化品管控 · 优化移动端体验</p>
  54. <div class="meta">
  55. <span>📦 化学品违规带离预警</span>
  56. <span>🏷️ RFID标签业务优化</span>
  57. <span>📱 H5首页改版</span>
  58. </div>
  59. </div>
  60. <div class="container">
  61. <div class="section">
  62. <div class="section-header"><div class="num">一</div><h2>文档说明</h2></div>
  63. <div class="section-body">
  64. <div class="sub">
  65. <ul>
  66. <li><strong>项目名称:</strong>安科院实验室安全管理系统</li>
  67. <li><strong>需求类型:</strong>增补需求</li>
  68. <li><strong>涉及模块:</strong>化学品违规带离预警 / RFID标签业务优化 / H5首页改版</li>
  69. </ul>
  70. </div>
  71. <div class="tip">目标:强化实验室危化品管控能力,实现违规行为自动识别与多渠道预警,优化移动端入口体验,提高业务触达效率。</div>
  72. </div>
  73. </div>
  74. <div class="section">
  75. <div class="section-header"><div class="num">二</div><h2>化学品违规带离预警</h2></div>
  76. <div class="section-body">
  77. <div class="sub">
  78. <h3>2.1 业务背景</h3>
  79. <p>实验室布设化学品智能终端及RFID读卡器设备(超高频)与RFID感应门(超高频)。</p>
  80. <div class="tip tip-warn">当<strong>未领用化学品(库存内)被带离实验室</strong>时,系统需自动识别并触发报警。</div>
  81. </div>
  82. <div class="sub">
  83. <h3>2.2 业务流程</h3>
  84. <div class="flow">
  85. <div class="flow-step">化学品绑定RFID</div><div class="flow-arrow">→</div>
  86. <div class="flow-step">存放实验室</div><div class="flow-arrow">→</div>
  87. <div class="flow-step">用户未领用直接带离</div><div class="flow-arrow">→</div>
  88. <div class="flow-step">RFID门识别</div><div class="flow-arrow">→</div>
  89. <div class="flow-step">触发报警</div><div class="flow-arrow">→</div>
  90. <div class="flow-step">系统记录</div><div class="flow-arrow">→</div>
  91. <div class="flow-step">多渠道通知</div><div class="flow-arrow">→</div>
  92. <div class="flow-step">人工处理</div>
  93. </div>
  94. </div>
  95. <div class="sub">
  96. <h3>2.3 预警触发逻辑</h3>
  97. <table>
  98. <tr><th>条件</th><th>说明</th></tr>
  99. <tr><td>化学品状态</td><td>未领用</td></tr>
  100. <tr><td>RFID识别</td><td>离开实验室区域</td></tr>
  101. <tr><td>判定依据</td><td>最近一次操作终端开柜的人员</td></tr>
  102. </table>
  103. <div class="tip">满足以上条件 → 触发违规带离预警</div>
  104. </div>
  105. <div class="sub">
  106. <h3>2.4 违规人员判定规则</h3>
  107. <p>以<strong>最近一次操作终端开柜的人员</strong>作为违规人员写入记录。新增字段:违规人员、操作时间。</p>
  108. </div>
  109. <div class="sub">
  110. <h3>2.5 报警内容规范</h3>
  111. <div class="tip">【姓名】违规带离【xx ml】【化学品名称】离开实验室,请确认正常使用并处理。</div>
  112. </div>
  113. <div class="sub">
  114. <h3>2.6 预警记录字段设计</h3>
  115. <table>
  116. <tr><th>字段</th><th>类型</th><th>说明</th></tr>
  117. <tr><td>预警时间</td><td>datetime</td><td>自动记录</td></tr>
  118. <tr><td>报警内容</td><td>string</td><td>格式化文案</td></tr>
  119. <tr><td>实验室房间号</td><td>string</td><td>修改</td></tr>
  120. <tr><td>单位</td><td>string</td><td>修改</td></tr>
  121. <tr><td>违规人员</td><td>string</td><td>新增</td></tr>
  122. <tr><td>状态</td><td>enum</td><td>待处理 / 已处理</td></tr>
  123. <tr><td>处理时间</td><td>datetime</td><td>人工填写</td></tr>
  124. <tr><td>处理人</td><td>string</td><td>操作人</td></tr>
  125. <tr><td>操作</td><td>action</td><td>查看详情</td></tr>
  126. </table>
  127. </div>
  128. <div class="sub">
  129. <h3>2.7 通知机制</h3>
  130. <p><strong>通知对象:</strong>违规人员、实验室负责人、实验室管理员</p>
  131. <div class="path">配置路径:<span>基础结构管理</span> → <span>预警通知</span> → <span>危险源预警</span> → <span>化学品预警配置</span></div>
  132. <p style="margin-top:8px"><strong>支持方式:</strong>短信 / 报警电话 / 企业微信 / 声光报警(可后台配置)</p>
  133. </div>
  134. <div class="sub">
  135. <h3>2.8 报警升级机制</h3>
  136. <table>
  137. <tr><th>规则</th><th>说明</th></tr>
  138. <tr><td>升级触发</td><td>在设定时间内未处理 → 自动升级</td></tr>
  139. <tr><td>升级方式</td><td>按层级逐级上报 / 向指定手机号发送短信</td></tr>
  140. <tr><td>终止条件</td><td>状态变为「已处理」</td></tr>
  141. </table>
  142. </div>
  143. </div>
  144. </div>
  145. <div class="section">
  146. <div class="section-header"><div class="num">三</div><h2>化学品终端改造</h2></div>
  147. <div class="section-body">
  148. <div class="sub">
  149. <h3>3.1 报警记录优化</h3>
  150. <p>列表页更新报警内容格式,展示字段:房间号、单位、违规人员,支持处理操作,与后台保持一致。</p>
  151. </div>
  152. <div class="sub">
  153. <h3>3.2 标签模块优化</h3>
  154. <p>化学品采用超高频RFID标签,终端外挂低功率读卡器,化学品与RFID标签一对一绑定。</p>
  155. <ul>
  156. <li>首页入口:点击「标签」→ 直接进入"化学品标签页",屏蔽中转页</li>
  157. <li>RFID字段展示:后台配置启用RFID时,列表显示RFID编号字段</li>
  158. </ul>
  159. <div class="img-group">
  160. <div class="img-card">
  161. <img src="../prompt/终端标签1.png" alt="终端标签页面1" />
  162. <div class="img-label">终端标签页 — 列表视图</div>
  163. </div>
  164. <div class="img-card">
  165. <img src="../prompt/终端标签2.png" alt="终端标签页面2" />
  166. <div class="img-label">终端标签页 — RFID字段展示</div>
  167. </div>
  168. </div>
  169. </div>
  170. <div class="sub">
  171. <h3>3.3 标签绑定与更换业务规则</h3>
  172. <p>标签业务操作改为调用外接读卡器设备,现有逻辑保持不变:</p>
  173. <table>
  174. <tr><th>功能</th><th>是否调整</th></tr>
  175. <tr><td>标签绑定</td><td>否</td></tr>
  176. <tr><td>标签更换</td><td>否</td></tr>
  177. <tr><td>标签解绑</td><td>否</td></tr>
  178. </table>
  179. <div class="img-group">
  180. <div class="img-card">
  181. <img src="../prompt/终端标签3.png" alt="终端标签绑定操作" />
  182. <div class="img-label">终端标签绑定操作界面</div>
  183. </div>
  184. </div>
  185. </div>
  186. </div>
  187. </div>
  188. <div class="section">
  189. <div class="section-header"><div class="num">四</div><h2>化学品管理后台改造</h2></div>
  190. <div class="section-body">
  191. <div class="sub">
  192. <h3>4.1 报警记录同步优化</h3>
  193. <p>列表页报警内容统一格式,字段包含:房间号、单位、违规人员,展示完整预警信息,支持处理操作,与终端保持一致。</p>
  194. <div class="img-group">
  195. <div class="img-card">
  196. <img src="../prompt/后台报警记录.png" alt="后台报警记录列表" />
  197. <div class="img-label">后台报警记录列表</div>
  198. </div>
  199. <div class="img-card">
  200. <img src="../prompt/后台报警详情.png" alt="后台报警详情" />
  201. <div class="img-label">后台报警详情页</div>
  202. </div>
  203. </div>
  204. </div>
  205. <div class="sub">
  206. <h3>4.2 数据一致性要求</h3>
  207. <table>
  208. <tr><th>模块</th><th>一致性要求</th></tr>
  209. <tr><td>终端</td><td>✔ 一致</td></tr>
  210. <tr><td>后台</td><td>✔ 一致</td></tr>
  211. <tr><td>通知系统</td><td>✔ 一致</td></tr>
  212. </table>
  213. </div>
  214. <div class="sub">
  215. <h3>4.3 配置项</h3>
  216. <ul>
  217. <li>RFID启用开关</li>
  218. <li>预警通知方式配置</li>
  219. <li>报警升级规则配置</li>
  220. </ul>
  221. </div>
  222. </div>
  223. </div>
  224. <div class="section">
  225. <div class="section-header"><div class="num">五</div><h2>H5首页改版设计(安科院版本)</h2></div>
  226. <div class="section-body">
  227. <div class="sub">
  228. <h3>5.1 改版目标</h3>
  229. <ul>
  230. <li>提升移动端使用效率</li>
  231. <li>聚合高频功能入口</li>
  232. <li>对齐已有成熟方案(山西农大版本)</li>
  233. </ul>
  234. </div>
  235. <div class="sub">
  236. <h3>5.2 首页结构设计</h3>
  237. <table>
  238. <tr><th>区域</th><th>内容</th></tr>
  239. <tr><td>顶部</td><td>系统名称 / 中国安全生产科学研究院 / 个人信息 · 积分兑换 · 设置</td></tr>
  240. <tr><td>上部(通知条幅)</td><td>应急预警 / 违规带离(化学品)通知条幅与处理,无则隐藏</td></tr>
  241. <tr><td>中部(核心入口)</td><td>安全准入 / 安全检查 / 设备管理 / 设备登记 / 应急预警</td></tr>
  242. <tr><td>下部(快捷入口)</td><td>进出记录 / 签退离开 / 远程开门 / 门禁授权</td></tr>
  243. <tr><td>底部(导航标签)</td><td>Tab导航:工作台 / 实验室</td></tr>
  244. </table>
  245. <div class="img-group">
  246. <div class="img-card" style="max-width:320px; margin:0 auto; flex:none;">
  247. <img src="../prompt/H5首页.png" alt="H5首页设计稿" />
  248. <div class="img-label">H5首页设计稿</div>
  249. </div>
  250. </div>
  251. </div>
  252. </div>
  253. </div>
  254. <div class="section">
  255. <div class="section-header"><div class="num">六</div><h2>验收标准</h2></div>
  256. <div class="section-body">
  257. <ul class="checklist">
  258. <li>能准确识别未领用带离行为</li>
  259. <li>报警内容符合规范</li>
  260. <li>通知链路完整可达</li>
  261. <li>终端与后台数据一致</li>
  262. <li>H5首页功能完整可用</li>
  263. </ul>
  264. </div>
  265. </div>
  266. </div>
  267. </body>
  268. </html>