...
 
Commits (58)
    https://gitcode.net/qq_30777639/pairproject/-/commit/c6aa6f55ec8ab7374aecd9da3b0d5c358d59688c tess submit 2022-03-20T21:14:59+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/d31eb16959bb4c095cde83aebf49cdb4e9f5be33 basic map 2022-03-20T23:10:32+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/26b7a66733a3b2f6be984eab85c7ddc59cd3ae89 测试div分支 2022-03-21T00:59:40+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/1648eed81e8ad32b3b277e97f783dfb295f3cfc8 basic map 2022-03-21T01:00:38+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/9fb414503880e60153b7a9a8d87c676f7485373c 创建奖牌榜 2022-03-21T08:44:44+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/6048c9a51af5049a95e309121788f2390c76e7f8 导航栏 2022-03-21T10:34:40+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/ced1d63486d6902afa5c510847f33fe795396452 导航栏CSS 2022-03-21T10:38:04+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/02c38544bffefbb4680b1c06f1cdd0c47b1566f3 删除 index.pb 2022-03-21T10:40:36+08:00 焦伦韶 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/1c64a69c0f485980f7ca1b847f120c5784cb4df4 删除 .gitignore 2022-03-21T10:40:48+08:00 焦伦韶 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/33bbe79a5f1e796d27949fb8615af672546469f6 删除 misc.xml 2022-03-21T10:40:54+08:00 焦伦韶 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/eb7fa0f7534f4336c7727f93b0b42434fefb366c 删除 modules.xml 2022-03-21T10:41:00+08:00 焦伦韶 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/131b1973b90aa1deecdd516d6661a9981514998f 删除 pairproject.iml 2022-03-21T10:41:06+08:00 焦伦韶 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/27bb6f36c0f4adac67a0e6d101fcc00912672e83 删除 vcs.xml 2022-03-21T10:41:11+08:00 焦伦韶 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/48325c88f47bcb792c9dc3847ce833a60745f73e test 2022-03-21T11:04:39+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/2eb72752399f6c9ead8080f17501bc3e0ee45cb5 test 2022-03-21T11:05:29+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/7319a263c99f3cf93475f2948aa00bff38ef5d83 test submit 2022-03-21T11:05:57+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/51f5ee09a8b25886981d4c31bf410d06ee71d4d1 Merge remote-tracking branch 'origin/dev' into dev 2022-03-21T11:07:03+08:00 221900116 1181151546@qq.com # Conflicts: # 221900116_221900130/test.html https://gitcode.net/qq_30777639/pairproject/-/commit/24fb1a149f1d90819e16ffcda6c53dad74d5feeb rename 2022-03-21T11:17:46+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/cb0640aa792507c363daf2003bce4efe6c6b6f95 修改地图颜色 2022-03-21T12:37:59+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/883921add0cbea4e13e1e27f08442e04b425cd49 第一个轮播图实现 2022-03-21T14:20:52+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/f279c82fae5bcae34a95414942a5b4e40f2b7f6c 添加图片 2022-03-21T14:21:42+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/eef1af28ec34191b9da26da09a9b87252443ee12 创建赛程页面 2022-03-21T15:41:38+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/673eccf96d046ddacac6ff8699af8b0506e773e6 奖牌总榜 2022-03-21T15:42:07+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/295f97e05252778ce33f664d16a6897089226203 图片资源 2022-03-21T15:42:08+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/42b254506e0374588f72312a9b21212224c87ce4 赛程 2022-03-21T15:43:07+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/91e9043fe7217c24c4414d45302c35e3f26b4171 了解更多页面基本完成 2022-03-21T17:09:18+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/70a2f8020b547d2538f2326eced0ab084b7d6c88 导航栏更新 2022-03-21T17:15:40+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/27095fb5def0333fae8c098aeecf00880e76cf71 赛程 2022-03-21T20:05:46+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/c1079b79d710bdf621685e88a2d010ce1f6e4cf4 优化奖牌榜和导航栏 2022-03-21T21:57:59+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/45dcbdbb29765acd832156df0195f76f64588584 奖牌榜细节更新,奖牌地图更新 2022-03-21T23:04:57+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/f54749335f3e7c1c698360c1eac00acd781b5bef 奖牌地图现在可以显示各个国家奖牌详细数据,将奖杯图片更换为奖牌图片 2022-03-22T15:04:08+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/439176439e03a53b9a4e1e32bd270a189d9f881e 代码规范更新 2022-03-23T16:24:16+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/028fbd7ca40fff7e31bd6c632d4b5921fa3dbb2e 测试 2022-03-23T16:46:12+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/6e6eee5a7bafa87ca004e25b4f92a4f0e72b6e1c 测试 2022-03-23T16:48:06+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/c57c4de4992b3fdafa9cfb45f12bfd8b8d86c0a1 更改项目结构 2022-03-23T16:57:05+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/b5ddc96d5f849e6435af485dcc408d63061acac7 Merge remote-tracking branch 'origin/dev' into dev 2022-03-23T16:57:28+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/6bb73de06583124c8fe99425ca65edf0adc87c35 更改项目结构 2022-03-23T17:01:26+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/09487337738e345337eb97ed4282cb30beac9e4e 更改项目结构 2022-03-23T17:14:52+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/09acea48126e42e72604131d8a597d436982ba54 赛程内容基本完成 2022-03-23T17:20:07+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/cb2c9a70ccab8ac2ddcc534930bcbdfde761b306 赛程内容基本完成 2022-03-23T17:21:05+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/dde702027d7a6a366b9a35b7c4a6a32b31c6501c 项目重构 2022-03-23T17:34:55+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/8bc431739179133cd3f5bb0a19da65ac36a5810d 详情页面基础框架 2022-03-23T18:51:09+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/a08e7c764034754a126b949825670d7b5bfe7378 thymeleaf语法增加 2022-03-23T19:19:57+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/d0573cb3ab4632481b97100e6394ee39f3eb0262 详情页面基本完成 2022-03-23T19:53:25+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/8e15643a928c3d29812ed55c5f7ab03651c5c142 赛程优化 2022-03-23T20:36:44+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/bead3408a99441a41a5829c3080ec71bbc457e32 网站首页更改 2022-03-23T20:37:21+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/2a2e81d86bd7425f3e87d62f65358199784e3de1 成绩公报 2022-03-23T20:52:26+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/4a3a1cd5f0962f36e01abe7056d238bfe02ebdbc 成绩公报 2022-03-23T21:56:31+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/eab9f5a556e6517824a098775084ac250d5f2946 结构层与表现层分离 2022-03-23T23:18:26+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/08b0297538b823fa17341742b458add989678752 结构层与表现层分离 2022-03-23T23:36:12+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/681421e24c94d8c0a1123f3fbcb6d4670f43a889 结构层与行为层分离 2022-03-23T23:44:17+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/1dd617197ae94199f9594ed8ba91f95215e0d876 代码规范 2022-03-23T23:50:33+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/a3713e83cf8446965e99fec177589533c3d2fe20 优化代码更规范 2022-03-24T15:20:31+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/bc78195adef4ef89b2907fbdd39636cf2fdef467 细节更新 2022-03-24T15:52:23+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/af5461bd726e8b081963ec5a380de99d0da75819 添加注释 2022-03-24T17:04:08+08:00 Ag 414448654@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/6159dd4957885dc106cdd9485c362b3219259613 readme上传 2022-03-24T20:07:31+08:00 221900116 1181151546@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/6676823ae857cdcb44b3047e7155e873962d4c1e [Updated]解决冲突 2022-03-27T18:48:46+08:00 Lyu 905899183@qq.com https://gitcode.net/qq_30777639/pairproject/-/commit/ac50988bacaf3d558e6ad87077bde2d49d3c4a42 [Updated]解决冲突 2022-03-27T18:49:24+08:00 Lyu 905899183@qq.com
