workbenches.html 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747
  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>九州管理 - 工作台与财务管理</title>
  7. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
  8. <style>
  9. * {
  10. margin: 0;
  11. padding: 0;
  12. box-sizing: border-box;
  13. font-family: 'Segoe UI', 'Microsoft YaHei', sans-serif;
  14. }
  15. :root {
  16. --primary: #1a56db;
  17. --secondary: #0e2a53;
  18. --accent: #f59e0b;
  19. --success: #10b981;
  20. --danger: #ef4444;
  21. --light: #f8fafc;
  22. --dark: #0f172a;
  23. --card-bg: rgba(255, 255, 255, 0.85);
  24. --glass: rgba(255, 255, 255, 0.1);
  25. --glass-border: rgba(255, 255, 255, 0.2);
  26. --shadow: 0 8px 32px rgba(31, 38, 135, 0.15);
  27. }
  28. body {
  29. background: linear-gradient(135deg, #0f172a, #1e293b);
  30. color: var(--light);
  31. min-height: 100vh;
  32. padding: 20px;
  33. position: relative;
  34. overflow-x: hidden;
  35. }
  36. body::before {
  37. content: '';
  38. position: absolute;
  39. top: 0;
  40. left: 0;
  41. right: 0;
  42. bottom: 0;
  43. background:
  44. radial-gradient(circle at 10% 20%, rgba(26, 86, 219, 0.15) 0%, transparent 30%),
  45. radial-gradient(circle at 90% 80%, rgba(245, 158, 11, 0.15) 0%, transparent 30%);
  46. z-index: -1;
  47. }
  48. .container {
  49. max-width: 1200px;
  50. margin: 0 auto;
  51. }
  52. /* 头部样式 */
  53. header {
  54. display: flex;
  55. justify-content: space-between;
  56. align-items: center;
  57. padding: 20px 0;
  58. margin-bottom: 30px;
  59. border-bottom: 1px solid var(--glass-border);
  60. }
  61. .logo {
  62. display: flex;
  63. align-items: center;
  64. gap: 15px;
  65. }
  66. .logo-icon {
  67. width: 50px;
  68. height: 50px;
  69. background: linear-gradient(135deg, var(--primary), #3b82f6);
  70. border-radius: 12px;
  71. display: flex;
  72. align-items: center;
  73. justify-content: center;
  74. font-size: 24px;
  75. box-shadow: var(--shadow);
  76. }
  77. .logo-text h1 {
  78. font-size: 24px;
  79. font-weight: 700;
  80. background: linear-gradient(to right, #fbcfe8, #c7d2fe);
  81. -webkit-background-clip: text;
  82. -webkit-text-fill-color: transparent;
  83. }
  84. .logo-text p {
  85. font-size: 14px;
  86. color: #cbd5e1;
  87. letter-spacing: 1px;
  88. }
  89. .user-actions {
  90. display: flex;
  91. gap: 15px;
  92. }
  93. .btn {
  94. padding: 10px 20px;
  95. border-radius: 10px;
  96. font-weight: 600;
  97. cursor: pointer;
  98. transition: all 0.3s ease;
  99. border: none;
  100. display: flex;
  101. align-items: center;
  102. gap: 8px;
  103. }
  104. .btn-primary {
  105. background: linear-gradient(135deg, var(--primary), #3b82f6);
  106. color: white;
  107. box-shadow: 0 4px 6px rgba(26, 86, 219, 0.3);
  108. }
  109. .btn-primary:hover {
  110. transform: translateY(-2px);
  111. box-shadow: 0 6px 12px rgba(26, 86, 219, 0.4);
  112. }
  113. .btn-outline {
  114. background: transparent;
  115. border: 1px solid var(--glass-border);
  116. color: #e2e8f0;
  117. }
  118. .btn-outline:hover {
  119. background: rgba(255, 255, 255, 0.1);
  120. }
  121. /* 主内容区 */
  122. .dashboard {
  123. display: flex;
  124. gap: 25px;
  125. margin-bottom: 30px;
  126. }
  127. /* 左侧面板 */
  128. .sidebar {
  129. flex: 0 0 280px;
  130. background: var(--glass);
  131. backdrop-filter: blur(10px);
  132. border-radius: 20px;
  133. border: 1px solid var(--glass-border);
  134. padding: 25px;
  135. box-shadow: var(--shadow);
  136. height: fit-content;
  137. }
  138. .section-title {
  139. font-size: 18px;
  140. font-weight: 600;
  141. margin-bottom: 20px;
  142. display: flex;
  143. align-items: center;
  144. gap: 10px;
  145. color: #e2e8f0;
  146. }
  147. .section-title i {
  148. color: var(--accent);
  149. }
  150. .filters {
  151. display: flex;
  152. flex-direction: column;
  153. gap: 15px;
  154. }
  155. .filter-group {
  156. display: flex;
  157. flex-direction: column;
  158. gap: 8px;
  159. }
  160. .filter-group label {
  161. font-size: 14px;
  162. color: #94a3b8;
  163. font-weight: 500;
  164. }
  165. /* 主面板 */
  166. .main-content {
  167. flex: 1;
  168. display: flex;
  169. flex-direction: column;
  170. gap: 25px;
  171. }
  172. .ai-header {
  173. background: var(--glass);
  174. backdrop-filter: blur(10px);
  175. border-radius: 20px;
  176. border: 1px solid var(--glass-border);
  177. padding: 25px;
  178. box-shadow: var(--shadow);
  179. display: flex;
  180. justify-content: space-between;
  181. align-items: center;
  182. }
  183. .ai-title {
  184. font-size: 24px;
  185. font-weight: 700;
  186. margin-bottom: 10px;
  187. background: linear-gradient(to right, #fde68a, #fcd34d);
  188. -webkit-background-clip: text;
  189. -webkit-text-fill-color: transparent;
  190. }
  191. .ai-subtitle {
  192. color: #cbd5e1;
  193. max-width: 600px;
  194. line-height: 1.6;
  195. }
  196. .ai-highlight {
  197. color: var(--accent);
  198. font-weight: 600;
  199. }
  200. .ai-power {
  201. font-size: 48px;
  202. color: var(--accent);
  203. opacity: 0.7;
  204. }
  205. /* 功能卡片容器 */
  206. .functions-container {
  207. display: flex;
  208. flex-direction: column;
  209. gap: 30px;
  210. }
  211. .function-section {
  212. background: var(--card-bg);
  213. backdrop-filter: blur(10px);
  214. border-radius: 20px;
  215. border: 1px solid rgba(255, 255, 255, 0.2);
  216. overflow: hidden;
  217. box-shadow: var(--shadow);
  218. transition: all 0.3s ease;
  219. }
  220. .function-header {
  221. padding: 20px 25px;
  222. background: linear-gradient(90deg, rgba(26, 86, 219, 0.1), transparent);
  223. border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  224. display: flex;
  225. align-items: center;
  226. gap: 15px;
  227. }
  228. .function-header h2 {
  229. font-size: 20px;
  230. font-weight: 700;
  231. color: var(--dark);
  232. background: linear-gradient(to right, var(--primary), #3b82f6);
  233. -webkit-background-clip: text;
  234. -webkit-text-fill-color: transparent;
  235. }
  236. .function-grid {
  237. display: grid;
  238. grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  239. gap: 15px;
  240. padding: 25px;
  241. }
  242. .function-card {
  243. background: white;
  244. border-radius: 15px;
  245. overflow: hidden;
  246. box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  247. transition: all 0.3s ease;
  248. cursor: pointer;
  249. position: relative;
  250. height: 140px;
  251. display: flex;
  252. flex-direction: column;
  253. justify-content: center;
  254. align-items: center;
  255. text-align: center;
  256. padding: 15px;
  257. }
  258. .function-card:hover {
  259. transform: translateY(-5px);
  260. box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
  261. }
  262. .function-icon {
  263. width: 50px;
  264. height: 50px;
  265. border-radius: 50%;
  266. display: flex;
  267. align-items: center;
  268. justify-content: center;
  269. margin-bottom: 15px;
  270. font-size: 22px;
  271. color: white;
  272. position: relative;
  273. z-index: 2;
  274. }
  275. .function-icon::after {
  276. content: '';
  277. position: absolute;
  278. top: 0;
  279. left: 0;
  280. width: 100%;
  281. height: 100%;
  282. background: inherit;
  283. border-radius: 50%;
  284. z-index: -1;
  285. opacity: 0.2;
  286. }
  287. .function-name {
  288. font-weight: 600;
  289. color: var(--dark);
  290. font-size: 16px;
  291. z-index: 2;
  292. }
  293. .function-desc {
  294. font-size: 12px;
  295. color: #64748b;
  296. margin-top: 5px;
  297. z-index: 2;
  298. }
  299. /* 图标背景色 */
  300. .icon-bg-blue {
  301. background: linear-gradient(135deg, #3b82f6, #2563eb);
  302. }
  303. .icon-bg-green {
  304. background: linear-gradient(135deg, #10b981, #059669);
  305. }
  306. .icon-bg-orange {
  307. background: linear-gradient(135deg, #f59e0b, #d97706);
  308. }
  309. .icon-bg-purple {
  310. background: linear-gradient(135deg, #8b5cf6, #7c3aed);
  311. }
  312. .icon-bg-cyan {
  313. background: linear-gradient(135deg, #06b6d4, #0891b2);
  314. }
  315. .icon-bg-pink {
  316. background: linear-gradient(135deg, #ec4899, #db2777);
  317. }
  318. /* 状态指示器 */
  319. .status-indicator {
  320. position: absolute;
  321. top: 10px;
  322. right: 10px;
  323. width: 10px;
  324. height: 10px;
  325. border-radius: 50%;
  326. background-color: var(--success);
  327. box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.3);
  328. }
  329. .status-pending {
  330. background-color: var(--accent);
  331. box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.3);
  332. }
  333. .status-warning {
  334. background-color: var(--danger);
  335. box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.3);
  336. }
  337. /* 响应式调整 */
  338. @media (max-width: 992px) {
  339. .dashboard {
  340. flex-direction: column;
  341. }
  342. .sidebar {
  343. width: 100%;
  344. }
  345. }
  346. @media (max-width: 768px) {
  347. .function-grid {
  348. grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  349. }
  350. }
  351. @media (max-width: 576px) {
  352. .function-grid {
  353. grid-template-columns: repeat(2, 1fr);
  354. }
  355. .ai-header {
  356. flex-direction: column;
  357. text-align: center;
  358. gap: 20px;
  359. }
  360. .user-actions {
  361. flex-wrap: wrap;
  362. justify-content: center;
  363. }
  364. }
  365. </style>
  366. </head>
  367. <body>
  368. <div class="container">
  369. <header>
  370. <div class="logo">
  371. <div class="logo-icon">
  372. <i class="fas fa-crown"></i>
  373. </div>
  374. <div class="logo-text">
  375. <h1>九州管理</h1>
  376. <p>工作台与财务管理系统</p>
  377. </div>
  378. </div>
  379. <div class="user-actions">
  380. <button class="btn btn-outline">
  381. <i class="fas fa-bell"></i> 通知
  382. </button>
  383. <button class="btn btn-primary">
  384. <i class="fas fa-user"></i> 我的账户
  385. </button>
  386. </div>
  387. </header>
  388. <div class="dashboard">
  389. <div class="sidebar">
  390. <div class="section-title">
  391. <i class="fas fa-tachometer-alt"></i>
  392. <span>快捷导航</span>
  393. </div>
  394. <div class="filters">
  395. <div class="filter-group">
  396. <label>常用功能</label>
  397. <div class="filters" style="gap: 10px;">
  398. <button class="btn btn-outline" style="width: 100%; text-align: left; justify-content: flex-start;">
  399. <i class="fas fa-file-invoice"></i> 本月报销
  400. </button>
  401. <button class="btn btn-outline" style="width: 100%; text-align: left; justify-content: flex-start;">
  402. <i class="fas fa-calendar-check"></i> 今日考勤
  403. </button>
  404. <button class="btn btn-outline" style="width: 100%; text-align: left; justify-content: flex-start;">
  405. <i class="fas fa-tasks"></i> 待办任务
  406. </button>
  407. </div>
  408. </div>
  409. <div class="filter-group">
  410. <label>待处理事项</label>
  411. <div class="filters" style="background: rgba(239, 68, 68, 0.1); border-radius: 10px; padding: 12px;">
  412. <div style="display: flex; align-items: center; gap: 10px; margin-bottom: 8px;">
  413. <i class="fas fa-exclamation-circle" style="color: var(--danger);"></i>
  414. <span>3笔报销待审批</span>
  415. </div>
  416. <div style="display: flex; align-items: center; gap: 10px;">
  417. <i class="fas fa-exclamation-circle" style="color: var(--danger);"></i>
  418. <span>2笔借款待处理</span>
  419. </div>
  420. </div>
  421. </div>
  422. <div class="filter-group">
  423. <label>财务概览</label>
  424. <div class="filters" style="background: rgba(16, 185, 129, 0.1); border-radius: 10px; padding: 12px;">
  425. <div style="display: flex; justify-content: space-between; margin-bottom: 5px;">
  426. <span>本月收入</span>
  427. <span style="font-weight: 600;">¥86,540</span>
  428. </div>
  429. <div style="display: flex; justify-content: space-between; margin-bottom: 5px;">
  430. <span>待回款</span>
  431. <span style="font-weight: 600; color: var(--accent);">¥24,300</span>
  432. </div>
  433. <div style="display: flex; justify-content: space-between;">
  434. <span>报销总额</span>
  435. <span style="font-weight: 600; color: var(--danger);">¥8,760</span>
  436. </div>
  437. </div>
  438. </div>
  439. <button class="btn btn-primary" style="margin-top: 15px;">
  440. <i class="fas fa-cog"></i> 系统设置
  441. </button>
  442. </div>
  443. </div>
  444. <div class="main-content">
  445. <div class="ai-header">
  446. <div>
  447. <div class="ai-title">工作台与财务管理系统</div>
  448. <div class="ai-subtitle">集成工作流程与财务管理功能,<span class="ai-highlight">一站式管理</span>您的日常办公与财务事务</div>
  449. </div>
  450. <div class="ai-power">
  451. <i class="fas fa-chart-line"></i>
  452. </div>
  453. </div>
  454. <div class="functions-container">
  455. <!-- 工作台部分 -->
  456. <div class="function-section">
  457. <div class="function-header">
  458. <i class="fas fa-desktop"></i>
  459. <h2>工作台</h2>
  460. </div>
  461. <div class="function-grid">
  462. <div class="function-card">
  463. <div class="function-icon icon-bg-blue">
  464. <i class="fas fa-book"></i>
  465. </div>
  466. <div class="function-name">日志</div>
  467. <div class="function-desc">记录工作日志</div>
  468. <div class="status-indicator"></div>
  469. </div>
  470. <div class="function-card">
  471. <div class="function-icon icon-bg-green">
  472. <i class="fas fa-calendar-alt"></i>
  473. </div>
  474. <div class="function-name">考勤</div>
  475. <div class="function-desc">打卡与考勤管理</div>
  476. <div class="status-indicator"></div>
  477. </div>
  478. <div class="function-card">
  479. <div class="function-icon icon-bg-purple">
  480. <i class="fas fa-file-alt"></i>
  481. </div>
  482. <div class="function-name">内部文件</div>
  483. <div class="function-desc">公司文件管理</div>
  484. <div class="status-indicator status-pending"></div>
  485. </div>
  486. <div class="function-card">
  487. <div class="function-icon icon-bg-orange">
  488. <i class="fas fa-tasks"></i>
  489. </div>
  490. <div class="function-name">任务</div>
  491. <div class="function-desc">任务分配与跟踪</div>
  492. <div class="status-indicator"></div>
  493. </div>
  494. </div>
  495. </div>
  496. <!-- 财务管理部分 -->
  497. <div class="function-section">
  498. <div class="function-header">
  499. <i class="fas fa-money-bill-wave"></i>
  500. <h2>财务管理</h2>
  501. </div>
  502. <div class="function-grid">
  503. <div class="function-card">
  504. <div class="function-icon icon-bg-cyan">
  505. <i class="fas fa-file-invoice-dollar"></i>
  506. </div>
  507. <div class="function-name">报销</div>
  508. <div class="function-desc">费用报销管理</div>
  509. <div class="status-indicator status-warning"></div>
  510. </div>
  511. <div class="function-card">
  512. <div class="function-icon icon-bg-cyan">
  513. <i class="fas fa-store"></i>
  514. </div>
  515. <div class="function-name">本店报销</div>
  516. <div class="function-desc">门店费用报销</div>
  517. <div class="status-indicator"></div>
  518. </div>
  519. <div class="function-card">
  520. <div class="function-icon icon-bg-pink">
  521. <i class="fas fa-hand-holding-usd"></i>
  522. </div>
  523. <div class="function-name">借款</div>
  524. <div class="function-desc">员工借款管理</div>
  525. <div class="status-indicator status-warning"></div>
  526. </div>
  527. <div class="function-card">
  528. <div class="function-icon icon-bg-pink">
  529. <i class="fas fa-store"></i>
  530. </div>
  531. <div class="function-name">本店借款</div>
  532. <div class="function-desc">门店借款管理</div>
  533. <div class="status-indicator"></div>
  534. </div>
  535. <div class="function-card">
  536. <div class="function-icon icon-bg-blue">
  537. <i class="fas fa-cash-register"></i>
  538. </div>
  539. <div class="function-name">出纳账目</div>
  540. <div class="function-desc">现金收支管理</div>
  541. <div class="status-indicator"></div>
  542. </div>
  543. <div class="function-card">
  544. <div class="function-icon icon-bg-orange">
  545. <i class="fas fa-clock"></i>
  546. </div>
  547. <div class="function-name">待回款</div>
  548. <div class="function-desc">应收款项跟踪</div>
  549. <div class="status-indicator status-pending"></div>
  550. </div>
  551. <div class="function-card">
  552. <div class="function-icon icon-bg-green">
  553. <i class="fas fa-money-check-alt"></i>
  554. </div>
  555. <div class="function-name">个人工资</div>
  556. <div class="function-desc">薪资明细查询</div>
  557. <div class="status-indicator"></div>
  558. </div>
  559. <div class="function-card">
  560. <div class="function-icon icon-bg-orange">
  561. <i class="fas fa-plus-circle"></i>
  562. </div>
  563. <div class="function-name">添加回款</div>
  564. <div class="function-desc">记录收款信息</div>
  565. <div class="status-indicator"></div>
  566. </div>
  567. <div class="function-card">
  568. <div class="function-icon icon-bg-purple">
  569. <i class="fas fa-receipt"></i>
  570. </div>
  571. <div class="function-name">开票记录</div>
  572. <div class="function-desc">发票管理</div>
  573. <div class="status-indicator"></div>
  574. </div>
  575. </div>
  576. </div>
  577. <!-- 其他部分 -->
  578. <div class="function-section">
  579. <div class="function-header">
  580. <i class="fas fa-ellipsis-h"></i>
  581. <h2>其他</h2>
  582. </div>
  583. <div class="function-grid">
  584. <div class="function-card">
  585. <div class="function-icon icon-bg-green">
  586. <i class="fas fa-box"></i>
  587. </div>
  588. <div class="function-name">物品管理</div>
  589. <div class="function-desc">办公用品管理</div>
  590. <div class="status-indicator"></div>
  591. </div>
  592. <div class="function-card">
  593. <div class="function-icon icon-bg-purple">
  594. <i class="fas fa-truck"></i>
  595. </div>
  596. <div class="function-name">供应商</div>
  597. <div class="function-desc">供应商信息管理</div>
  598. <div class="status-indicator"></div>
  599. </div>
  600. <div class="function-card">
  601. <div class="function-icon icon-bg-blue">
  602. <i class="fas fa-clipboard-list"></i>
  603. </div>
  604. <div class="function-name">出库清单</div>
  605. <div class="function-desc">物品出库记录</div>
  606. <div class="status-indicator"></div>
  607. </div>
  608. <div class="function-card">
  609. <div class="function-icon icon-bg-pink">
  610. <i class="fas fa-concierge-bell"></i>
  611. </div>
  612. <div class="function-name">服务类型管理</div>
  613. <div class="function-desc">服务项目设置</div>
  614. <div class="status-indicator"></div>
  615. </div>
  616. </div>
  617. </div>
  618. </div>
  619. </div>
  620. </div>
  621. </div>
  622. <script>
  623. document.addEventListener('DOMContentLoaded', function() {
  624. // 添加卡片交互效果
  625. const cards = document.querySelectorAll('.function-card');
  626. cards.forEach(card => {
  627. card.addEventListener('click', function() {
  628. // 移除所有卡片的active类
  629. cards.forEach(c => c.classList.remove('active'));
  630. // 为当前卡片添加active类
  631. this.classList.add('active');
  632. // 获取功能名称
  633. const functionName = this.querySelector('.function-name').textContent;
  634. // 模拟打开功能页面
  635. alert(`正在打开: ${functionName} 功能`);
  636. });
  637. });
  638. // 添加悬停效果
  639. cards.forEach(card => {
  640. card.addEventListener('mouseenter', function() {
  641. this.style.transform = 'translateY(-5px)';
  642. });
  643. card.addEventListener('mouseleave', function() {
  644. this.style.transform = 'translateY(0)';
  645. });
  646. });
  647. // 侧边栏按钮效果
  648. const sideButtons = document.querySelectorAll('.btn-outline');
  649. sideButtons.forEach(btn => {
  650. btn.addEventListener('click', function() {
  651. const icon = this.querySelector('i').className;
  652. let action = '';
  653. if (icon.includes('file-invoice')) action = '本月报销';
  654. if (icon.includes('calendar-check')) action = '今日考勤';
  655. if (icon.includes('tasks')) action = '待办任务';
  656. alert(`正在打开: ${action}`);
  657. });
  658. });
  659. });
  660. </script>
  661. </body>
  662. </html>