| @ -0,0 +1,23 @@ | |||||||
|  | .DS_Store | ||||||
|  | node_modules | ||||||
|  | /dist | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # local env files | ||||||
|  | .env.local | ||||||
|  | .env.*.local | ||||||
|  | 
 | ||||||
|  | # Log files | ||||||
|  | npm-debug.log* | ||||||
|  | yarn-debug.log* | ||||||
|  | yarn-error.log* | ||||||
|  | pnpm-debug.log* | ||||||
|  | 
 | ||||||
|  | # Editor directories and files | ||||||
|  | .idea | ||||||
|  | .vscode | ||||||
|  | *.suo | ||||||
|  | *.ntvs* | ||||||
|  | *.njsproj | ||||||
|  | *.sln | ||||||
|  | *.sw? | ||||||
| @ -1,3 +0,0 @@ | |||||||
| Additional permission under GNU GPL version 3 section 7 |  | ||||||
| 
 |  | ||||||
| If you modify this Program, or any covered work, by linking or combining it with [name of library] (or a modified version of that library), containing parts covered by the terms of [name of library's license], the licensors of this Program grant you additional permission to convey the resulting work. |  | ||||||
| @ -1,3 +1,19 @@ | |||||||
| # vue-idle-game | # code | ||||||
| 
 | 
 | ||||||
| 一个全随机的刷装备小游戏 | ## Project setup | ||||||
|  | ``` | ||||||
|  | yarn install | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ### Compiles and hot-reloads for development | ||||||
|  | ``` | ||||||
|  | yarn serve | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ### Compiles and minifies for production | ||||||
|  | ``` | ||||||
|  | yarn build | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ### Customize configuration | ||||||
|  | See [Configuration Reference](https://cli.vuejs.org/config/). | ||||||
|  | |||||||
| @ -0,0 +1,5 @@ | |||||||
|  | module.exports = { | ||||||
|  |   presets: [ | ||||||
|  |     '@vue/cli-plugin-babel/preset' | ||||||
|  |   ] | ||||||
|  | } | ||||||
| @ -0,0 +1,7 @@ | |||||||
|  | /.classpath | ||||||
|  | /.project | ||||||
|  | /.settings | ||||||
|  | /bin/ | ||||||
|  | /logs | ||||||
|  | /target | ||||||
|  | /src/main/resources/static | ||||||
| @ -0,0 +1,8 @@ | |||||||
|  | # WEB服务端口配置 | ||||||
|  | server.port=80 | ||||||
|  | # WEB服务根路径配置 | ||||||
|  | server.servlet.context-path=/ | ||||||
|  | # 程序自身数据源配置 | ||||||
|  | spring.datasource.url=jdbc:mysql://10.100.0.108:3306/idle_game?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true | ||||||
|  | spring.datasource.username=root | ||||||
|  | spring.datasource.password=mBMjp2v74c7MzhC/5RGeXF1V3E+AcRFs1f5OH6PDHi3nWaM3njaaoewswq8Sl7/AY631t0sONVDG672pX4mFpZx/8xex8BJP3uX1wUu9NGpTCSHskb5cD6KZMNV4jNsfoqxFRyJq8yk86djPsCfR4ch0sPnLH+LCg9XY1DAw8szh93QnKDkiImq2JLkaIwG3R3t8dNWv1wVoMR6vVecPsEUyPJu5vsrvJhjP3uAL7jZYJVGZG6bkrpV3R6I6mja0QnTdF41NCL5Ex0TINSi7GKnrALjZ0qWcT9fe2bTUCKq50+CtVEAQnEz2ZJpYUaBZXJbHh4OrUyqjAmA5s7IelQ== | ||||||
| @ -0,0 +1,116 @@ | |||||||
|  | <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 http://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.7.1</version> | ||||||
|  | 	</parent> | ||||||
|  | 	<groupId>com.sprt.simple</groupId> | ||||||
|  | 	<artifactId>idle_game_server</artifactId> | ||||||
|  | 	<version>0.0.0</version> | ||||||
|  | 	<name>idle_game_server</name> | ||||||
|  | 	<description>idle game server</description> | ||||||
|  | 	<packaging>jar</packaging> | ||||||
|  | 
 | ||||||
|  | 	<properties> | ||||||
|  | 		<java.version>17</java.version> | ||||||
|  | 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | ||||||
|  | 		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> | ||||||
|  | 
 | ||||||
|  | 		<core.version>1.0.0</core.version> | ||||||
|  | 		<log4j.version>1.2.17</log4j.version> | ||||||
|  | 		<fastjson.version>1.2.46</fastjson.version> | ||||||
|  | 		<druid.version>1.1.9</druid.version> | ||||||
|  | 		<mybatis-plus.version>3.5.1</mybatis-plus.version> | ||||||
|  | 		<mybatis.pagehelper.version>1.4.6</mybatis.pagehelper.version> | ||||||
|  | 	</properties> | ||||||
|  | 
 | ||||||
|  | 	<dependencies> | ||||||
|  | 
 | ||||||
|  | 		<dependency> | ||||||
|  | 			<groupId>vip.xumy.core</groupId> | ||||||
|  | 			<artifactId>xumy_core</artifactId> | ||||||
|  | 			<version>${core.version}</version> | ||||||
|  | 		</dependency> | ||||||
|  | 
 | ||||||
|  | 		<!-- 代码修改之后可以实时生效,该模块在完整的打包环境下运行的时候会被禁用 --> | ||||||
|  | 		<dependency> | ||||||
|  | 			<groupId>org.springframework.boot</groupId> | ||||||
|  | 			<artifactId>spring-boot-devtools</artifactId> | ||||||
|  | 			<optional>true</optional> | ||||||
|  | 		</dependency> | ||||||
|  | 
 | ||||||
|  | 		<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web --> | ||||||
|  | 		<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> | ||||||
|  | 			<exclusions> | ||||||
|  | 				<!-- 单元测试不使用Junit4,使用Junit5 --> | ||||||
|  | 				<exclusion> | ||||||
|  | 					<groupId>junit</groupId> | ||||||
|  | 					<artifactId>junit</artifactId> | ||||||
|  | 				</exclusion> | ||||||
|  | 				<exclusion> | ||||||
|  | 					<groupId>org.junit.vintage</groupId> | ||||||
|  | 					<artifactId>junit-vintage-engine</artifactId> | ||||||
|  | 				</exclusion> | ||||||
|  | 			</exclusions> | ||||||
|  | 		</dependency> | ||||||
|  | 
 | ||||||
|  | 		<!--junit 测试包--> | ||||||
|  | 		<dependency> | ||||||
|  | 			<groupId>org.junit.jupiter</groupId> | ||||||
|  | 			<artifactId>junit-jupiter-api</artifactId> | ||||||
|  | 			<scope>test</scope> | ||||||
|  | 		</dependency> | ||||||
|  | 
 | ||||||
|  | 		<!-- mysql驱动 --> | ||||||
|  | 		<dependency> | ||||||
|  | 			<groupId>mysql</groupId> | ||||||
|  | 			<artifactId>mysql-connector-java</artifactId> | ||||||
|  | 			<scope>runtime</scope> | ||||||
|  | 		</dependency> | ||||||
|  | 		<!-- alibaba的druid数据库连接池 --> | ||||||
|  | 		<dependency> | ||||||
|  | 			<groupId>com.alibaba</groupId> | ||||||
|  | 			<artifactId>druid-spring-boot-starter</artifactId> | ||||||
|  | 			<version>${druid.version}</version> | ||||||
|  | 		</dependency> | ||||||
|  | 
 | ||||||
|  | 		<!-- mybatis plus--> | ||||||
|  | 		<dependency> | ||||||
|  | 			<groupId>com.baomidou</groupId> | ||||||
|  | 			<artifactId>mybatis-plus-boot-starter</artifactId> | ||||||
|  | 			<version>${mybatis-plus.version}</version> | ||||||
|  | 		</dependency> | ||||||
|  | 
 | ||||||
|  | 		<!-- mybatis的pagehelper --> | ||||||
|  | 		<dependency> | ||||||
|  | 			<groupId>com.github.pagehelper</groupId> | ||||||
|  | 			<artifactId>pagehelper-spring-boot-starter</artifactId> | ||||||
|  | 			<version>${mybatis.pagehelper.version}</version> | ||||||
|  | 		</dependency> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 	</dependencies> | ||||||
|  | 
 | ||||||
|  | 	<!-- Package as an executable jar --> | ||||||
|  | 	<build> | ||||||
|  | 		<finalName>${project.name}</finalName> | ||||||
|  | 		<plugins> | ||||||
|  | 			<plugin> | ||||||
|  | 				<groupId>org.springframework.boot</groupId> | ||||||
|  | 				<artifactId>spring-boot-maven-plugin</artifactId> | ||||||
|  | 				<configuration> | ||||||
|  | 					<executable>true</executable> | ||||||
|  | 				</configuration> | ||||||
|  | 			</plugin> | ||||||
|  | 		</plugins> | ||||||
|  | 	</build> | ||||||
|  | 
 | ||||||
|  | </project> | ||||||
| @ -0,0 +1,14 @@ | |||||||
|  | package vip.xumy.idle.server; | ||||||
|  | 
 | ||||||
|  | import org.springframework.boot.SpringApplication; | ||||||
|  | 
 | ||||||
|  | import vip.xumy.idle.server.conf.SimpleInitializer; | ||||||
|  | 
 | ||||||
|  | public class SimpleApplocation { | ||||||
|  | 
 | ||||||
|  | 	public static void main(String[] args) { | ||||||
|  | 		Class<?>[] arr = new Class<?>[] { SimpleInitializer.class }; | ||||||
|  | 		SpringApplication.run(arr, args); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,75 @@ | |||||||
|  | package vip.xumy.idle.server.conf; | ||||||
|  | 
 | ||||||
|  | import java.security.KeyFactory; | ||||||
|  | import java.security.interfaces.RSAPrivateKey; | ||||||
|  | import java.security.interfaces.RSAPublicKey; | ||||||
|  | import java.security.spec.PKCS8EncodedKeySpec; | ||||||
|  | import java.security.spec.X509EncodedKeySpec; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * @Description  | ||||||
|  |  * @Author 86199 | ||||||
|  |  * @Date 2021/12/1 16:36 | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | import java.util.Base64; | ||||||
|  | 
 | ||||||
|  | import javax.crypto.Cipher; | ||||||
|  | public class RSAEncryptDecrypt | ||||||
|  | { | ||||||
|  |     // 公钥
 | ||||||
|  |     private static String publicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqfkYJn8BHttyGrQYcoXTZK8Za" + | ||||||
|  |             "MVUkqhEdFIyWZhnUQz6Jr299IkBCrbTnKcQTn3ekyQl5/F+j2p8YuNQDBJiq46T/srI+zh1XIaTIKJoOI8M4ploKOztJ8IP" + | ||||||
|  |             "L9ucdnv/tEdGDD9kY5JILa5DQnem9HkaS55kGJX6Oet6CRiNekwiG4+K61SjyfqxuLcqm7v2gH2nvTnkci9FLwtErpdF4uT" + | ||||||
|  |             "Mv6LB46Z9Hpg5iVsHDbwnwqOCfirgwdalJQTy+jcn9UqqNTsneREOxTtt9JQEnsDE/4UIPAYiU6cQDRJ5YrXR56LYC/0g55" + | ||||||
|  |             "KpMVnMIJgS5Y/YVt66QHtUTCVmmSgxAQIDAQAB"; | ||||||
|  | 
 | ||||||
|  |     // 私钥
 | ||||||
|  |     private static String privateKey = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCp+" + | ||||||
|  |             "RgmfwEe23IatBhyhdNkrxloxVSSqER0UjJZmGdRDPomvb30iQEKttOcpxBOfd6TJCXn8X6Panxi41AMEmKrjpP+" + | ||||||
|  |             "ysj7OHVchpMgomg4jwzimWgo7O0nwg8v25x2e/+0R0YMP2RjkkgtrkNCd6b0eRpLnmQYlfo563oJGI16TCIbj4rrVKPJ+" + | ||||||
|  |             "rG4tyqbu/aAfae9OeRyL0UvC0Sul0Xi5My/osHjpn0emDmJWwcNvCfCo4J+" + | ||||||
|  |             "KuDB1qUlBPL6Nyf1Sqo1Oyd5EQ7FO230lASewMT/hQg8BiJTpxANEnlitdHnotgL/SDnkqkxWcwgmBLlj" + | ||||||
|  |             "9hW3rpAe1RMJWaZKDEBAgMBAAECggEBAIHEloaVglJ/sf7nLp8IwxrkgB64QVhytUillKFItOBxau53A" + | ||||||
|  |             "HaYvr3iVW8NMWrruClYeMQ7YKe34d1RtMRyqPhXs2/cfFMoiJmqeNt6gt1jga/i9V4BfRJUm2mrXiorg" + | ||||||
|  |             "06s97LUFx3aCdcua1Vsqn+NkeDXvY3zuwXLXPFi2GjcRBnwZL9S2i8mxCSChWy8ePjYW34bJ7viTQ7hf" + | ||||||
|  |             "Hz5VNA0hqMQrmgzUADq5xelnhQKsEWBaHHhLTKGYF0yNmRJ7zQJkiSncxIrzD5dvRH88Ms2nJ7lJlb1F" + | ||||||
|  |             "YEpZ8URlK63ofOskvcpvXFH3g7yvi6j9rCRFAL/i2UnP+lFimQ+bs0CgYEA7ZdVrSGMsKRwaX7+lmCTu" + | ||||||
|  |             "5cR6V74ohZKyDyzp8PcOBxvPmjY5tIULK++12xyOpsMHAwAoKfRedRrvS9vm525g5A+fioALXE74/d2A7" + | ||||||
|  |             "E/psO6hO89W5AcA91wMTZXLLGZ8JD0LBQp3u4dNGyyZLpDMTgM1WUsted1mOn2msRkK68CgYEAtySKlvaL" + | ||||||
|  |             "8Rw70LMMYZUUJ6BbUsR85aJHZ3JPsisM01PgEgcJiZHfThVZHqUgEU0noqRDzIVVKk9C1Gqx+t6F3JqU8" + | ||||||
|  |             "Cewop+nIKboLH5vMr+7OqM5hXLSx9g8Mm779k9P4+u7Kvq4/fY38d7kVayr3TVb5g0jEo1ugsHonwMsKk8Cg" + | ||||||
|  |             "YBa791/EqRCx+2us0jGTdi9qCjW5d7MSzP8SB+LSs/zOg7qGD9MuYO3Rt0Inx1piQathXqIAzOOKdvC4XEaYtgqnv8" + | ||||||
|  |             "MUw8WVYzSyFiHOURfk/LEBr25WgMfB5Z1f5MGLEP7a7/JTz5ncUQEWMY+/3vQTt+6narrRNgh2wrkWd7tSQKBgGIs" + | ||||||
|  |             "YWpZUVz3UI0oXbu1iW9Qg4PTtkv2eKZYXaZZc2+ZJ6UiRpeLLZQS14oY5B7CKDwEKB/rXWLnyCBL7YpYXJOL/cjazd" + | ||||||
|  |             "HvGUzki9LGF9+xbbEaLEx/58OfA23ZlpFLpLy98cAxVJc2tHigje/rNtnGr7ObWTCpxhKr1YHf1n37AoGBAI64k/lV4" + | ||||||
|  |             "FJn57cJnIZPp1jjapxSouxO063Z5BTYVsA6/cqXgbNPt1S8TnZRaRB2qtVrN5otRuueO6GIRJf6XTXvwxLV4xQAA/Z5" + | ||||||
|  |             "g2q2gelK7/ChYRdVn6Fwtnwx4iPBkH6FK+eQ0E8BfcJ5f6XPWp8N7ZpaZrd+dyc3r7uW78gG"; | ||||||
|  | 
 | ||||||
|  |     //加密
 | ||||||
|  |     public static byte[] encrypt(byte[] str) throws Exception | ||||||
|  |     { | ||||||
|  |         // base64编码的公钥
 | ||||||
|  |         byte[] decoded = Base64.getDecoder().decode(publicKey); | ||||||
|  |         RSAPublicKey pubKey = (RSAPublicKey) KeyFactory.getInstance("RSA") | ||||||
|  |                 .generatePublic(new X509EncodedKeySpec(decoded)); | ||||||
|  |         // RSA加密
 | ||||||
|  |         Cipher cipher = Cipher.getInstance("RSA"); | ||||||
|  |         cipher.init(Cipher.ENCRYPT_MODE, pubKey); | ||||||
|  |         return cipher.doFinal(str); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     //解密
 | ||||||
|  |     public static byte[] decrypt(byte[] str) throws Exception | ||||||
|  |     { | ||||||
|  |         // base64编码的私钥
 | ||||||
|  |         byte[] decoded = Base64.getDecoder().decode(privateKey); | ||||||
|  |         RSAPrivateKey priKey = (RSAPrivateKey) KeyFactory.getInstance("RSA") | ||||||
|  |                 .generatePrivate(new PKCS8EncodedKeySpec(decoded)); | ||||||
|  |         // RSA解密
 | ||||||
|  |         Cipher cipher = Cipher.getInstance("RSA"); | ||||||
|  |         cipher.init(Cipher.DECRYPT_MODE, priKey); | ||||||
|  |         return cipher.doFinal(str); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,18 @@ | |||||||
|  | package vip.xumy.idle.server.conf; | ||||||
|  | 
 | ||||||
|  | import org.springframework.boot.autoconfigure.EnableAutoConfiguration; | ||||||
|  | import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; | ||||||
|  | import org.springframework.boot.builder.SpringApplicationBuilder; | ||||||
|  | import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; | ||||||
|  | import org.springframework.context.annotation.ComponentScan; | ||||||
|  | 
 | ||||||
|  | @EnableAutoConfiguration(exclude = DataSourceAutoConfiguration.class) | ||||||
|  | @ComponentScan(value = "vip.xumy.idle.server, vip.xumy.core") | ||||||
|  | public class SimpleInitializer extends SpringBootServletInitializer { | ||||||
|  | 
 | ||||||
|  | 	@Override | ||||||
|  | 	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { | ||||||
|  | 		return builder.sources(SimpleInitializer.class); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,23 @@ | |||||||
|  | package vip.xumy.idle.server.mapper; | ||||||
|  | 
 | ||||||
|  | import org.apache.ibatis.annotations.Select; | ||||||
|  | 
 | ||||||
|  | import com.baomidou.mybatisplus.core.mapper.BaseMapper; | ||||||
|  | 
 | ||||||
|  | import vip.xumy.idle.server.pojo.User; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Ownership belongs to the company | ||||||
|  |  * | ||||||
|  |  * @author:mengyxu | ||||||
|  |  * @date:2025年4月18日 | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | public interface IUserMapper extends BaseMapper<User> { | ||||||
|  | 
 | ||||||
|  | 	@Select(""" | ||||||
|  | 			SELECT username, state FROM user WHERE username = #{username} AND password = #{password} | ||||||
|  | 			""") | ||||||
|  | 	User login(User param); | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,29 @@ | |||||||
|  | package vip.xumy.idle.server.pojo; | ||||||
|  | 
 | ||||||
|  | import com.baomidou.mybatisplus.annotation.TableName; | ||||||
|  | 
 | ||||||
|  | import lombok.Getter; | ||||||
|  | import lombok.Setter; | ||||||
|  | 
 | ||||||
|  | /**	Ownership belongs to the company | ||||||
|  |  * | ||||||
|  |  *	@author:mengyxu | ||||||
|  |  *	@date:2025年4月18日 | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | @Setter | ||||||
|  | @Getter | ||||||
|  | @TableName("user") | ||||||
|  | public class User { | ||||||
|  | 	 | ||||||
|  | 	private String useranme; | ||||||
|  | 	private String password; | ||||||
|  | 	private String state; | ||||||
|  | 	private String phone; | ||||||
|  | 	private String idCard; | ||||||
|  | 	private String name; | ||||||
|  | 	private String registerTime; | ||||||
|  | 	private String last_login; | ||||||
|  | 	 | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,11 @@ | |||||||
|  | package vip.xumy.idle.server.service; | ||||||
|  | 
 | ||||||
|  | /**	Ownership belongs to the company | ||||||
|  |  * | ||||||
|  |  *	@author:mengyxu | ||||||
|  |  *	@date:2025年4月18日 | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | public class UserService { | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,38 @@ | |||||||
|  | # WEB服务端口配置 | ||||||
|  | server.port=80 | ||||||
|  | # WEB服务根路径配置 | ||||||
|  | server.servlet.context-path=/ | ||||||
|  | logging.config=classpath:logback.xml | ||||||
|  | 
 | ||||||
|  | spring.main.banner-mode=off | ||||||
|  | 
 | ||||||
|  | spring.datasource.type=com.alibaba.druid.pool.DruidDataSource | ||||||
|  | spring.datasource.driver-class-name=com.mysql.jdbc.Driver | ||||||
|  | spring.datasource.initialSize=1 | ||||||
|  | spring.datasource.minIdle=1 | ||||||
|  | spring.datasource.maxActive=20 | ||||||
|  | spring.datasource.maxWait=60000 | ||||||
|  | spring.datasource.timeBetweenEvictionRunsMillis=60000 | ||||||
|  | spring.datasource.minEvictableIdleTimeMillis=300000 | ||||||
|  | spring.datasource.validationQuery=SELECT 1 FROM DUAL | ||||||
|  | spring.datasource.keepAlive=true | ||||||
|  | spring.datasource.testWhileIdle=true | ||||||
|  | spring.datasource.testOnBorrow=false | ||||||
|  | spring.datasource.testOnReturn=false | ||||||
|  | spring.datasource.poolPreparedStatements=false | ||||||
|  | 
 | ||||||
|  | spring.datasource.driver-class-name=com.mysql.jdbc.Driver | ||||||
|  | mcc.datasource.driver-class-name=com.mysql.jdbc.Driver | ||||||
|  | 
 | ||||||
|  | mybatis.configuration.map-underscore-to-camel-case=true | ||||||
|  | 
 | ||||||
|  | quartz.cron.clean.global=0 */10 * * * ? | ||||||
|  | 
 | ||||||
|  | pagehelper.helperDialect=mysql | ||||||
|  | pagehelper.reasonable=true | ||||||
|  | pagehelper.supportMethodsArguments=true | ||||||
|  | pagehelper.params=count=countSql | ||||||
|  | pagehelper.returnPageInfo=check | ||||||
|  | version.num=1.0.1 | ||||||
|  | version.date=2025-03-07 | ||||||
|  | disk.info.path= | ||||||
| @ -0,0 +1,81 @@ | |||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <configuration debug="false"> | ||||||
|  | 
 | ||||||
|  | 	<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> | ||||||
|  | 	<property name="LOG_HOME" value="./logs" /> | ||||||
|  | 	<!--普通日志文件名--> | ||||||
|  | 	<property name="FILE_NAME" value="debug" /> | ||||||
|  | 	<!--错误日志文件名--> | ||||||
|  | 	<property name="ERROR_FILE_NAME" value="error" /> | ||||||
|  | 	<!--日志输出格式:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> | ||||||
|  | 	<property name="PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n" /> | ||||||
|  | 	<!--日志文件保留天数--> | ||||||
|  | 	<property name="MAX_HISTORY" value="30" /> | ||||||
|  | 	<!--日志文件最大的大小--> | ||||||
|  | 	<property name="MAX_SIZE" value="10MB" /> | ||||||
|  | 
 | ||||||
|  | 	<!--控制台日志, 控制台输出 --> | ||||||
|  | 	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> | ||||||
|  | 		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> | ||||||
|  | 			<pattern>${PATTERN}</pattern> | ||||||
|  | 		</encoder> | ||||||
|  | 	</appender> | ||||||
|  | 
 | ||||||
|  | 	<!--文件日志, 按照每天生成日志文件 --> | ||||||
|  | 	<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||||||
|  | 		<file>${LOG_HOME}/${FILE_NAME}.log</file> | ||||||
|  | 		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | ||||||
|  | 			<FileNamePattern>${LOG_HOME}/${FILE_NAME}-%d{yyyy-MM-dd}%i.log</FileNamePattern> | ||||||
|  | 			<MaxHistory>${MAX_HISTORY}</MaxHistory> | ||||||
|  | 			<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> | ||||||
|  | 				<maxFileSize>${MAX_SIZE}</maxFileSize> | ||||||
|  | 			</timeBasedFileNamingAndTriggeringPolicy> | ||||||
|  | 		</rollingPolicy> | ||||||
|  | 		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> | ||||||
|  | 			<pattern>${PATTERN}</pattern> | ||||||
|  | 		</encoder> | ||||||
|  | 	</appender> | ||||||
|  | 
 | ||||||
|  | 	<!--错误, 按照每天生成日志文件 --> | ||||||
|  | 	<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||||||
|  | 		<file>${LOG_HOME}/${ERROR_FILE_NAME}.log</file> | ||||||
|  | 		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | ||||||
|  | 			<FileNamePattern>${LOG_HOME}/${ERROR_FILE_NAME}-%d{yyyy-MM-dd}%i.log</FileNamePattern> | ||||||
|  | 			<MaxHistory>${MAX_HISTORY}</MaxHistory> | ||||||
|  | 			<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> | ||||||
|  | 				<maxFileSize>${MAX_SIZE}</maxFileSize> | ||||||
|  | 			</timeBasedFileNamingAndTriggeringPolicy> | ||||||
|  | 		</rollingPolicy> | ||||||
|  | 		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> | ||||||
|  | 			<pattern>${PATTERN}</pattern> | ||||||
|  | 		</encoder> | ||||||
|  | 		<filter class="ch.qos.logback.classic.filter.LevelFilter"> | ||||||
|  | 			<!-- 只打印DEBUG日志 --> | ||||||
|  | 			<level>ERROR</level> | ||||||
|  | 			<onMatch>ACCEPT</onMatch> | ||||||
|  | 			<onMismatch>DENY</onMismatch> | ||||||
|  | 		</filter> | ||||||
|  | 	</appender> | ||||||
|  | 	 | ||||||
|  | 	<logger name="com.sprt" level="DEBUG" additivity="false"> | ||||||
|  | 		<appender-ref ref="STDOUT" /> | ||||||
|  | 		<appender-ref ref="FILE" /> | ||||||
|  |         <appender-ref ref="ERROR" /> | ||||||
|  | 	</logger> | ||||||
|  | 	<logger name="com.sprt.core" level="INFO" additivity="false"> | ||||||
|  | 		<appender-ref ref="STDOUT" /> | ||||||
|  | 		<appender-ref ref="FILE" /> | ||||||
|  |         <appender-ref ref="ERROR" /> | ||||||
|  | 	</logger> | ||||||
|  | 	<logger name="org.springframework" level="error" additivity="false"> | ||||||
|  | 		<appender-ref ref="STDOUT" /> | ||||||
|  | 		<appender-ref ref="FILE" /> | ||||||
|  |         <appender-ref ref="ERROR" /> | ||||||
|  | 	</logger> | ||||||
|  | 	 <root level="INFO"> | ||||||
|  |         <appender-ref ref="STDOUT" /> | ||||||
|  |         <appender-ref ref="FILE" /> | ||||||
|  |         <appender-ref ref="ERROR" /> | ||||||
|  |     </root> | ||||||
|  | 
 | ||||||
|  | </configuration> | ||||||
| @ -0,0 +1,70 @@ | |||||||
|  | package com.sprt.simple.test; | ||||||
|  | 
 | ||||||
|  | import java.io.BufferedReader; | ||||||
|  | import java.io.BufferedWriter; | ||||||
|  | import java.io.File; | ||||||
|  | import java.io.FileReader; | ||||||
|  | import java.io.FileWriter; | ||||||
|  | import java.util.Base64; | ||||||
|  | 
 | ||||||
|  | import org.junit.jupiter.api.Test; | ||||||
|  | 
 | ||||||
|  | import vip.xumy.idle.server.conf.RSAEncryptDecrypt; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Ownership belongs to the company | ||||||
|  |  * | ||||||
|  |  * @author:mengyxu | ||||||
|  |  * @date:2024年9月26日 | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | public class RSATester { | ||||||
|  | 
 | ||||||
|  | 	@Test | ||||||
|  | 	public void test() throws Exception { | ||||||
|  | 		byte[] message = "mydoris".getBytes(); | ||||||
|  | 		System.out.println("原始字符串为:" + new String(message)); | ||||||
|  | 		byte[] messageEn = RSAEncryptDecrypt.encrypt(message); | ||||||
|  | 		String encryPassword = new String(Base64.getEncoder().encode(messageEn)); | ||||||
|  | 		System.out.println("加密后的Base64字符串为:" + encryPassword); | ||||||
|  | 
 | ||||||
|  | 		byte[] decode = Base64.getDecoder().decode(encryPassword); | ||||||
|  | 		byte[] messageDe = RSAEncryptDecrypt.decrypt(decode); | ||||||
|  | 		System.out.println("还原后的字符串为:" + new String(messageDe)); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	@Test | ||||||
|  | 	public void checkData() { | ||||||
|  | 		String fileName = "D:\\work\\86.其他未确认项目\\知识库111(1)\\csv\\IPData2.CSV"; | ||||||
|  | 		int idx = fileName.lastIndexOf('.'); | ||||||
|  | 		String pre = fileName.substring(0, idx); | ||||||
|  | 		String suf = fileName.substring(idx); | ||||||
|  | 		String right = pre + "-right" + suf; | ||||||
|  | 		String wrong = pre + "-wrong" + suf; | ||||||
|  | 
 | ||||||
|  | 		try (BufferedReader br = new BufferedReader(new FileReader(new File(fileName))); | ||||||
|  | 				BufferedWriter rbw = new BufferedWriter(new FileWriter(new File(right))); | ||||||
|  | 				BufferedWriter wbr = new BufferedWriter(new FileWriter(new File(wrong)));) { | ||||||
|  | 			String line = br.readLine(); | ||||||
|  | 			rbw.write(line); | ||||||
|  | 			wbr.write(line); | ||||||
|  | 
 | ||||||
|  | 			line = br.readLine(); | ||||||
|  | 			while (line != null && line.trim() != null) { | ||||||
|  | 				int num = line.length() - line.replace(",", "").length(); | ||||||
|  | 				if (num == 14) { | ||||||
|  | 					rbw.newLine(); | ||||||
|  | 					rbw.write(line); | ||||||
|  | 				} else { | ||||||
|  | 					wbr.newLine(); | ||||||
|  | 					wbr.write(line); | ||||||
|  | 				} | ||||||
|  | 				line = br.readLine(); | ||||||
|  | 			} | ||||||
|  | 		} catch (Exception e) { | ||||||
|  | 			e.printStackTrace(); | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,34 @@ | |||||||
|  | { | ||||||
|  |   "name": "code", | ||||||
|  |   "version": "0.1.0", | ||||||
|  |   "private": true, | ||||||
|  |   "scripts": { | ||||||
|  |     "dev": "vue-cli-service serve", | ||||||
|  |     "build": "vue-cli-service build" | ||||||
|  |   }, | ||||||
|  |   "dependencies": { | ||||||
|  |     "core-js": "^3.8.3", | ||||||
|  |     "js-base64": "^3.7.7", | ||||||
|  |     "vue": "^3.2.13", | ||||||
|  |     "vue-class-component": "^8.0.0-0", | ||||||
|  |     "vue-router": "^4.0.3", | ||||||
|  |     "vue3-i18n": "^1.1.5", | ||||||
|  |     "vuex": "^4.0.0" | ||||||
|  |   }, | ||||||
|  |   "devDependencies": { | ||||||
|  |     "@vue/cli-plugin-babel": "~5.0.0", | ||||||
|  |     "@vue/cli-plugin-router": "~5.0.0", | ||||||
|  |     "@vue/cli-plugin-typescript": "~5.0.0", | ||||||
|  |     "@vue/cli-plugin-vuex": "~5.0.0", | ||||||
|  |     "@vue/cli-service": "~5.0.0", | ||||||
|  |     "sass": "^1.32.7", | ||||||
|  |     "sass-loader": "^12.0.0", | ||||||
|  |     "typescript": "~4.5.5" | ||||||
|  |   }, | ||||||
|  |   "browserslist": [ | ||||||
|  |     "> 1%", | ||||||
|  |     "last 2 versions", | ||||||
|  |     "not dead", | ||||||
|  |     "not ie 11" | ||||||
|  |   ] | ||||||
|  | } | ||||||
| After Width: | Height: | Size: 4.2 KiB | 
| @ -0,0 +1,23 @@ | |||||||
|  | <!DOCTYPE html> | ||||||
|  | <html lang=""> | ||||||
|  | 
 | ||||||
|  | <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta http-equiv="X-UA-Compatible" content="IE=edge"> | ||||||
|  |     <meta name="viewport" content="width=device-width,initial-scale=1.0"> | ||||||
|  |     <meta name="Description" content="一个全随机的刷装备小游戏" /> | ||||||
|  |     <meta name="Keywords" content="游戏,couy,idle,放置游戏,vue,couy.xyz,rougelike" /> | ||||||
|  |     <link rel="icon" href="./logo.svg"> | ||||||
|  |     <title>couy-idleGame</title> | ||||||
|  | </head> | ||||||
|  | 
 | ||||||
|  | <body> | ||||||
|  |     <noscript> | ||||||
|  |         <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. | ||||||
|  |                 Please enable it to continue.</strong> | ||||||
|  |     </noscript> | ||||||
|  |     <div id="app"></div> | ||||||
|  |     <!-- built files will be auto injected --> | ||||||
|  | </body> | ||||||
|  | 
 | ||||||
|  | </html> | ||||||
| @ -0,0 +1,17 @@ | |||||||
|  | <template> | ||||||
|  |     <router-view /> | ||||||
|  | </template> | ||||||
|  | 
 | ||||||
|  | <style lang="scss"> | ||||||
|  | // @import '@/assets/css/base.scss'; | ||||||
|  | #app { | ||||||
|  |     font-family: Avenir, Helvetica, Arial, sans-serif; | ||||||
|  |     -webkit-font-smoothing: antialiased; | ||||||
|  |     -moz-osx-font-smoothing: grayscale; | ||||||
|  |     text-align: center; | ||||||
|  |     color: #2c3e50; | ||||||
|  |     width: 100%; | ||||||
|  |     height: 100%; | ||||||
|  |     overflow: hidden; | ||||||
|  | } | ||||||
|  | </style> | ||||||
| @ -0,0 +1,165 @@ | |||||||
|  | /** | ||||||
|  |  * 基础样式 | ||||||
|  |  * @author couy(couy69@gmail.com) | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | * { | ||||||
|  |   padding: 0; | ||||||
|  |   margin: 0; | ||||||
|  |   outline: 0; | ||||||
|  |   box-sizing: border-box !important; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | li { | ||||||
|  |   list-style: none; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | a { | ||||||
|  |   text-decoration: none; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | i { | ||||||
|  |   font-style: normal; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | html, | ||||||
|  | body { | ||||||
|  |   width: 100%; | ||||||
|  |   height: 100%; | ||||||
|  |   overflow: hidden !important; | ||||||
|  |   font-size: 14px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @font-face { | ||||||
|  |   font-family: 'sarasa'; | ||||||
|  |   src: url('../fonts/sarasa-ui-cl-regular.ttf') format('truetype'); | ||||||
|  |   font-weight: normal; | ||||||
|  |   font-style: normal; | ||||||
|  | } | ||||||
|  | @font-face { | ||||||
|  |   font-family: 'JetBrainsMono'; | ||||||
|  |   src: url('../fonts/JetBrainsMono-Regular.ttf') format('truetype'); | ||||||
|  |   font-weight: normal; | ||||||
|  |   font-style: normal; | ||||||
|  | } | ||||||
|  | #app { | ||||||
|  |   font-family: 'NotoSansSC', 'Noto Sans', 'Source Sans Pro', 'Avenir', Helvetica, Arial, sans-serif !important; | ||||||
|  | } | ||||||
|  | div, | ||||||
|  | button, | ||||||
|  | span, | ||||||
|  | p, | ||||||
|  | h1, | ||||||
|  | h2, | ||||||
|  | h3, | ||||||
|  | h4, | ||||||
|  | h5, | ||||||
|  | b, | ||||||
|  | input, | ||||||
|  | textarea { | ||||||
|  |   font-family: 'sarasa', 'JetBrainsMono', 'NotoSansSC', 'Noto Sans', 'Source Sans Pro', 'Avenir', Helvetica, Arial, sans-serif !important; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | input, | ||||||
|  | textarea { | ||||||
|  |   border: 1px solid #ccc; | ||||||
|  |   border-radius: 4px; | ||||||
|  |   padding: 0.4rem; | ||||||
|  |   font-size: 1rem; | ||||||
|  |   background-color: #e0e8ea; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | button { | ||||||
|  |   height: 2.4rem; | ||||||
|  |   line-height: 2.2rem; | ||||||
|  |   padding: 0 1rem; | ||||||
|  |   margin-left: 0.5rem; | ||||||
|  |   margin-right: 0.5rem; | ||||||
|  |   cursor: pointer; | ||||||
|  |   color: #fff; | ||||||
|  |   background: #000; | ||||||
|  |   border: 1px solid #fff; | ||||||
|  |   border-radius: 4px; | ||||||
|  |   width: fit-content; | ||||||
|  |   &:hover { | ||||||
|  |     // background: #222; | ||||||
|  |     border: 1px solid #ccc; | ||||||
|  |     text-shadow: 1px 1px 3px #ccc; | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /*使用选择器指定字体*/ | ||||||
|  | .panel-title { | ||||||
|  |   font-family: 'MaShanZheng' !important; | ||||||
|  |   display: flex; | ||||||
|  |   align-items: center !important; | ||||||
|  |   justify-content: center; | ||||||
|  |   font-size: 0.22rem; | ||||||
|  |   padding: 0.2rem 0.1rem; | ||||||
|  |   color: #efb96e; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /* 滚动条 */ | ||||||
|  | ::-webkit-scrollbar-thumb:horizontal { | ||||||
|  |   /*水平滚动条的样式*/ | ||||||
|  |   width: 5px; | ||||||
|  |   background-color: #999; | ||||||
|  |   border-radius: 6px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | ::-webkit-scrollbar-track-piece { | ||||||
|  |   background-color: transparent; | ||||||
|  |   /*滚动条的背景颜色*/ | ||||||
|  |   border-radius: 0; | ||||||
|  |   /*滚动条的圆角宽度*/ | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | ::-webkit-scrollbar { | ||||||
|  |   width: 8px; | ||||||
|  |   /*滚动条的宽度*/ | ||||||
|  |   height: 8px; | ||||||
|  |   /*滚动条的高度*/ | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | ::-webkit-scrollbar-thumb:vertical { | ||||||
|  |   /*垂直滚动条的样式*/ | ||||||
|  |   height: 20px; | ||||||
|  |   background-color: #999; | ||||||
|  |   border-radius: 4px; | ||||||
|  |   outline: 2px solid transparent; | ||||||
|  |   outline-offset: -2px; | ||||||
|  |   border: 2px solid transparent; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | ::-webkit-scrollbar-thumb:hover { | ||||||
|  |   /*滚动条的hover样式*/ | ||||||
|  |   height: 20px; | ||||||
|  |   background-color: #9f9f9f; | ||||||
|  |   border-radius: 4px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .unique { | ||||||
|  |   background: linear-gradient(125deg, #c90e0d36, #5656d647, 40%, #867d1033, #2c846f4d) !important; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .fade-enter-active, | ||||||
|  | .fade-leave-active { | ||||||
|  |   transition: 0.3s; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .fade-enter, | ||||||
|  | .fade-leave-to { | ||||||
|  |   transform: translateX(100%); | ||||||
|  | } | ||||||
|  | .icon { | ||||||
|  |   display: inline-block; | ||||||
|  |   width: 0.25rem; | ||||||
|  |   height: 0.25rem; | ||||||
|  |   background-repeat: no-repeat; | ||||||
|  |   background-size: contain; | ||||||
|  |   padding: 2px; | ||||||
|  |   background-position: center; | ||||||
|  | } | ||||||
|  | .icon-setting { | ||||||
|  |   background-image: url(../icons/menu/setting.png); | ||||||
|  | } | ||||||
| @ -0,0 +1,291 @@ | |||||||
|  | @media screen and (max-width: 768px) { | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @media screen and (max-width: 768px) { | ||||||
|  |   .body, | ||||||
|  |   html, | ||||||
|  |   #app { | ||||||
|  |     width: 100%; | ||||||
|  |     height: 100%; | ||||||
|  |     overflow: hidden; | ||||||
|  |   } | ||||||
|  |   * { | ||||||
|  |     user-select: text !important; | ||||||
|  |   } | ||||||
|  |   #app { | ||||||
|  |     -webkit-tap-highlight-color: transparent; | ||||||
|  |     position: fixed; | ||||||
|  |     top: 0; | ||||||
|  |     left: 0; | ||||||
|  |     bottom: 0; | ||||||
|  |     right: 0; | ||||||
|  | 
 | ||||||
|  |     .main { | ||||||
|  |       .user-status { | ||||||
|  |         width: calc(50% - 0.12rem); | ||||||
|  |         height: calc(25% - 0.02rem); | ||||||
|  |         padding: 0.05rem; | ||||||
|  | 
 | ||||||
|  |         .hp { | ||||||
|  |           padding-left: 0.08rem; | ||||||
|  |           border: none; | ||||||
|  |           height: 0.25rem; | ||||||
|  |           img { | ||||||
|  |             width: 0.35rem; | ||||||
|  |             height: 0.35rem; | ||||||
|  |           } | ||||||
|  | 
 | ||||||
|  |           .value { | ||||||
|  |             font-size: 0.18rem; | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |         .lv { | ||||||
|  |           padding-left: 0.08rem; | ||||||
|  |           border: none; | ||||||
|  |           height: 0.25rem; | ||||||
|  | 
 | ||||||
|  |           img { | ||||||
|  |             width: 0.35rem; | ||||||
|  |             height: 0.35rem; | ||||||
|  |           } | ||||||
|  | 
 | ||||||
|  |           .value { | ||||||
|  |             font-size: 0.18rem; | ||||||
|  |             justify-content: space-between; | ||||||
|  |             padding-right: 0.1rem; | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         .other { | ||||||
|  |           margin-top: 0.02rem; | ||||||
|  |           padding: 0.04rem; | ||||||
|  |           border: 1px solid #ccc; | ||||||
|  |           & > div { | ||||||
|  |             padding-top: 0.02rem; | ||||||
|  |           } | ||||||
|  | 
 | ||||||
|  |           img { | ||||||
|  |             width: 0.3rem; | ||||||
|  |             height: 0.3rem; | ||||||
|  |           } | ||||||
|  | 
 | ||||||
|  |           .value { | ||||||
|  |             font-size: 0.18rem; | ||||||
|  |             margin-top: 0.04rem; | ||||||
|  |             span { | ||||||
|  |               font-size: 0.12rem !important; | ||||||
|  |               transform: scale(0.8); | ||||||
|  |               margin-top: -0.02rem; | ||||||
|  |             } | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  | 
 | ||||||
|  |       .user-item { | ||||||
|  |         margin-top: 0.12rem; | ||||||
|  |         width: calc(50% - 0.12rem); | ||||||
|  |         height: calc(25% - 0.02rem); | ||||||
|  |         top: 25%; | ||||||
|  |         left: 0.1rem; | ||||||
|  |         padding: 0; | ||||||
|  | 
 | ||||||
|  |         & > div { | ||||||
|  |           height: 25%; | ||||||
|  |           width: 100%; | ||||||
|  | 
 | ||||||
|  |           .title { | ||||||
|  |             padding: 0 0.1rem; | ||||||
|  |             display: flex; | ||||||
|  |             align-items: center; | ||||||
|  | 
 | ||||||
|  |             .icon { | ||||||
|  |               width: 0.4rem; | ||||||
|  |               height: 0.4rem; | ||||||
|  | 
 | ||||||
|  |               img { | ||||||
|  |                 width: 0.35rem; | ||||||
|  |                 height: 0.35rem; | ||||||
|  |               } | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             .name { | ||||||
|  |               font-size: 0.18rem; | ||||||
|  |             } | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         .uii { | ||||||
|  |           display: flex; | ||||||
|  |           flex-direction: column; | ||||||
|  | 
 | ||||||
|  |           .gold { | ||||||
|  |             width: 100%; | ||||||
|  |             height: 50% !important; | ||||||
|  |             height: auto; | ||||||
|  |             margin: 0; | ||||||
|  |             font-size: 0.12rem; | ||||||
|  |             padding-right: 0.12rem; | ||||||
|  | 
 | ||||||
|  |             span { | ||||||
|  |               padding: 0; | ||||||
|  |               font-size: 0.16rem !important; | ||||||
|  |             } | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  | 
 | ||||||
|  |       .sys-info { | ||||||
|  |         width: calc(50% - 0.12rem); | ||||||
|  |         height: 50%; | ||||||
|  |         bottom: auto; | ||||||
|  |         right: 0.1rem; | ||||||
|  |         top: 0.1rem; | ||||||
|  |         left: auto; | ||||||
|  |         padding: 0.05rem; | ||||||
|  |         font-size: 0.12rem; | ||||||
|  | 
 | ||||||
|  |         .info { | ||||||
|  |           i { | ||||||
|  |             display: none; | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         .clear { | ||||||
|  |           top: auto; | ||||||
|  |           bottom: 0.1rem; | ||||||
|  |           right: 0.1rem; | ||||||
|  |           background: #000; | ||||||
|  |           border: 1px solid #ccc; | ||||||
|  |           border-radius: 0.06rem; | ||||||
|  |           padding: 0.02rem 0.04rem; | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  | 
 | ||||||
|  |       .map { | ||||||
|  |         height: calc(50% - 0.24rem); | ||||||
|  |         right: 0.8rem; | ||||||
|  |         left: 0.1rem; | ||||||
|  |         top: auto; | ||||||
|  |         bottom: 0.1rem; | ||||||
|  | 
 | ||||||
|  |         .plan { | ||||||
|  |           height: 0.6rem; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         .dungeons { | ||||||
|  |           img { | ||||||
|  |             width: 0.35rem; | ||||||
|  |             height: 0.35rem; | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         .event-icon { | ||||||
|  |           width: 0.35rem; | ||||||
|  |           height: 0.35rem; | ||||||
|  |           background-size: 100%; | ||||||
|  | 
 | ||||||
|  |           span { | ||||||
|  |             font-size: 0.13rem; | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  | 
 | ||||||
|  |       .menu { | ||||||
|  |         display: flex; | ||||||
|  |         flex-direction: column; | ||||||
|  |         left: auto; | ||||||
|  |         right: 0.1rem; | ||||||
|  |         top: 52%; | ||||||
|  | 
 | ||||||
|  |         & > div { | ||||||
|  |           margin: 0.03rem; | ||||||
|  | 
 | ||||||
|  |           img { | ||||||
|  |             width: 0.35rem; | ||||||
|  |             height: 0.35rem; | ||||||
|  |           } | ||||||
|  | 
 | ||||||
|  |           span { | ||||||
|  |             font-size: 0.22rem; | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     .dialog-backpackPanel { | ||||||
|  |       transform: translate(-50%, -50%) scale(0.8); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     .dialog { | ||||||
|  |       top: 50% !important; | ||||||
|  |       left: 50% !important; | ||||||
|  |       transform: translate(-50%, -50%); | ||||||
|  | 
 | ||||||
|  |       .item-close { | ||||||
|  |         display: block; | ||||||
|  |       } | ||||||
|  | 
 | ||||||
|  |       .weapon, | ||||||
|  |       .armor, | ||||||
|  |       .ring, | ||||||
|  |       .neck { | ||||||
|  |         & > div { | ||||||
|  |           width: 2.2rem; | ||||||
|  |           font-size: 0.13rem; | ||||||
|  | 
 | ||||||
|  |           .icon { | ||||||
|  |             width: 0.45rem; | ||||||
|  |             height: 0.45rem; | ||||||
|  | 
 | ||||||
|  |             img { | ||||||
|  |               width: 0.4rem; | ||||||
|  |               height: 0.4rem; | ||||||
|  |             } | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         padding: 0.06rem; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   .drawer-update { | ||||||
|  |     width: 100% !important; | ||||||
|  |   } | ||||||
|  |   .qa { | ||||||
|  |     left: 1.5rem; | ||||||
|  |     width: 0.45rem; | ||||||
|  |     height: 0.5rem; | ||||||
|  |     span { | ||||||
|  |       font-size: 0.12rem !important; | ||||||
|  |     } | ||||||
|  |     img { | ||||||
|  |       width: 0.25rem; | ||||||
|  |       height: 0.25rem; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |   .extras { | ||||||
|  |     left: 0.8rem; | ||||||
|  |     width: 0.45rem; | ||||||
|  |     height: 0.5rem; | ||||||
|  |     span { | ||||||
|  |       font-size: 0.12rem !important; | ||||||
|  |     } | ||||||
|  |     img { | ||||||
|  |       width: 0.25rem; | ||||||
|  |       height: 0.25rem; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |   .setting { | ||||||
|  |     left: 0.1rem; | ||||||
|  |     width: 0.45rem; | ||||||
|  |     height: 0.5rem; | ||||||
|  |     span { | ||||||
|  |       font-size: 0.12rem !important; | ||||||
|  |     } | ||||||
|  |     img { | ||||||
|  |       width: 0.25rem; | ||||||
|  |       height: 0.25rem; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
| @ -0,0 +1,318 @@ | |||||||
|  | * { | ||||||
|  |   box-sizing: border-box; | ||||||
|  |   user-select: none; | ||||||
|  | } | ||||||
|  | a { | ||||||
|  |   cursor: pointer; | ||||||
|  | } | ||||||
|  | .main { | ||||||
|  |   background: #111; | ||||||
|  |   box-sizing: border-box; | ||||||
|  |   margin: 0; | ||||||
|  |   padding: 0; | ||||||
|  |   position: absolute; | ||||||
|  |   top: 0; | ||||||
|  |   left: 0; | ||||||
|  |   bottom: 0; | ||||||
|  |   right: 0; | ||||||
|  |   color: #eee; | ||||||
|  |   height: 100%; | ||||||
|  |   .user-status { | ||||||
|  |     position: absolute; | ||||||
|  |     top: 0.1rem; | ||||||
|  |     left: 0.1rem; | ||||||
|  |     border: 2px solid #ccc; | ||||||
|  |     height: 4rem; | ||||||
|  |     width: 4rem; | ||||||
|  |     padding: 0.1rem; | ||||||
|  |     display: flex; | ||||||
|  |     flex-direction: column; | ||||||
|  |     .hp { | ||||||
|  |       cursor: pointer; | ||||||
|  |       height: 0.7rem; | ||||||
|  |       width: 100%; | ||||||
|  |       display: flex; | ||||||
|  |       border: 2px solid #ccc; | ||||||
|  |       align-items: center; | ||||||
|  |       padding-left: 0.2rem; | ||||||
|  |       margin-bottom: 0.1rem; | ||||||
|  |       img { | ||||||
|  |         width: 0.5rem; | ||||||
|  |         height: 0.5rem; | ||||||
|  |       } | ||||||
|  |       .value { | ||||||
|  |         font-size: 0.26rem; | ||||||
|  |         font-weight: bold; | ||||||
|  |         text-align: center; | ||||||
|  |         flex: 1; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |     .lv { | ||||||
|  |       cursor: pointer; | ||||||
|  |       height: 0.7rem; | ||||||
|  |       width: 100%; | ||||||
|  |       display: flex; | ||||||
|  |       border: 2px solid #ccc; | ||||||
|  |       align-items: center; | ||||||
|  |       padding-left: 0.2rem; | ||||||
|  |       margin-bottom: 0.1rem; | ||||||
|  |       img { | ||||||
|  |         width: 0.5rem; | ||||||
|  |         height: 0.5rem; | ||||||
|  |       } | ||||||
|  |       .value { | ||||||
|  |         display: flex; | ||||||
|  |         justify-content: space-around; | ||||||
|  |         font-size: 0.26rem; | ||||||
|  |         font-weight: bold; | ||||||
|  |         text-align: center; | ||||||
|  |         flex: 1; | ||||||
|  |         align-items: center; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |     .other { | ||||||
|  |       img { | ||||||
|  |         width: 0.35rem !important; | ||||||
|  |         height: 0.35rem !important; | ||||||
|  |       } | ||||||
|  |       display: flex; | ||||||
|  |       flex: 1; | ||||||
|  |       padding: 0.1rem; | ||||||
|  |       border: 2px solid #ccc; | ||||||
|  |       flex-wrap: wrap; | ||||||
|  |       & > div, | ||||||
|  |       .item { | ||||||
|  |         cursor: pointer; | ||||||
|  |         width: 33.3%; | ||||||
|  |         height: 50%; | ||||||
|  |         display: flex; | ||||||
|  |         align-items: center; | ||||||
|  |         justify-content: flex-start; | ||||||
|  |         padding-top: 0.05rem; | ||||||
|  |         flex-direction: column; | ||||||
|  |         .value { | ||||||
|  |           margin-top: 0.06rem; | ||||||
|  |           font-size: 0.23rem; | ||||||
|  |           font-weight: normal; | ||||||
|  |           flex: 1; | ||||||
|  |           display: flex; | ||||||
|  |           align-items: center; | ||||||
|  |           flex-direction: column; | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |       .item { | ||||||
|  |         width: 100%; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |   .user-item { | ||||||
|  |     position: absolute; | ||||||
|  |     top: 0.1rem; | ||||||
|  |     left: 4.2rem; | ||||||
|  |     border: 2px solid #ccc; | ||||||
|  |     height: 4rem; | ||||||
|  |     width: 4rem; | ||||||
|  |     display: flex; | ||||||
|  |     flex-direction: column; | ||||||
|  |     align-items: center; | ||||||
|  |     justify-content: space-around; | ||||||
|  |     padding: 0.2rem 0; | ||||||
|  |     padding-top: 0.1rem; | ||||||
|  |     cursor: pointer; | ||||||
|  |     & > div { | ||||||
|  |       background: rgba(0, 0, 0, 0.7); | ||||||
|  |       width: calc(100% - 0.4rem); | ||||||
|  |       margin: 0 20rem; | ||||||
|  |     } | ||||||
|  |     .uii { | ||||||
|  |       display: flex; | ||||||
|  |       width: calc(100% -0.4rem); | ||||||
|  |     } | ||||||
|  |     .gold { | ||||||
|  |       cursor: pointer; | ||||||
|  |       height: 0.7rem; | ||||||
|  |       margin: 0.1rem; | ||||||
|  |       margin-top: 0.08rem; | ||||||
|  |       width: calc(100%); | ||||||
|  |       display: flex; | ||||||
|  |       align-items: center; | ||||||
|  |       padding-left: 0.1rem; | ||||||
|  |       font-size: 0.22rem; | ||||||
|  |       span { | ||||||
|  |         font-size: 0.2rem; | ||||||
|  |         font-weight: bold; | ||||||
|  |         text-align: right; | ||||||
|  |         flex: 1; | ||||||
|  |         padding: 0.1rem 0.08rem; | ||||||
|  |         display: flex; | ||||||
|  |         align-items: flex-end; | ||||||
|  |         justify-content: flex-end; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |     .title { | ||||||
|  |       display: flex; | ||||||
|  |       padding: 0.05rem; | ||||||
|  |       width: 100%; | ||||||
|  |       .icon { | ||||||
|  |         width: 0.56rem; | ||||||
|  |         height: 0.56rem; | ||||||
|  |         background-color: #000; | ||||||
|  |         display: flex; | ||||||
|  |         align-items: center; | ||||||
|  |         justify-content: center; | ||||||
|  |         border-radius: 0.04rem; | ||||||
|  |       } | ||||||
|  |       .name { | ||||||
|  |         font-size: 0.2rem; | ||||||
|  |         height: 0.46rem; | ||||||
|  |         margin-left: 0.2rem; | ||||||
|  |         line-height: 0.46rem; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |   .sys-info { | ||||||
|  |     position: absolute; | ||||||
|  |     border: 2px solid #ccc; | ||||||
|  |     height: calc(100% - 4.4rem); | ||||||
|  |     width: 8.1rem; | ||||||
|  |     bottom: 0.1rem; | ||||||
|  |     left: 0.1rem; | ||||||
|  | 
 | ||||||
|  |     transition: 0.2s; | ||||||
|  |     padding: 0.2rem; | ||||||
|  |     .clear { | ||||||
|  |       position: absolute; | ||||||
|  |       top: 0.2rem; | ||||||
|  |       right: 0.2rem; | ||||||
|  |       cursor: pointer; | ||||||
|  |       &:hover { | ||||||
|  |         text-decoration: underline; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |     #sysInfo { | ||||||
|  |       overflow-y: auto; | ||||||
|  |       transition: 0.2s; | ||||||
|  |       width: 100%; | ||||||
|  |       height: 100%; | ||||||
|  |       display: flex; | ||||||
|  |       flex-direction: column; | ||||||
|  |       align-items: flex-start; | ||||||
|  |       justify-content: flex-start; | ||||||
|  |     } | ||||||
|  |     .info { | ||||||
|  |       margin: 0.03rem 0; | ||||||
|  |     } | ||||||
|  |     a { | ||||||
|  |       cursor: pointer; | ||||||
|  |       text-decoration: underline; | ||||||
|  |       margin-left: 0.05rem; | ||||||
|  |     } | ||||||
|  |     .warning > span { | ||||||
|  |       color: #f90202; | ||||||
|  |     } | ||||||
|  |     .battle > span { | ||||||
|  |       color: #de8618; | ||||||
|  |     } | ||||||
|  |     .win > span { | ||||||
|  |       color: #24c4de; | ||||||
|  |     } | ||||||
|  |     .trophy > span { | ||||||
|  |       color: #2fe20f; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |   .map { | ||||||
|  |     position: absolute; | ||||||
|  |     right: 0.1rem; | ||||||
|  |     left: 8.3rem; | ||||||
|  |     top: 0.1rem; | ||||||
|  |     bottom: 0.1rem; | ||||||
|  |     border: 2px solid #ccc; | ||||||
|  |     background-image: url(../img/map.jpg); | ||||||
|  |     background-repeat: no-repeat; | ||||||
|  |     background-size: 100% 100%; | ||||||
|  |     .plan { | ||||||
|  |       position: absolute; | ||||||
|  |       top: 0.1rem; | ||||||
|  |       width: calc(100% - 0.3rem); | ||||||
|  |       left: 0.15rem; | ||||||
|  |       height: 1rem; | ||||||
|  |       background: rgba(54, 121, 176, 0.68); | ||||||
|  |       text-align: center; | ||||||
|  |       font-size: 0.4rem; | ||||||
|  |       line-height: 1rem; | ||||||
|  |     } | ||||||
|  |     .eventEnd { | ||||||
|  |       position: absolute; | ||||||
|  |       top: 1.1rem; | ||||||
|  |       right: 0rem; | ||||||
|  |       height: 0.4rem; | ||||||
|  |       font-size: 0.16rem; | ||||||
|  |       line-height: initial; | ||||||
|  |     } | ||||||
|  |     .event-icon { | ||||||
|  |       position: absolute; | ||||||
|  |       cursor: pointer; | ||||||
|  |       width: 0.55rem; | ||||||
|  |       height: 0.75rem; | ||||||
|  |       border: 1px solid #111; | ||||||
|  |       background: rgba(0, 0, 0, 0.5); | ||||||
|  |       border-radius: 4px; | ||||||
|  |       box-shadow: 0 0 4px 4px rgba(100, 255, 36, 0.5); | ||||||
|  |       display: flex; | ||||||
|  |       flex-direction: column; | ||||||
|  |       align-items: center; | ||||||
|  |       justify-content: center; | ||||||
|  |       .icon-image { | ||||||
|  |         width: 0.45rem; | ||||||
|  |         height: 0.45rem; | ||||||
|  |         border-radius: 50%; | ||||||
|  |         background-image: url(../icons/menu/d1.png); | ||||||
|  |         background-color: rgba(100, 255, 36, 0.6); | ||||||
|  |         background-repeat: no-repeat; | ||||||
|  |         background-position: center center; | ||||||
|  |         background-size: 30px 29px; | ||||||
|  |       } | ||||||
|  |       span { | ||||||
|  |         text-shadow: 1px 1px 3px rgb(0, 0, 0); | ||||||
|  |         white-space: nowrap; | ||||||
|  |         width: 100%; | ||||||
|  |         text-align: center; | ||||||
|  |         border-top: 1px solid rgba(100, 255, 36, 0.6); | ||||||
|  |         margin-top: 0.03rem; | ||||||
|  |         font-size: 0.14rem; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |     .low-level { | ||||||
|  |     } | ||||||
|  |     .h-level { | ||||||
|  |       box-shadow: 0 0 4px 4px rgba(245, 241, 0, 0.5); | ||||||
|  |       .icon-image { | ||||||
|  |         background-image: url(../icons/menu/d2.png); | ||||||
|  |         background-color: rgba(245, 241, 0, 0.6); | ||||||
|  |       } | ||||||
|  |       span { | ||||||
|  |         border-top: 1px solid rgba(245, 241, 0, 0.6); | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |     .boss { | ||||||
|  |       box-shadow: 0 0 4px 4px rgba(245, 54, 54, 0.5); | ||||||
|  |       .icon-image { | ||||||
|  |         background-image: url(../icons/menu/d3.png); | ||||||
|  |         background-color: rgba(245, 54, 54, 0.6); | ||||||
|  |       } | ||||||
|  |       span { | ||||||
|  |         border-top: 1px solid rgba(245, 54, 54, 0.6); | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |     .endless { | ||||||
|  |       box-shadow: 0 0 4px 4px rgba(245, 69, 0, 0.5); | ||||||
|  |       .icon-image { | ||||||
|  |         background-image: url(../icons/endless.png); | ||||||
|  |         background-color: rgba(245, 69, 0, 0.6); | ||||||
|  |       } | ||||||
|  |       span { | ||||||
|  |         border-top: 1px solid rgba(245, 69, 0, 0.6); | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
| After Width: | Height: | Size: 3.3 KiB | 
| After Width: | Height: | Size: 3.4 KiB | 
| After Width: | Height: | Size: 2.2 KiB | 
| After Width: | Height: | Size: 1.3 KiB | 
| After Width: | Height: | Size: 1.3 KiB | 
| After Width: | Height: | Size: 987 B | 
| After Width: | Height: | Size: 978 B | 
| After Width: | Height: | Size: 878 B | 
| After Width: | Height: | Size: 3.1 KiB | 
| After Width: | Height: | Size: 1.9 KiB | 
| After Width: | Height: | Size: 762 B | 
| After Width: | Height: | Size: 571 B | 
| After Width: | Height: | Size: 3.6 KiB | 
| After Width: | Height: | Size: 3.3 KiB | 
| After Width: | Height: | Size: 3.4 KiB | 
| After Width: | Height: | Size: 3.6 KiB | 
| After Width: | Height: | Size: 560 B | 
| After Width: | Height: | Size: 3.2 KiB | 
| After Width: | Height: | Size: 1.4 KiB | 
| After Width: | Height: | Size: 573 B | 
| After Width: | Height: | Size: 3.1 KiB | 
| After Width: | Height: | Size: 3.5 KiB | 
| After Width: | Height: | Size: 3.2 KiB | 
| After Width: | Height: | Size: 3.2 KiB | 
| After Width: | Height: | Size: 823 B | 
| After Width: | Height: | Size: 911 B | 
| After Width: | Height: | Size: 772 B | 
| After Width: | Height: | Size: 715 B | 
| After Width: | Height: | Size: 734 B | 
| After Width: | Height: | Size: 676 B | 
| After Width: | Height: | Size: 725 B | 
| After Width: | Height: | Size: 873 B | 
| After Width: | Height: | Size: 456 B | 
| After Width: | Height: | Size: 611 B | 
| After Width: | Height: | Size: 1.0 KiB | 
| After Width: | Height: | Size: 1007 B | 
| After Width: | Height: | Size: 596 B | 
| After Width: | Height: | Size: 1.7 KiB | 
| After Width: | Height: | Size: 840 B | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 501 B | 
| After Width: | Height: | Size: 717 B | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 605 B | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 530 B | 
| After Width: | Height: | Size: 887 B | 
| After Width: | Height: | Size: 636 B | 
| After Width: | Height: | Size: 1.5 KiB | 
| After Width: | Height: | Size: 649 B | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 826 B | 
| After Width: | Height: | Size: 3.1 KiB | 
| After Width: | Height: | Size: 3.2 KiB | 
| After Width: | Height: | Size: 3.4 KiB | 
| After Width: | Height: | Size: 3.3 KiB | 
| After Width: | Height: | Size: 3.3 KiB | 
| After Width: | Height: | Size: 3.3 KiB | 
| After Width: | Height: | Size: 1.5 KiB | 
| After Width: | Height: | Size: 1.5 KiB | 
| After Width: | Height: | Size: 1.7 KiB | 
| After Width: | Height: | Size: 1.9 KiB | 
| After Width: | Height: | Size: 1.3 KiB | 
| After Width: | Height: | Size: 1.5 KiB | 
| After Width: | Height: | Size: 341 B | 
| After Width: | Height: | Size: 3.1 KiB | 
| After Width: | Height: | Size: 4.0 KiB | 
| After Width: | Height: | Size: 3.3 KiB | 
| After Width: | Height: | Size: 3.2 KiB | 
| After Width: | Height: | Size: 3.7 KiB | 
| After Width: | Height: | Size: 22 KiB | 
| After Width: | Height: | Size: 3.2 KiB | 
| After Width: | Height: | Size: 3.3 KiB |