# 代码规范
[前端代码规范来源](https://www.cnblogs.com/qinyi173/p/7150644.html)
[后端代码规范来源](https://blog.csdn.net/HongEnIT/article/details/53466278)
## 前端
### 文件规范
- 文件均归档至约定的目录中。所有的css文件放在css文件夹中,image放在images文件夹中,js放在js文件夹中。
- HTML头部编写
- 编码:所有编码均采用xhtml/html,标签必须闭合,编码统一为UTF-8,在多语言的网站建议添加<html lang="zh-CN">,说明内容是以中文显示和阅读为基础的
- 语义化:正确使用标签,充分利用无兼容性问题的html自身标签
- 文件头部head内容:
- title: 需要添加标题
- 编码: charset=UTF-8
- CSS文件引入可通过外联或者内联方式引入
### 命名规范
- **命名示例**
- .div1{} /* 不推荐;无意义 */
- .a_green{} /* 不推荐;无意义 */
- .menu{} /* 推荐;特殊性*/
- .header{} /* 推荐;通用性*/
- **命名精简**,d和class命名越精简越好,只要足够表达意思,这样有助于理解,同时也能提高代码效率
- .navigation{} /* 不推荐 */
- .login_box_inside_con{} /* 不推荐 */
- .nav{} /* 推荐 */
- **命名嵌套问题**,书写css要注意先后顺序和嵌套问题,从性能上考虑尽量减少选择器的层级
- .nav ul.list{} /* 不推荐 */
- .nav .list{} /* 推荐 */
- **注意事项**
- 规则命名中,一律采用小写加下划线的方式
- 命名中尽量避免使用中文拼音,应该采用更简明有语义的英文单词进行组合
- 命名注意缩写,但是不能盲目缩写
- 不允许通过1、2、3等序号进行命名
- 避免class与id重名
- id注意用于标识模块或页面的某一个父容器区域,名称必须唯一,不要随意新建id
- class用于标识某一个类型的对象,命名必须言简意赅
- 尽可能提高代码模块的复用,样式尽量用组合的方式
### **其他规范**
- **排版规范**
- 使用4tab来缩进
- 规则可以写成单行。或者多行,但是整个文件内的规则排版必须统一
- 每一个属性值必须添加分号
- 如果多个属性公用一个样式集,则多个属性必须写成多行形式
- 避免过小的背景图片平铺
- 排版如果遇到需要首行缩进的处理,可以使用text-indent:2em;
- 重要的图片必须加上alt属性
## 后端
### 标识符命名规范
- **统一**
统一是指,对于同一个概念,在程序中用同一种表示方法,比如对于供应商,既可以用supplier,也可以用provider,但是我们只能选定一个使用,至少在一个Java项目中保持统一。统一是作为重要的,如果对同一概念有不同的表示方法,会使代码混乱难以理解。即使不能取得好的名称,但是只要统一,阅读起来也不会太困难,因为阅读者只要理解一次。
- **达意**
统一是指,对于同一个概念,在程序中用同一种表示方法,比如对于供应商,既可以用supplier,也可以用provider,但是我们只能选定一个使用,至少在一个Java项目中保持统一。统一是作为重要的,如果对同一概念有不同的表示方法,会使代码混乱难以理解。即使不能取得好的名称,但是只要统一,阅读起来也不会太困难,因为阅读者只要理解一次。
- **简洁**
简洁是指,在统一和达意的前提下,用尽量少的标识符。如果不能达意,宁愿不要简洁。
- **驼峰法则**
Java中,除了包名,静态常量等特殊情况,大部分情况下标识符使用骆驼法则,即单词之间不使用特殊符号分割,而是通过首字母大写来分割。比如: SupplierName, addNewContract,而不是 supplier_name, add_new_contract。
- **英文命名**
尽量使用通俗易懂的英文单词,如果不会可以向队友求助。
- **类名**
类名要首字母大写,比如 SupplierService, PaymentOrderAction;不要 supplierService, paymentOrderAction.
- **方法名**
- 首字母小写,如 addOrder() 不要 AddOrder()
- 动词在前,如 addOrder(),不要orderAdd()
- 动词前缀往往表达特定的含义。
### 代码格式
- 源文件使用utf-8编码。
- 行宽度不要超过130。
- 删除不用的导入,尽量不要使用整个包的导入。
- 大括号的开始在代码块开始的行尾,闭合在和代码块同一缩进的行首。
- 空行可以表达代码在语义上的分割,注释的作用范围,等等。将类似操作,或一组操作放在一起不用空行隔开,而用空行隔开不同组的代码。
### 注释规范
- 注释宜少二精,不宜多而滥,更不能误导命名达意,结构清晰, 类和方法等责任明确,往往不需要,或者只需要很少注释,就可以让人读懂;相反,代码混乱,再多的注释都不能弥补。所以,应当先在代码本身下功夫。
- 不能正确表达代码意义的注释,只会损害代码的可读性。
- 过于详细的注释,对显而易见的代码添加的注释,罗嗦的注释,还不如不写。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>pair221900116_221900130</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>221900116_221900130</name>
<description>221900116_221900130</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
<version>3.0.12.RELEASE</version>
</dependency>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-java8time</artifactId>
<version>3.0.4.RELEASE</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.79</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
### 作业链接
[链接](https://bbs.csdn.net/topics/605353609)
### 结对信息
**221900116_林耀博**
**221900130_杨鑫**
### 项目介绍
#### 基础功能
- 功能1:奖牌总榜
- 可以查看各国代表团的奖牌数及**最终**排行。
- 功能2:每日赛程
- 展示各项目的详细赛程,显示比赛时间、大项名称、比赛名称、场馆等信息
- 支持通过选择、切换比赛日期、项目、场馆的形式来筛选用户希望查看的赛程
- 功能3:奖牌地图
-**世界地图**的形式直观地展示各个参赛国家的奖牌数
- 在地图上使用不同的颜色代表大致的奖牌数区间,颜色深浅表示奖牌数的多少
- 鼠标点击或移动到每个国家会高亮显示奖牌信息
#### 附加功能
**附加功能1:详细赛况**
- 展示**至少3个**单项比赛的**成绩公报**,包含对应项目的参赛选手、得分、排行等比赛数据。
**附加功能2:了解更多**
- 介绍冬奥的举办背景,通过丰富的图文使平台更具吸引力,引起人们对冬奥、冬奥历史的兴趣。
**功能结构图**
![在这里插入图片描述](https://img-blog.csdnimg.cn/33f175cee83c4b7eafc4a5e7e11be121.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMjIxOTAwMTE2X-ael-iAgOWNmg==,size_20,color_FFFFFF,t_70,g_se,x_16)
\ No newline at end of file
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
package com.example.Controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @author 221900130 221900116
*/
@Controller
public class AdditionController {
@RequestMapping("/addition")
public String medalList(Model model) {
return "addition";
}
}
package com.example.Controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
/***
**
** @author 221900130 221900116
*/
@Controller
public class DetailController {
@RequestMapping("/detail2")
public String detail2(Model model) {
return "detail2";
}
@RequestMapping("/detail3")
public String detail3(Model model) {
return "detail3";
}
}
package com.example.Controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
/***
**
** @author 221900130 221900116
*/
@Controller
public class MapController {
@RequestMapping("/map")
public String map(Model model) {
return "map";
}
@RequestMapping("/detail1")
public String detail1(Model model) {
return "detail1";
}
}
package com.example.Controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
/***
**
** @author 221900130 221900116
*/
@Controller
public class MedalListController {
@RequestMapping("/medalList")
public String medalList(Model model) {
return "medalList";
}
}
package com.example.Controller;
import com.example.Service.Service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.thymeleaf.util.StringUtils;
/***
**
** @author 221900130 221900116
*/
@Controller
public class ScheduleController {
@Autowired
private Service service;
private Model cache;
@RequestMapping("/schedule")
public String schedule(Model model) {
//默认的是时间为0220的页面
model.addAttribute("data", service.getScheduleByTime("20220220"));
cache = model;
return "schedule";
}
@RequestMapping("/dateChoose")
public String dateChoose(Model model, @RequestParam("date") String date) {
//增加缓存机制,如果用户在请选择的情况下点击查询,会返回之前的页面
if (StringUtils.isEmpty(date)) {
model.addAttribute("data", cache.getAttribute("data"));
return "schedule";
}
model.addAttribute("data", service.getScheduleByTime(date));
cache = model;
return "schedule";
}
@RequestMapping("/itemChoose")
public String itemChoose(Model model, @RequestParam("item") String item) {
if (StringUtils.isEmpty(item)) {
model.addAttribute("data", cache.getAttribute("data"));
return "schedule";
}
model.addAttribute("data", service.getScheduleByItem(item));
cache = model;
return "schedule";
}
@RequestMapping("/venueChoose")
public String venueChoose(Model model, @RequestParam("venue") String venue) {
if (StringUtils.isEmpty(venue)) {
model.addAttribute("data", cache.getAttribute("data"));
return "schedule";
}
model.addAttribute("data", service.getScheduleByVenue(venue));
cache = model;
return "schedule";
}
}
package com.example.Model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.text.SimpleDateFormat;
import java.util.Date;
/***
**
** @author 221900130 221900116
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Schedule {
private Date startDateCn;
private String itemCodeName;
private String title;
private String venueName;
private String data = "成绩公报";
private String homeName;
private String homeScore;
private String awayName;
private String awayScore;
public String getTime() {
SimpleDateFormat format = new SimpleDateFormat("dd日HH:mm");
return format.format(startDateCn);
}
public String getTitle() {
//如果有对抗信息,加入对抗信息
if (!(homeName == null || "".equals(homeName))) {
return title + " " + homeName + homeScore + ":" + awayScore + awayName;
}
return title;
}
}
package com.example.Service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.example.Model.Schedule;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.UriComponentsBuilder;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/***
**
** @author 221900130 221900116
*/
@org.springframework.stereotype.Service
public class Service {
private static final String DATA_URL = "https://api.cntv.cn/Olympic/getBjOlyMatchList";
public List<Schedule> getScheduleByTime(String time) {
//构建url
String url = UriComponentsBuilder.fromUriString(DATA_URL)
.queryParam("startdatecn", time)
.queryParam("t", "jsonp")
.queryParam("cb", "OM")
.queryParam("serviceId", "2022dongao")
.build().encode().toUriString();
return getScheduleList(url);
}
public List<Schedule> getScheduleByItem(String item) {
String url = UriComponentsBuilder.fromUriString(DATA_URL)
.queryParam("t", "jsonp")
.queryParam("cb", "OM")
.queryParam("serviceId", "2022dongao")
.queryParam("itemcode", item + "-------------------------------")
.build().encode().toUriString();
return getScheduleList(url);
}
public List<Schedule> getScheduleByVenue(String venue) {
String url = UriComponentsBuilder.fromUriString(DATA_URL)
.queryParam("t", "jsonp")
.queryParam("cb", "OM")
.queryParam("serviceId", "2022dongao")
.queryParam("venue", venue)
.build().encode().toUriString();
return getScheduleList(url);
}
public List<Schedule> getScheduleList(String url) {
RestTemplate template = new RestTemplate();
List<Schedule> list = new ArrayList<>();
ResponseEntity<String> response = template.getForEntity(url, String.class);
try {
//去掉json中无用信息,然后转化为list
String replace = Objects.requireNonNull(response.getBody())
.replace("OM(", "").replace(");", "");
JSONArray scheduleList = JSON.parseObject(replace).getJSONObject("data").getJSONArray("matchList");
list = scheduleList.toJavaList(Schedule.class);
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
}
package com.example.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/***
**
** @author 221900130 221900116
*/
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
WebMvcConfigurer.super.addViewControllers(registry);
//设置主页页面
registry.addViewController("/").setViewName("medalList");
}
}
_ _
_==/ i i \==
/XX/ |\___/| \XX\
/XXXX\ |XXXXX| /XXXX\
|XXXXXX\_ _XXXXXXX_ _/XXXXXX|
XXXXXXXXXXXxxxxxxxXXXXXXXXXXXxxxxxxxXXXXXXXXXXX
|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|
XXXXXX/^^^^"\XXXXXXXXXXXXXXXXXXXXX/^^^^^\XXXXXX
|XXX| \XXX/^^\XXXXX/^^\XXX/ |XXX|
\XX\ \X/ \XXX/ \X/ /XX/
"\ " \X/ " /"
!
-Bruce Wayne-
\ No newline at end of file
#base {
background-color: rgba(129, 211, 248, 0.16);
width: 760px;
height: fit-content;
text-align: center;
display: inline-block;
position: relative;
}
.main_panel {
height: 600px;
width: 100%;
text-align: center;
}
/*菱形标题框*/
.parallelogram {
width: 120px;
height: 60px;
transform: skew(-30deg);
-webkit-transform: skew(-30deg);
-moz-transform: skew(-30deg);
-o-transform: skew(-30deg);
-ms-transform: skew(-30deg);
background: -webkit-linear-gradient(left, rgba(2, 167, 240, 0.8), #02A7F0, rgba(0, 0, 255, 0.65));
margin-top: 20px;
margin-left: 35px;
font-size: 20px;
font-weight: bold;
text-align: center;
line-height: 60px;
color: white;
}
/*箭头*/
.arrow {
margin-top: -200px;
width: 725px;
}
/*轮播图*/
.img_box {
height: fit-content;
}
.img_box img {
height: 300px;
padding-top: 30px;
}
.img1 {
display: block;
}
.img2 {
display: none;
}
.img3 {
display: none;
}
.star {
margin-top: 10px;
background: white;
border-radius: 20px;
height: 1180px;
width: 660px;
margin-left: 50px;
}
.star_img {
float: left;
border-radius: 20px;
margin: 10px 0 0 100px;
}
.star_text {
float: left;
margin: 30px 0 0 15px;
width: 209px;
height: 264px;
text-align: left;
text-indent: 2em;
}
.lil_parallelogram {
width: 80px;
height: 40px;
transform: skew(-30deg);
-webkit-transform: skew(-30deg);
-moz-transform: skew(-30deg);
-o-transform: skew(-30deg);
-ms-transform: skew(-30deg);
background-color: rgba(0, 0, 255, 0.65);
margin-top: 20px;
margin-left: 35px;
font-size: 20px;
font-weight: bold;
text-align: center;
line-height: 40px;
color: white;
}
.duty {
width: 725px;
margin-left: 15px;
border-radius: 20px;
background: white;
text-align: left;
height: 90px;
margin-bottom: 15px;
}
.duty_text {
margin: 15px;
text-indent: 2em;
}
\ No newline at end of file
.back {
background-color: #81D3F8;
width: 760px;
text-align: center;
display: inline-block;
border-radius: 10px;
}
.list_title {
background: rgba(255, 255, 255, 0.35);
width: 760px;
height: 100px;
}
.list {
background-color: white;
margin: 10px 0 0 8px;
width: 745px;
}
.game_text {
font-size: 20px;
margin: 10px 0 0 20px;
float: left;
}
.venue_text {
font-size: 20px;
margin: 10px 0 0 200px;
float: left;
}
.time_text {
font-size: 20px;
margin: 20px 100px 0 0;
float: right;
}
.main_panel {
width: 100%;
text-align: center;
}
table {
border-collapse: collapse;
}
tr {
border: 1px solid;
height: 50px;
}
td {
width: 150px;
}
\ No newline at end of file
.highlight {
background: #F2F2F2;
border-radius: 25px;
height: 60px;
margin-top: 10px;
margin-left: 5px;
text-align: center;
line-height: 60px;
width: 540px;
font-size: 20px;
display: inline-block;
}
.main_panel {
width: 100%;
text-align: center;
}
.back_text {
width: 35%;
float: left;
padding: 5px 30px;
}
.medal_text{
text-align:left;
}
.highlight_word {
color: red;
}
.medal {
width: 40px;
margin-top: 12px;
}
.medals_num {
font-size: 20px;
}
#container {
width: 730px;
height: 300px;
display: inline-block;
background: white;
margin: 5px;
border-radius: 10px;
}
.back {
background-color: #81D3F8;
width: 760px;
text-align: center;
display: inline-block;
border-radius: 10px;
margin: 10px 0 10px 0;
}
\ No newline at end of file
/*高亮中国代表团*/
.highlight {
background: -webkit-linear-gradient(left, rgb(255, 255, 167), rgba(255, 255, 255, 1.0), rgba(255, 255, 255, 1.0), rgba(255, 255, 255, 1.0), rgba(255, 255, 255, 1.0));
border-radius: 25px;
height: 80px;
margin-top: 10px;
margin-left: 5px;
text-align: center;
line-height: 30px;
width: 750px;
}
.main_panel {
width: 100%;
text-align: center;
}
.back_text {
width: 50%;
float: left;
padding: 5px 30px;
}
.medal_text {
text-align: left;
}
.highlight_word {
color: red;
}
.medal {
width: 40px;
margin: 12px 0 0 15px;
}
.medals_num {
font-size: 20px;
}
.back {
background-color: #81D3F8;
width: 760px;
text-align: center;
display: inline-block;
border-radius: 10px;
}
.list {
background-color: white;
margin: 10px 0 0 8px;
width: 745px;
}
table {
border-collapse: collapse;
}
tr {
border: 1px solid;
font-size: 20px;
}
td {
border: 0px;
}
.tab_head {
font-size: 24px;
color: #AAAAAA;
}
/*奖牌榜颜色渐变效果*/
#champion {
background: -webkit-linear-gradient(left, rgba(217, 0, 27, 0.4), rgba(217, 0, 27, 0.3), rgba(217, 0, 27, 0.2), rgba(217, 0, 27, 0.1), rgba(255, 255, 255, 1.0), rgba(255, 255, 255, 1.0), rgba(255, 255, 255, 1.0));
}
#runner-up {
background: -webkit-linear-gradient(left, rgba(245, 154, 35, 0.4), rgba(245, 154, 35, 0.3), rgba(245, 154, 35, 0.2), rgba(245, 154, 35, 0.1), rgba(255, 255, 255, 1.0), rgba(255, 255, 255, 1.0), rgba(255, 255, 255, 1.0));
}
#third-place {
background: -webkit-linear-gradient(left, rgba(255, 255, 128, 0.4), rgba(255, 255, 128, 0.3), rgba(255, 255, 128, 0.2), rgba(255, 255, 128, 0.1), rgba(255, 255, 255, 1.0), rgba(255, 255, 255, 1.0), rgba(255, 255, 255, 1.0));
}
/*将行于行之间做以区分*/
.changed_line {
background: rgba(215, 215, 215, 0.3)
}
/*奖牌榜前三名高亮*/
.no {
border: 1px solid #797979;
background: #F2F2F2;
border-radius: 10px;
height: 30px;
}
#no1 {
background: #D9001B;
color: white;
}
#no2 {
background: #F59A23;
color: white;
}
#no3 {
background: #FACD91;
color: white;
}
\ No newline at end of file
.top_pic {
height: 300px;
width: 760px;
}
.nav {
margin: 0;
text-align: center;
}
.nav ul {
list-style-type: none;
padding: 0px;
position: relative;
background-color: rgba(2, 167, 240, 0.8);
margin: 0;
width: 760px;
display: inline-block;
}
.nav ul li {
background-color: rgba(129, 211, 248, 0.8);
width: 110px;
height: 56px;
text-align: center;
float: left;
}
.nav ul li a {
color: white;
text-decoration: none;
line-height: 56px;
font-size: 20px;
}
.nav ul a:hover {
color: #0ab2d2;
}
table {
border-collapse: collapse;
}
tr {
border: 1px solid;
height: 50px;
}
td {
width: 130px;
border: 1px solid;
}
.large_word {
font-size: 24px;
}
.mid_word {
font-size: 15px;
}
.main_panel {
height: 600px;
width: 100%;
text-align: center;
}
.back_one {
background-color: #81D3F8;
width: 760px;
text-align: center;
display: inline-block;
}
.title {
background-color: white;
border-radius: 25px;
margin: 10px 270px;
font-size: 40px;
}
.game_title {
width: 230px;
}
.game_data {
width: 100px;
}
.list {
background-color: white;
margin: 20px 20px 10px 20px;
}
.sub {
border-radius: 20px;
width: 130px;
float: left;
margin: 10px 0 50px 30px;
}
.sub_btn {
background-color: rgba(2, 167, 240, 0.5);
border-radius: 20px;
width: 50px;
float: left;
margin: 10px 0 50px 10px;
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="996.5px" height="31px"
xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -23.5 -205 )">
<path d="M 995 232 L 1007 220.5 L 995 209 L 995 232 Z " fill-rule="nonzero" fill="#0000ff" stroke="none"
fill-opacity="0.603921568627451"/>
<path d="M 26 220.5 L 998 220.5 " stroke-width="5" stroke="#0000ff" fill="none"
stroke-opacity="0.603921568627451"/>
</g>
</svg>
\ No newline at end of file
var index = 0;
//改变图片
function ChangeImg() {
index++;
var a = document.getElementsByClassName("img-slide");
if (index >= a.length) index = 0;
for (var i = 0; i < a.length; i++) {
a[i].style.display = 'none';
}
a[index].style.display = 'block';
}
//设置定时器,每隔2秒切换一张图片
setInterval(ChangeImg, 2000);
\ No newline at end of file
<!DOCTYPE html>
<html lang="zh-CN" xmlns="http://www.w3.org/1999/html" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>了解更多</title>
<script type="text/javascript" th:src="@{/js/imgBox.js}"></script>
<link rel="stylesheet" type="text/css" th:href="@{/css/nav.css}">
<link rel="stylesheet" type="text/css" th:href="@{/css/addition.css}">
</head>
<body>
<div id="mainPanel" class="main_panel">
<!-- 最上方图片-->
<div>
<a th:href="@{https://2022.cctv.com/index.shtml?spm=C73465.PlfhsSgvOb4F.EMGiru2RQM4B.1}" target="_blank">
<img class="top_pic" th:src="@{/images/一起向未来.jpg}" alt="一起向未来!"/>
</a>
</div>
<!-- 导航栏-->
<div class="nav">
<ul>
<li><a th:href="@{/medalList}">奖牌榜</a></li>
<li><a th:href="@{/schedule}">赛程</a></li>
<li><a th:href="@{/map}">奖牌地图</a></li>
<li><a th:href="@{/addition}">了解更多</a></li>
</ul>
</div>
<!-- 主体部分-->
<div id="base">
<div class="parallelogram">相约北京</div>
<img class="arrow" th:src="@{/images/arrow.svg}" alt="arrow"/>
<!-- 插入轮播图-->
<div class="img_box">
<a class="img-slide img1"
th:href="@{https://sports.cctv.com/2021/09/17/ARTI7Ss8veiIw5orYu33Oxjo210917.shtml?spm=C73465.PCi7dTHUZrHa.EetVURUQTZ6p.5}">
<img th:src="@{/images/Rotation_map1_p1.png}" alt="1">
<div class="tag">一起向未来!北京冬奥会和冬残奥会主题口号发布</div>
</a>
<a class="img-slide img2"
th:href="@{https://sports.cctv.com/2020/09/16/ARTIUnyV5UeLqk411o1tIOUJ200916.shtml?spm=C73465.PCi7dTHUZrHa.EetVURUQTZ6p.2}">
<img th:src="@{/images/Rotation_map1_p2.png}" alt="2">
<div class="tag">2022年北京冬奥会和冬残奥会吉祥物:冰墩墩和雪融融</div>
</a>
<a class="img-slide img3"
th:href="@{https://sports.cctv.com/2021/02/04/ARTIWKAcvObjqeXfjrna8lKN210204.shtml?spm=C73465.PCi7dTHUZrHa.EetVURUQTZ6p.3}">
<img th:src="@{/images/Rotation_map1_p3.png}" alt="3">
<div class="tag">北京冬奥会和冬残奥会火炬</div>
</a>
</div>
<div class="parallelogram">冰雪之星</div>
<img class="arrow" th:src="@{/images/arrow.svg}" alt="arrow"/>
<!-- 运动明星介绍-->
<div class="star">
<img class="star_img" th:src="@{/images/star1.png}" alt="谷爱凌"/>
<p class="star_text">
谷爱凌,2003年9月3日出生,昵称“青蛙公主”,中国女子自由式滑雪运动员。2022年2月8日,谷爱凌夺得2022年北京冬奥会自由式滑雪女子大跳台金牌。2月15日,获得2022年北京冬季奥运会女子自由式滑雪坡面障碍技巧银牌。2月18日,获得北京冬奥会自由式滑雪女子U型场地技巧金牌。
</p>
<img class="star_img" th:src="@{/images/star2.png}" alt="羽生结弦"/>
<p class="star_text">
羽生结弦,1994年12月7日出生于日本宫城县仙台市,日本花样滑冰男子单人滑运动员。2016年,在世界花样滑冰大奖赛总决赛上夺冠,实现大奖赛四连冠。2018年2月,他夺得平昌冬奥会花样滑冰男子单人滑冠军,成为66年来第一位蝉联冬奥会男单冠军的花样滑冰选手。
</p>
<img class="star_img" th:src="@{/images/star3.png}" alt="安娜"/>
<p class="star_text">
安娜·斯坦尼斯拉瓦芙娜·谢尔巴科娃,2004年3月28日出生于俄罗斯莫斯科,俄罗斯花样滑冰运动员。2022年2月17日,获得北京2022年冬奥会花样滑冰女子单人滑冠军。安娜·谢尔巴科娃是首位完成勾手四周接后外点冰三周连跳的女子单人滑选手,首位完成两次勾手四周跳的女子单人滑选手。 </p>
<img class="star_img" th:src="@{/images/star4.png}" alt="武大靖"/>
<p class="star_text">
武大靖,1994年7月24日出生,中国男子短道速滑队运动员,短道速滑男子500米世界纪录保持者、奥运会纪录保持者。2021年11月27日,在国际滑联短道速滑世界杯荷兰多德雷赫特站中获得男子500米金牌。2022年2月5日,获得2022年北京冬奥会短道速滑男女2000米混合接力金牌。 </p>
</div>
<div class="parallelogram">组织机构</div>
<img class="arrow" th:src="@{/images/arrow.svg}" alt="arrow"/>
<div class="img_box">
<img th:src="@{/images/pic.png}" alt="1">
</div>
<div class="lil_parallelogram">职责</div>
<img class="arrow" th:src="@{/images/arrow.svg}" alt="arrow"/>
<div class="duty">
<p class="duty_text">
2015年12月15日,北京2022年冬奥会和冬残奥会组织委员会成立。北京2022年冬奥会和冬残奥会组织委员会为独立事业法人,为承办冬奥会和冬残奥会的组织机构。北京2022年冬奥会和冬残奥会执行委员会为组织委员会的执行机构。北京2022年冬奥会和冬残奥会组织委员会负责组织、协调冬奥会和冬残奥会全部筹备和举办工作。
</p>
</div>
</div>
</div>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>男子滑降</title>
<link rel="stylesheet" type="text/css" th:href="@{/css/nav.css}"/>
<link rel="stylesheet" type="text/css" th:href="@{/css/detail.css}">
</head>
<body>
<div id="mainPanel" class="main_panel">
<!-- 最上方图片-->
<div>
<a th:href="@{https://2022.cctv.com/index.shtml?spm=C73465.PlfhsSgvOb4F.EMGiru2RQM4B.1}" target="_blank">
<img class="top_pic" th:src="@{/images/一起向未来.jpg}" alt="一起向未来!"/>
</a>
</div>
<!-- 导航栏-->
<div class="nav">
<ul>
<li><a th:href="@{/medalList}">奖牌榜</a></li>
<li><a th:href="@{/schedule}">赛程</a></li>
<li><a th:href="@{/map}">奖牌地图</a></li>
<li><a th:href="@{/addition}">了解更多</a></li>
</ul>
</div>
<!-- 详情列表-->
<div class="back">
<!-- 比赛简介-->
<div class="list_title">
<div class="game_text">
比赛:高山滑雪 男子滑降
</div>
<div class="venue_text">
场馆:国家高山滑雪中心
</div>
<div class="time_text">
时间:2022-02-07
</div>
</div>
<div class="list">
<table>
<tr>
<th>排名</th>
<th>出场顺序</th>
<th>背心号码</th>
<th>国家/地区</th>
<th>姓名/代表队</th>
<th>成绩</th>
</tr>
<tr>
<td>1</td>
<td>13</td>
<td>13</td>
<td>瑞士</td>
<td>贝亚特·费乌兹</td>
<td>1:42.69</td>
</tr>
<tr>
<td>2</td>
<td>19</td>
<td>19</td>
<td>法国</td>
<td>约翰·克拉雷</td>
<td>1:42.79</td>
</tr>
<tr>
<td>3</td>
<td>9</td>
<td>9</td>
<td>奥地利</td>
<td>马蒂亚斯·迈尔</td>
<td>1:42.85</td>
</tr>
<tr>
<td>4</td>
<td>12</td>
<td>12</td>
<td>加拿大</td>
<td>詹姆斯·克劳福德</td>
<td>1:42.92</td>
</tr>
<tr>
<td>5</td>
<td>11</td>
<td>11</td>
<td>挪威</td>
<td>亚历山大·奥莫特·基尔德</td>
<td>1:43.20</td>
</tr>
<tr>
<td>6</td>
<td>15</td>
<td>15</td>
<td>意大利</td>
<td>多米尼克·帕里斯</td>
<td>1:43.21</td>
</tr>
<tr>
<td>7</td>
<td>17</td>
<td>17</td>
<td>瑞士</td>
<td>马尔科·奥德马特</td>
<td>1:43.40</td>
</tr>
<tr>
<td>8</td>
<td>1</td>
<td>1</td>
<td>奥地利</td>
<td>文森特·克里希迈尔</td>
<td>1:43.45</td>
</tr>
<tr>
<td>9</td>
<td>20</td>
<td>20</td>
<td>奥地利</td>
<td>马克斯·弗朗茨</td>
<td>1:43.52</td>
</tr>
<tr>
<td>10</td>
<td>23</td>
<td>23</td>
<td>斯洛文尼亚</td>
<td>博什蒂安·克兰</td>
<td>1:43.75</td>
</tr>
<tr>
<td>11</td>
<td>25</td>
<td>25</td>
<td>法国</td>
<td>马克桑斯·米扎东</td>
<td>1:43.82</td>
</tr>
<tr>
<td>11</td>
<td>22</td>
<td>22</td>
<td>挪威</td>
<td>阿德里安·斯米塞特·塞耶斯泰德</td>
<td>1:43.82</td>
</tr>
<tr>
<td>13</td>
<td>14</td>
<td>14</td>
<td>德国</td>
<td>罗梅德·鲍曼</td>
<td>1:43.84</td>
</tr>
<tr>
<td>14</td>
<td>16</td>
<td>16</td>
<td>美国</td>
<td>瑞安·科克伦—西格尔</td>
<td>1:43.91</td>
</tr>
<tr>
<td>15</td>
<td>8</td>
<td>8</td>
<td>意大利</td>
<td>马泰奥·马尔萨利亚</td>
<td>1:44.06</td>
</tr>
<tr>
<td>16</td>
<td>7</td>
<td>7</td>
<td>瑞士</td>
<td>尼尔斯·欣特曼</td>
<td>1:44.08</td>
</tr>
<tr>
<td>17</td>
<td>32</td>
<td>32</td>
<td>西班牙</td>
<td>阿杜尔·埃特克塞萨雷塔</td>
<td>1:44.12</td>
</tr>
<tr>
<td>17</td>
<td>6</td>
<td>6</td>
<td>德国</td>
<td>安德烈亚斯·桑德尔</td>
<td>1:44.12</td>
</tr>
<tr>
<td>19</td>
<td>3</td>
<td>3</td>
<td>美国</td>
<td>布赖斯·贝内特</td>
<td>1:44.25</td>
</tr>
<tr>
<td>20</td>
<td>18</td>
<td>18</td>
<td>美国</td>
<td>特拉维斯·加农</td>
<td>1:44.39</td>
</tr>
<tr>
<td>21</td>
<td>5</td>
<td>5</td>
<td>奥地利</td>
<td>丹尼尔·赫梅特斯贝格</td>
<td>1:44.59</td>
</tr>
<tr>
<td>22</td>
<td>29</td>
<td>29</td>
<td>加拿大</td>
<td>布罗迪·西格</td>
<td>1:44.68</td>
</tr>
<tr>
<td>23</td>
<td>26</td>
<td>26</td>
<td>德国</td>
<td>约瑟夫·费斯特尔</td>
<td>1:44.69</td>
</tr>
<tr>
<td>24</td>
<td>28</td>
<td>28</td>
<td>斯洛文尼亚</td>
<td>米哈·赫罗巴特</td>
<td>1:44.71</td>
</tr>
<tr>
<td>25</td>
<td>24</td>
<td>24</td>
<td>瑞士</td>
<td>斯特凡·罗根廷</td>
<td>1:44.95</td>
</tr>
<tr>
<td>26</td>
<td>27</td>
<td>27</td>
<td>法国</td>
<td>布莱兹·吉藏达纳</td>
<td>1:45.00</td>
</tr>
<tr>
<td>27</td>
<td>10</td>
<td>10</td>
<td>法国</td>
<td>马蒂厄·贝莱</td>
<td>1:45.23</td>
</tr>
<tr>
<td>28</td>
<td>31</td>
<td>31</td>
<td>列支敦士登</td>
<td>马尔科·普菲夫纳</td>
<td>1:45.79</td>
</tr>
<tr>
<td>29</td>
<td>36</td>
<td>36</td>
<td>摩纳哥</td>
<td>阿诺·阿莱桑德里亚</td>
<td>1:46.25</td>
</tr>
<tr>
<td>30</td>
<td>41</td>
<td>41</td>
<td>以色列</td>
<td>巴纳巴斯·索洛斯</td>
<td>1:46.88</td>
</tr>
<tr>
<td>31</td>
<td>37</td>
<td>37</td>
<td>爱尔兰</td>
<td>杰克·高尔</td>
<td>1:47.61</td>
</tr>
<tr>
<td>32</td>
<td>35</td>
<td>35</td>
<td>智利</td>
<td>亨里克·冯·阿彭</td>
<td>1:47.69</td>
</tr>
<tr>
<td>33</td>
<td>39</td>
<td>39</td>
<td>乌克兰</td>
<td>伊万·科夫巴斯纽克</td>
<td>1:48.09</td>
</tr>
<tr>
<td>34</td>
<td>40</td>
<td>40</td>
<td>玻利维亚</td>
<td>西蒙·布雷特富斯·卡梅尔兰德</td>
<td>1:48.26</td>
</tr>
<tr>
<td>35</td>
<td>43</td>
<td>43</td>
<td>科索沃</td>
<td>阿尔宾·塔希里</td>
<td>1:52.44</td>
</tr>
<tr>
<td>36</td>
<td>42</td>
<td>42</td>
<td>中国</td>
<td>徐铭甫</td>
<td>1:56.93</td>
</tr>
</table>
</div>
</div>
</div>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>男子超级大回旋</title>
<link rel="stylesheet" type="text/css" th:href="@{/css/nav.css}"/>
<link rel="stylesheet" type="text/css" th:href="@{/css/detail.css}">
</head>
<body>
<div id="mainPanel" class="main_panel">
<!-- 最上方图片-->
<div>
<a th:href="@{https://2022.cctv.com/index.shtml?spm=C73465.PlfhsSgvOb4F.EMGiru2RQM4B.1}" target="_blank">
<img class="top_pic" th:src="@{/images/一起向未来.jpg}" alt="一起向未来!"/>
</a>
</div>
<!-- 导航栏-->
<div class="nav">
<ul>
<li><a th:href="@{/medalList}">奖牌榜</a></li>
<li><a th:href="@{/schedule}">赛程</a></li>
<li><a th:href="@{/map}">奖牌地图</a></li>
<li><a th:href="@{/addition}">了解更多</a></li>
</ul>
</div>
<!-- 详情列表-->
<div class="back">
<!-- 比赛简介-->
<div class="list_title">
<div class="game_text">
比赛:高山滑雪 男子超级大回旋
</div>
<div class="venue_text">
场馆:国家高山滑雪中心
</div>
<div class="time_text">
时间:2022-02-08
</div>
</div>
<div class="list">
<table>
<tr>
<th>排名</th>
<th>出场顺序</th>
<th>背心号码</th>
<th>国家/地区</th>
<th>姓名/代表队</th>
<th>成绩</th>
</tr>
<tr>
<td>1</td>
<td>13</td>
<td>13</td>
<td>奥地利</td>
<td>马蒂亚斯·迈尔贝</td>
<td>1:19.94</td>
</tr>
<tr>
<td>2</td>
<td>14</td>
<td> 14</td>
<td> 美国</td>
<td> 瑞安·科克伦—西格尔</td>
<td> 1:19.98</td>
</tr>
<tr>
<td>3</td>
<td>7</td>
<td> 7</td>
<td> 挪威</td>
<td> 亚历山大·奥莫特·基尔德</td>
<td> 1:20.36</td>
</tr>
<tr>
<td>4</td>
<td>10</td>
<td> 10</td>
<td> 挪威</td>
<td> 阿德里安·斯米塞特·塞耶斯泰德</td>
<td>1:20.68</td>
</tr>
<tr>
<td>5</td>
<td>11</td>
<td>11</td>
<td>奥地利</td>
<td> 文森特·克里希迈尔</td>
<td> 1:20.70</td>
</tr>
<tr>
<td>6</td>
<td>16</td>
<td> 16</td>
<td> 加拿大</td>
<td> 詹姆斯·克劳福德</td>
<td> 1:20.79</td>
</tr>
<tr>
<td>7</td>
<td>8</td>
<td> 8</td>
<td> 德国</td>
<td> 罗梅德·鲍曼</td>
<td> 1:21.10</td>
</tr>
<tr>
<td>8</td>
<td>17</td>
<td> 17</td>
<td> 德国</td>
<td> 安德烈亚斯·桑德尔</td>
<td> 1:21.21</td>
</tr>
<tr>
<td>9</td>
<td>28</td>
<td> 28</td>
<td> 法国</td>
<td> 布莱兹·吉藏达纳</td>
<td> 1:21.26</td>
</tr>
<tr>
<td>10</td>
<td>25</td>
<td> 25</td>
<td> 加拿大</td>
<td> 特雷弗·菲尔普</td>
<td> 1:21.34</td>
</tr>
<tr>
<td>11</td>
<td>3</td>
<td> 3</td>
<td> 法国</td>
<td> 亚历克西斯·潘蒂罗</td>
<td> 1:21.36</td>
</tr>
<tr>
<td>12</td>
<td>5</td>
<td> 5</td>
<td> 美国</td>
<td> 特拉维斯·加农</td>
<td> 1:21.37</td>
</tr>
<tr>
<td>13</td>
<td>21</td>
<td> 21</td>
<td> 德国</td>
<td> 西蒙·约赫尔</td>
<td> 1:21.52</td>
</tr>
<tr>
<td>14</td>
<td>1</td>
<td> 1</td>
<td> 瑞士</td>
<td> 斯特凡·罗根廷</td>
<td> 1:21.57</td>
</tr>
<tr>
<td>15</td>
<td>33</td>
<td> 33</td>
<td> 美国</td>
<td> 里弗·拉达穆斯</td>
<td> 1:21.63</td>
</tr>
<tr>
<td>16</td>
<td>4</td>
<td>4</td>
<td> 瑞士</td>
<td> 吉诺·卡维耶泽尔</td>
<td> 1:21.76</td>
</tr>
<tr>
<td>17</td>
<td>22</td>
<td> 22</td>
<td> 美国</td>
<td> 布赖斯·贝内特</td>
<td> 1:21.80</td>
</tr>
<tr>
<td>18</td>
<td> 23</td>
<td> 23</td>
<td> 意大利</td>
<td> 马泰奥·马尔萨利亚</td>
<td> 1:22.16</td>
</tr>
<tr>
<td>18</td>
<td>12</td>
<td> 12</td>
<td> 德国</td>
<td> 约瑟夫·费斯特尔</td>
<td> 1:22.16</td>
</tr>
<tr>
<td>20</td>
<td>32</td>
<td> 32</td>
<td> 斯洛文尼亚</td>
<td> 博什蒂安·克兰</td>
<td> 1:22.55</td>
</tr>
<tr>
<td>21</td>
<td>6</td>
<td> 6</td>
<td> 意大利</td>
<td> 多米尼克·帕里斯</td>
<td> 1:22.62</td>
</tr>
<tr>
<td>22</td>
<td>40</td>
<td> 40</td>
<td> 安道尔</td>
<td> 霍安·贝尔杜</td>
<td> 1:22.92</td>
</tr>
<tr>
<td>23</td>
<td>24</td>
<td> 24</td>
<td> 挪威</td>
<td> 谢蒂尔·扬斯鲁</td>
<td> 1:23.00</td>
</tr>
<tr>
<td>24</td>
<td>38</td>
<td> 38</td>
<td> 斯洛文尼亚</td>
<td> 内伊茨·纳拉洛奇尼克</td>
<td> 1:23.08</td>
</tr>
<tr>
<td>25</td>
<td>36</td>
<td> 36</td>
<td> 捷克</td>
<td> 扬·扎比斯特兰</td>
<td> 1:23.09</td>
</tr>
<tr>
<td>26</td>
<td> 27</td>
<td> 27</td>
<td> 法国</td>
<td> 尼尔·阿莱格尔</td>
<td> 1:23.24</td>
</tr>
<tr>
<td>27</td>
<td> 34</td>
<td> 34</td>
<td> 智利</td>
<td> 亨里克·冯·阿彭</td>
<td> 1:23.55</td>
</tr>
<tr>
<td>28</td>
<td> 37</td>
<td> 37</td>
<td> 列支敦士登</td>
<td> 马尔科·普菲夫纳</td>
<td> 1:23.66</td>
</tr>
<tr>
<td>29</td>
<td> 31</td>
<td> 31</td>
<td> 挪威</td>
<td> 拉斯穆斯·温丁斯塔</td>
<td> 1:24.15</td>
</tr>
<tr>
<td>30</td>
<td> 43</td>
<td>43</td>
<td> 以色列</td>
<td> 巴纳巴斯·索洛斯</td>
<td> 1:24.28</td>
</tr>
<tr>
<td>31</td>
<td> 41</td>
<td> 41</td>
<td> 摩纳哥</td>
<td> 阿诺·阿莱桑德里亚</td>
<td> 1:24.68</td>
</tr>
<tr>
<td>32</td>
<td> 45</td>
<td> 45</td>
<td> 乌克兰</td>
<td> 伊万·科夫巴斯纽克</td>
<td> 1:25.56</td>
</tr>
<tr>
<td>33</td>
<td> 46</td>
<td> 46</td>
<td> 中国</td>
<td> 张洋铭</td>
<td> 1:29.39</td>
</tr>
<tr>
<td>34</td>
<td> 35</td>
<td> 35</td>
<td> 塞尔维亚</td>
<td> 马尔科·武基切维奇</td>
<td> 1:29.45</td>
</tr>
</table>
</div>
</div>
</div>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>速度滑冰</title>
<link rel="stylesheet" type="text/css" th:href="@{/css/nav.css}"/>
<link rel="stylesheet" type="text/css" th:href="@{/css/detail.css}">
</head>
<body>
<div id="mainPanel" class="main_panel">
<!-- 最上方图片-->
<div>
<a th:href="@{https://2022.cctv.com/index.shtml?spm=C73465.PlfhsSgvOb4F.EMGiru2RQM4B.1}" target="_blank">
<img class="top_pic" th:src="@{/images/一起向未来.jpg}" alt="一起向未来!"/>
</a>
</div>
<!-- 导航栏-->
<div class="nav">
<ul>
<li><a th:href="@{/medalList}">奖牌榜</a></li>
<li><a th:href="@{/schedule}">赛程</a></li>
<li><a th:href="@{/map}">奖牌地图</a></li>
<li><a th:href="@{/addition}">了解更多</a></li>
</ul>
</div>
<!-- 详情列表-->
<div class="back">
<!-- 比赛简介-->
<div class="list_title">
<div class="game_text">
比赛:速度滑冰 男子500米
</div>
<div class="venue_text">
场馆:国家速滑馆
</div>
<div class="time_text">
时间:2022-02-12
</div>
</div>
<div class="list">
<table>
<tr>
<th>排名</th>
<th>出场顺序</th>
<th>国家/地区</th>
<th>姓名/代表队</th>
<th>成绩</th>
</tr>
<tr>
<td>1</td>
<td>13</td>
<td>中国</td>
<td>高亭宇</td>
<td>34.32(奥运纪录)</td>
</tr>
<tr>
<td>2</td>
<td>20</td>
<td>韩国</td>
<td>车胶奎</td>
<td>34.39</td>
</tr>
<tr>
<td>3</td>
<td>28</td>
<td>日本</td>
<td>森重航</td>
<td>34.49</td>
</tr>
<tr>
<td>4</td>
<td>20</td>
<td>加拿大</td>
<td>洛朗·迪布勒伊</td>
<td>34.522</td>
</tr>
<tr>
<td>5</td>
<td>24</td>
<td>波兰</td>
<td>彼得·米哈尔斯基</td>
<td>34.524</td>
</tr>
<tr>
<td>6</td>
<td>21</td>
<td>韩国</td>
<td>金俊昊</td>
<td>34.54</td>
</tr>
<tr>
<td>7</td>
<td>26</td>
<td>俄罗斯奥运队</td>
<td>阿尔乔姆·阿列菲耶夫</td>
<td>34.56</td>
</tr>
<tr>
<td>8</td>
<td>25</td>
<td>日本</td>
<td>村上右磨</td>
<td>34.57</td>
</tr>
<tr>
<td>9</td>
<td>27</td>
<td>俄罗斯奥运队</td>
<td>维克托·穆什塔科夫</td>
<td>34.60</td>
</tr>
<tr>
<td>10</td>
<td>17</td>
<td>俄罗斯奥运队</td>
<td>鲁斯兰·穆拉绍夫</td>
<td>34.63</td>
</tr>
<tr>
<td>11</td>
<td>14</td>
<td>波兰</td>
<td>达米安·茹雷克</td>
<td>34.734</td>
</tr>
<tr>
<td>12</td>
<td>16</td>
<td>荷兰</td>
<td>默赖恩·斯海珀坎普</td>
<td>34.736</td>
</tr>
<tr>
<td>13</td>
<td>10</td>
<td>美国</td>
<td>乔丹·斯托尔兹</td>
<td>34.85</td>
</tr>
<tr>
<td>14</td>
<td>18</td>
<td>荷兰</td>
<td>凯·韦尔比</td>
<td>34.87</td>
</tr>
<tr>
<td>15</td>
<td>22</td>
<td>挪威</td>
<td>哈瓦尔·霍尔默菲尤尔</td>
<td>34.921</td>
</tr>
<tr>
<td>16</td>
<td>19</td>
<td>波兰</td>
<td>马雷克·卡尼亚</td>
<td>34.928</td>
</tr>
<tr>
<td>17</td>
<td>9</td>
<td>挪威</td>
<td>比约恩·马格努森</td>
<td>34.96</td>
</tr>
<tr>
<td>18</td>
<td>5</td>
<td>荷兰</td>
<td>托马斯·克罗尔</td>
<td>35.05</td>
</tr>
<tr>
<td>19</td>
<td>6</td>
<td>意大利</td>
<td>杰弗里·罗萨内利</td>
<td>35.08</td>
</tr>
<tr>
<td>20</td>
<td>30</td>
<td>日本</td>
<td>新滨立也</td>
<td>35.12</td>
</tr>
<tr>
<td>21</td>
<td>7</td>
<td>加拿大</td>
<td>吉尔摩·朱尼奥</td>
<td>35.162</td>
</tr>
<tr>
<td>21</td>
<td>15</td>
<td>中国</td>
<td>杨涛</td>
<td>35.162</td>
</tr>
<tr>
<td>23</td>
<td>8</td>
<td>意大利</td>
<td>戴维·博萨</td>
<td>35.168</td>
</tr>
<tr>
<td>24</td>
<td>11</td>
<td>爱沙尼亚</td>
<td>马滕·利夫</td>
<td>35.26</td>
</tr>
<tr>
<td>25</td>
<td>4</td>
<td>英国</td>
<td>科尼柳斯·克斯滕</td>
<td>35.36</td>
</tr>
<tr>
<td>26</td>
<td>12</td>
<td>德国</td>
<td>约埃尔·杜夫特</td>
<td>35.37</td>
</tr>
<tr>
<td>27</td>
<td>2</td>
<td>美国</td>
<td>奥斯汀·克莱巴</td>
<td>35.40</td>
</tr>
<tr>
<td>28</td>
<td>3</td>
<td>哈萨克斯坦</td>
<td>伊万·阿尔扎尼科夫</td>
<td>35.82</td>
</tr>
<tr>
<td>29</td>
<td>1</td>
<td>加拿大</td>
<td>安托万·热利纳-博利</td>
<td>35.84</td>
</tr>
<tr>
<td>30</td>
<td>23</td>
<td>白俄罗斯</td>
<td>伊格纳特·戈洛瓦秋克</td>
<td>37.05</td>
</tr>
</table>
</div>
</div>
</div>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>奖牌地图</title>
<!-- 下面两行的意思是,浏览器从网络上获取echart包,而不需要你配置任何编程环境 -->
<script type="text/javascript" th:src="@{https://assets.pyecharts.org/assets/echarts.min.js}"></script>
<script type="text/javascript" th:src="@{https://assets.pyecharts.org/assets/maps/world.js}"></script>
<link rel="stylesheet" type="text/css" th:href="@{/css/nav.css}">
<link rel="stylesheet" type="text/css" th:href="@{/css/map.css}">
</head>
<body>
<div id="mainPanel" class="main_panel">
<!-- 最上方图片-->
<div>
<a th:href="@{https://2022.cctv.com/index.shtml?spm=C73465.PlfhsSgvOb4F.EMGiru2RQM4B.1}" target="_blank">
<img class="top_pic" th:src="@{/images/一起向未来.jpg}" alt="一起向未来!"/>
</a>
</div>
<!-- 导航栏-->
<div class="nav">
<ul>
<li><a th:href="@{/medalList}">奖牌榜</a></li>
<li><a th:href="@{/schedule}">赛程</a></li>
<li><a th:href="@{/map}">奖牌地图</a></li>
<li><a th:href="@{/addition}">了解更多</a></li>
</ul>
</div>
<!-- 背景板-->
<div class="back">
<div class="highlight">
<span class="back_text">
<div class="medal_text">
<span>总奖牌:</span>
<span class="highlight_word">327</span>
<br/>
</div>
</span>
<img class="medal" th:src="@{/images/gold.png}" alt="金牌"/>
<span class="medals_num">109</span>
<img class="medal" th:src="@{/images/silver.png}" alt="银牌"/>
<span class="medals_num">109</span>
<img class="medal" th:src="@{/images/bronze.png}" alt="铜牌"/>
<span class="medals_num">109</span>
</div>
<div id="container" class="chart-container"></div>
</div>
<!-- 地图-->
<script>
var chart_container = echarts.init(
document.getElementById('container'), 'white', {renderer: 'canvas'});
// var option代表定义一个名为option的变量,后面花括号里的代表我们需要作图的参数设置
var option_container = {
"series": [
{
// 图标类型为 地图
"type": "map",
"name": "Total medals",
"label": {
"show": false,
"position": "top",
"margin": 8
},
"mapType": "world", // 地图类型为 世界地图
emphasis: {
label: {
show: false
}
},
"data": [
{
// ItemStyle 中设置每一个数据项的颜色
"name": "Norway", "value": 37,
"gold": 16, "silver": 8, "bronze": 13,
'itemStyle': {'color': "#F59A23"}
},
{
"name": "Russia", "value": 32,
"gold": 6, "silver": 12, "bronze": 14,
'itemStyle': {'color': "#F59A23"}
},
{
"name": "Germany", "value": 27,
"gold": 12, "silver": 10, "bronze": 5,
'itemStyle': {'color': "#F59A23"}
},
{
"name": "Canada", "value": 26,
"gold": 4, "silver": 8, "bronze": 14,
'itemStyle': {'color': "#F59A23"}
},
{
"name": "United States", "value": 25,
"gold": 8, "silver": 10, "bronze": 7,
'itemStyle': {'color': "#F59A23"}
},
{
"name": "China", "value": 15,
"gold": 9, "silver": 4, "bronze": 2,
'itemStyle': {'color': "rgba(245,154,35,0.8)"}
},
{
"name": "Japan", "value": 18,
"gold": 3, "silver": 6, "bronze": 9,
'itemStyle': {'color': "rgba(245,154,35,0.8)"}
},
{
"name": "France", "value": 14,
"gold": 5, "silver": 7, "bronze": 2,
'itemStyle': {'color': "rgba(245,154,35,0.8)"}
},
{
"name": "Sweden", "value": 18,
"gold": 8, "silver": 5, "bronze": 5,
'itemStyle': {'color': "rgba(245,154,35,0.8)"}
},
{
"name": "Netherlands", "value": 17,
"gold": 8, "silver": 5, "bronze": 4,
'itemStyle': {'color': "rgba(245,154,35,0.8)"}
},
{
"name": "Austria", "value": 18,
"gold": 7, "silver": 7, "bronze": 4,
'itemStyle': {'color': "rgba(245,154,35,0.8)"}
},
{
"name": "Switzerland", "value": 14,
"gold": 7, "silver": 2, "bronze": 5,
'itemStyle': {'color': "rgba(245,154,35,0.8)"}
},
{
"name": "Italy", "value": 17,
"gold": 2, "silver": 7, "bronze": 8,
'itemStyle': {'color': "rgba(245,154,35,0.8)"}
},
{
"name": "Korea", "value": 9,
"gold": 2, "silver": 5, "bronze": 2,
'itemStyle': {'color': "rgba(250,205,145,0.8)"}
},
{
"name": "Finland", "value": 8,
"gold": 2, "silver": 2, "bronze": 4,
'itemStyle': {'color': "rgba(250,205,145,0.8)"}
},
{
"name": "Slovenia", "value": 7,
"gold": 2, "silver": 3, "bronze": 2,
'itemStyle': {'color': "rgba(250,205,145,0.8)"}
},
{
"name": "New Zealand", "value": 3,
"gold": 2, "silver": 1, "bronze": 0,
'itemStyle': {'color': "#FACD91"}
},
{
"name": "Australia", "value": 4,
"gold": 1, "silver": 2, "bronze": 1,
'itemStyle': {'color': "#FACD91"}
},
{
"name": "United Kingdom", "value": 2,
"gold": 1, "silver": 1, "bronze": 0,
'itemStyle': {'color': "#FACD91"}
},
{
"name": "Hungary", "value": 3,
"gold": 1, "silver": 0, "bronze": 2,
'itemStyle': {'color': "#FACD91"}
},
{
"name": "Belgium", "value": 2,
"gold": 1, "silver": 0, "bronze": 1,
'itemStyle': {'color': "#FACD91"}
},
{
"name": "Czech Rep.", "value": 2,
"gold": 1, "silver": 0, "bronze": 1,
'itemStyle': {'color': "#FACD91"}
},
{
"name": "Slovakia", "value": 2,
"gold": 1, "silver": 0, "bronze": 1,
'itemStyle': {'color': "#FACD91"}
},
{
"name": "Belarus", "value": 2,
"gold": 0, "silver": 2, "bronze": 0,
'itemStyle': {'color': "#FACD91"}
},
{
"name": "Ukraine", "value": 1,
"gold": 0, "silver": 1, "bronze": 0,
'itemStyle': {'color': "#FACD91"}
},
{
"name": "Spain", "value": 1,
"gold": 0, "silver": 1, "bronze": 0,
'itemStyle': {'color': "#FACD91"}
},
{
"name": "Estonia", "value": 1,
"gold": 0, "silver": 0, "bronze": 1,
'itemStyle': {'color': "#FACD91"}
},
{
"name": "Latvia", "value": 1,
"gold": 0, "silver": 0, "bronze": 1,
'itemStyle': {'color': "#FACD91"}
},
{
"name": "Poland", "value": 1,
"gold": 0, "silver": 0, "bronze": 1,
'itemStyle': {'color': "#FACD91"}
},
],
"roam": true,
"zoom": 1,
"showLegendSymbol": false,
}
],
// 鼠标悬浮,显示国家奖牌详情
"tooltip": {
"show": true,
"trigger": "item",
"triggerOn": "mousemove|click",
formatter: function (params) {
return '<div>' + params.data.name + '</div><div>total:' + params.data.value + '</div><div>gold:' + params.data.gold + '</div><div>silver:' + params.data.silver + '</div><div>bronze:' + params.data.bronze + '</div>';
},
"axisPointer": {
"type": "line"
},
"textStyle": {
"fontSize": 14
},
"borderWidth": 0
}
};
chart_container.setOption(option_container);
</script>
</div>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>奖牌榜</title>
<link rel="stylesheet" type="text/css" th:href="@{/css/nav.css}">
<link rel="stylesheet" type="text/css" th:href="@{/css/medalList.css}">
</head>
<body>
<div id="mainPanel" class="main_panel">
<!-- 最上方图片-->
<div>
<a th:href="@{https://2022.cctv.com/index.shtml?spm=C73465.PlfhsSgvOb4F.EMGiru2RQM4B.1}" target="_blank">
<img class="top_pic" th:src="@{/images/一起向未来.jpg}" alt="一起向未来!"/>
</a>
</div>
<!-- 导航栏-->
<div class="nav">
<ul>
<li><a th:href="@{/medalList}">奖牌榜</a></li>
<li><a th:href="@{/schedule}">赛程</a></li>
<li><a th:href="@{/map}">奖牌地图</a></li>
<li><a th:href="@{/addition}">了解更多</a></li>
</ul>
</div>
<!-- 奖牌榜-->
<div class="back">
<!-- 高亮中国代表团-->
<div class="highlight">
<!-- 文字-->
<span class="back_text">
<div class="medal_text">
<span>中国第</span>
<span class="highlight_word">3</span>
<span></span>
<br/>
2022冬奥会奖牌榜
</div>
</span>
<img class="medal" th:src="@{/images/gold.png}" alt="金牌"/>
<span class="medalsNum">9</span>
<img class="medal" th:src="@{/images/silver.png}" alt="银牌"/>
<span class="medalsNum">4</span>
<img class="medal" th:src="@{/images/bronze.png}" alt="铜牌"/>
<span class="medalsNum">2</span>
</div>
<div class="list">
<table cellpadding="32px">
<tr class="tab_head">
<th>排名</th>
<th>国家</th>
<th>金牌</th>
<th>银牌</th>
<th>铜牌</th>
<th>总计</th>
</tr>
<tr id="champion">
<td>
<div class="no" id="no1">1</div>
</td>
<td>挪威</td>
<td>16</td>
<td>8</td>
<td>13</td>
<td>37</td>
</tr>
<tr id="runner-up">
<td>
<div class="no" id="no2">2</div>
</td>
<td>德国</td>
<td>12</td>
<td>10</td>
<td>5</td>
<td>27</td>
</tr>
<tr id="third-place">
<td>
<div class="no" id="no3">3</div>
</td>
<td>中国</td>
<td>9</td>
<td>4</td>
<td>2</td>
<td>15</td>
</tr>
<tr>
<td>
<div class="no">4</div>
</td>
<td>美国</td>
<td>8</td>
<td>10</td>
<td>7</td>
<td>25</td>
</tr>
<tr class="changed_line">
<td>
<div class="no">5</div>
</td>
<td>瑞典</td>
<td>8</td>
<td>5</td>
<td>5</td>
<td>18</td>
</tr>
<tr>
<td>
<div class="no">6</div>
</td>
<td>荷兰</td>
<td>8</td>
<td>5</td>
<td>4</td>
<td>17</td>
</tr>
<tr class="changed_line">
<td>
<div class="no">7</div>
</td>
<td>奥地利</td>
<td>7</td>
<td>7</td>
<td>4</td>
<td>18</td>
</tr>
<tr>
<td>
<div class="no">8</div>
</td>
<td>瑞士</td>
<td>7</td>
<td>2</td>
<td>5</td>
<td>14</td>
</tr>
<tr class="changed_line">
<td>
<div class="no">9</div>
</td>
<td>俄罗斯奥委会</td>
<td>6</td>
<td>12</td>
<td>14</td>
<td>32</td>
</tr>
<tr>
<td>
<div class="no">10</div>
</td>
<td>法国</td>
<td>5</td>
<td>7</td>
<td>2</td>
<td>14</td>
</tr>
<tr class="changed_line">
<td>
<div class="no">11</div>
</td>
<td>加拿大</td>
<td>4</td>
<td>8</td>
<td>14</td>
<td>26</td>
</tr>
<tr>
<td>
<div class="no">12</div>
</td>
<td>日本</td>
<td>3</td>
<td>6</td>
<td>9</td>
<td>18</td>
</tr>
<tr class="changed_line">
<td>
<div class="no">13</div>
</td>
<td>意大利</td>
<td>2</td>
<td>7</td>
<td>8</td>
<td>17</td>
</tr>
<tr>
<td>
<div class="no">14</div>
</td>
<td>韩国</td>
<td>2</td>
<td>5</td>
<td>2</td>
<td>9</td>
</tr>
<tr class="changed_line">
<td>
<div class="no">15</div>
</td>
<td>斯洛文尼亚</td>
<td>2</td>
<td>3</td>
<td>2</td>
<td>7</td>
</tr>
<tr>
<td>
<div class="no">16</div>
</td>
<td>芬兰</td>
<td>2</td>
<td>2</td>
<td>4</td>
<td>8</td>
</tr>
<tr class="changed_line">
<td>
<div class="no">17</div>
</td>
<td>新西兰</td>
<td>2</td>
<td>1</td>
<td>0</td>
<td>3</td>
</tr>
<tr>
<td>
<div class="no">18</div>
</td>
<td>澳大利亚</td>
<td>1</td>
<td>2</td>
<td>1</td>
<td>4</td>
</tr>
<tr class="changed_line">
<td>
<div class="no">19</div>
</td>
<td>英国</td>
<td>1</td>
<td>1</td>
<td>0</td>
<td>2</td>
</tr>
<tr>
<td>
<div class="no">20</div>
</td>
<td>匈牙利</td>
<td>1</td>
<td>0</td>
<td>2</td>
<td>3</td>
</tr>
<tr class="changed_line">
<td>
<div class="no">21</div>
</td>
<td>比利时</td>
<td>1</td>
<td>0</td>
<td>1</td>
<td>2</td>
</tr>
<tr>
<td>
<div class="no">21</div>
</td>
<td>捷克</td>
<td>1</td>
<td>0</td>
<td>1</td>
<td>2</td>
</tr>
<tr class="changed_line">
<td>
<div class="no">21</div>
</td>
<td>斯洛伐克</td>
<td>1</td>
<td>0</td>
<td>1</td>
<td>2</td>
</tr>
<tr>
<td>
<div class="no">24</div>
</td>
<td>白俄罗斯</td>
<td>0</td>
<td>2</td>
<td>0</td>
<td>2</td>
</tr>
<tr class="changed_line">
<td>
<div class="no">25</div>
</td>
<td>西班牙</td>
<td>0</td>
<td>1</td>
<td>0</td>
<td>1</td>
</tr>
<tr>
<td>
<div class="no">25</div>
</td>
<td>乌克兰</td>
<td>0</td>
<td>1</td>
<td>0</td>
<td>1</td>
</tr>
<tr class="changed_line">
<td>
<div class="no">27</div>
</td>
<td>爱沙尼亚</td>
<td>0</td>
<td>0</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>
<div class="no">27</div>
</td>
<td>拉脱维亚</td>
<td>0</td>
<td>0</td>
<td>1</td>
<td>1</td>
</tr>
<tr class="changed_line">
<td>
<div class="no">27</div>
</td>
<td>波兰</td>
<td>0</td>
<td>0</td>
<td>1</td>
<td>1</td>
</tr>
</table>
</div>
</div>
</div>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>赛程</title>
<link rel="stylesheet" type="text/css" th:href="@{/css/nav.css}">
<link rel="stylesheet" type="text/css" th:href="@{/css/schedule.css}">
</head>
<body>
<div id="mainPanel" class="main_panel">
<!-- 最上方图片-->
<div>
<a th:href="@{https://2022.cctv.com/index.shtml?spm=C73465.PlfhsSgvOb4F.EMGiru2RQM4B.1}" target="_blank">
<img class="top_pic" th:src="@{/images/一起向未来.jpg}" alt="一起向未来!"/>
</a>
</div>
<!-- 导航栏-->
<div class="nav">
<ul>
<li><a th:href="@{/medalList}">奖牌榜</a></li>
<li><a th:href="@{/schedule}">赛程</a></li>
<li><a th:href="@{/map}">奖牌地图</a></li>
<li><a th:href="@{/addition}">了解更多</a></li>
</ul>
</div>
<div class="back_one">
<div class="title">
赛程
</div>
<form th:action="@{/dateChoose} ">
<select class="sub" name="date" id="date">
<option value>选择比赛日期</option>
<option value="20220202">2月2日</option>
<option value="20220203">2月3日</option>
<option value="20220204">2月4日</option>
<option value="20220205">2月5日</option>
<option value="20220206">2月6日</option>
<option value="20220207">2月7日</option>
<option value="20220208">2月8日</option>
<option value="20220209">2月9日</option>
<option value="20220210">2月10日</option>
<option value="20220211">2月11日</option>
<option value="20220212">2月12日</option>
<option value="20220213">2月13日</option>
<option value="20220214">2月14日</option>
<option value="20220215">2月15日</option>
<option value="20220216">2月16日</option>
<option value="20220217">2月17日</option>
<option value="20220218">2月18日</option>
<option value="20220219">2月19日</option>
</select>
<input class="sub_btn" type="submit" value="查询">
</form>
<form th:action="@{/itemChoose}">
<select class="sub" name="item" id="item">
<option value="">选择比赛项目</option>
<option value="ALP">高山滑雪</option>
<option value="BOB">雪车</option>
<option value="BTH">冬季两项</option>
<option value="CCS">越野滑雪</option>
<option value="CUR">冰壶</option>
<option value="FRS">自由式滑雪</option>
<option value="FSK">花样滑冰</option>
<option value="IHO">冰球</option>
<option value="LUG">雪橇</option>
<option value="NCB">北欧两项</option>
<option value="SBD">单板滑雪</option>
<option value="SJP">跳台滑雪</option>
<option value="SKN">钢架雪车</option>
<option value="SSK">速度滑冰</option>
<option value="STK">短道速滑</option>
<option value="BMS">闭幕式</option>
<option value="KMS">开幕式</option>
</select>
<input class="sub_btn" type="submit" value="查询">
</form>
<form th:action="@{/venueChoose}">
<select class="sub" name="venue" id="venue">
<option value="">选择比赛场馆</option>
<option value="NST">国家体育场</option>
<option value="BAS">首钢滑雪大跳台</option>
<option value="CTS">首都体育馆</option>
<option value="NAC">国家游泳中心</option>
<option value="NIS">国家体育馆</option>
<option value="NSS">国家速滑馆</option>
<option value="WKS">五棵松体育中心</option>
<option value="YAS">国家高山滑雪中心</option>
<option value="YSC">国家雪车雪橇中心</option>
<option value="ZBT">国家冬季两项中心</option>
<option value="ZCC">国家越野滑雪中心</option>
<option value="ZSJ">国家跳台滑雪中心</option>
<option value="ZSP">云顶滑雪公园</option>
</select>
<input class="sub_btn" type="submit" value="查询">
</form>
<div class="detail"><a th:href="@{/detail1}">成绩公报一</a></div>
<div class="detail"><a th:href="@{/detail2}">成绩公报二</a></div>
<div class="detail"><a th:href="@{/detail3}">成绩公报三</a></div>
<div class="list">
<table cellspacing="35px" border="0">
<tr class="large_word">
<th>时间</th>
<th>大项</th>
<th>比赛</th>
<th>场馆</th>
<th>数据</th>
</tr>
<tr th:each="match : ${data}" class="mid_word">
<td th:text="${match.getTime()}"></td>
<td th:text="${match.getItemCodeName()}"></td>
<td class="game_title" th:text="${match.getTitle()}"></td>
<td th:text="${match.getVenueName()}"></td>
<td class="game_data"><a th:text="${match.getData()}"></a></td>
</tr>
</table>
</div>
</div>
</div>
</body>
</html>
\ No newline at end of file
package com.example;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class ApplicationTests {
@Test
void contextLoads() {
}
}