支撑系统.html 49 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290
  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. <!-- 引入Swiper轮播库 -->
  8. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css">
  9. <!-- 引入ECharts数据可视化库 -->
  10. <script src="https://cdn.jsdelivr.net/npm/echarts@5.4.3/dist/echarts.min.js"></script>
  11. <!-- 引入Font Awesome图标 -->
  12. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
  13. <style>
  14. :root {
  15. --primary-blue: #2a5daa; /* 青花蓝 */
  16. --gold-yellow: #e8c34d; /* 稻穗金 */
  17. --porcelain-white: #f8f9fa; /* 瓷白 */
  18. --dark-charcoal: #333; /* 墨黑 */
  19. --mountain-green: #4a6b3d; /* 山林绿 */
  20. --river-blue: #4a86e8; /* 赣江蓝 */
  21. --ceramic-blue: #2a5daa; /* 陶瓷蓝 */
  22. --bamboo-green: #6b8e23; /* 竹编绿 */
  23. --porcelain-white: #f8f9fa; /* 瓷白 */
  24. --red-clay: #a52a2a; /* 红壤色 */
  25. }
  26. * {
  27. margin: 0;
  28. padding: 0;
  29. box-sizing: border-box;
  30. }
  31. body {
  32. font-family: 'Microsoft YaHei', 'Segoe UI', sans-serif;
  33. background: linear-gradient(135deg, #e6f0ff 0%, #f0f8ff 100%);
  34. color: var(--dark-charcoal);
  35. line-height: 1.6;
  36. overflow-x: hidden;
  37. background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="120" height="120" viewBox="0 0 120 120"><path d="M0,0 L120,0 L120,120 L0,120 Z" fill="none" stroke="%232a5daa11" stroke-width="0.5"/><path d="M20,20 Q50,10 80,20 T120,20" fill="none" stroke="%232a5daa22" stroke-width="0.3"/></svg>');
  38. }
  39. /* 顶部导航 */
  40. .header {
  41. background: rgba(255, 255, 255, 0.95);
  42. box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1);
  43. position: sticky;
  44. top: 0;
  45. z-index: 1000;
  46. padding: 0.8rem 5%;
  47. }
  48. .nav-container {
  49. display: flex;
  50. justify-content: space-between;
  51. align-items: center;
  52. }
  53. .logo {
  54. display: flex;
  55. align-items: center;
  56. }
  57. .logo-icon {
  58. width: 50px;
  59. height: 50px;
  60. background: var(--primary-blue);
  61. border-radius: 50%;
  62. position: relative;
  63. margin-right: 12px;
  64. display: flex;
  65. justify-content: center;
  66. align-items: center;
  67. color: white;
  68. font-size: 24px;
  69. box-shadow: 0 4px 8px rgba(42, 93, 170, 0.3);
  70. }
  71. .logo-text {
  72. font-size: 1.8rem;
  73. font-weight: bold;
  74. background: linear-gradient(45deg, var(--primary-blue), var(--river-blue));
  75. -webkit-background-clip: text;
  76. background-clip: text;
  77. color: transparent;
  78. letter-spacing: 1px;
  79. }
  80. .logo-subtext {
  81. font-size: 0.9rem;
  82. color: var(--primary-blue);
  83. margin-top: -4px;
  84. letter-spacing: 3px;
  85. }
  86. .nav-links {
  87. display: flex;
  88. gap: 2rem;
  89. }
  90. .nav-links a {
  91. text-decoration: none;
  92. color: var(--dark-charcoal);
  93. font-weight: 500;
  94. position: relative;
  95. padding: 0.5rem 0;
  96. transition: all 0.3s ease;
  97. }
  98. .nav-links a:hover {
  99. color: var(--primary-blue);
  100. }
  101. .nav-links a::after {
  102. content: '';
  103. position: absolute;
  104. bottom: 0;
  105. left: 0;
  106. width: 0;
  107. height: 2px;
  108. background: var(--primary-blue);
  109. transition: width 0.3s ease;
  110. }
  111. .nav-links a:hover::after {
  112. width: 100%;
  113. }
  114. /* 页面标题 */
  115. .page-header {
  116. padding: 3rem 5%;
  117. text-align: center;
  118. background: linear-gradient(120deg, rgba(42, 93, 170, 0.1), rgba(74, 107, 61, 0.1));
  119. position: relative;
  120. overflow: hidden;
  121. }
  122. .page-header::before {
  123. content: '';
  124. position: absolute;
  125. top: 0;
  126. left: 0;
  127. width: 100%;
  128. height: 100%;
  129. background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><path d="M20,20 Q40,5 60,20 T100,20 L100,80 L0,80 L0,20 Z" fill="none" stroke="%232a5daa22" stroke-width="0.5"/></svg>');
  130. opacity: 0.2;
  131. z-index: -1;
  132. }
  133. .page-title {
  134. font-size: 2.5rem;
  135. color: var(--primary-blue);
  136. margin-bottom: 1rem;
  137. position: relative;
  138. display: inline-block;
  139. }
  140. .page-title::after {
  141. content: '';
  142. position: absolute;
  143. bottom: -10px;
  144. left: 50%;
  145. transform: translateX(-50%);
  146. width: 80px;
  147. height: 4px;
  148. background: var(--gold-yellow);
  149. border-radius: 2px;
  150. }
  151. .page-subtitle {
  152. font-size: 1.2rem;
  153. color: var(--dark-charcoal);
  154. max-width: 800px;
  155. margin: 0 auto;
  156. line-height: 1.8;
  157. }
  158. /* 内容区域 */
  159. .content-section {
  160. padding: 3rem 5%;
  161. }
  162. .section-title {
  163. display: flex;
  164. align-items: center;
  165. margin-bottom: 2rem;
  166. }
  167. .section-title h2 {
  168. font-size: 1.8rem;
  169. color: var(--primary-blue);
  170. position: relative;
  171. padding-left: 1rem;
  172. }
  173. .section-title h2::before {
  174. content: '';
  175. position: absolute;
  176. left: 0;
  177. top: 50%;
  178. transform: translateY(-50%);
  179. width: 4px;
  180. height: 24px;
  181. background: var(--gold-yellow);
  182. border-radius: 2px;
  183. }
  184. .section-title .decor {
  185. flex: 1;
  186. height: 1px;
  187. background: linear-gradient(to right, var(--gold-yellow), transparent);
  188. margin-left: 1rem;
  189. }
  190. .cards-container {
  191. display: flex;
  192. flex-wrap: wrap;
  193. gap: 2rem;
  194. justify-content: center;
  195. }
  196. .card {
  197. flex: 1;
  198. min-width: 300px;
  199. background: white;
  200. border-radius: 12px;
  201. overflow: hidden;
  202. box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
  203. transition: all 0.3s ease;
  204. position: relative;
  205. }
  206. .card:hover {
  207. transform: translateY(-10px);
  208. box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15);
  209. }
  210. .card-header {
  211. padding: 1.5rem;
  212. background: var(--primary-blue);
  213. color: white;
  214. display: flex;
  215. align-items: center;
  216. position: relative;
  217. overflow: hidden;
  218. }
  219. .card-header::before {
  220. content: '';
  221. position: absolute;
  222. top: 0;
  223. left: 0;
  224. width: 100%;
  225. height: 100%;
  226. background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40"><path d="M0,0 L40,0 L40,40 L0,40 Z" fill="none" stroke="white" stroke-width="0.5" stroke-dasharray="5,3"/></svg>');
  227. opacity: 0.1;
  228. }
  229. .card-header i {
  230. font-size: 1.5rem;
  231. margin-right: 0.8rem;
  232. z-index: 1;
  233. }
  234. .card-header h3 {
  235. z-index: 1;
  236. }
  237. .card-body {
  238. padding: 1.5rem;
  239. }
  240. /* 智能中台特定样式 */
  241. .intelligent-platform .card-header {
  242. background: linear-gradient(90deg, var(--primary-blue), #3a6ac0);
  243. }
  244. /* 数据治理特定样式 */
  245. .data-governance .card-header {
  246. background: linear-gradient(90deg, var(--mountain-green), #5d8c5a);
  247. }
  248. /* 权限管理特定样式 */
  249. .permission-management .card-header {
  250. background: linear-gradient(90deg, #8b4513, var(--red-clay));
  251. }
  252. /* 控制台区域 */
  253. .console-area {
  254. background: var(--porcelain-white);
  255. border-radius: 8px;
  256. padding: 1.5rem;
  257. margin-bottom: 1.5rem;
  258. box-shadow: inset 0 0 10px rgba(0,0,0,0.05);
  259. position: relative;
  260. min-height: 300px;
  261. }
  262. /* 江西星象图背景 */
  263. .star-map-bg {
  264. position: absolute;
  265. top: 0;
  266. left: 0;
  267. width: 100%;
  268. height: 100%;
  269. background-image: radial-gradient(white 1px, transparent 1px),
  270. radial-gradient(white 1px, transparent 1px);
  271. background-size: 30px 30px;
  272. background-position: 0 0, 15px 15px;
  273. opacity: 0.1;
  274. z-index: 0;
  275. }
  276. /* 模型训练区 */
  277. .training-area {
  278. display: flex;
  279. flex-direction: column;
  280. align-items: center;
  281. margin-top: 1rem;
  282. }
  283. .training-visual {
  284. width: 200px;
  285. height: 200px;
  286. border-radius: 50%;
  287. background: linear-gradient(135deg, #f8f9fa, #e9ecef);
  288. display: flex;
  289. justify-content: center;
  290. align-items: center;
  291. position: relative;
  292. overflow: hidden;
  293. margin-bottom: 1.5rem;
  294. box-shadow: 0 5px 15px rgba(0,0,0,0.1);
  295. }
  296. .training-visual::before {
  297. content: '';
  298. position: absolute;
  299. top: 0;
  300. left: 0;
  301. width: 100%;
  302. height: 100%;
  303. background: conic-gradient(var(--primary-blue) 0% 25%, var(--gold-yellow) 25% 50%, var(--mountain-green) 50% 75%, var(--red-clay) 75% 100%);
  304. mask: radial-gradient(transparent 70px, black 71px);
  305. animation: rotate 10s linear infinite;
  306. }
  307. @keyframes rotate {
  308. from { transform: rotate(0deg); }
  309. to { transform: rotate(360deg); }
  310. }
  311. .training-visual i {
  312. font-size: 3rem;
  313. color: var(--primary-blue);
  314. z-index: 1;
  315. }
  316. /* 数据管道 */
  317. .data-pipeline {
  318. display: flex;
  319. justify-content: space-between;
  320. align-items: center;
  321. margin: 1.5rem 0;
  322. position: relative;
  323. }
  324. .pipeline-step {
  325. flex: 1;
  326. text-align: center;
  327. padding: 1rem;
  328. background: white;
  329. border-radius: 8px;
  330. box-shadow: 0 3px 10px rgba(0,0,0,0.08);
  331. z-index: 1;
  332. position: relative;
  333. }
  334. .pipeline-connector {
  335. position: absolute;
  336. top: 50%;
  337. left: 0;
  338. width: 100%;
  339. height: 4px;
  340. background: linear-gradient(to right, var(--bamboo-green), var(--gold-yellow));
  341. z-index: 0;
  342. }
  343. .pipeline-step i {
  344. font-size: 2rem;
  345. color: var(--bamboo-green);
  346. margin-bottom: 0.5rem;
  347. }
  348. /* 权限矩阵 */
  349. .permission-matrix {
  350. display: grid;
  351. grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  352. gap: 1rem;
  353. margin-top: 1rem;
  354. }
  355. .permission-item {
  356. background: white;
  357. border-radius: 8px;
  358. padding: 1rem;
  359. text-align: center;
  360. box-shadow: 0 3px 10px rgba(0,0,0,0.08);
  361. transition: all 0.3s ease;
  362. cursor: pointer;
  363. position: relative;
  364. overflow: hidden;
  365. }
  366. .permission-item::before {
  367. content: '';
  368. position: absolute;
  369. top: 0;
  370. left: 0;
  371. width: 100%;
  372. height: 4px;
  373. }
  374. .permission-item.gov::before {
  375. background: linear-gradient(to right, var(--primary-blue), #3a6ac0);
  376. }
  377. .permission-item.uni::before {
  378. background: linear-gradient(to right, var(--gold-yellow), #f0c050);
  379. }
  380. .permission-item.public::before {
  381. background: linear-gradient(to right, var(--mountain-green), #5d8c5a);
  382. }
  383. .permission-item:hover {
  384. transform: translateY(-5px);
  385. box-shadow: 0 8px 15px rgba(0,0,0,0.1);
  386. }
  387. .permission-item i {
  388. font-size: 1.5rem;
  389. margin-bottom: 0.5rem;
  390. }
  391. /* 页脚 */
  392. .footer {
  393. background: var(--dark-charcoal);
  394. color: white;
  395. padding: 3rem 5% 2rem;
  396. margin-top: 3rem;
  397. }
  398. .footer-content {
  399. display: flex;
  400. flex-wrap: wrap;
  401. gap: 3rem;
  402. margin-bottom: 2rem;
  403. }
  404. .footer-column {
  405. flex: 1;
  406. min-width: 200px;
  407. }
  408. .footer-column h3 {
  409. color: var(--gold-yellow);
  410. margin-bottom: 1.5rem;
  411. position: relative;
  412. padding-bottom: 0.5rem;
  413. }
  414. .footer-column h3::after {
  415. content: '';
  416. position: absolute;
  417. bottom: 0;
  418. left: 0;
  419. width: 40px;
  420. height: 2px;
  421. background: var(--gold-yellow);
  422. }
  423. .footer-column ul {
  424. list-style: none;
  425. }
  426. .footer-column ul li {
  427. margin-bottom: 0.8rem;
  428. }
  429. .footer-column a {
  430. color: #ddd;
  431. text-decoration: none;
  432. transition: color 0.3s ease;
  433. }
  434. .footer-column a:hover {
  435. color: var(--gold-yellow);
  436. }
  437. .copyright {
  438. text-align: center;
  439. padding-top: 2rem;
  440. border-top: 1px solid #444;
  441. color: #aaa;
  442. font-size: 0.9rem;
  443. }
  444. /* 动画效果 */
  445. @keyframes float {
  446. 0% { transform: translateY(0px); }
  447. 50% { transform: translateY(-10px); }
  448. 100% { transform: translateY(0px); }
  449. }
  450. .floating {
  451. animation: float 3s ease-in-out infinite;
  452. }
  453. /* 响应式设计 */
  454. @media (max-width: 768px) {
  455. .nav-links {
  456. display: none;
  457. }
  458. .cards-container {
  459. flex-direction: column;
  460. }
  461. .card {
  462. min-width: 100%;
  463. }
  464. .data-pipeline {
  465. flex-direction: column;
  466. gap: 1rem;
  467. }
  468. .pipeline-connector {
  469. display: none;
  470. }
  471. }
  472. /* 赣绣金线纹效果 */
  473. .gold-thread {
  474. position: relative;
  475. }
  476. .gold-thread::after {
  477. content: '';
  478. position: absolute;
  479. top: 0;
  480. left: 0;
  481. width: 100%;
  482. height: 100%;
  483. background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><path d="M0,10 L20,10 M10,0 L10,20" stroke="%23e8c34d" stroke-width="0.3" opacity="0.3"/></svg>');
  484. pointer-events: none;
  485. }
  486. /* 瑞昌剪纸纹样 */
  487. .paper-cut {
  488. position: relative;
  489. }
  490. .paper-cut::before {
  491. content: '';
  492. position: absolute;
  493. top: 0;
  494. left: 0;
  495. width: 100%;
  496. height: 100%;
  497. background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40"><path d="M10,10 C15,5 25,5 30,10 C35,15 35,25 30,30 C25,35 15,35 10,30 C5,25 5,15 10,10 Z" fill="none" stroke="%23a52a2a" stroke-width="0.5" opacity="0.2"/></svg>');
  498. pointer-events: none;
  499. }
  500. /* 乐安竹编效果 */
  501. .bamboo-weave {
  502. background-image: linear-gradient(45deg, var(--bamboo-green) 25%, transparent 25%, transparent 75%, var(--bamboo-green) 75%, var(--bamboo-green)),
  503. linear-gradient(45deg, var(--bamboo-green) 25%, transparent 25%, transparent 75%, var(--bamboo-green) 75%, var(--bamboo-green));
  504. background-size: 20px 20px;
  505. background-position: 0 0, 10px 10px;
  506. opacity: 0.1;
  507. position: absolute;
  508. top: 0;
  509. left: 0;
  510. width: 100%;
  511. height: 100%;
  512. pointer-events: none;
  513. }
  514. /* 江西围屋防御体系 */
  515. .fortification {
  516. position: relative;
  517. border: 2px solid var(--red-clay);
  518. border-radius: 8px;
  519. }
  520. .fortification::before {
  521. content: '';
  522. position: absolute;
  523. top: 5px;
  524. left: 5px;
  525. right: 5px;
  526. bottom: 5px;
  527. border: 1px solid var(--red-clay);
  528. border-radius: 5px;
  529. pointer-events: none;
  530. }
  531. /* 按钮样式 */
  532. .btn {
  533. background: var(--primary-blue);
  534. color: white;
  535. border: none;
  536. padding: 0.8rem 1.5rem;
  537. border-radius: 30px;
  538. cursor: pointer;
  539. font-weight: bold;
  540. transition: all 0.3s ease;
  541. display: inline-flex;
  542. align-items: center;
  543. gap: 0.5rem;
  544. }
  545. .btn:hover {
  546. background: #1a4a9a;
  547. transform: translateY(-2px);
  548. box-shadow: 0 5px 15px rgba(42, 93, 170, 0.3);
  549. }
  550. .btn i {
  551. font-size: 1.2rem;
  552. }
  553. </style>
  554. </head>
  555. <body>
  556. <!-- 顶部导航 -->
  557. <header class="header">
  558. <div class="nav-container">
  559. <div class="logo">
  560. <div class="logo-icon">
  561. <i class="fas fa-server"></i>
  562. </div>
  563. <div>
  564. <div class="logo-text">支撑系统</div>
  565. <div class="logo-subtext">TECHNICAL BACKEND</div>
  566. </div>
  567. </div>
  568. <nav class="nav-links">
  569. <a href="#">首页</a>
  570. <a href="#">数智共创</a>
  571. <a href="#">协会业务</a>
  572. <a href="#">会员服务</a>
  573. <a href="#" style="color: var(--primary-blue);">支撑系统</a>
  574. <a href="#">关于我们</a>
  575. </nav>
  576. </div>
  577. </header>
  578. <!-- 页面标题 -->
  579. <section class="page-header">
  580. <h1 class="page-title">技术支撑系统</h1>
  581. <p class="page-subtitle">基于江西文化特色的智能技术后台,融合青花瓷、赣绣、竹编等传统元素,打造安全高效的数字文化支撑平台</p>
  582. </section>
  583. <!-- 智能中台 -->
  584. <section class="content-section intelligent-platform">
  585. <div class="section-title">
  586. <h2>智能中台</h2>
  587. <div class="decor"></div>
  588. </div>
  589. <div class="cards-container">
  590. <div class="card gold-thread">
  591. <div class="card-header">
  592. <i class="fas fa-brain"></i>
  593. <h3>大模型控制台</h3>
  594. </div>
  595. <div class="card-body">
  596. <div class="console-area">
  597. <div class="star-map-bg"></div>
  598. <h4>文旅专用大模型</h4>
  599. <p>基于江西文化数据训练的专用大模型,支持多模态处理</p>
  600. <div class="training-area">
  601. <div class="training-visual">
  602. <i class="fas fa-atom"></i>
  603. </div>
  604. <p>模型训练中 - 当前进度: 78%</p>
  605. <button class="btn" id="startTraining">
  606. <i class="fas fa-play"></i> 启动训练
  607. </button>
  608. </div>
  609. <div class="data-pipeline">
  610. <div class="pipeline-step">
  611. <i class="fas fa-database"></i>
  612. <div>数据输入</div>
  613. </div>
  614. <div class="pipeline-step">
  615. <i class="fas fa-cogs"></i>
  616. <div>特征提取</div>
  617. </div>
  618. <div class="pipeline-step">
  619. <i class="fas fa-network-wired"></i>
  620. <div>模型训练</div>
  621. </div>
  622. <div class="pipeline-step">
  623. <i class="fas fa-rocket"></i>
  624. <div>部署上线</div>
  625. </div>
  626. <div class="pipeline-connector"></div>
  627. </div>
  628. </div>
  629. </div>
  630. </div>
  631. <div class="card">
  632. <div class="card-header">
  633. <i class="fas fa-project-diagram"></i>
  634. <h3>知识图谱编辑器</h3>
  635. </div>
  636. <div class="card-body">
  637. <div class="console-area" style="min-height: 400px;">
  638. <div id="knowledgeGraph" style="width: 100%; height: 350px;"></div>
  639. </div>
  640. <button class="btn">
  641. <i class="fas fa-save"></i> 保存图谱
  642. </button>
  643. </div>
  644. </div>
  645. <div class="card paper-cut">
  646. <div class="card-header">
  647. <i class="fas fa-mobile-alt"></i>
  648. <h3>多终端模拟器</h3>
  649. </div>
  650. <div class="card-body">
  651. <div class="console-area">
  652. <h4>设备适配预览</h4>
  653. <p>瑞昌剪纸纹样装饰边框,实时预览多端效果</p>
  654. <div style="display: flex; justify-content: space-around; flex-wrap: wrap; gap: 1rem; margin-top: 1.5rem;">
  655. <div style="position: relative;">
  656. <div style="width: 80px; height: 160px; background: #f0f0f0; border-radius: 12px; padding: 10px; box-shadow: 0 5px 15px rgba(0,0,0,0.1);">
  657. <div style="width: 100%; height: 100%; background: linear-gradient(135deg, var(--primary-blue), var(--river-blue)); border-radius: 6px;"></div>
  658. </div>
  659. <div style="position: absolute; top: -10px; left: -10px; right: -10px; bottom: -10px; border: 2px solid var(--red-clay); border-radius: 16px; pointer-events: none;"></div>
  660. <div style="text-align: center; margin-top: 10px;">手机端</div>
  661. </div>
  662. <div style="position: relative;">
  663. <div style="width: 150px; height: 100px; background: #f0f0f0; border-radius: 8px; padding: 10px; box-shadow: 0 5px 15px rgba(0,0,0,0.1);">
  664. <div style="width: 100%; height: 100%; background: linear-gradient(135deg, var(--mountain-green), #5d8c5a); border-radius: 4px;"></div>
  665. </div>
  666. <div style="position: absolute; top: -8px; left: -8px; right: -8px; bottom: -8px; border: 2px solid var(--red-clay); border-radius: 12px; pointer-events: none;"></div>
  667. <div style="text-align: center; margin-top: 10px;">平板端</div>
  668. </div>
  669. <div style="position: relative;">
  670. <div style="width: 180px; height: 120px; background: #f0f0f0; border-radius: 4px; padding: 10px; box-shadow: 0 5px 15px rgba(0,0,0,0.1);">
  671. <div style="width: 100%; height: 100%; background: linear-gradient(135deg, var(--gold-yellow), #f0c050); border-radius: 2px;"></div>
  672. </div>
  673. <div style="position: absolute; top: -6px; left: -6px; right: -6px; bottom: -6px; border: 2px solid var(--red-clay); border-radius: 8px; pointer-events: none;"></div>
  674. <div style="text-align: center; margin-top: 10px;">桌面端</div>
  675. </div>
  676. </div>
  677. </div>
  678. </div>
  679. </div>
  680. </div>
  681. </section>
  682. <!-- 数据治理 -->
  683. <section class="content-section data-governance">
  684. <div class="section-title">
  685. <h2>数据治理</h2>
  686. <div class="decor"></div>
  687. </div>
  688. <div class="cards-container">
  689. <div class="card">
  690. <div class="card-header">
  691. <i class="fas fa-filter"></i>
  692. <h3>数据清洗工作流</h3>
  693. </div>
  694. <div class="card-body">
  695. <div class="console-area">
  696. <div style="position: relative; height: 100%;">
  697. <div class="bamboo-weave"></div>
  698. <h4>抚河古水道式数据处理</h4>
  699. <p>数据如同水流,经过多级处理净化</p>
  700. <div style="margin-top: 1.5rem; background: white; border-radius: 8px; padding: 1rem; box-shadow: 0 3px 10px rgba(0,0,0,0.05);">
  701. <div style="display: flex; justify-content: space-between; margin-bottom: 0.5rem;">
  702. <span>数据清洗进度</span>
  703. <span>75%</span>
  704. </div>
  705. <div style="height: 10px; background: #f0f0f0; border-radius: 5px; overflow: hidden;">
  706. <div style="height: 100%; width: 75%; background: linear-gradient(to right, var(--bamboo-green), var(--mountain-green)); border-radius: 5px;"></div>
  707. </div>
  708. </div>
  709. <div style="display: flex; justify-content: center; margin-top: 2rem;">
  710. <div style="display: flex; flex-direction: column; align-items: center; margin: 0 1.5rem;">
  711. <div style="width: 80px; height: 80px; border-radius: 50%; background: #f0f0f0; display: flex; justify-content: center; align-items: center; margin-bottom: 1rem;">
  712. <i class="fas fa-seedling" style="font-size: 2rem; color: var(--bamboo-green);"></i>
  713. </div>
  714. <div>樟树药材筛选算法</div>
  715. </div>
  716. </div>
  717. </div>
  718. </div>
  719. <button class="btn" style="background: var(--mountain-green);">
  720. <i class="fas fa-play-circle"></i> 启动清洗
  721. </button>
  722. </div>
  723. </div>
  724. <div class="card">
  725. <div class="card-header">
  726. <i class="fab fa-bitcoin"></i>
  727. <h3>区块链存证系统</h3>
  728. </div>
  729. <div class="card-body">
  730. <div class="console-area">
  731. <div id="blockchainView" style="width: 100%; height: 300px;"></div>
  732. </div>
  733. <div style="display: flex; gap: 1rem; margin-top: 1rem;">
  734. <button class="btn" style="background: var(--mountain-green);">
  735. <i class="fas fa-plus-circle"></i> 新增区块
  736. </button>
  737. <button class="btn" style="background: var(--gold-yellow); color: #333;">
  738. <i class="fas fa-search"></i> 验证数据
  739. </button>
  740. </div>
  741. </div>
  742. </div>
  743. <div class="card">
  744. <div class="card-header">
  745. <i class="fas fa-shield-alt"></i>
  746. <h3>敏感词过滤系统</h3>
  747. </div>
  748. <div class="card-body">
  749. <div class="console-area">
  750. <h4>景德镇窑变釉色彩敏感词云</h4>
  751. <div id="sensitiveWordCloud" style="width: 100%; height: 250px;"></div>
  752. <div style="margin-top: 1rem;">
  753. <input type="text" id="wordInput" placeholder="输入内容进行检测..." style="width: 100%; padding: 0.8rem; border: 1px solid #ddd; border-radius: 4px;">
  754. <button id="checkBtn" style="margin-top: 0.5rem; width: 100%; padding: 0.8rem; background: var(--primary-blue); color: white; border: none; border-radius: 4px; cursor: pointer;">
  755. 检测敏感词
  756. </button>
  757. </div>
  758. </div>
  759. </div>
  760. </div>
  761. </div>
  762. </section>
  763. <!-- 权限管理 -->
  764. <section class="content-section permission-management">
  765. <div class="section-title">
  766. <h2>权限管理</h2>
  767. <div class="decor"></div>
  768. </div>
  769. <div class="cards-container">
  770. <div class="card fortification">
  771. <div class="card-header">
  772. <i class="fas fa-shield-alt"></i>
  773. <h3>权限矩阵</h3>
  774. </div>
  775. <div class="card-body">
  776. <div class="console-area">
  777. <h4>江西围屋防御体系式权限管理</h4>
  778. <p>多层防御,分级控制,确保系统安全</p>
  779. <div class="permission-matrix">
  780. <div class="permission-item gov">
  781. <i class="fas fa-landmark"></i>
  782. <div>政府监管</div>
  783. <small>数据访问控制</small>
  784. </div>
  785. <div class="permission-item uni">
  786. <i class="fas fa-university"></i>
  787. <div>高校教研</div>
  788. <small>教研权限</small>
  789. </div>
  790. <div class="permission-item public">
  791. <i class="fas fa-users"></i>
  792. <div>公众创作</div>
  793. <small>创作权限</small>
  794. </div>
  795. <div class="permission-item gov">
  796. <i class="fas fa-database"></i>
  797. <div>数据管理</div>
  798. <small>数据监管</small>
  799. </div>
  800. <div class="permission-item uni">
  801. <i class="fas fa-book"></i>
  802. <div>课程编辑</div>
  803. <small>课程权限</small>
  804. </div>
  805. <div class="permission-item public">
  806. <i class="fas fa-edit"></i>
  807. <div>内容创作</div>
  808. <small>编辑权限</small>
  809. </div>
  810. <div class="permission-item gov">
  811. <i class="fas fa-chart-bar"></i>
  812. <div>统计分析</div>
  813. <small>分析权限</small>
  814. </div>
  815. <div class="permission-item uni">
  816. <i class="fas fa-flask"></i>
  817. <div>研究数据</div>
  818. <small>研究权限</small>
  819. </div>
  820. </div>
  821. </div>
  822. <button class="btn" style="background: var(--red-clay);">
  823. <i class="fas fa-sync-alt"></i> 更新权限
  824. </button>
  825. </div>
  826. </div>
  827. <div class="card">
  828. <div class="card-header">
  829. <i class="fas fa-user-tag"></i>
  830. <h3>角色分配器</h3>
  831. </div>
  832. <div class="card-body">
  833. <div class="console-area">
  834. <h4>分级用户角色管理</h4>
  835. <div style="display: flex; flex-wrap: wrap; gap: 1.5rem; justify-content: center; margin-top: 1rem;">
  836. <div style="text-align: center;">
  837. <div style="width: 100px; height: 100px; border-radius: 50%; border: 3px solid var(--primary-blue); padding: 5px; position: relative;">
  838. <div style="width: 100%; height: 100%; border-radius: 50%; background: #f0f0f0; display: flex; justify-content: center; align-items: center; overflow: hidden;">
  839. <i class="fas fa-user" style="font-size: 2.5rem; color: var(--primary-blue);"></i>
  840. </div>
  841. <div style="position: absolute; top: -5px; right: -5px; width: 25px; height: 25px; background: var(--primary-blue); border-radius: 50%; display: flex; justify-content: center; align-items: center; color: white;">
  842. <i class="fas fa-crown"></i>
  843. </div>
  844. </div>
  845. <div style="margin-top: 0.5rem; font-weight: bold;">政府级</div>
  846. <div style="font-size: 0.9rem; color: var(--primary-blue);">青花云纹边框</div>
  847. </div>
  848. <div style="text-align: center;">
  849. <div style="width: 100px; height: 100px; border-radius: 50%; border: 3px solid var(--gold-yellow); padding: 5px; position: relative;">
  850. <div style="width: 100%; height: 100%; border-radius: 50%; background: #f0f0f0; display: flex; justify-content: center; align-items: center; overflow: hidden;">
  851. <i class="fas fa-user-graduate" style="font-size: 2.5rem; color: var(--gold-yellow);"></i>
  852. </div>
  853. <div style="position: absolute; top: -5px; right: -5px; width: 25px; height: 25px; background: var(--gold-yellow); border-radius: 50%; display: flex; justify-content: center; align-items: center; color: white;">
  854. <i class="fas fa-book"></i>
  855. </div>
  856. </div>
  857. <div style="margin-top: 0.5rem; font-weight: bold;">高校级</div>
  858. <div style="font-size: 0.9rem; color: var(--gold-yellow);">稻穗金边边框</div>
  859. </div>
  860. <div style="text-align: center;">
  861. <div style="width: 100px; height: 100px; border-radius: 50%; border: 3px solid var(--mountain-green); padding: 5px;">
  862. <div style="width: 100%; height: 100%; border-radius: 50%; background: #f0f0f0; display: flex; justify-content: center; align-items: center; overflow: hidden;">
  863. <i class="fas fa-user-friends" style="font-size: 2.5rem; color: var(--mountain-green);"></i>
  864. </div>
  865. </div>
  866. <div style="margin-top: 0.5rem; font-weight: bold;">公众级</div>
  867. <div style="font-size: 0.9rem; color: var(--mountain-green);">创作权限</div>
  868. </div>
  869. </div>
  870. </div>
  871. <button class="btn" style="background: var(--red-clay);">
  872. <i class="fas fa-user-plus"></i> 添加角色
  873. </button>
  874. </div>
  875. </div>
  876. </div>
  877. </section>
  878. <!-- 页脚 -->
  879. <footer class="footer">
  880. <div class="footer-content">
  881. <div class="footer-column">
  882. <h3>网站导航</h3>
  883. <ul>
  884. <li><a href="#">首页</a></li>
  885. <li><a href="#">数智共创平台</a></li>
  886. <li><a href="#">协会核心业务</a></li>
  887. <li><a href="#">会员服务</a></li>
  888. <li><a href="#">支撑系统</a></li>
  889. </ul>
  890. </div>
  891. <div class="footer-column">
  892. <h3>技术资源</h3>
  893. <ul>
  894. <li><a href="#">智能中台文档</a></li>
  895. <li><a href="#">数据治理指南</a></li>
  896. <li><a href="#">权限管理手册</a></li>
  897. <li><a href="#">API接口文档</a></li>
  898. <li><a href="#">系统更新日志</a></li>
  899. </ul>
  900. </div>
  901. <div class="footer-column">
  902. <h3>联系我们</h3>
  903. <ul>
  904. <li><i class="fas fa-map-marker-alt"></i> 江西省南昌市红谷滩区</li>
  905. <li><i class="fas fa-phone"></i> 0791-12345678</li>
  906. <li><i class="fas fa-envelope"></i> tech@jxculture.cn</li>
  907. <li><i class="fab fa-weixin"></i> 江西数字技术</li>
  908. </ul>
  909. </div>
  910. <div class="footer-column">
  911. <h3>技术支持</h3>
  912. <ul>
  913. <li><a href="#">在线客服</a></li>
  914. <li><a href="#">技术论坛</a></li>
  915. <li><a href="#">问题反馈</a></li>
  916. <li><a href="#">培训教程</a></li>
  917. </ul>
  918. </div>
  919. </div>
  920. <div class="copyright">
  921. © 2023 江西数字文化发展协会 技术支持中心 | 赣ICP备87654321号
  922. </div>
  923. </footer>
  924. <!-- 引入Swiper JS -->
  925. <script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
  926. <script>
  927. // 初始化知识图谱
  928. const knowledgeGraph = echarts.init(document.getElementById('knowledgeGraph'));
  929. knowledgeGraph.setOption({
  930. tooltip: {},
  931. legend: {
  932. data: ['红色文化', '水文化', '非遗文化']
  933. },
  934. animationDurationUpdate: 1500,
  935. animationEasingUpdate: 'quinticInOut',
  936. series: [{
  937. type: 'graph',
  938. layout: 'force',
  939. force: {
  940. repulsion: 300,
  941. edgeLength: 100
  942. },
  943. roam: true,
  944. label: {
  945. show: true
  946. },
  947. data: [{
  948. name: '江西文化',
  949. symbolSize: 50,
  950. category: 0,
  951. itemStyle: {
  952. color: '#e8c34d'
  953. }
  954. }, {
  955. name: '红色文化',
  956. symbolSize: 30,
  957. category: 0,
  958. itemStyle: {
  959. color: '#a52a2a'
  960. }
  961. }, {
  962. name: '井冈山',
  963. symbolSize: 20,
  964. category: 0
  965. }, {
  966. name: '南昌起义',
  967. symbolSize: 20,
  968. category: 0
  969. }, {
  970. name: '水文化',
  971. symbolSize: 30,
  972. category: 1,
  973. itemStyle: {
  974. color: '#2a5daa'
  975. }
  976. }, {
  977. name: '鄱阳湖',
  978. symbolSize: 25,
  979. category: 1
  980. }, {
  981. name: '赣江',
  982. symbolSize: 20,
  983. category: 1
  984. }, {
  985. name: '非遗文化',
  986. symbolSize: 30,
  987. category: 2,
  988. itemStyle: {
  989. color: '#4a6b3d'
  990. }
  991. }, {
  992. name: '景德镇陶瓷',
  993. symbolSize: 25,
  994. category: 2
  995. }, {
  996. name: '赣绣',
  997. symbolSize: 20,
  998. category: 2
  999. }, {
  1000. name: '采茶戏',
  1001. symbolSize: 20,
  1002. category: 2
  1003. }],
  1004. categories: [{
  1005. name: '红色文化'
  1006. }, {
  1007. name: '水文化'
  1008. }, {
  1009. name: '非遗文化'
  1010. }],
  1011. links: [{
  1012. source: '江西文化',
  1013. target: '红色文化'
  1014. }, {
  1015. source: '江西文化',
  1016. target: '水文化'
  1017. }, {
  1018. source: '江西文化',
  1019. target: '非遗文化'
  1020. }, {
  1021. source: '红色文化',
  1022. target: '井冈山'
  1023. }, {
  1024. source: '红色文化',
  1025. target: '南昌起义'
  1026. }, {
  1027. source: '水文化',
  1028. target: '鄱阳湖'
  1029. }, {
  1030. source: '水文化',
  1031. target: '赣江'
  1032. }, {
  1033. source: '非遗文化',
  1034. target: '景德镇陶瓷'
  1035. }, {
  1036. source: '非遗文化',
  1037. target: '赣绣'
  1038. }, {
  1039. source: '非遗文化',
  1040. target: '采茶戏'
  1041. }],
  1042. lineStyle: {
  1043. opacity: 0.9,
  1044. width: 2,
  1045. curveness: 0.1,
  1046. color: '#e8c34d'
  1047. }
  1048. }]
  1049. });
  1050. // 初始化区块链视图
  1051. const blockchainChart = echarts.init(document.getElementById('blockchainView'));
  1052. blockchainChart.setOption({
  1053. tooltip: {
  1054. trigger: 'axis',
  1055. axisPointer: {
  1056. type: 'shadow'
  1057. }
  1058. },
  1059. grid: {
  1060. left: '3%',
  1061. right: '4%',
  1062. bottom: '3%',
  1063. containLabel: true
  1064. },
  1065. xAxis: {
  1066. type: 'category',
  1067. data: ['区块1', '区块2', '区块3', '区块4', '区块5', '区块6', '区块7']
  1068. },
  1069. yAxis: {
  1070. type: 'value',
  1071. name: '存储量(MB)'
  1072. },
  1073. series: [
  1074. {
  1075. name: '文化数据',
  1076. type: 'bar',
  1077. data: [320, 302, 341, 374, 390, 450, 420],
  1078. itemStyle: {
  1079. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1080. {offset: 0, color: '#4a6b3d'},
  1081. {offset: 1, color: '#6b8e23'}
  1082. ])
  1083. }
  1084. }
  1085. ]
  1086. });
  1087. // 初始化敏感词云
  1088. const wordCloud = echarts.init(document.getElementById('sensitiveWordCloud'));
  1089. wordCloud.setOption({
  1090. tooltip: {},
  1091. series: [{
  1092. type: 'wordCloud',
  1093. shape: 'circle',
  1094. left: 'center',
  1095. top: 'center',
  1096. width: '90%',
  1097. height: '90%',
  1098. sizeRange: [12, 50],
  1099. rotationRange: [0, 0],
  1100. rotationStep: 45,
  1101. gridSize: 8,
  1102. drawOutOfBound: false,
  1103. textStyle: {
  1104. color: function () {
  1105. // 景德镇窑变釉色彩
  1106. const colors = ['#c53d3d', '#d9822b', '#e8c34d', '#4a6b3d', '#2a5daa', '#7e3f8a'];
  1107. return colors[Math.floor(Math.random() * colors.length)];
  1108. }
  1109. },
  1110. emphasis: {
  1111. textStyle: {
  1112. shadowBlur: 10,
  1113. shadowColor: '#333'
  1114. }
  1115. },
  1116. data: [
  1117. {name: '政治', value: 100},
  1118. {name: '暴力', value: 80},
  1119. {name: '色情', value: 70},
  1120. {name: '宗教', value: 60},
  1121. {name: '歧视', value: 50},
  1122. {name: '违法', value: 40},
  1123. {name: '攻击', value: 35},
  1124. {name: '谣言', value: 30},
  1125. {name: '欺诈', value: 25},
  1126. {name: '隐私', value: 20}
  1127. ]
  1128. }]
  1129. });
  1130. // 添加敏感词检测交互
  1131. document.getElementById('checkBtn').addEventListener('click', function() {
  1132. const input = document.getElementById('wordInput').value;
  1133. if (!input) return;
  1134. // 模拟检测结果
  1135. const sensitiveWords = ['政治', '暴力', '色情', '宗教', '歧视'];
  1136. const foundWords = sensitiveWords.filter(word => input.includes(word));
  1137. if (foundWords.length > 0) {
  1138. alert(`检测到敏感词: ${foundWords.join(', ')}`);
  1139. // 触发赣傩鼓声警报效果
  1140. const alertBox = document.createElement('div');
  1141. alertBox.innerHTML = '<div style="position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(197, 61, 61, 0.7); z-index: 2000; display: flex; justify-content: center; align-items: center; animation: pulse 0.5s 3;"><div style="background: white; padding: 2rem; border-radius: 8px; text-align: center;"><i class="fas fa-drum" style="font-size: 3rem; color: #c53d3d;"></i><h3 style="margin: 1rem 0;">检测到敏感内容!</h3><p>请修改输入内容</p></div></div>';
  1142. document.body.appendChild(alertBox);
  1143. // 3秒后移除
  1144. setTimeout(() => {
  1145. alertBox.remove();
  1146. }, 3000);
  1147. } else {
  1148. alert('内容安全,未检测到敏感词');
  1149. }
  1150. });
  1151. // 添加模型训练启动效果
  1152. document.getElementById('startTraining').addEventListener('click', function() {
  1153. const btn = this;
  1154. btn.innerHTML = '<i class="fas fa-sync fa-spin"></i> 训练中...';
  1155. btn.disabled = true;
  1156. // 模拟训练过程
  1157. setTimeout(() => {
  1158. btn.innerHTML = '<i class="fas fa-check"></i> 训练完成';
  1159. btn.style.background = '#4a6b3d';
  1160. // 显示炼丹成功效果
  1161. const successEffect = document.createElement('div');
  1162. successEffect.innerHTML = '<div style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(circle, rgba(232,195,77,0.5) 0%, transparent 70%); z-index: 10; pointer-events: none;"></div>';
  1163. document.querySelector('.training-visual').appendChild(successEffect);
  1164. }, 3000);
  1165. });
  1166. // 响应窗口大小变化
  1167. window.addEventListener('resize', function() {
  1168. knowledgeGraph.resize();
  1169. blockchainChart.resize();
  1170. wordCloud.resize();
  1171. });
  1172. </script>
  1173. </body>
  1174. </html>